Cara menandatangani korespondensi email dengan kunci GPG menggunakan token PKCS # 11



Layanan surat modern meningkatkan sistem keamanan mereka dari tahun ke tahun. Pertama, mekanisme otentikasi muncul melalui SMS, sekarang mekanisme pembelajaran mesin untuk menganalisis aktivitas mencurigakan di kotak surat sudah diperbaiki.

Tetapi bagaimana jika seseorang menerima kata sandi yang diidam-idamkan dari surat Anda dan mulai membaca semua korespondensi rahasia Anda, serta menulis beberapa sampah di kanan dan kiri. Bagaimana cara menambah tingkat perlindungan tambahan dalam kasus ini? GPG dan kartu pintar datang untuk menyelamatkan.


GPG adalah program sumber terbuka gratis yang menyediakan teknologi yang diperlukan untuk pengiriman pesan yang aman. Ini bekerja sangat sederhana: ini adalah basis data dengan semua kunci publik dari peserta jaringan yang ingin Anda ajak berkomunikasi. Anda dapat mengelola kunci-kunci ini: tambahkan jika Anda telah berkenalan, atau hapus jika Anda memutuskan untuk menambahkan seseorang ke "daftar hitam" Anda. GPG juga menyimpan kunci publik dan pribadi. Setiap kunci dikaitkan dengan kotak surat tertentu dan pengguna tertentu dalam sistem.


! GPG . : ; , , . .


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


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




Kami juga akan memberikan instruksi untuk mengintegrasikan GPG ke klien email populer seperti Thunderbird, KMail, Outlook, dan klien Mail standar pada macOS. Integrasi ini akan membantu orang yang telah menerima surat dari Anda untuk memahami bahwa surat itu benar-benar dikirim oleh Anda.

Berminat? Ayo pergi! Pengguna Windows yang ingin pergi jalan dukun dan mengumpulkan iblis dari awal, disarankan untuk bersabar ...


Instal GPG dan gnupg-pkcs11-scd


Linux


Instal paket yang diperlukan (gunakan jalur tergantung pada sistem yang sedang Anda kerjakan, yang pertama untuk Debian, yang kedua untuk 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

Pastikan versinya adalah:


gpg >= 2.1.19
gnupg-pkcs11-scd > 0.9.2

Untuk debian, Anda mungkin perlu mengunduh dan menginstal rilis terbaru kartu gnupg-pkcs11-scd pkcs11 daemon dari repositori .


Anda dapat menginstalnya menggunakan perintah berikut:


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


Setelah kami menginstal Thunderbird, kami perlu menambahkan kotak surat yang ingin kami gunakan, dan untuk itu kami menambahkan kunci dan sertifikat di GPG.


Menambahkan
plugin GPG Saatnya menambahkan plugin Enigmail untuk mengintegrasikan Thunderbird dengan GPG. Untuk melakukan ini, instal plugin ENIGMAIL . Buka tab Pengaya dan klik pada mereka:





Dalam pencarian, cari plugin Enigmail dan klik tombol "Add to Thunderbird":





Ketika plugin diinstal, itu akan menawarkan untuk menambahkan kunci yang ada. Kami setuju dengannya dan klik tombol "Terapkan Kunci saya".





Hampir semuanya siap. Tetap hanya untuk mengikat kunci ke akun email.

Ikatan kunci ke akun.
Mari kita pergi ke pengaturan akun:





Di jendela sembulan, pilih tab "Perlindungan OpenPGP" dan pilih tombol yang ingin kita gunakan untuk surat ini. Anda juga dapat mengkonfigurasi opsi default.





Semuanya sudah siap, dan semuanya sudah terpasang!
Anda hilang, Anda hilang ...
Orang tua, mari kita piknik!

Pemeriksaan Kesehatan
Saat kebenaran telah tiba. Periksa apakah seluruh sistem berfungsi dengan benar. Nyalakan ulang Thunderbird dan coba kirim pesan ke beberapa pengguna yang kunci publiknya terdaftar di GPG. Untuk melakukan ini, saya menambahkan akun lain untuk memeriksa hasilnya. Buat surat baru:





Pastikan bahwa opsi enkripsi untuk surat (jika perlu) dan opsi tanda tangan diaktifkan. Juga, selama proses pengiriman, kami mungkin akan diminta untuk memasukkan kata sandi token.

Periksa apakah surat yang dikirim telah tiba dan berhasil didekripsi, dan tanda tangan sedang diverifikasi.





Seperti yang Anda lihat, semuanya bekerja dengan sukses!

Penyiapan Kmail


Untuk memulai, unduh kmail dari repositori:


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

Luncurkan KMail. Masukkan informasi akun email Anda dan klik “Tambah Akun”.





Di jendela pop-up, pilih "Gunakan GPG".





Kami memilih kunci yang ingin kami gunakan untuk kotak surat ini:





Konfigurasikan pengenal identitas dalam pengaturan:





Tetapkan kunci untuk penandatanganan dan enkripsi:





Setel email:





Mari kita coba mengirim email. Pastikan opsi tanda tangan dan enkripsi diatur.





Periksa apakah surat yang diterima berhasil melewati verifikasi tanda tangan dan dekripsi:





Seperti yang Anda lihat, semuanya berhasil dengan sukses!

Pengaturan Outlook


Semuanya sederhana di sini, karena semua yang Anda butuhkan untuk pekerjaan yang sudah Anda miliki dan konfigurasi: plugin GPGol terkandung dalam Gpg4Win dan dikonfigurasi secara otomatis. Mari kita coba mengirim pesan, menunjukkan opsi yang perlu dienkripsi dan menambahkan tanda tangan.





Mari kita lihat surat yang datang. Anda dapat melihat bahwa tanda tangan melewati verifikasi dan surat itu didekripsi.





Konfigurasi Klien Email


Bayar Tim Cook,
koin
Minted ... Koin Minted ...

Metode ini, secara tradisional untuk Apple, dibayar, dan cocok jika Anda bersedia untuk menghabiskan shekel Anda yang diperoleh dengan jujur ​​pada plugin GPG Suite. Jika Anda menghargai emas Anda, maka Anda dapat menggunakan opsi gratis - Thunderbird.


Buka situs web GPG Suite dan unduh versi terbaru dari paket ini.


Setelah instalasi, Anda harus mengaktifkan plugin GPGMail. Untuk melakukan ini, buka pengaturan Mail> Preferences> General> Manage Plug-Ins dan aktifkan GPGMailLoader.mailbundle.





Plugin diaktifkan. Mari kita coba mengirim surat ujian. Perhatikan bahwa kami telah menetapkan opsi untuk menandatangani pesan dan mengenkripsi pesan itu.





Dan kami akan memverifikasi bahwa dekripsi dan verifikasi tanda tangan berhasil.





Hore, kami berhasil!

Pekerjaan di Kleopatra


Kleopatra menyediakan antarmuka grafis yang nyaman bagi pengguna untuk bekerja dengan GPG, seperti: tanda tangan, enkripsi, verifikasi tanda tangan, dekripsi, dll. Di Windows, diinstal dengan Gpg4Win, dan di Linux dapat diinstal melalui manajer paket:


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

Jalankan dan lihat bahwa pekerjaan dalam program ini intuitif)


Total


GPG , -, , . , , .


, GPG .


All Articles