web-dev-qa-db-fra.com

Comment utiliser https avec apt-get?

Est-ce que apt-get utilise https ou un type de cryptage? Y a-t-il un moyen de le configurer pour l'utiliser?

50
Strapakowsky

apt-get (et d'autres commandes de manipulation de paquetages, qui constituent un frontal pour les mêmes bibliothèques APT) peuvent utiliser HTTP, HTTPS et FTP (et les systèmes de fichiers montés). Si vous spécifiez les URL https:// dans /etc/apt/sources.list et /etc/apt/sources.list.d/*, alors APT utilisera HTTPS.

APT vérifie la signature des packages. Vous n'avez donc pas besoin d'un moyen de transport permettant l'authentification des données. Si un attaquant modifie les fichiers que vous téléchargez, cela sera remarqué. Utiliser une vérification de signature est préférable à une connexion HTTPS, car elle détectera une attaque sur le serveur à partir duquel vous effectuez le téléchargement, et pas seulement une attaque en transit.

Plus précisément, le flux de données (simplifié) pour un package est le suivant:

  1. Le paquet est produit sur une machine de compilation.
  2. Le paquet est signé sur la machine de compilation.
  3. Le package signé est copié sur un miroir de téléchargement.
  4. Vous téléchargez le package.

HTTPS garantit que l'étape 4 se déroule correctement. Les signatures de package garantissent que les étapes 2 à 4 se déroulent correctement.

En fait, il existe un petit avantage pour HTTPS pour l'étape 4: les signatures de package garantissent uniquement l'authenticité du package. À l’étape 4, un attaquant pourrait emprunter l’identité d’un serveur légitime et diffuser des versions obsolètes du paquet. Par exemple, l'attaquant pourrait vous empêcher de télécharger des mises à jour de sécurité, dans l'espoir d'exploiter une vulnérabilité de votre ordinateur que vous auriez corrigée s'il n'y avait pas eu d'attaque. Ce scénario n’est pas très réaliste, car il nécessite un attaquant actif (il devrait donc s'agir de quelqu'un qui contrôle votre connexion Internet), mais cela pourrait se produire en principe.

L'autre avantage de HTTPS serait si vous essayez de cacher le fait que vous téléchargez des paquets Ubuntu à quelqu'un qui fouille sur votre connexion réseau. Même dans ce cas, l’espionneur pouvait voir à quel hôte vous vous connectiez; Si vous vous connectez à un miroir Ubuntu et téléchargez des centaines de mégaoctets, il est clair que vous téléchargez des packages Ubuntu. L’espionneur pourrait également déterminer les paquets que vous téléchargez à partir de la taille des fichiers. Donc, le protocole HTTPS ne serait utile que si vous effectuez un téléchargement à partir d'un serveur proposant également d'autres fichiers de taille similaire - je ne vois aucun intérêt, sauf pour les packages tiers, et uniquement dans des circonstances très inhabituelles.

Pour rappel, l'avantage habituel du protocole HTTPS, à savoir que vous savez que vous êtes connecté au serveur réel, est inutile lorsque vous téléchargez des packages Ubuntu. La vérification de la signature sur les paquets donne une garantie plus forte que ce que HTTPS peut fournir.

52
Gilles

Avec APT, le plus important n’est généralement pas que votre connexion soit cryptée, mais que les fichiers que vous recevez n’ont pas été falsifiés.

APT dispose d'une vérification de signature intégrée pour s'assurer de cela.

Le chiffrement empêcherait les oreilles indiscrètes de voir ce que vous téléchargez, mais ce que vous téléchargez (et demandez) n’est guère controversé: ce sera la même chose que des milliers d’autres utilisateurs d’Ubuntu sont en train de télécharger et les fichiers ne contiennent rien d’autre que ce n’est rien. t disponible gratuitement sur de nombreux serveurs. Néanmoins, si vous avez besoin de confidentialité concernant les packages que vous téléchargez, HTTPS peut être utilisé (spécifiez-le dans votre fichier sources.list).

La vérification de la signature intégrée à APT garantit que les fichiers que vous recevez n'ont pas été falsifiés. Peu importe l’origine des fichiers et il est même possible d’avoir des proxies ou des proxys inversés entre vous et le serveur afin de réduire la charge du serveur ou de vous accélérer. La vérification de la signature garantit toujours que vous obtenez le fichier non modifié correspondant à la signature qui ne peut être produite de manière cryptographique qu'avec le fichier d'origine et une copie de la clé privée d'Ubuntu.

Si vous passez en HTTPS, vous ne pourrez plus utiliser les serveurs proxy pour accélérer l'accès ou réduire la charge. Et cela n’apporterait aucune assurance supplémentaire quant à la non-falsification que la vérification de la signature d’APT ne donne pas déjà. Cela signifierait toutefois que les espions (tels que votre fournisseur de services Internet) ne pourront pas voir quels paquets vous téléchargez (ce qui n'est probablement pas confidentiel et, comme Gilles l'a fait remarquer, ils pourraient deviner à partir de la taille du fichier).

13
thomasrutter

Les récentes versions de APT intègrent la prise en charge de TLS. Vous devez donc remplacer les URL de miroir de votre référentiel de paquets par celles de https-. Pour Debian, cela pourrait ressembler à ceci:

deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main

Ceci est utile, même si APT inclut son propre protocole de signature pour garantir que les paquets ne sont pas falsifiés, car il peut y avoir des bogues dans APT (comme il y en a eu: CVE-2016-1252 , CVE-2019-3462 ). Les protocoles HTTP/TLS et leurs chiffrements sont soumis à un examen minutieux. Par conséquent, une vulnérabilité grave du jour zéro est beaucoup moins probable si vous ajoutez cette couche de sécurité.

1
Leif Arne Storset