Quelles données sont transmises à Canonical pour livepatch?

Je viens de passer à 18.04 et je voulais essayer livepatch. Après avoir lu la page Web des conditions d’utilisation du Livepatch ( https://www.ubuntu.com/legal/terms-and-policies/livepatch-terms-of-service ), je me suis posé des questions sur ces deux paragraphes de la section Données personnelles:

Nous pouvons également collecter certaines informations non personnellement identifiables, qui se trouvent sur votre ordinateur. Les informations collectées peuvent inclure des statistiques sur la fréquence de transfert des données, ainsi que des mesures de performance relatives au logiciel et à la configuration. Vous acceptez que ces informations puissent être conservées et utilisées par Canonical.

Canonical peut divulguer tout ou partie des données personnelles et du contenu que vous avez envoyés, postés ou publiés si vous vous conformez à la loi en vigueur, à l’ordonnance ou aux exigences d’un sortingbunal, d’un organisme administratif ou d’un autre organisme gouvernemental. Toute autre utilisation de vos données personnelles est soumise à la politique de confidentialité.

Je comprends que pour pouvoir appliquer les correctifs en direct, Canonical doit connaître certaines informations sur mon système, telles que la version du kernel. De plus, grâce à mon compte SSO et au jeton, ils connaissent mon adresse électronique et mon nom.

Jusqu’ici tout va bien. Mais je me demande quoi d’autre Canonical doit savoir sur mon système. Le texte ci-dessus est vague à ce sujet. Les “statistiques” et les “mesures de performance” ne semblent pas être nécessaires au service de correction en direct. De plus, si ces données sont réellement “non personnellement identifiables”, pourquoi Canonical demande à un paragraphe plus tard d’accepter qu’elles puissent les divulguer sur demande à des agences administratives ou à des organismes gouvernementaux?

Quelles sont les données transmises à Canonical, une fois et régulièrement? Comment puis-je rechercher ce qui est transmis? Comment puis-je être sûr qu’il ne changera pas soudainement de transmettre plus que je ne le souhaite?

C’est une question technique. Je ne veux pas discuter du TOS de Canonical ni de questions juridiques. Je veux vraiment un moyen technique pour trouver ce qui est transmis avant de m’inscrire.

Étant donné que le client livepatch est propriétaire, je n’ai pas de réponse complète.

Cela dit, le client ( /snap/canonical-livepatch/*/canonical-livepatchd ) est écrit en Go. Débogage avec Delve , voici quelques informations pour commencer:

 (dlv) bt 0 0x00000000006ad140 in main.(*client).check at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:212 1 0x00000000006acfeb in main.(*client).Check at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:200 2 0x00000000006b8415 in main.refresh at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:60 3 0x00000000006bf957 in main.newDaemon.func1 at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/daemon.go:76 4 0x00000000006b86a3 in main.(*refreshLoop).loop at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:120 5 0x00000000006c0bfd in main.(*service).Start.func1 at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/service.go:151 6 0x0000000000457b31 in runtime.goexit at /home/c/.gobrew/versions/1.10/src/runtime/asm_amd64.s:2361 (dlv) locals rendered.cap = 0 rendered.len = 0 rendered.ptr = *uint8 nil status = main.ClientStatus {ClientVersion: "8.0.1", MachineId: "bfcf169468f641528ac653c41ff1797d", MachineToken: "",...+7 more} (dlv) print status main.ClientStatus { ClientVersion: "8.0.1", MachineId: "bfcf169468f641528ac653c41ff1797d", MachineToken: "", Architecture: "x86_64", CpuModel: "Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz", LastCheck: time.Time { wall: 0, ext: 0, loc: *time.Location nil,}, BootTime: time.Time { wall: 0, ext: 63662149770, loc: *(*time.Location)(0x963f60),}, ApplyTime: time.Time { wall: 0, ext: 0, loc: *time.Location nil,}, Uptime: 3472, Kernels: []main.KernelStatus len: 1, cap: 1, [ (*main.KernelStatus)(0xc4201883c0), ],} 

Les champs de la variable de status sont:

  • Version du client
  • ID d’ordinateur (la valeur de /etc/machine-id )
  • Jeton d’ordinateur (jeton Ubuntu One?)
  • Modèle de processeur et architecture (OS?)
  • Dernière heure de contrôle
  • Temps de démarrage (temps nécessaire pour démarrer?)
  • Apply Time (?? – Peut-être quand la dernière mise à jour a été appliquée?)
  • La disponibilité
  • Liste des kernelx

Le temps de démarrage et la disponibilité peuvent être considérés comme inclus dans les statistiques et les mesures de performance.

Encore une fois, c’est un sharepoint départ. Faites-en ce que vous voulez, et j’espère que quelqu’un d’autre pourra fournir des informations plus précises.

Comment puis-je être sûr qu’il ne changera pas soudainement de transmettre plus que je ne le souhaite?

Tu ne peux pas. Le code source n’est pas disponible et les instantanés sont automatiquement actualisés, IIRC.