GNU/Linux >> Tutoriels Linux >  >> Linux

Comment signer numériquement un fichier sous Linux à l'aide de GnuPg (signatures numériques)

Alors que de nombreuses organisations abandonnent les documents papier pour les documents numériques, les signatures numériques sont nécessaires pour gérer tous les documents numériques sensibles. Les signatures numériques peuvent être utilisées pour authentifier la source du message, de sorte que le destinataire peut décider de faire confiance ou non à l'expéditeur. De nos jours, il est le plus largement utilisé pour la distribution de logiciels et les transactions financières.

En cryptographie à clé publique, il est possible d'utiliser une clé privée pour signer un fichier. Toute personne disposant de la clé publique correspondante peut vérifier si le fichier a été signé par la clé privée. Quiconque ne possède pas la clé privée ne peut pas falsifier une telle signature.

Les signatures numériques peuvent être utilisées pour l'authentification de l'expéditeur et la non-répudiation. Le signataire ne peut pas prétendre qu'il n'a pas signé le document.

De nos jours, les signatures numériques jouent un rôle clé dans la distribution de logiciels. Lorsque vous installez un logiciel à partir de Debian Mirror, une fois le logiciel téléchargé, il vérifie si le logiciel provient d'une source fiable en vérifiant la signature, garantissant ainsi que le paquet provient d'une source fiable.

Nous allons maintenant voir les différentes méthodes pour signer des documents à l'aide de l'outil GnuPG.

Si vous débutez avec l'outil GnuPG, vous devez d'abord comprendre comment utiliser les commandes gpg de base.

Une signature numérique, certifie et horodate un document. Si le document est modifié de quelque manière que ce soit, la vérification de la signature échouera.

1. Créer une signature numérique pour un fichier

Pour signer numériquement un document, l'option de signature est utilisée. Il vous sera demandé de saisir votre phrase de passe pour déverrouiller la clé privée utilisée pour signer le document.

$ gpg --sign file.txt

You need a passphrase to unlock the secret key for
user: "lakshmanan (This is lakshmans key) "
2048-bit RSA key, ID 3630F8D6, created 2012-12-30

Enter passphrase:

Maintenant, il va créer un fichier nommé "file.txt.gpg" au format binaire. Le fichier d'entrée est compressé avant de signer le fichier.

2. Vérifier la signature numérique

Étant donné un document signé, vous pouvez vérifier la signature à l'aide de l'option –verify.

$ gpg --verify file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

La commande ci-dessus vérifie que la signature faite est bonne.

3. Extraire le document du fichier

Pour extraire le document original du fichier signé, utilisez l'option –decrypt. Vous pouvez utiliser le –output pour spécifier le fichier de sortie pour stocker le contenu réel du fichier.

$ gpg --output doc.txt --decrypt file.txt.gpg

gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Maintenant, le document réel sera enregistré dans le fichier doc.txt.

4. Pour effacer signer les documents

Une utilisation courante des signatures numériques consiste à envoyer des e-mails. Dans un tel cas, il n'est pas souhaitable de compresser le fichier en binaire et de le signer. Vous pouvez utiliser l'option –clearsign pour que le fichier soit enveloppé dans des signatures blindées ASCII.

$ gpg --output file.sig --clearsign file.txt

Maintenant, un fichier ASCII nommé file.sig sera créé qui contient la signature numérique et le fichier lui-même.

$ cat file.sig

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is a test file
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5
S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz
/7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV
U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ
tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2
XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ=
=PN+K
-----END PGP SIGNATURE-----

La vérification du document signé en clair est similaire à la vérification du document signé en binaire.

5. Créer une signature détachée

En cas de signatures détachées, un nouveau fichier est créé comme signature. Vous pouvez utiliser l'option –detach-sign pour créer une signature détachée.

$ gpg --armor --detach-sig file.txt

Maintenant, un fichier ASCII nommé file.txt.asc sera créé qui contient la signature détachée. Vous pouvez utiliser –output pour modifier le nom du fichier de signature détaché.

6. Vérifiez la signature détachée

Afin de vérifier une signature détachée, vous devez disposer à la fois du fichier de signature et du fichier de données.

$ gpg --verify file.txt.asc file.txt

gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: Good signature from "lakshmanan (This is lakshmans key) "

Essayons de modifier le fichier.txt. Ajoutez du contenu au fichier.txt et essayez de vérifier la signature.

$ echo "Append" >> file.txt

$ gpg --verify file.txt.asc file.txt
gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6
gpg: BAD signature from "lakshmanan (This is lakshmans key) "

Maintenant, la vérification a échoué en indiquant la mauvaise signature puisque le contenu est modifié.

7. Crypter et signer un document

Dans l'un de nos précédents articles, nous avons également discuté en détail de la manière de chiffrer et de déchiffrer un fichier à l'aide de GnuPG. Toutefois, si vous souhaitez chiffrer et signer un document en même temps, procédez comme suit :

$ gpg --sign --encrypt --recipient raman file.txt

La commande ci-dessus crypte le fichier.txt et signe le document numériquement. Le destinataire peut vérifier la signature et déchiffrer le document à l'aide de l'option –decrypt.


Linux
  1. Comment chiffrer et déchiffrer des fichiers/dossiers sous Linux à l'aide de GnuPG

  2. Comment renommer un fichier sous Linux ?

  3. Comment chiffrer et déchiffrer un fichier à l'aide de GnuPG sous Linux

  4. Comment diviser un iso ou un fichier à l'aide de la commande 'split' sous Linux

  5. Comment créer des fichiers fragmentés sous Linux à l'aide de la commande "dd"

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Comment surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Signatures numériques avec GnuPG

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment créer un lien symbolique vers un fichier sous Linux

Comment télécharger un fichier à l'aide de Wget via un proxy sous Linux