Premier article de cette nouvelle série.

Vous pouvez trouver la liste des articles de la série précédente ici et les suivants ici:

Je vais vous expliquer comment signer et vérifier des fichiers. Ça devient un poil technique … On est plus dans l'utilisation basique là, mais dans "un peu plus avancée" !

L'intérêt est le même que pour les courriels :

  • vous êtes sûr que le fichier n'a pas été altéré.
  • vous connaissez la provenance ou l'auteur du fichier.

Il est par exemple fréquent que les développeurs logiciels signent les archives zip avec lesquels ils distribuent leur code, ou leurs binaires. Par exemple Debian utilise gpg pour assurer l'intégrité des archives logicielles.

Je vais moi-même vous fournir plusieurs fichiers et ils seront signés avec la clé du tutoriel.

Signer un fichier

Pour signer un fichier, gpg va en fait réaliser une procédure en plusieurs étapes (toutes réalisées par le logiciel lui-même, pas d'inquiétude):

Un condensat (soit en fait une empreinte caractéristique d'une donnée, réalisé avec une fonction de hachage) du fichier à signer est réalisé. Ce condensat, ou hash, va servir à démontrer l'intégrité du fichier.

Le condensat est ensuite chiffré à l'aide de la clé privée. Ainsi vous démontrez que c'est bien vous qui signez, puisque vous êtes le seul à pouvoir utiliser votre clé privée.

Le tout est en suite empaqueté dans un conteneur (une archive compressée).

Dans les faits, on préferera souvent créer une signature séparée: le condensat chiffré constituant la signature est déposé dans un fichier au format texte distinct. Ceci permet que le fichier signé soit directement accessible, tout en conservant les possibilités de signature et de vérification de signature.

Et je viens d'expliquer le courriel

Cette procédure de signature est celle executée lors de l'envoi d'un courriel en PGP/Mime: votre courriel est hashé (passé à travers une fonction de hachage), chiffré à l'aide de votre clé privée et mis en pièce jointe du courriel. D'où la présence d'une étrange pièce jointe que beaucoup de vos contacts essayent d'ouvrir. Et la nécessité d'une signature en texte pour leur expliquer ! La boucle est bouclée.

Avec PGP/inline, le hash chiffré est simplement copié dans le texte du courriel. C'est assez môche.

GPG Suite (Mac OS)

La signature d'un fichier sous Mac OS se révèle d'une simplicité enfantine. Sélectionnez le fichier dans Finder, click droit, puis sélectionnez Services > OpenPGP: Sign File.

Kleopatra (sous Windows ou GNU/Linux)

La signature d'un fichier avec Kleopatra est extremement simple:

Dans Fichier > Signer/Chiffrer des fichiers, sélectionnez le fichier voulu, puis cliquez sur Signer. Vous pouvez également signer via Konqueror ou Dolphin, avec un clic droit, puis selection de signer un fichier avec OpenPGP.

Pensez aussi à selectionner l'option Encodage sous forme de caractères (ASCII armor). Ceci garantit la solidité de la signature et créera un fichier au format .asc.

La dernière boîte de dialogue concerne l'identité sous laquelle vous souhaitez signer le fichier.

Vous avez la possibilité d'utiliser OpenPGP ou S/Mime. Cochez la case chiffrez avec OpenPGP et selectionner dans le menu déroulant la clé que vous voulez utiliser.

Au passage, pas d'inquiétude. Le logiciel parle de chiffrer le fichier. Mais c'est bien de signer qu'il s'agit !

Cliquez enfin sur Signer en bas. Quelques secondes plus tard, le logiciel doit vous annoncer fièrement la réussite de l'opération.

Il est également proposé de créer des archives avec OpenPGP. De l'aveu même de Kleopatra, c'est étrange. Utilisez plutôt un programme d'archivage (zip, tar, ark ou autre) puis signez l'archive.

Vérifier la signature d'un fichier

De même, pour vérifier une signature:

On ouvre le conteneur, puis on déchiffre le condensat chiffré, avec la clé publique. Ainsi on démontre l'authenticité du fichier: le signataire est bien le propriétaire de la clé.

On réalise un condensat du fichier signé et on le compare avec le condensat qui était chiffré. Ainsi on démontre l'intégrité du fichier: il n'a pas été altéré. C'est bien le même fichier que celui qui a été signé par l'auteur.

GPG Suite (Mac OS)

De même, la vérification de signature: dans Finder, click droit, puis sélectionnez Services > OpenPGP: Validate.

Kleopatra (sous Windows ou GNU/Linux)

Fichier > Déchiffrez/Vérifier un fichier, le logiciel va vous demander si le fichier est une archive ou une signature isolée.

Si c'est une signature isolée, alors le logiciel vous demandera quelles données (quel fichier) vous souhaitez valider. D'ordinaire, le fichier de signature et le fichier signé portent le même nom. Il vous le proposera donc spontanément. Mais ce n'est peut-être pas le cas.

Si le fichier est une archive, ou n'est pas une signature isolée, il faut indiquer un dossier de destination pour les fichiers en sortie.

Vous pouvez alors demander la vérification de la signature en cliquant sur le bouton Vérifier en bas.

On peut signer d'autres trucs !

On peut notamment signer… des commits git ! C'est incroyable le nombre de trucs qu'on peut faire avec gpg!

Et justement…

Des chiffres et des lettres

Je publie aujourd'hui une compilation de la première série d'articles du tutoriel gpg sous forme d'un mini-livre, au titre évocateur de Des chiffres et des lettres.

Vous pouvez télécharger le fichier pdf avec les signatures par la clé du tutoriel, et par ma clé personnelle. Et bien entendu, ce ne serait pas marrant si vous ne vérifiez pas les signatures.

Les sources du mini-livre au format LaTex sont également disponibles dans le dépot github créé exprès. Cette version est alors taggée «vb1» pour «version base 1» et signée avec ma clé personnelle.

Vous viendrez lire la suite ?