So signieren Sie E-Mail-Korrespondenz mit einem GPG-Schlüssel mithilfe von PKCS # 11-Token



Moderne Postdienste verbessern ihr Sicherheitssystem von Jahr zu Jahr. Zuerst wurden Authentifizierungsmechanismen per SMS angezeigt, jetzt werden bereits Mechanismen für maschinelles Lernen zur Analyse verdächtiger Aktivitäten in der Mailbox verbessert.

Aber was wäre, wenn jemand das begehrte Passwort von Ihrer Mail erhalten und anfangen würde, Ihre gesamte geheime Korrespondenz zu lesen und rechts und links Müll zu schreiben? Wie kann in diesem Fall eine zusätzliche Schutzstufe hinzugefügt werden? GPG und Smartcards kommen zur Rettung.


GPG ist ein kostenloses Open-Source-Programm, das die erforderliche Technologie für sicheres Messaging bereitstellt. Es funktioniert ganz einfach: Es ist eine Datenbank mit allen öffentlichen Schlüsseln der Netzwerkteilnehmer, mit denen Sie kommunizieren möchten. Sie können diese Schlüssel verwalten: Fügen Sie sie hinzu, wenn Sie eine neue Bekanntschaft gemacht haben, oder löschen Sie sie, wenn Sie jemanden zu Ihrer „schwarzen Liste“ hinzufügen möchten. GPG speichert auch öffentliche und private Schlüssel. Jeder Schlüssel ist einem bestimmten Postfach und einem bestimmten Benutzer im System zugeordnet.


! GPG . : ; , , . .


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


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




Wir werden auch Anweisungen zur Integration von GPG in beliebte E-Mail-Clients wie Thunderbird, KMail, Outlook und den Standard-Mail-Client unter macOS bereitstellen. Diese Integration hilft Personen, die einen Brief von Ihnen erhalten haben, zu verstehen, dass der Brief wirklich von Ihnen gesendet wurde.

Interessiert an? Dann lass uns gehen! Windows-Benutzer, die den Weg der Schamanen gehen und einen Dämon von Grund auf sammeln möchten, sollten geduldig sein ...


Installieren Sie GPG und gnupg-pkcs11-scd


Linux


Installieren Sie die erforderlichen Pakete (verwenden Sie die Zeile je nach System, auf dem Sie ausgeführt werden, die erste für Debian und die zweite für 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

Stellen Sie sicher, dass die Version ist:


gpg >= 2.1.19
gnupg-pkcs11-scd > 0.9.2

Für Debian müssen Sie möglicherweise die neueste Version des Gnupg-pkcs11-scd-Smartcard-pkcs11-Daemons aus dem Repository herunterladen und installieren .


Sie können es mit dem folgenden Befehl installieren:


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, .


Nachdem wir Thunderbird installiert haben, müssen wir das Postfach hinzufügen, das wir verwenden möchten und für das wir die Schlüssel und das Zertifikat in GPG hinzugefügt haben.


Hinzufügen eines GPG-
Plugins Es ist Zeit, ein Enigmail-Plugin hinzuzufügen, um Thunderbird in GPG zu integrieren. Installieren Sie dazu das ENIGMAIL- Plugin . Gehen Sie zur Registerkarte Add-Ons und klicken Sie darauf:





Suchen Sie bei der Suche nach dem Enigmail-Plugin und klicken Sie auf die Schaltfläche „Zu Thunderbird





hinzufügen “: Wenn das Plugin installiert ist, können vorhandene Schlüssel hinzugefügt werden. Wir stimmen ihm zu und klicken auf die Schaltfläche "Meine Schlüssel anwenden".





Fast alles ist fertig. Es bleibt nur, die Schlüssel an die E-Mail-Konten zu binden.

Schlüsselbindung an Konten
Gehen wir zur Kontoeinrichtung:





Wählen Sie im Popup-Fenster die Registerkarte "OpenPGP-Schutz" und wählen Sie den Schlüssel aus, den wir für diese E-Mail verwenden möchten. Sie können auch Standardoptionen konfigurieren.





Alles ist fertig und alles ist zusammengebaut!
Sie werden vermisst, Sie werden vermisst ...
Alter Mann, machen wir ein Picknick!

Gesundheitscheck
Der Moment der Wahrheit ist gekommen. Überprüfen Sie, ob das gesamte System ordnungsgemäß funktioniert. Starten Sie Thunderbird neu und versuchen Sie, eine Nachricht an einen Benutzer zu senden, dessen öffentlicher Schlüssel in GPG registriert ist. Zu diesem Zweck habe ich ein weiteres Konto hinzugefügt, um das Ergebnis zu überprüfen. Erstellen Sie einen neuen Brief:





Stellen Sie sicher, dass die Verschlüsselungsoption für den Brief (falls erforderlich) und die Signaturoption aktiviert sind. Während des Sendevorgangs werden wir wahrscheinlich aufgefordert, ein Token-Passwort einzugeben.

Überprüfen Sie, ob der gesendete Brief angekommen ist und erfolgreich entschlüsselt wurde und die Signatur überprüft wird.





Wie Sie sehen, funktioniert alles erfolgreich!

Kmail-Setup


Laden Sie zunächst kmail aus dem Repository herunter:


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

Starten Sie KMail. Geben Sie Ihre E-Mail-Kontoinformationen ein und klicken Sie auf "Konto hinzufügen".





Wählen Sie im Popup-Fenster "GPG verwenden".





Wir wählen den Schlüssel aus, den wir für dieses Postfach verwenden möchten:





Konfigurieren Sie die Identitätskennung in den Einstellungen:





Legen Sie die Schlüssel für die Signatur und Verschlüsselung fest:





Legen Sie die E-Mail fest:





Versuchen Sie, eine E-Mail zu senden. Stellen Sie sicher, dass die Signatur- und Verschlüsselungsoptionen festgelegt sind.





Überprüfen Sie, ob der empfangene Brief die Signaturprüfung erfolgreich bestanden und entschlüsselt hat:





Wie Sie sehen, hat alles erfolgreich geklappt!

Outlook-Setup


Hier ist alles einfach, weil Alles, was Sie für die Arbeit benötigen, die Sie bereits haben und konfiguriert haben: Das GPGol-Plugin war in Gpg4Win enthalten und wurde automatisch konfiguriert. Versuchen wir einfach, eine Nachricht zu senden, die in den Optionen angibt, dass sie verschlüsselt werden muss, und fügen Sie eine Signatur hinzu.





Schauen wir uns den Brief an, der kam. Sie können sehen, dass die Signatur die Überprüfung bestanden hat und der Brief entschlüsselt wurde.





Mail-Client-Konfiguration


Zahlen Sie Tim Cook, geprägte
Münze ... geprägte
Münze ...

Diese Methode, die traditionell für Apple verwendet wird, ist kostenpflichtig und eignet sich, wenn Sie bereit sind, Ihre ehrlich erworbenen Schekel für das GPG Suite-Plugin auszugeben. Wenn Sie Ihr Gold schätzen, können Sie die kostenlose Option - Thunderbird - verwenden.


Gehen Sie zur GPG Suite- Website und laden Sie die neueste Version dieses Pakets herunter.


Nach der Installation müssen Sie das GPGMail-Plugin aktivieren. Gehen Sie dazu zu den Einstellungen Mail> Einstellungen> Allgemein> Plug-Ins verwalten und aktivieren Sie GPGMailLoader.mailbundle.





Das Plugin ist aktiviert. Versuchen wir, einen Testbrief zu senden. Beachten Sie, dass wir die Option zum Signieren und Verschlüsseln der Nachricht festgelegt haben.





Und wir werden überprüfen, ob die Entschlüsselung und Überprüfung der Signatur erfolgreich war.





Hurra, wir haben es geschafft!

Jobs bei Kleopatra


Kleopatra bietet dem Benutzer eine praktische grafische Oberfläche für die Arbeit mit GPG, z. B.: Signatur, Verschlüsselung, Signaturüberprüfung, Entschlüsselung usw. Unter Windows wird es mit Gpg4Win installiert, und unter Linux kann es über den Paketmanager installiert werden:


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

Führen Sie es aus und stellen Sie sicher, dass die Arbeit im Programm intuitiv ist.


Gesamt


GPG , -, , . , , .


, GPG .


All Articles