Sekarang saya mengerti mengapa hampir tidak ada yang mengenkripsi surat mereka



Enkripsi email adalah prosedur yang sulit dan menyakitkan. Baru-baru ini, saya sendiri menyadari betapa banyak. Seorang teman saya, yang sangat maju di bidang keamanan informasi, mengirimi saya kunci publik PGP-nya dan meminta saya untuk beralih ke enkripsi. Tidak, dia bukan dari NSA atau CIA, dia hanya orang biasa yang peduli dengan privasinya. Saya belum pernah mengirim surat terenkripsi sebelumnya, tetapi saya berpikir, "Mengapa tidak?" Selama bertahun-tahun saya ingin mempelajari ini, tetapi tidak ada orang yang dapat bertukar surat terenkripsi.

Saya mulai dengan menginstal GnuPG di mesin Linux saya.

GnuPG mirip dengan PGP karena menggunakan kunci publik dan pribadi untuk enkripsi dan dekripsi, tetapi dilengkapi dengan kode sumber terbuka dan dilengkapi dengan banyak distribusi Linux. Versi open source lain dari PGP adalah OpenPGP.

GnuPG untuk Windows bernama Gpg4win dapat diunduh dari situs web resmi . Saya memilih metode umum untuk mengenkripsi dan mendekripsi pesan, yang tidak terikat dengan penyedia email mana pun, karena saya tidak ingin membatasi diri pada kemampuan untuk mengenkripsi hanya satu penyedia. Selain itu, satu-satunya cara untuk memastikan bahwa penyedia surat pun tidak memiliki akses ke surat-surat Anda adalah dengan mengenkripsi mereka sendiri. Saya menemukan panduan GnuPG paling komprehensif tentang How-To Geek .

Saya mengimpor kunci publik teman saya menggunakan perintah ini:

gpg --import her_public_key_file.key

Perintah her_public_key_file.keyini diganti dengan file kunci publik yang sebenarnya. Kemudian saya memeriksa apakah kuncinya berhasil diimpor:

gpg --list-keys

Pesan seperti ini muncul:

pub 2048R/FFE7947D 2019-10-11 [expires: 2021-10-10]
uid her_email@her_email_provider.com
sub 2048R/AB48FEC2 2019-10-11

Ini berarti bahwa GnuPG mengakui kunci publiknya valid dan menyimpannya untuk digunakan di masa mendatang.

Kemudian menandatangani kunci publiknya:

gpg --sign-key her_email_address@email_provider.com

Menandatangani kunci publik memberitahu GnuPG bahwa Anda mempercayai kunci ini, artinya, itu benar-benar berasal dari orang ini. Setiap kunci publik harus ditandatangani sebelum pesan dari pemilik kunci publik ini dapat didekripsi. Menurut pendapat saya, langkah ini tidak masuk akal. Mengapa Anda mengimpor kunci jika Anda tidak mengira itu berasal dari orang yang tepat?

Kemudian saya mencoba membuat kunci saya:

gpg --output ~/temp.key --armor --export My Name 

Nah, setelah perintah seperti itu, pesan kesalahan muncul bahwa akhir baris baru ditemukan. Saya pikir ini mungkin karena spasi di nama saya dan antara nama dan alamat email, jadi saya mencoba berbagai format. Setelah sekitar satu jam dan banyak usaha yang gagal, beberapa di antaranya terlihat berhasil, tetapi ternyata tidak, saya akhirnya menemukan perintah yang tepat:

gpg --gen-key

Perintah di atas menanyakan serangkaian pertanyaan kepada Anda. Pada awalnya saya memilih opsi "1", lalu saya memilih opsi panjang kunci 2048-bit. Tetapkan periode validitas kunci tak terbatas. Saya tidak menunjukkan nama keluarga di bidang nama, tetapi spasi juga didukung di sana: Anda dapat menentukan nama dan nama keluarga. Lalu masukkan alamat emailnya. Kolom komentar dibiarkan kosong. Dan akhirnya, dia memperkenalkan kata sandi yang panjang. Frasa sandi hanyalah sinonim untuk kata sandi. Saya menuliskannya di tempat yang tidak akan hilang. Bahkan, saya memasukkannya ke file yang dienkripsi menggunakan Truecrypt. Frasa sandi diperlukan nanti untuk mengenkripsi pesan jika menginstal ulang GnuPG pada hard disk dan mengimpor kembali kunci. Dan jangan lupa untuk membuat cadangan kunci sendiri!

Setelah membuat kunci, kami memeriksa hasilnya:

gpg --list-keys

Perintah ini menghasilkan sesuatu seperti ini:

pub 2048R/FFE7947D 2019-10-11 [expires: 2021-10-10]
uid her_email@her_email_provider.com
sub 2048R/AB48FEC2 2019-10-11


pub 2048R/3A785D3F 2020-02-22
uid My Name
sub 2048R/A7B384FE 2020-02-22

Saya menjalankan generasi kunci dua kali karena saya tidak yakin apakah hasil ini berarti ada sepasang kunci publik / pribadi atau hanya satu kunci. Entah bagaimana, saya akhirnya menyadari bahwa saya telah membuat dua pasangan kunci, jadi saya menghapus pasangan kedua.

Kemudian saya mencoba untuk mengekspor kunci publik saya ke file. Kunci publik harus dikirim ke semua orang kepada siapa Anda mengirim surat terenkripsi sehingga dapat mendekripsi. Saya tidak yakin perintah mana yang saya gunakan, tetapi menghasilkan file teks yang dimulai dengan -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1. Saya mengirim surat ini ke teman saya, dan dia menjawab saya dengan pesan terenkripsi.

Saya mencoba mendekripsi file message.ascdengan suratnya:

gpg --decrypt message.asc > plain.txt

Tetapi GnuPG memberikan pesan kesalahan bahwa ia tidak dapat menemukan kunci rahasia:

gpg: encrypted with RSA key, ID XXXXXXXX
gpg: decryption failed: secret key not available

Tetapi saya melihat kunci rahasia saya. Saya bahkan bisa mengekspornya. Saya tahu dia! Apa yang bisa saya katakan, kadang-kadang programmer menulis pesan kesalahan yang sangat mengerikan. Pada titik ini, saya sudah mulai mengalami iritasi.

Saya tidak tahu apa yang saya lakukan salah. Satu-satunya hal yang bisa saya asumsikan adalah entah bagaimana saya tidak bisa membuat kunci dengan benar. Entah itu, atau saya mengekspor kunci publik yang salah. Jadi saya memutuskan untuk memulai dari awal lagi. Saya menghapus pasangan kunci saya, membuat pasangan kunci baru dan mengekspor kunci publik saya ke file menggunakan perintah ini:

gpg --output ~/my_public_gpg_key.key --armor --export My Name my-email@my-email-povider.com

Kemudian dia mengirim seorang teman kunci publik baru. Parameter --armormemberitahu GnuPG untuk membuat file kunci publik dalam bentuk teks. Nama File - my_public_gpg_key.key.

Dia sekali lagi mengenkripsi pesannya dan mengirimkannya kepada saya. Ketika saya mencoba mendekripsi, saya kembali melihat pesan kesalahan yang sama:

gpg: encrypted with RSA key, ID XXXXXXXX
gpg: decryption failed: secret key not available

Kali ini, saya perhatikan bahwa pengidentifikasi kunci cocok dengan kunci publik lama saya, bukan yang baru. Saya memutuskan bahwa dia salah, dan memintanya untuk mencoba lagi dengan kunci baru. Kemudian, untuk memastikan bahwa saya tidak salah, saya memutuskan untuk memeriksa bahwa kunci yang saya gunakan benar-benar kunci baru saya. Kunci baru yang saya kirim bukan salah satu kunci publik saya! Itu kunci publiknya yang dimulai dengan -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1! Entah bagaimana saya mengekspor kuncinya dengan tambahan Version: GnuPG v1! Saya tahu ini karena saya masih punya file dengan kuncinya yang dia kirimkan kepada saya, dan itu dimulai dengan -----BEGIN PGP PUBLIC KEY BLOCK-----. Tidak ada Version: GnuPG v1! Dan kunci publiknya cocok dengan yang saya kirim padanya.

Saya mengekspor kembali kunci publik saya menggunakan perintah yang sama di atas. Kali ini saya memeriksa bahwa itu benar-benar kunci saya sebelum mengirimkannya kepadanya melalui email. Dari bahan referensi GnuPG Internet, saya mengetahui bahwa pesan tentang tidak adanya kunci rahasia dapat muncul jika orang menggunakan versi GnuPG yang berbeda. Saya menyebutkan ini kepadanya ketika saya mengirim kunci baru melalui email.

Beberapa minggu kemudian saya menerima surat tanggapan. Pada saat ini, saya sudah memutuskan bahwa dia telah menyerah. Selama beberapa minggu berikutnya, saya mengalami beberapa masalah dengan komputer, yang membuatnya perlu memformat ulang hard drive. Jadi saya harus menginstal ulang GnuPG, mengimpor kembali kunci saya dan mengimpor kembali kunci publiknya. Untungnya, saya membuat cadangan! Kemudian saya menjawab surat terakhirnya dengan surat lain yang saya enkripsi dengan perintah ini:

gpg --encrypt --sign --armor -r her-email@her-email-provider.com --passphrase my-pass-phrase my-msg.txt

Tentu saja, ini bukan kata sandi asli saya, saya ganti dengan my-pass-phrase, dan pesan yang tidak dienkripsi dengannya my-msg.txt. Sebuah ciphertext dibuat dan filenya bernama my-msg.tx.gpg. Saya tidak dapat menemukan informasi tentang cara mendekripsi ciphertext saya sendiri, jadi saya harus mengirimkannya kepadanya, tidak tahu apakah saya telah mengenkripsi dengan benar. Saya hanya tahu bahwa ia tampaknya berukuran tepat. Setelah beberapa minggu, saya menerima darinya surat terenkripsi baru pada topik yang berbeda. Baru kemudian muncul kepercayaan bahwa saya akhirnya mencapai titik di mana kita dapat berhasil berkomunikasi melalui email terenkripsi. Seluruh proses dari awal hingga selesai memakan waktu lebih dari sebulan! Saya masih mencoba untuk mengotomatiskan perintah GnuPG sehingga saya dapat menggunakannya tanpa terlalu memikirkan apa yang saya lakukan.

Dari pengalaman ini, saya menyadari bahwa email terenkripsi, meskipun latihan yang menarik, tidak terlalu praktis. Kecuali Anda adalah Edward Snowden yang dipantau oleh NSA, Anda tidak mungkin dapat membenarkan upaya untuk membuat dan menggunakan surat terenkripsi. Dan jika Anda bukan Edward Snowden dengan rahasia-rahasia penting, tidak mungkin ada orang yang mau menghabiskan energi untuk mengenkripsi korespondensi dengan Anda.

Mengenkripsi dan mendekripsi email, seperti yang saya lakukan dengan GnuPG, terlalu membosankan. Karena saya sudah menghabiskan terlalu banyak upaya untuk hal ini, saya akan terus menggunakannya untuk berkomunikasi dengan teman online saya. Tetapi saya tidak akan merekomendasikan bahwa orang biasa menggunakan GnuPG untuk mengenkripsi email, jika ini bisa dihindari. Saya mengerti bahwa ada solusi yang lebih sederhana di pasar dari penyedia surat tertentu, seperti Protonmail, tetapi kebanyakan orang tidak ingin mengubah penyedia untuk menggunakannya. Kita semua membutuhkan cara yang lebih mudah untuk mengirim dan menerima surat terenkripsi tanpa mengubah penyedia surat. GnuPG bukan solusi. Jika Anda tahu cara yang lebih sederhana untuk mengenkripsi surat, silakan pertimbangkan untuk meninggalkan komentar.


All Articles