Comment signer une correspondance par e-mail avec une clé GPG à l'aide de jetons PKCS # 11



Les services de messagerie modernes améliorent d'année en année leur systÚme de sécurité. Tout d'abord, les mécanismes d'authentification sont apparus via SMS, maintenant les mécanismes d'apprentissage automatique pour analyser les activités suspectes dans la boßte aux lettres sont déjà en cours d'amélioration.

Mais que se passe-t-il si quelqu'un a reçu le mot de passe convoité de votre courrier et a commencé à lire toute votre correspondance secrÚte, ainsi qu'à écrire des ordures à droite et à gauche. Comment ajouter un niveau de protection supplémentaire dans ce cas? GPG et cartes à puce viennent à la rescousse.


GPG est un programme open source gratuit qui fournit la technologie nécessaire pour une messagerie sécurisée. Cela fonctionne trÚs simplement: c'est une base de données avec toutes les clés publiques des participants au réseau avec lesquels vous souhaitez communiquer. Vous pouvez gérer ces clés: ajoutez-les si vous avez fait une nouvelle connaissance ou supprimez-les si vous décidez d'ajouter quelqu'un à votre «liste noire». GPG stocke également les clés publiques et privées. Chaque clé est associée à une boßte aux lettres spécifique et à un utilisateur spécifique dans le systÚme.


! GPG . : ; , , . .


: GPG -. , , . “ ! ”, — - . — , . , , . , , (PIN-) .


GPG -, OpenPGP SmartCard. -, PKCS#11, , PKCS#11 -. -, PKCS#11 , OpenPGP. , , , , PKI 2.0. PKI , .. RSA.




Les instructions pour l'intégration de GPG dans les clients de messagerie courants tels que Thunderbird, KMail, Outlook et le client de messagerie standard Mail sur macOS seront également présentées ci-dessous. Cette intégration aidera les personnes qui ont reçu une lettre de votre part à comprendre que la lettre a bien été envoyée par vous.

IntĂ©ressĂ© par? Alors allons-y! Utilisateurs de Windows qui veulent suivre le chemin des chamans et rĂ©cupĂ©rer un dĂ©mon Ă  partir de zĂ©ro, il est conseillĂ© d'ĂȘtre patient ...


Installer GPG et gnupg-pkcs11-scd


Linux


Installez les packages nécessaires (utilisez la ligne en fonction du systÚme sur lequel vous exécutez, la premiÚre pour Debian, la seconde pour Red Hat):


sudo apt-get install gpg opensc libpkcs11-helper1-dev openssl libgpg-error-dev libassuan-dev libgcrypt20-dev autoconf pkg-config # Debian
sudo yum instal gnupg2 gnupg-pkcs11-scd opensc # Red Hat

Assurez-vous que la version est:


gpg >= 2.1.19
gnupg-pkcs11-scd > 0.9.2

Pour debian, vous devrez peut-ĂȘtre tĂ©lĂ©charger et installer la derniĂšre version du dĂ©mon pkcs11 de la carte Ă  puce gnupg-pkcs11-scd Ă  partir du rĂ©fĂ©rentiel .


Vous pouvez l'installer Ă  l'aide de la commande suivante:


autoreconf -i && ./configure --prefix /usr && make -j 4 && sudo make install

librtpkcs11ecp.so , .


~/.gnupg/gpg-agent.conf :


scdaemon-program /usr/bin/gnupg-pkcs11-scd

~/.gnupg/gnupg-pkcs11-scd.conf :


providers rutoken
provider-rutoken-library /usr/lib64/librtpkcs11ecp.so

Windows


, , . , gnupg-pkcs11-scd , libgnupg-error, libassuan, openssl, pkcs11-helper, libgcrypt. Linux ( ), windows , .


, , . . , . , .



, Gpg4Win .


.


, .


, %APPDATA%/gnupg. gpg-agent.conf :


scdaemon-program C:/HERE_IS_PATH_TO/gnupg-pkcs11-scd.exe

— gnupg-pkcs11-scd.conf :


providers rutoken
provider-rutoken-library C:/Windows/System32/rtPKCS11ECP.dll


Welcome to the club, buddy!

. pkcs11 - Windows. , , . , .


Gpg4Win msys2, .


msys2.


, , . , gnupg-pkcs11-scd , . Linux macOS , . , - , :


pacman -Syuu

.


pacman -S --needed git base-devel mingw-w64-i686-toolchain man2html pkg-config openssl-devel

(libgpg-error)


libgpg-error .


:


./configure --with-cygwin-native
make
make install

VoilĂ ! !


(libassuan)


libassuan , :


./configure --with-cygwin-native
make
make install

(pkcs11-helper)


pkcs11-helper .


pkcs11-helper:


autoreconf --install
./configure --with-cygwin-native
make
make install

(libgcrypt)


libgcrypt , :


./configure --with-cygwin-native
make
make install

, (gnupg-pkcs11-scd)


? ! , .


:


autoreconf --install
./configure --with-cygwin-native
make
make install

Fatality


.


, %APPDATA%/gnupg. gpg-agent.conf :


scdaemon-program C:/msys32/mingw32/bin/gnupg-pkcs11-scd.exe

— gnupg-pkcs11-scd.conf :


providers rutoken
provider-rutoken-library C:/Windows/System32/rtPKCS11ECP.dll

macOS


brew .
, , gpg gnupg-pkcs11-scd:



brew install gpg gnupg-pkcs11-scd

librtpkcs11ecp .


~/.gnupg/gpg-agent.conf :


scdaemon-program /usr/local/lib/gnupg-pkcs11-scd

~/.gnupg/gnupg-pkcs11-scd.conf :


providers rutoken
provider-rutoken-library /usr/local/lib/librtpkcs11ecp.so


! ! , .


, RSA-, - . RSA- ( ).


, , - , SDK pkcs11-tool


gpg-agent. gpgconf. : Linux macOS gpg, Windows Gpg4Win. :


gpgconf --kill gpg-agent

, :


gpg --card-status

:


[lo1ol@localhost .gnupg]$ gpg --card-status
Application ID ...: D2760001240111503131CAE8D55A1111
Version ..........: 11.50
Manufacturer .....: unknown
Serial number ....: CAE8D55A
Name of cardholder: [not set]
Language prefs ...: [not set]
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: 1R 1R 1R
Max. PIN lengths .: 0 0 0
PIN retry counter : 0 0 0
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

, gpg-agent. gpg-agent :


gpg-agent --server
SCD LEARN

Bad certificate, , , GPG. :


[lo1ol@localhost .gnupg]$ gpg-agent --server
OK Pleased to meet you
SCD LEARN
....
S KEYPAIRINFO 892E053AE031FC23F3E7CCC73BC60859F11F6B90 Aktiv\x20Co\x2E/Rutoken\x20ECP/3ac67ae9/Rutoken\x20ECP\x20\x3Cno\x20label\x3E/45
OK

GPG


-, :


gpg-agent --server
SCD LEARN

, S KEYPAIRINFO. , :


S KEYPAIRINFO 892E053AE031FC23F3E7CCC73BC60859F11F6B90 Aktiv\x20Co\x2E/Rutoken\x20ECP/3ac67ae9/Rutoken\x20ECP\x20\x3Cno\x20label\x3E/45

892E053AE031FC23F3E7CCC73BC60859F11F6B90. , GPG. :


gpg --expert --full-generate-key

, . RSA (13 ):


lo1ol@lo1ol-VirtualBox:~$ gpg --expert --full-generate-key
gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
Your selection? 13

:


Enter the keygrip: 892E053AE031FC23F3E7CCC73BC60859F11F6B90

, e-mail . , . e-mail, :


Possible actions for a RSA key: Sign Certify Encrypt Authenticate
Current allowed actions: Sign Certify Encrypt

(S) Toggle the sign capability
(E) Toggle the encrypt capability
(A) Toggle the authenticate capability
(Q) Finished

Your selection?
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: lo1ol
Email address: lo1ol@mail.ru
Comment:
You selected this USER-ID:
"lo1ol <lo1ol@mail.ru>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O

. :


gpg: /home/lo1ol/.gnupg/trustdb.gpg: trustdb created
gpg: key 676E42AAAFBCF227 marked as ultimately trusted
gpg: directory '/home/lo1ol/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/lo1ol/.gnupg/openpgp-revocs.d/0CD2B9CEE398990609D6C164676E42AAAFBCF227.rev'
public and secret key created and signed.

pub rsa2048 2019-10-25 [SCE]
0CD2B9CEE398990609D6C164676E42AAAFBCF227
uid lo1ol <lo1ol@mail.ru>

, , — .


, , , , GPG — . GPG ( X.509), : , , .. , , GPG.


GPG , , Kleopatra, , . , , X.509.



Thunderbird


, GPG Thunderbird. , , Linux, Windows macOS. ( ).



, . Linux macOS :


sudo apt-get install thunderbird # Debian
sudo yum install thunderbird # Red Hat
brew cask install thunderbird #

Windows macOS c . , Thunderbird, .


AprÚs avoir installé Thunderbird, nous devons ajouter la boßte aux lettres que nous voulons utiliser et pour laquelle nous avons ajouté les clés et le certificat dans GPG.


Ajouter un
plugin GPG Il est temps d'ajouter un plugin Enigmail pour intégrer Thunderbird avec GPG. Pour ce faire, installez le plugin ENIGMAIL . Accédez à l'onglet Modules complémentaires et cliquez dessus:





Dans la recherche, recherchez le plugin Enigmail et cliquez sur le bouton "Ajouter Ă  Thunderbird":





Lorsque le plugin sera installé, il vous proposera d'ajouter des clés existantes. Nous sommes d'accord avec lui et cliquez sur le bouton «Appliquer mes clés».





Presque tout est prĂȘt. Il ne reste plus qu'Ă  lier les clĂ©s aux comptes de messagerie.

Liaison des clés aux comptes
Passons Ă  la configuration du compte:





Dans la fenĂȘtre contextuelle, sĂ©lectionnez l'onglet «Protection OpenPGP» et sĂ©lectionnez la clĂ© que nous voulons utiliser pour ce courrier. Vous pouvez Ă©galement configurer les options par dĂ©faut.





Tout est prĂȘt et tout est assemblĂ©!
Vous manquez, vous manquez ...
Vieil homme, allons pique-niquer!

Visez santé
Le moment de vérité est venu. Vérifiez que l'ensemble du systÚme fonctionne correctement. Redémarrez Thunderbird et essayez d'envoyer un message à un utilisateur dont la clé publique est enregistrée dans GPG. Pour ce faire, j'ai ajouté un autre compte pour vérifier le résultat. Créez une nouvelle lettre:





Assurez-vous que l'option de cryptage pour la lettre (si nécessaire) et l'option de signature sont activées. De plus, lors du processus d'envoi, il nous sera probablement demandé de saisir un mot de passe de jeton.

Vérifiez que la lettre envoyée est arrivée et a été déchiffrée avec succÚs et que la signature est vérifiée.





Comme vous pouvez le voir, tout fonctionne bien!

Configuration de Kmail


Pour commencer, téléchargez kmail depuis le référentiel:


sudo apt-get install kmail # Debian
sudo yum install kmail # Red Hat

Lancez KMail. Saisissez vos informations de compte de messagerie et cliquez sur «Ajouter un compte».





Dans la fenĂȘtre contextuelle, sĂ©lectionnez «Utiliser GPG».





Nous sélectionnons la clé que nous voulons utiliser pour cette boßte aux lettres:





Configurer l'identifiant d'identité dans les paramÚtres:





Définir les clés de signature et de cryptage:





DĂ©finir l'e-mail:





Essayons d'envoyer un e-mail. Assurez-vous que les options de signature et de cryptage sont définies.





Vérifiez que la lettre reçue réussit la vérification de signature et déchiffre:





Comme vous pouvez le voir, tout s'est bien passé!

Configuration d'Outlook


Tout est simple ici, car tout ce dont vous avez besoin pour travailler que vous avez dĂ©jĂ  et configurĂ©: le plugin GPGol Ă©tait contenu dans Gpg4Win et configurĂ© automatiquement. Essayons simplement d'envoyer un message, indiquant dans les options qu'il doit ĂȘtre cryptĂ© et ajouter une signature.





Regardons la lettre qui est venue. Vous pouvez voir que la signature a réussi la vérification et que la lettre a été déchiffrée.





Configuration du client de messagerie


Payer Tim Cook,
PiÚce frappée ...
PiÚce frappée ...

Cette mĂ©thode, traditionnellement pour Apple, est payante et convient si vous ĂȘtes prĂȘt Ă  dĂ©penser vos shekels honnĂȘtement acquis sur le plugin GPG Suite. Si vous apprĂ©ciez votre or, vous pouvez utiliser l'option gratuite - Thunderbird.


Accédez au site Web de GPG Suite et téléchargez la derniÚre version de ce package.


AprÚs l'installation, vous devrez activer le plugin GPGMail. Pour ce faire, accédez aux paramÚtres Courrier> Préférences> Général> Gérer les plug-ins et activez GPGMailLoader.mailbundle.





Le plugin est activé. Essayons d'envoyer une lettre de test. Notez que nous avons défini l'option pour signer le message et le crypter.





Et nous vérifierons que le déchiffrement et la vérification de la signature ont réussi.





Hourra, nous l'avons fait!

Emplois chez Kleopatra


Kleopatra fournit Ă  l'utilisateur une interface graphique pratique pour travailler avec GPG, telle que: signature, cryptage, vĂ©rification de signature, dĂ©cryptage, etc. Sous Windows, il est installĂ© avec Gpg4Win et sous Linux, il peut ĂȘtre installĂ© via le gestionnaire de packages:


sudo apt-get install kleopatra # Debian
sudo yum install kleopatra # Red Hat

Exécutez-le et voyez que le travail dans le programme est intuitif)


Total


GPG , -, , . , , .


, GPG .


All Articles