Tutorial PGP/GPG (Mac OS X)
UPDATE :#1
[Tutorial] PGP/GPG (Mac OS X) started by
Husna QA#2
[Tutorial] PGP/GPG (Linux) started by om
joniboini.(Terima kasih atas kontribusinya melengkapi versi Linux).
#3
[Tutorial] PGP/GPG (Microsoft Windows) started by
Husna QA.
#4
[Android Tutorial] PGP Signature - Encrypt/Decrypt message -
Learn Bitcoin (terjemahan bahasa Indonesia)
Video TutorialVideo Tutorial PGP/GPG (Mac OS X) started by
Husna QA
Bermula dari saya lihat pos berikut :
https://bitcointalk.org/index.php?topic=1159946.msg32585773#msg32585773dari sana perhatian saya tertuju pada thread berikut:
The BCT PGP/GPG Public Key Database: Stake Your PGP Key Here.
Kemudian saya mencoba mencari informasi tentang PGP/GPG dari beberapa sumber di internet
(referensi bisa anda lihat di footnotes), dan bertanya kepada beberapa narasumber.
Terima kasih untuk :
-
Bitcointalk karena banyak ilmu baru yang saya dapati disini.
- Om
BitRentX yang sudah menyediakan waktunya via PM BCT dan via Telegram untuk menjawab pertanyaan saya terkait PGP/GPG.
-
Nullius, yang sudah menyempatkan chat dengan saya via PM BCT dan email (terenkripsi) untuk memandu dan memberikan ‘clue’ mengenai PGP/GPG.
Berikut ini link Post saya (PGP/GPG Public Key Database):
https://bitcointalk.org/index.php?topic=1159946.msg33414470#msg33414470Saya kutipkan pernyataan
Nullius melalui email terenkripsi kepada saya :
Thank's for +1
“I will help others to, also.”
Ini hasil quote member lain :
https://bitcointalk.org/index.php?topic=1159946.msg33448946#msg33448946
Tutorial kali ini saya buat untuk pengguna Mac OS X (OS X yang saya gunakan versi 10.11.6 / El Capitan)
Untuk
OS Windows atau Linux, saya belum mencobanya.
(
Mungkin nanti jika saya sudah mempraktekkannya sendiri, saya update lagi tutorialnya).
--UPDATE--
Ada apa dengan PGP/GPG? Apa kaitannya dengan Forum Bitcointalk?Simak penjelasannya pada
#3 [Tutorial] PGP/GPG (Microsoft Windows)
Pengenalan PGP/GPGEnkripsi adalah proses pengkodean pesan, dimana kode tertentu digunakan untuk mencoba menyembunyikan makna pesan penting. Melindungi privasi seseorang bukanlah hal baru. Bagaimanapun, hal ini sangat penting karena mudahnya data digital seperti informasi dalam database, pada hard drive atau media lain, dalam e-mail, dan sebagainya, dapat diakses, dicuri dan dipantau oleh orang yang mungkin tidak kita ketahui dan yang tidak diinginkan. Data digital begitu mudah digandakan dan disebarkan. Inilah sebabnya mengapa banyak organisasi mencari cara untuk mengenkripsi semua informasi mereka. Salah satu cara untuk mengenkripsi sebuah pesan penting adalah menggunakan program PGP.
1Definisi-
PGP (Pretty Good Privacy) merupakan program komputer yang sering dipakai dalam proses kriptografi dan autentikasi pengiriman data komputer.
Dalam bidang kriptografi, selain PGP, terdapat metode penyandian enkripsi dan dekripsi yang lain seperti: DES, AES, RSA, dan lain lainnya.
2 (ECC: Ed25519 —tambahan dari saya—).
GPG (GNU Privacy Guard) adalah suatu software enkripsi yang mengimplementasikan RFC2440. Penggunaan program ini biasanya ditemui pada enkripsi email atau sebagai
digital signature. Model enkripsi yang digunakan adalah
Public Key Infrastructure. Dengan demikian seseorang pasti mempunyai sepasang kunci yaitu
Private Key dan
Public Key.
3Note : PGP dan GPG adalah istilah yang digunakan secara bergantian.
-
Private/Public KeyPrivate Key adalah kunci enkripsi yang hanya boleh diakses oleh pemilik kunci, sedangkan
Public key sebisa mungkin harus disebarkan seluas-luasnya. Penyebaran public key ini dapat dilakukan secara manual, yakni dengan cara mendownload dari web seseorang, atau seseorang dapat juga mengirimkan public keynya ke suatu keyserver yang menyimpan public key banyak orang seperti
https://pgp.mit.edu/ atau
www.keyserver.net. Semua orang dapat mencari/mendownload public key milik orang lain untuk digunakan di kemudian hari.
Private key digunakan untuk mendekrip chiper text yang ditujukan kepada sang pemilik, atau menandatangani suatu dokumen/file yang dikirimkan kepada orang lain. Bagaimana dengan public key? Key inilah yang digunakan oleh orang lain untuk mengenkrip file teks yang ditujukan kepada sang pemilik key, atau untuk memeriksa/verifikasi keaslian dokumen yang telah ditandatangani oleh pemilik private key.
3-
Fingerprint (sidik jari) adalah urutan huruf dan angka unik yang digunakan untuk mengidentifikasi kunci (key). Sama seperti fingerprint dari dua orang yang berbeda, fingerprint dua key yang berbeda tidak akan pernah bisa identik. Fingerprint adalah cara terbaik untuk mengidentifikasi key tertentu.
4
Pada tutorial kali ini saya fokus pada pembahasan key pair (Fingerprint) type RSA.
Ini RSA key milik saya :
0x58BC997445D96F68DB65C169A2CA884F183D22E9Untuk key pair type ECC (Ed25519) saya sudah mencoba membuatnya dengan menggunakan Terminal Mac OS X (Kalau di Windows : Command Prompt).
Ini ECC (Ed25519) key milik saya :
0xC9B290C8C87C9BB5F440E82AD21FD04306AED362
Oke, sekian dulu pengenalan dasar tentang PGP/GPG dan beberapa istilah lainnya, untuk lebih lengkapnya silahkan merujuk ke referensi yang saya cantumkan di footnote atau search di google.
Let's practice!Note: untuk alamat email yang saya gunakan pada tutorial ini sengaja saya tutup
. Kalau penasaran mau tahu, silahkan telusuri di PGP/GPG Public Key yang saya cantumkan diatas.
Fingerprint, Public Key, PGP/GPG Sign Message, Encrypt/Decrypt
Langkah 1 - Install GPGTools-GPG Suite (GPG Keychain)
Anda bisa mendownload GPG Tools - GPG Keychain di :
https://gpgtools.org/(Pada tutorial ini saya menggunakan versi : GPG Suite 2018.1)
Double Klik file dmg nya dan Install
Klik Customize, jika ada beberapa opsinya yang tidak ingin anda install.
(Saya sarankan pilih semuanya saja jika belum paham).
Masukkan password yang biasa anda gunakan saat login di Mac.
Langkah 2 - Membuat PGP/GPG Key Pair
Setelah instalasi selesai, maka akan muncul jendela ‘Generate new key pair’
-Cantumkan Nama / nick name anda,
-Alamat Email,
-Password terkuat yang pernah anda buat, kemudian cantumkan kembali password di kolom Confirm.
(Seberapa kuat password anda? Coba cek di link ini untuk mengujinya. Namun ini hanya perkiraan saja & tidak sepenuhnya bisa dijadikan patokan).Pada Advanced options
-Comment : saya sarankan anda mengosongkannya.
-Key type : pilih RSA and RSA (default)
-Length : 4096
-Key expires : Ceklis jika anda ingin menggunakan key hanya sementara waktu sampai batas tanggal yang ditentukan.
Kosongkan ceklis jika ingin menggunakan key seterusnya.
Kemudian Klik ‘Generate Key’
Anda bisa memilih ‘No, Thanks!’ ataupun ‘Upload Public Key’
(Untuk Upload Public key, anda bisa juga melakukannya pada langkah berikutnya -lihat langkah 3-).
Sekarang anda sudah punya key pair - Fingerprint type RSA.
Fingerprint saya tertera : 58BC997445D96F68DB65C169A2CA884F183D22E9
Tambahkan 0x sebelum kode tersebut sehingga key saya adalah : 0x58BC997445D96F68DB65C169A2CA884F183D22E9
Kenapa harus menambahkan 0x ? (Saya dapat informasinya dari
Nullius. Penjelasan rincinya cari sendiri di Google ya..
, akan panjang lebar kalau dicantumkan disini).
Klik tombol Details untuk melihat informasi lebih lengkap dari fingerprint anda.
Langkah 3 - Membackup PGP/GPG Public Key
Pilih Key pair, kemudian Export (Bisa lewat tombol Export, Menu file, ataupun Keyboard Shortcut)
Save Public Key file di Folder yang anda inginkan.
Saya sarankan untuk menyimpan 2 jenis backup Public key.
(Ini penting agar bila dikemudian hari key pair ter-delete, kita bisa meng-import nya kembali).
a. Meng-ceklis ‘Include Secret Key in exported file’ (File untuk penggunaan pribadi).
b. Menghilangkan ceklis ‘Include Secret Key in exported file’ (File untuk dibagikan ke orang lain).
Masukkan Passphrase. Gunakan kalimat yang tidak mudah ditebak orang lain.
Anda pun jangan lupa membackup passphrase ini dengan cara menulisnya atau cara lain yang anda anggap aman untuk menyimpannya.
Upload Public Key anda ke ‘Key Server’
(Jika pada langkah sebelumnya anda belum meng-Upload Public Key).
Untuk mengecek public key anda di key server silahkan lengkapi link berikut:
https://sks-keyservers.net/pks/lookup?op=get&search=(masukkan fingerprint anda).
Ini contoh punya saya (silahkan di klik):
https://sks-keyservers.net/pks/lookup?op=get&search=0x58BC997445D96F68DB65C169A2CA884F183D22E9
Langkah 4 - Set PGP Keyboard Shortcuts
Buka System Preferences —> Keyboard —> Shortcuts —> Services
Setidaknya ada 4 shortcuts yang saya sarankan pada anda untuk men-settingnya.
(Terserah apakah mau sama seperti shortcuts saya atau anda memilih kombinasi shortcuts lain)
- OpenPGP: Decrypt Selection —>
command+
option+
control+
-- OpenPGP: Encrypt Selection —>
command+
option+
control+
=- OpenPGP: Sign Selection —>
command+
option+
control+
[- OpenPGP: Verify Signature of Selection —>
command+
option+
control+
]
Langkah 5 - Mendaftarkan Email/Fingerprint/Public key Orang Lain Kedalam List Key GPG Keychain Kita
Agar kita bisa mengirim/menerima file/email terenkripsi dari orang lain, terlebih dulu kita harus mendaftarkannya di list key GPG Keychain.
Klik Lookup Key, masukkan alamat email atau fingerprint orang lain yang akan kita daftarkan, kemudian klik Search.
Dalam contoh kali ini
Nullius mempunyai 2 key, saya memilih semua key nya, kemudian klik ‘Retrieve Key’
Setelah berhasil di import key nya, pada Ownnertrust : pilih Full atau Ultimate.
Langkah 6 - Cara Mengirim Email + File Terenkripsi
PGP bisa meng-enkripsi file atau pun pesan, kecenderungan orang menggunakan PGP untuk enkripsi adalah melalui email.
Aplikasi email yang saya sarankan karena memiliki fitur lengkap diantaranya, Thunderbird + Add ons Enigmail
(Saya sudah menggunakannya,
namun pembahasannya mungkin dicantumkan pada tutorial ‘PGP/GPG in Microsoft Windows’ insyaAlloh).
Pada tutorial kali ini saya akan menggunakan cara berbeda & sederhana namun tetap bisa menggunakan PGP Signed message & Encrypt.
Contoh tes kali ini saya buat file di TextEdit format file RTF (bisa dibuka di Ms Word),
Anda juga bisa langsung menerapkannya pada pesan di email melalui web browser.
Cek link/download file berikut ini untuk latihan (atau anda bisa buat sendiri):
File awal :
Tes PGP.rtfUntuk menambahkan PGP Signed message, select/pilih semua teks, kemudian tekan kombinasi shortcuts yang sudah kita buat sebelumnya ‘OpenPGP: Sign Selection’
(Shortcuts saya :
command+
option+
control+
[).
Jika anda menggunakan beberapa key, pada opsi yang muncul, pilih salah satu key yang akan anda gunakan.
File contoh hasil PGP Signed Message bisa dilihat/didownload pada link berikut :
Tes PGP-Signed Message.rtfUntuk menambahkan enkripsi pada pesan tersebut, silahkan select/pilih kembali semua teks beserta kode signed message-nya,
kemudian tekan kombinasi shortcuts ‘Open PGP: Encrypt File’
(Shortcuts saya:
command+
option+
control+
=).
Untuk encrypt, hanya pengirim dan penerima yang bisa membuka isi pesan didalamnya.
Penerima harus sudah didaftarkan key nya di GPG list kita (lihat langkah sebelumnya).Pilih orang yang kita tuju, kemudian pada Your Key, pilih key yang akan kita gunakan, kemudian klik OK.
Contoh file yang sudah diencrypt (pengirim dan penerima yang bisa mengetahui pesan yang dimaksud didalamnya) :
Tes PGP-Signed Message-Encrypt.rtfCara membubuhkan PGP Signed message atau encrypt pada suatu file:Klik kanan file tersebut —> Services —> ‘OpenPGP: Sign File’ (untuk menambahkan signature file)
‘Open PGP: Encrypt File’ (untuk meng-enkripsi file)
Berikut ini contoh File Asli, File + PGP Signed Message, File Encrypted :
PGP-File lampiran.zipSaatnya berkirim email dengan cara aman :Buka Email di Web Browser anda —> Sent Mail —> ketik pesan dan coba di tambahi PGP Sign Message
(Caranya sama seperti contoh latihan sebelumnya).
Lampirkan file contoh sebelumnya yang sudah ditambahi PGP Signed Message dan di Encrypt —> Send.
Langkah 7 - Cara Menerima & Membuka Email yang di Enkrip + Cara Verifikasinya
Membuka File yang di EncryptSaya ambil contoh langsung dari email yang dikirim
Nullius kepada saya :
Setelah saya download dan dibuka menggunakan TextEdit (Kalau di Windows : Notepad), berikut ini hasilnya :
-----BEGIN PGP MESSAGE-----
Charset: UTF-8
hF4DckSZA4opDtgSAQdAQCtJSYEKiujL/8aGhJYtyxc+OCVmUQwiUD1aG69gE30w
yOl0+nqG8cIlVvqW+kFkPaFPIDkvmAqNy8D8x+hYjwLgB1HVt7ygWDW5TPXfo+0g
hF4DdPInIjWYj0gSAQdAl6EBLBa9gkunVs3WjUh223V8NQ5YMnJLd6V/dQ+wvQYw
fdmdsXgvyyupTYJDgxsSnZ3drYqrwdmhhlerW/UeZoB256pfakvG4/2vP1xmRQiI
0uoBruyE8I+O62cAPAbw4kuz3cf/AQ+ptupdk7omd2CYcNj1XPPDhQiVHQFS9xiz
Zb1U0qWbA7WZSJdqjF8lXPcgivLqnMB5oF77TEkA6FIlDSdZyEiPB0pmcdWSjckg
KJ94aqpX44riWV9Cwz75UWGCzSOi3CJ7gFcWIUqIp55IBt3rT7OuDbH0iTY5NJaB
yLaw5ugA0YYXDk7eX4Jmt2lW7hMkoUVCPscDHY5XrToIMFjh/KoHpfseu8ENNEl4
1RkEgGRkEnwUmdVGVnzb0EWKtRUHjrjfvBiYaHfgrc34Jm3PfI6CL6lMF6vNkkWS
XQSFl4hwelCyvzQXgTFYUj/zLzLatUHEoAqXFr0H1DNORaZmW8EnxoJd9OfqUBzK
8J8BjPd7UuyL0dh57GZ4KCdTzkmagKcceHnayDwukm9zH9O6nh1jyFJMa0Po+TXj
+q2tSBZr6XiVHfWEj2RTBvT5gqcFWyANng5a8wXc/en2imLxAzuMyFxH9W+enjnV
AOMDDuaCS936swapZ3EUlGbHWbi6dM57WWMCKvkp0lx8AsF3qa5F5/gs5gFVmXyE
9aaC3OSZBId9ziU2hxfGXojMWOF96Kd/ZDZBw6ne8UwbM8YuPMxkJa/0Y0IUi45h
JNVb+7f0KPLawMuiVeqKTf3t+ifBwEBgLm2O+Ie4jkE/LmwnU4noTO2yNRKJ80nW
25QPCrY3nhxoLxQF1coMisQ2gu601E03nzkGehEuZvvoQFW3RB+b2PgqVJNb6R01
sTX7H0mLDJspJkiuwnNuXKqqD49j7KW8qPh5ZL/NLsPh32qt2iyT5g6lHMuPYdI3
5G9ZpTXqymdUv3zxtWDccBswDgdywJTETfDMivYH+SQ3NAUgcOa+syLAm6lX7lkM
vEEiFYBXfx6zwfN7ZInOg6mvYw8YvWoh7tZT4quNL8pEjvbLNMrMPyfDBjegHqHE
L/k4Lk/PK2b93FHEpoTOj5wLoAU1gs6zXVcEUI6sNhcyeO166oocbzhCYE2GFk4j
aZ0bq4TLMHwC/Q1V4QGn1lQkrVBnvkheHmR/bfqPfc9+2TH9CmIcu9qztOEnAApu
qKVtfpFxDqhfxVTC0nB5uYDxor8r+FeRaWrgZlMMLzOZCV+LKVunECHqx4ykh7E5
Q19hPdWeuZdqd35tRf7fCr24Fq0ajaUMoT4kmeui6nmCeN8WfpGm6jZosGGh+Ynx
7Iha7Iwhj6CGw0v/KqER4cfjZAO0waWgouRIELoOLPyMhgF6EBBlr9X1eKvHk5Go
jXOEch3mM3szE2qp3RaWJNNMZfW+dstPXwURM+m90J3+SM8VFLb0ctXEv6lqYEpd
vtsaa9cYiOlMR1Qt/cMjK/NkEXuW4vHotQ817shOMWr1SFWO
=qL0p
-----END PGP MESSAGE-----
Cara membukanya:
Karena saya sudah menambahkan public key beliau di GPG key list saya (lihat Langkah sebelumnya) maka saya tinggal Select semua teks nya kemudian
tekan kombinasi shortcuts ‘OpenPGP: Decrypt Selection’ —>
command+
option+
control+
-Berikut hasilnya
(ada sebagian teks yang saya ~snip~):
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On 2018-03-29 at 04:18:01 +0000, Husna QA < :) snip-snip-snip :) >=20
wrote:
>
>Hi Nullius, I've posted PGP Key here:
>
>https://bitcointalk.org/index.php?topic=3D1159946.msg33414470#msg33414470
>
>May you wish to quote and verify.
All verified. +1 for being the first person other than me whom I=E2=80=99v=
e=20
seen on this forum with an ECC PGP key. Somebody else beat me to=20
quoting it; but I took an archival snapshot, and will post the link=20
later when I have something suitable to say.
https://web.archive.org/web/20180329164919/https://bitcointalk.org/index.ph=
p?topic=3D1159946.msg33414470#msg33414470
I hope you will enjoy new privacy and security in your communications,=20
and help others to, also.
Cheers,
--=20
nullius@nym.zone | PGP ECC: 0xC2E91CD74A4C57A105F6C21B5A00591B2F307E0C
Bitcoin: bc1qnullnymefa273hgss63kvtvr0q7377kjza0607 | (Segwit nested:
35segwitgLKnDi2kn7unNdETrZzHD2c5xh) (PGP RSA: 0x36EBB4AB699A10EE)
=E2=80=9C=E2=80=98If you=E2=80=99re not doing anything wrong, you have noth=
ing to hide.=E2=80=99
No! Because I do nothing wrong, I have nothing to show.=E2=80=9D =E2=80=94=
nullius
Note : Tampilan hasilnya bila dibuka di Thunderbird,
dan bila anda jeli membacanya, anda bisa lihat pada kutipan gambar diawal tutorial ini
.
Verifikasi PGP Sign MessageVerify Signature (Message) bertujuan untuk memeriksa apakah pesan yang disampaikan asli/otentik dari pengirim atau sudah ada yang meng-edit. Bahkan jika pesan diedit oleh pengirim yang asli sekalipun, proses PGP Signed Message pada pesan yang diedit tersebut harus diulang kembali.
Untuk verifikasi PGP Sign Message, kita ambil contoh latihan sebelumnya misalnya:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Tes kirim file dengan PGP Signed Message dan di enkripsi.
Husna QA (bitcointalk.org #1827294)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEWLyZdEXZb2jbZcFposqITxg9IukFAlq9fGMACgkQosqITxg9
IunlXhAAk+yLRT2GaP2C9uW4V6/kpw8MfuD6eFDwGyUJ8Zcl8bPwocdG450LKcWE
A995uLbxPwl2JcpB2zu6xuh2czdCuUEbxPy3d19Xkeud3bzzlzzjjGTjCs81z+Oy
XWck0uGX4u1fGN6ErZSvRyyO0kPfcRLa7TVMALIzvSB4q4FDs1fZmj/piCrGZmxf
p3dMBJqLBRDuhtr+qTkQlVewjH+M/B/jjeJfJ/K0vV855woOznUfE6v9Ol6fw9jf
ffMpDla5NA5UiJpV1+uEQk18JLGp7K8bT2Ph9N2gl5XbG/oWtnJCnDEnpXcT2US6
2MGEHRDrucG3HrG0Gb2TLalILh3fQ8dpiA6YEnhwCvIRLM0+v9aTwm9zFmUhzpzG
Uupa3QH2o6MZlrMAb1nGNwmpCq/f2vgPnP9m0DjX/UJ7fwsUgfdQwue6fBIRwzu/
MZysfYFC7j0NJEOdJmTAY2GVcrvT9Q6Iq4fo3onozkXWg8GusrMI2fPhd/qMe/Po
MSW5+856Bs+A1S52UZR5vB+CB/ERY63/dD8ncGN8WlR3hrLBbkDt9wAsOF74dyLu
1OrSswsa+z3XcNMWLVtDBIZONZWBANmm09h3D6FQhMfLCuXBk6TZ1QmtQ/hHgwcJ
MZCMC0qom3qPyebSJZW6ujbFj0Q9fP2qK5WAnhILFdyIER5cX+Q=
=bUTz
-----END PGP SIGNATURE-----
Cara verifikasinya, anda select semua teks nya kemudian tekan Shortcuts :
OpenPGP: Verify Signature of Selection —>
command+
option+
control+
].
Jika Signature nya salah atau ada yang diedit teks-nya, akan muncul pesan seperti ini :
Jika Signature nya benar, maka akan muncul pesan seperti ini :
Verify Signature pada suatu File:Sama halnya dengan Verify signature pada message, verify signature pada file pun bertujuan untuk memeriksa keaslian file yang dikirim (asli atau sudah diedit). Perlu diingat! Untuk mem-verify, file dengan signaturenya harus berada pada satu folder yang sama.
Klik kanan file (ber-extensions .sig) —> Services —> ‘OpenPGP: Verify Signature of File’
Jika File dan Signature-File otentik, maka akan muncul pesan seperti berikut :
Jika file diedit (dirubah isi filenya, atau di-rename file nya)
dan Signature-file nya tidak diupdate oleh pemilik asli file, maka akan muncul pesan seperti berikut:
Decrypt File:Decrypt file bertujuan untuk membuka file yang di encrypt.
Hanya Pembuat file dan Penerima yang dituju oleh pembuat file yang bisa mengakses isi nya.
(Lihat pada pembahasan sebelumnya tentang cara meng-encrypt file).
Cara Decrypt File:
Klik kanan file (ber-extensions .gpg) —> Services —> ‘OpenPGP: Decrypt File’
Jika anda adalah pemilik file atau orang yang dituju oleh pemilik file,
maka file akan mudah di-decrypt.
Note :
Tidak semua pesan ataupun file harus kita encrypt saat dikirim ke orang lain, gunakan hanya pada hal-hal yang sifatnya penting dan rahasia saja…
(Husna QA - bitcointalk.org #u=1827294)
Have fun with Cryptography...
Semoga bermanfaat.
Referensi :
-
1 Pengenalan PGP-
2 Wikipedia - PGP-
3 GNU Privacy Guard-
4 What is a key fingerprint?-
The best PGP tutorial for Mac OS X, ever