Les packages Ubuntu (fichiers deb) sont-ils uniquement sécurisés par md5sum?

13

Contexte introductif de la question ci-dessous ###

(donc la question est plus utilisable pour plus de gens)
À l'intérieur d'un paquet de style Ubuntu / debian (fichier * .deb) il y a un fichier nommé /DEBIAN/md5sumsqui a un contenu de cette forme:

212ee8d0856605eb4546c3cff6aa6d35 usr / bin / file1
4131b66dc3913fcbf795159df912809f chemin / vers / fichier2
8c21de23b7c25c9d1a093607fc27656a chemin / vers / fichier3
c6d010a475366e0644f3bf77d7f922fd chemin / vers / place / de / fichier4

Comme je suppose que ce fichier sera utilisé pour vérifier que les fichiers fournis avec le paquet n'ont pas été corrompus d'une manière ou d'une autre. Étant donné que le fichier est appelé `/ DEBIAN / md5sums", je suppose que le numéro hexadécimal avant le chemin + nom de fichier est le hachage de l' algorithme MD5 Message-Digest des fichiers du package.

Maintenant, tout le monde intéressé sait que le MD5 Hash a été cassé il y a déjà longtemps. Par conséquent, il est totalement possible de modifier le contenu d'un fichier dans le package (par exemple par malveillance) et d'avoir toujours le fichier ayant le même MD5-Hash (voir par exemple Prove of concept "Predicting the winner ...." ).

Question

Compte tenu des informations ci-dessus, je veux savoir ce qui suit:

** En supposant que j'installe un package dans mon système Ubuntu. Est-ce DEBIAN/md5sumsle seul moyen de s'assurer que les données n'ont pas été falsifiées? **

En répondant à la question, je pense que cela pourrait aider à comprendre ce qui suit:

  • Les paquets deb dans leur ensemble sont-ils également hachés (valeurs de hachage faites pour) de sorte qu'il existe un autre moyen de sécuriser les fichiers reçus sont "sûrs" / "non altérés"
  • S'il existe d'autres moyens que le DEBIAN/md5sumsfichier pour garantir l'intégrité, quel est le fichier inclus dans les packages * .deb de toute façon?
  • Ubuntu utilise-t-il des hachages pour le système de référentiel / paquet qui sont "moins cassés" que SHA-1 et MD5?

que malheureusement je ne connais pas non plus.

Toute réponse qui peut éclairer la question (ou même seulement une sous-question) est la bienvenue

mise à jour

(1) https://help.ubuntu.com/community/Repositories/Ubuntu#Authentication_Tab semble indiquer qu'il y a (comme je l'espérais) une clé gpg publique / privée en cours (pour garder les systèmes de repos et de package) en sécurité des attaques. Les informations à l'emplacement lié ne sont cependant pas très nombreuses. Il ne dit presque rien sur l'aspect sécurité du système de paquets. Quoi qu'il en soit, je suppose que le lien indique déjà que la réponse à la question sera "NON - au moins les paquets deb du dépôt - sont également sécurisés par ....". J'espère que quelqu'un a quelques idées à utiliser pour une réponse ici.

(2) Cette question semble concerner également le sujet de la "sécurité" dans le système de paquets Ubuntu. Je viens donc de l'ajouter ici afin que sa publicité soit diffusée si quelqu'un s'efforce de comprendre la question: pourquoi les correctifs BADSIG proposés (sur la mise à jour apt-get) sont-ils sécurisés?

l'humanité et la paix
la source
1
debian.org/doc/debian-policy/… indique la prise en charge des sommes de contrôle par fichier SHA-1 et SHA256, mais je ne sais pas quelle aptest la politique de somme de contrôle.
chronitis
1
@chronitis merci pour le lien là-bas. En effet, les hachages SHA- * y sont mentionnés, je dois encore comprendre comment ils apparaissent dans les packages (que je n'ai pas encore vus) ou dans le système de packages. En savoir plus? Eh bien, l'indication est déjà un bon pas
humanANDpeace

Réponses:

21

Ubuntu publie un manifeste signé avec une clé RSA. Le manifeste répertorie les Packagesfichiers d'index individuels , chacun avec des hachages MD5, SHA-1 et SHA-256. Chaque Packagesfichier répertorie les .debfichiers individuels avec des hachages MD5, SHA-1 et SHA-256.

Pour la vérification, apt utilise le meilleur hachage qu'il prend en charge et est publié par l'archive à partir de laquelle il est téléchargé. Dans le cas de l'archive Ubuntu, il s'agit de SHA-256.

Ainsi, toute la chaîne d'installation des packages sur votre système Ubuntu est protégée par RSA et SHA-256.

La protection MD5 qui existe dans dpkg n'est vraiment utile qu'en cas de corruption accidentelle et n'est pas nécessaire pour protéger le chemin d'installation.

Vous pourriez être intéressé par le debsumspackage, mais comme il utilise des MD5, il n'est également utile que pour vérifier la corruption accidentelle.

Si vous souhaitez rechercher des modifications de système malveillantes, ce ne sont pas les outils appropriés pour vous. Vous devrez déconnecter le système et vérifier par rapport à un enregistrement précédent, aux fichiers de package d'origine ou à des hachages sécurisés générés à partir de ceux-ci.

Notez qu'une modification malveillante réussie pouvant consister à simplement rétrograder un package vers celui avant une mise à jour de sécurité, vérifier que tous les fichiers de packages installés correspondent à leurs originaux peut ne pas être suffisant non plus.

Robie Basak
la source
1
J'ai acquis un aperçu plus clair. Où avez-vous obtenu toutes ces informations, que j'ai tant de mal à trouver? Avez-vous des docus / liens que vous avez utilisés? J'apprécie également la mention du «danger de rétrogradation» que vous avez mentionné, donc je ne comprends pas encore à quel point cela pourrait être exploité. Génial! merci
humanANDpeace
Je ne crois pas que le format du référentiel apt soit correctement spécifié ou documenté n'importe où. C'est mauvais, mais c'est comme ça. La meilleure documentation (et à ma connaissance uniquement) est la source. Je connais les détails car j'ai travaillé à la source. D'un autre côté, le format dpkg est très bien spécifié dans la politique Debian. Il couvre ce qui se passe après que les packages se retrouvent sur votre système, mais pas comment ils y arrivent. La dernière partie est effectuée par apt.
Robie Basak
Risque de rétrogradation: il s'agit d'un aparté et n'est pas vraiment directement lié à votre question d'origine. Si l'exploit X est découvert dans la version A, vous obtenez une mise à jour de sécurité vers la version B, où la vulnérabilité est corrigée. Si un attaquant peut exploiter X dans la version A, alors vous êtes en sécurité, puisque vous avez mis à niveau vers B. Mais si l'attaquant peut également vous rétrograder vers A, alors vous êtes à nouveau vulnérable. Vous ne le remarquerez pas même si tous vos hachages sécurisés correspondent aux packages que vous avez installés, car votre base de données de packages indiquera que vous êtes censé avoir installé A et non B.
Robie Basak
2
@RobieBasak "Je ne pense pas que le format du référentiel apt soit correctement spécifié ou documenté n'importe où." Évidemment, ce n'est pas vrai. Il suffit de le chercher. Debian Wiki: RepositoryFormat
gertvdijk
6

Je voulais que ce soit un commentaire, mais je ne pouvais pas le mettre dans la boîte, donc je le place ici.

Oui, md5 a été cassé cryptologiquement, mais cela ne signifie pas que c'est un mauvais algorithme de hachage à usage général. Modifier un fichier pour qu'il ait le même hachage est incroyablement difficile, et le faire avec un changement malveillant particulier est presque impossible. En regardant l'exemple que vous avez référencé, ( Predicting The Winner ), voyez ceci:

"Les documents ont d'abord été soigneusement préparés en tant que documents PDF valides, avec un objet d'image caché incorporé, contenant une quantité suffisante de bits aléatoires. Ensuite, selon la structure en losange illustrée ci-dessus, onze collisions avec préfixe choisi ont été calculées et placées à l'intérieur du caché. des objets d'image aux endroits appropriés. De cette façon, les douze documents ont été transformés en une multi-collision MD5. "

Ce qui a été fait a été de remplir les fichiers avec des données aléatoires pour faire correspondre les hachages. La technologie n'est pas du tout capable d'ajouter du code malveillant particulier à un fichier et de faire aligner les hachages sans le casser ou rendre évident que le fichier a été modifié (je ne sais pas si apt le fait, mais de nombreux hachages de fichiers sont accompagnés de leur taille de fichier pour augmenter la difficulté d'une collision de hachage indétectable).

jackweirdy
la source
3
Merci pour la réponse. Je pense que c'est une bonne réponse, dans le sens où cela donne plus de lumière à l'ensemble du fond :) Malheureusement "Stack ... Ask Ubuntu" est parfois difficile avec "répondre strictement à la question seulement" et donc c'est génial que vous ayez pris courage d'élaborer sur le sujet.
humanANDpeace
Les fichiers PDf préparés ont des données aléatoires et ne font que 104 Ko avec tout cet effort. Pourquoi diriez-vous que c'est impossible alors? Il doit y avoir des tonnes de fichiers dans les paquets deb> 200kb où il doit être possible de faire une telle chose. Je ne me sens pas si en sécurité après avoir vu la preuve de concept, qui m'a étonné et choqué
humanANDpeace
Il y a beaucoup d'endroits dans les fichiers légitimes où un changement subtil ne semble pas étrange, par exemple des différences mineures d'espaces blancs dans un fichier texte. Il vous suffit de trouver environ 128 de ces emplacements pour avoir une portée suffisante pour créer un fichier malveillant qui semble à la fois légitime et correspond également à votre MD5 cible souhaité. Je ne sais pas si cette attaque particulière pourrait être appliquée à cette situation.
Robie Basak
@RobieBasak, vous comprenez mal l'attaque. Vous ne pouvez pas simplement modifier 128 octets dans un fichier et conserver la somme md5. Vous devez insérer un morceau de ce qui semble autrement être deux ensembles de données aléatoires dans deux copies d'un fichier, et ils auront la même somme md5 l'un que l'autre, malgré le fait que les deux morceaux de données "aléatoires" soient différents.
psusi
1

md5 n'était pas "cassé". Ce qu'ils ont trouvé était un moyen de créer soigneusement un message original et un message modifié qui avait le même hachage. Il n'est pas possible de prendre un message original non spécialement conçu dans le but de falsifier (le bon fichier), et de le modifier de manière à conserver sa somme md5.

psusi
la source
D'accord. Mais quelle serait la bonne façon de se référer à l'état actuel de la sécurité MD5 maintenant, sinon "cassé"? Je peux comprendre ce que vous dites et je vous remercie de l'avoir signalé. Je me demande encore comment évaluer la sécurité actuelle par MD5 etc.
humanANDpeace
@humanityANDpeace, "très bien".
psusi
J'aime l'attitude optimiste. J'ai quand même été étonné par la preuve de concept. Merci!
humanANDpeace
1
"Les experts en cryptographie considèrent MD5 cassé. Par conséquent, il devrait être considéré comme cassé." ce n'est pas ainsi que le monde fonctionne @RobieBasak En tant qu'enthousiaste de la cryptographie (je ne peux pas m'appeler un "expert" mais j'ai dû y creuser il y a quelques années) moi-même, je ne dirais pas que MD5 est cassé. Simplement, il y a un cas intéressant qui mérite d'être vérifié, mais cela semble être une théorie. Mais cela ne cassera pas l'emballage d'Ubuntu;) Retour à 0 psusi;)
Rinzwind
1
@jackweirdy, en fait, il y en a, et c'est pourquoi ils n'ont pas fait ça. Leur méthode repose sur les deux ensembles de données ayant des propriétés très spécifiques. Cela ressemble beaucoup à une paire de clés publique. Vous pouvez générer une paire de clés qui correspondent, mais étant donné une seule, vous ne pouvez pas comprendre l'autre.
psusi