Je souhaite créer un certain nombre de packages deb, mais je ne sais pas comment fonctionne la "signature" des packages. Je me demandais donc comment créer un paquet deb signé.
La signature de paquets sur les systèmes Ubuntu/Debian est plutôt compliquée. En théorie, la signature d’un paquet deb permet à la personne qui reçoit votre paquet de vérifier que le paquet n’a pas été modifié après sa signature. En réalité, la vérification de la signature est terriblement difficile à configurer et est désactivée par défaut. À moins que l'utilisateur ne fasse un tas d'installation localement, il ne vérifiera pas la signature lors de l'installation du paquet.
Pour signer un paquet, vous pouvez utiliser soit: debsigs, soit dpkg-sig. Les signatures ne sont pas compatibles entre elles. Vous devez donc vous assurer que l'utilisateur utilise le bon outil du côté de la réception pour vérifier les signatures.
dpkg-sig est plus facile à utiliser pour vous et l'utilisateur, mais debsigs est l'outil avec le support intégré (désactivé par défaut) sur Ubuntu et Debian.
J'ai écrit un article de blog contenant tous les détails techniques de la signature et de la vérification des packages source (fichiers .dsc), des packages binaires (.deb) et des référentiels APT eux-mêmes ici: http: // blog.packagecloud.io/eng/2014/10/28/howto-gpg-sign-verify-deb-packages-apt-repositories/
La signature d'un paquet sur Debian/Ubuntu se fait généralement via des fichiers .changes. Lorsque vous construisez un paquet, vous avez tendance à vous retrouver avec un fichier .changes, qui répertorie les résultats de la construction (paquets source et/ou binaires) et leurs sommes de contrôle. Lorsque vous signez des paquets, il s’agit normalement du fichier que vous signez intégrité du colis au moyen de sa somme de contrôle).
Le moyen le plus simple de signer un fichier .changes est d'utiliser debsign
debsign hello_1.0_AMD64.changes
Cela se produit automatiquement si vous avez une clé primaire dans votre trousseau gnupg et que vous exécutez dpkg-buildpackage
ou debuild
sans les commutateurs -us
et -uc
.