APT-SECURE(8) | APT | APT-SECURE(8) |
apt-secure - Gestion de l'authentification d'archive avec APT
Depuis sa version 0.6, apt sait vérifier la signature du fichier Release de chaque dépôt. On s'assure ainsi que les paquets dans l'archive ne peuvent pas être modifiés par quelqu'un qui ne possède pas la clé de la signature du fichier Release. À partir de la version 1.1, apt exige que les dépôts fournissent des informations récentes d'authentification pour une utilisation libre du dépôt. Depuis la version 1.5, les modifications dans les informations contenues dans le fichier Release sur le dépôt, doivent être confirmées avant qu'APT continue à appliquer les mises à jour depuis ce dépôt.
Attention : toutes les interfaces de gestion de paquets comme apt-get(8), aptitude(8) et synaptic(8) possèdent cette fonction de certification, aussi cette page de manuel utilise APT pour se référer à l'ensemble d'entre elles, pour des raisons de simplicité.
Si une archive possède un fichier Release non signé ou pas de fichier Release du tout, les versions actuelles d'APT refuseront par défaut d'en télécharger des données dans les opérations update. Même si un frontal tel que apt-get(8) est forcé de télécharger, il demandera une confirmation explicite si une installation inclut un paquet d'une archive non authentifiée.
Vous pouvez contraindre les clients APT à n'émettre que des avertissements en configurant l'option Acquire::AllowInsecureRepositories à true. L'option allow-insecure=yes de sources.list(5) peut aussi permettre à des dépôts individuels d'être non sécurisés. Veuillez noter que les dépôts non sécurisés sont fortement déconseillés et toutes les options pour contraindre APT à continuer à les prendre en charge devront être éventuellement supprimées. Les utilisateurs disposent aussi de l'option Trusted pour désactiver même les avertissements, mais il faut être sûr de comprendre ses implications détaillées dans sources.list(5).
Un dépôt qui auparavant était authentifié, mais qui perdrait cet état lors d'une opération update envoie un message d'erreur à tous les clients d'APT quelle que soit l'option d'autoriser ou d'interdire l'utilisation de dépôts non sécurisés. L'erreur peut être contournée par le réglage supplémentaire de Acquire::AllowDowngradeToInsecureRepositories à true, ou, pour des dépôts individuels avec l'option allow-downgrade-to-insecure=yes de sources.list(5).
D'une archive APT jusqu'à l'utilisateur, la chaîne de confiance se construit en plusieurs étapes. Apt-secure est la dernière étape. Faire confiance à une archive ne signifie pas que les paquets qu'elle contient sont exempts de code malveillant, mais signifie que vous faites confiance au responsable de l'archive. C'est ensuite au responsable de l'archive de faire en sorte que l'archive soit fiable.
Apt-secure n'examine pas la signature d'un paquet. Certains programmes peuvent le faire comme debsig-verify ou debsign, qu'on peut trouver dans les paquets debsig-verify et devscripts.
La chaîne de confiance dans Debian commence, par exemple, quand un responsable de paquet envoie un nouveau paquet ou une nouvelle version d'un paquet dans l'archive. Cet envoi, pour être effectif, doit être signé avec la clé d'un responsable qui se trouve dans un des trousseaux des responsables de paquet Debian (disponibles dans le paquet debian-keyring). Les clés des responsables de paquet sont signées par d'autres responsables, suivant des procédures préétablies pour s'assurer de l'identité des propriétaires de la clé. Des procédures similaires existent dans toutes les distributions basées sur Debian.
Une fois que le paquet envoyé a été vérifié et inclus dans l'archive, la signature du responsable est enlevée, une somme de contrôle du paquet est calculée et mise dans le fichier Packages. Une somme de contrôle de tous les paquets est ensuite calculée et mise dans le fichier Release. Ce fichier est signé par la clé de l'archive pour la version courante de la distribution et distribuée en même temps que les paquets et les fichiers Packages sur les miroirs. Les clés sont dans le trousseau de clés de l'archive fournies par le paquet debian-archive-keyring.
Un utilisateur peut consulter la signature du fichier Release, extraire la somme de contrôle d'un paquet et la comparer avec la somme du paquet qu'il a téléchargé, ou tout simplement compter sur APT pour faire ces opérations automatiquement.
Cette façon de faire est différente d'une vérification de la signature d'un paquet. Elle vise à empêcher deux types d'attaque possibles :
Cependant cette méthode ne protège pas contre une compromission du serveur principal lui-même (qui signe les paquets) ni contre la compromission de la clé qui sert à signer les fichiers Release. Mais elle peut compléter la signature des paquets.
Le fichier Release renferme, en plus des sommes de contrôle pour les fichiers du dépôt, des informations générales sur le dépôt comme l'origine, le nom de code ou le numéro de la version.
Ces informations apparaissent à plusieurs endroits, aussi, le propriétaire d'un dépôt devrait toujours s'assurer de leur exactitude. Par ailleurs, les configurations de l'utilisateur, comme apt_preferences(5), peuvent dépendre de ces informations et les utiliser. Depuis la version 1.5, l'utilisateur doit par conséquent confirmer de façon explicite les modifications pour signaler qu'il est suffisamment préparé, par exemple, pour la nouvelle version majeure de la distribution fournie dans le dépôt (comme indiqué par exemple par le nom de code).
Le programme qui gère la liste des clés utilisées par APT pour faire confiance aux dépôts s'appelle apt-key. Il peut ajouter ou supprimer des clés aussi bien que lister les clés de confiance. Il est possible de limiter la capacité pour une ou plusieurs clés de signer telle ou telle archive avec l'option Signed-By dans sources.list(5).
Veuillez noter qu'une installation par défaut possède toutes les clés pour obtenir en toute sécurité des paquets des dépôts par défaut, aussi, bricoler avec apt-key n'est nécessaire que si vous souhaitez ajouter des dépôts tiers.
Pour ajouter une clé, vous devez d'abord la télécharger. Il vaut mieux utiliser un canal fiable pour ce téléchargement. Ensuite vous l'ajoutez avec la commande apt-key et vous lancez la commande apt-get update pour télécharger et vérifier le fichier InRelease ou Release.gpg de l'archive que vous avez configurée.
Si vous voulez signer les archives dont vous avez la responsabilité, vous devez :
Chaque fois que le contenu de l'archive change, (suppression ou ajout de nouveaux paquets) le responsable doit refaire les deux premières étapes.
apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)
Pour des informations plus complètes, vous pouvez consulter l'infrastructure debian pour la sécurité[1] un chapitre du manuel Debian sur la sécurité (disponible dans le paquet harden-doc) et le Strong Distribution HOWTO[2] par V. Alex Brennen.
Page des bogues d'APT[3]. Si vous souhaitez signaler un bogue à propos d'APT, veuillez lire /usr/share/doc/debian/bug-reporting.txt ou utiliser la commande reportbug(1).
APT a été écrit par l'équipe de développement APT <apt@packages.debian.org>.
Cette page a été écrite à partir des travaux de Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer et Michael Vogt.
Jérôme Marant, Philippe Batailler, Christian Perrier <bubulle@debian.org> (2000, 2005, 2009, 2010), Équipe de traduction francophone de Debian <debian-l10n-french@lists.debian.org>
Veuillez noter que cette traduction peut contenir des parties non traduites. Cela est volontaire, pour éviter de perdre du contenu quand la traduction est légèrement en retard sur le contenu d'origine.
Jason Gunthorpe
Équipe de développement d'APT
06 août 2016 | APT 2.2.4 |