web-dev-qa-db-fra.com

Quelle est la fiabilité de `Sudo apt-get install (nom du package)` dans Ubuntu?

L'un des moyens simples d'installer un programme dans Ubuntu Linux est de taper une commande dans le terminal, mais comment savoir que le programme provient d'une source fiable et non d'un endroit dangereux? Par exemple, si j'installe ClamAV, comment savoir si ClamAV provient de www.clamav.net ou d'un endroit sûr et non d'une source malveillante? Je veux dire, un pirate peut faire quelque chose pour rediriger la commande pour lui faire obtenir le logiciel à partir d'un faux site, n'est-ce pas?

31

Comme avec de nombreux systèmes bien conçus, le système de paquets de Debian a une défense en profondeur : plusieurs couches, chacune pouvant être vérifiée.

  • Comment pouvons-nous croire que le fichier de package est ce que le système promet? La valeur de hachage est calculée et comparée à la valeur stockée.

  • Comment pouvons-nous nous assurer que la valeur de hachage ne correspond pas accidentellement à un autre fichier? Plusieurs algorithmes de hachage sont utilisés, et ce n'est que si tous que ceux-ci correspondent aux valeurs stockées que nous faisons confiance au contenu correspond réellement.

  • Comment pouvons-nous faire confiance aux valeurs stockées pour le fichier de package que nous avons téléchargé? Les valeurs de hachage sont téléchargées dans un fichier séparé (les différents fichiers Packages.*) Pré-calculé automatiquement par le système d'archives.

  • Comment pouvons-nous faire confiance aux fichiers Packages.* Téléchargés qui sont promis par le système? La valeur de hachage de chaque fichier est stockée dans un seul fichier Release pour l'archive entière.

  • Comment pouvons-nous croire que le fichier Release est ce qui est promis par le système? La signature cryptographique est calculée et comparée à la signature précalculée téléchargée séparément à partir de l'archive.

  • Comment pouvons-nous nous assurer que les signatures stockées dans l'archive proviennent réellement de l'archive que nous attendions? Il est certifié par une clé d'archive que nous pouvons récupérer indépendamment d'une URL distincte, et est installé dans la configuration initiale du système d'exploitation.

Etc. À un certain moment de la chaîne, vous devez faire confiance à certains partie (et partie) du système, sur des preuves moins qu'idéales.

Avec les couches ci-dessus, la fenêtre de confiance à faible niveau de preuve peut être réduite et facilement examinée. Les hachages unidirectionnels et les signatures cryptographiques nous permettent de faire confiance aux mathématiques pour certifier ce qui suit dans l'ordre.

Le wiki Debian a une bonne description complète de comment le système APT est sécurisé .

Bien sûr, beaucoup d'autres choses peuvent mal tourner par erreur ou par malveillance, et violer nos hypothèses sur ce qui se passe réellement. Comme d'habitude, la seule défense persistante contre les attaques possibles est: la vigilance éternelle.

52
bignose

apt-get a une liste de clés gpg de confiance. apt-get install télécharge les packages à partir des serveurs de référentiel (miroir), normalement pas le serveur de l'auteur du logiciel. Pour garantir l'authenticité, chaque colis est signé avec gpg. Le package n'est installé que si la signature est approuvée. Ainsi, même dans le cas d'une attaque MITM, la vérification de signature échouera si le package est modifié.

3
H. Idden