Difference between revisions of "GnuPG Mini Howto"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(28 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
Untuk membuat pasangan kunci, anda harus mengambil shell dan menjalankan perintah berikut: | Untuk membuat pasangan kunci, anda harus mengambil shell dan menjalankan perintah berikut: | ||
+ | gpg --full-generate-key | ||
gpg --gen-key | gpg --gen-key | ||
Line 40: | Line 41: | ||
(3) DSA (sign only) | (3) DSA (sign only) | ||
(4) RSA (sign only) | (4) RSA (sign only) | ||
− | Your selection? 1 | + | Your selection? '''1''' |
RSA keys may be between 1024 and 4096 bits long. | RSA keys may be between 1024 and 4096 bits long. | ||
What keysize do you want? (2048) | What keysize do you want? (2048) | ||
Line 50: | Line 51: | ||
<n>m = key expires in n months | <n>m = key expires in n months | ||
<n>y = key expires in n years | <n>y = key expires in n years | ||
− | Key is valid for? (0) | + | Key is valid for? (0) '''10''' |
Key does not expire at all | Key does not expire at all | ||
− | Is this correct? (y/N) y | + | Is this correct? (y/N) '''y''' |
You need a user ID to identify your key; the software constructs the user ID | You need a user ID to identify your key; the software constructs the user ID | ||
Line 58: | Line 59: | ||
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" | "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" | ||
− | Real name: Onno W. Purbo | + | Real name: '''Onno W. Purbo''' |
− | Email address: onno@indo.net.id | + | Email address: '''onno@indo.net.id''' |
Comment: | Comment: | ||
You selected this USER-ID: | You selected this USER-ID: | ||
"Onno W. Purbo <onno@indo.net.id>" | "Onno W. Purbo <onno@indo.net.id>" | ||
− | Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O | + | Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? '''O''' |
You need a Passphrase to protect your secret key. | You need a Passphrase to protect your secret key. | ||
+ | |||
+ | gpg: checking the trustdb | ||
+ | gpg: public key of ultimately trusted key 615DA990 not found | ||
+ | gpg: public key of ultimately trusted key D01586E7 not found | ||
+ | gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model | ||
+ | gpg: depth: 0 valid: 4 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 4u | ||
+ | gpg: next trustdb check due at 2017-06-21 | ||
+ | pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] | ||
+ | Key fingerprint = 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 | ||
+ | uid Onno W. Purbo <onno@indo.net.id> | ||
+ | sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21] | ||
+ | |||
Sekarang Anda memiliki direktori baru, yang disebut .gnupg, dan private dan public key. Untuk memeriksa ini, ketik: | Sekarang Anda memiliki direktori baru, yang disebut .gnupg, dan private dan public key. Untuk memeriksa ini, ketik: | ||
Line 87: | Line 100: | ||
Dalam kasus saya jawaban dari shell terlihat sebagai berikut: | Dalam kasus saya jawaban dari shell terlihat sebagai berikut: | ||
− | /home/ | + | /home/onno/.gnupg/pubring.gpg |
− | + | ----------------------------- | |
− | pub | + | pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] |
− | sub | + | uid Onno W. Purbo <onno@indo.net.id> |
+ | sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21] | ||
Sebenarnya, anda akan mendapatkan info lebih lanjut jika anda menyertakan opsi -v dalam perintah anda, dan yang lebih baik adalah sebagai berikut: | Sebenarnya, anda akan mendapatkan info lebih lanjut jika anda menyertakan opsi -v dalam perintah anda, dan yang lebih baik adalah sebagai berikut: | ||
Line 100: | Line 114: | ||
gpg -v --fingerprint | gpg -v --fingerprint | ||
− | /home/ | + | gpg: using PGP trust model |
− | + | /home/onno/.gnupg/pubring.gpg | |
− | pub | + | ----------------------------- |
− | + | pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] | |
− | + | Key fingerprint = 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 | |
− | sub | + | uid Onno W. Purbo <onno@indo.net.id> |
− | + | sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21] | |
+ | |||
Ini menunjukkan bahwa sebenarnya anda sudah memiliki dua pasang kunci, namun hal ini seharusnya tidak mengganggu anda karena kunci ini termasuk dalam satu kesatuan dan dapat dipandang sebagai satu-satunya. Key-ID (tambang 91AD85E1) bersama dengan sidik jari (10x4 digit) secara unik menentukan kunci anda. Selanjutnya, ini menunjukkan bahwa sejauh ini anda telah menandatangani kunci ini. Apa artinya ini, kita akan lihat nanti. Sebagai langkah selanjutnya, sangat penting untuk menghasilkan sertifikat pencabutan. | Ini menunjukkan bahwa sebenarnya anda sudah memiliki dua pasang kunci, namun hal ini seharusnya tidak mengganggu anda karena kunci ini termasuk dalam satu kesatuan dan dapat dipandang sebagai satu-satunya. Key-ID (tambang 91AD85E1) bersama dengan sidik jari (10x4 digit) secara unik menentukan kunci anda. Selanjutnya, ini menunjukkan bahwa sejauh ini anda telah menandatangani kunci ini. Apa artinya ini, kita akan lihat nanti. Sebagai langkah selanjutnya, sangat penting untuk menghasilkan sertifikat pencabutan. | ||
Line 117: | Line 132: | ||
gpg -a --gen-revoke <description> | gpg -a --gen-revoke <description> | ||
+ | gpg -a --gen-revoke onno | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | sec 2048R/87FD2C32 2017-06-11 Onno W. Purbo <onno@indo.net.id> | ||
+ | |||
+ | Create a revocation certificate for this key? (y/N) '''y''' | ||
+ | Please select the reason for the revocation: | ||
+ | 0 = No reason specified | ||
+ | 1 = Key has been compromised | ||
+ | 2 = Key is superseded | ||
+ | 3 = Key is no longer used | ||
+ | Q = Cancel | ||
+ | (Probably you want to select 1 here) | ||
+ | Your decision? '''1''' | ||
+ | Enter an optional description; end it with an empty line: | ||
+ | > | ||
+ | Reason for revocation: Key has been compromised | ||
+ | (No description given) | ||
+ | Is this okay? (y/N) '''y''' | ||
+ | |||
+ | You need a passphrase to unlock the secret key for | ||
+ | user: "Onno W. Purbo <onno@indo.net.id>" | ||
+ | 2048-bit RSA key, ID 87FD2C32, created 2017-06-11 | ||
+ | |||
+ | Revocation certificate created. | ||
Sekarang sertifikat pencabutan dihasilkan. Seharusnya terlihat seperti berikut ini | Sekarang sertifikat pencabutan dihasilkan. Seharusnya terlihat seperti berikut ini | ||
-----BEGIN PGP PUBLIC KEY BLOCK----- | -----BEGIN PGP PUBLIC KEY BLOCK----- | ||
− | Version: GnuPG v1 | + | Version: GnuPG v1 |
Comment: A revocation certificate should follow | Comment: A revocation certificate should follow | ||
− | + | iQEfBCABAgAJBQJZPRL6Ah0CAAoJENEb5DCH/Swyi3YIAKSECD6rSaFqMB9oY7uq | |
− | + | iUCfSUs9Aw/IwcBpZjvbxs5Rn1HrwGi2XJVcYZCw+5Ve6fov8UDITS34+WBiwe9A | |
− | = | + | 1ZbdNPAMrBaXhUiwymSa7BGRhudE0kn+1lIetrqtsMZYyZHXM0c4gBHcLRcpTaMk |
+ | CjjaYVvFZwzktOrGWdSnu6cNSYK5Z1y4frr5A9rMdPVtlHDHyoJLhyjsuFMsMfjb | ||
+ | Xj5U8z9SOG3yvdJ+DUsA797OjKqxj3CIYzyLYOeIg1ICL2yrxPbbpq0qsd/wi1rz | ||
+ | iUjVPBohwK2qffycXRbIWHtcZpTfMLeHmvORq1CpMQ2vjCtFWo7/Fe51sTyPRlUe | ||
+ | 0yE= | ||
+ | =x3w2 | ||
-----END PGP PUBLIC KEY BLOCK----- | -----END PGP PUBLIC KEY BLOCK----- | ||
Salin beberapa baris ini ke dalam file dan simpan di tempat yang aman. Terbaik di floppy disk atau mencetaknya dan menyimpan kertas di tempat yang aman. | Salin beberapa baris ini ke dalam file dan simpan di tempat yang aman. Terbaik di floppy disk atau mencetaknya dan menyimpan kertas di tempat yang aman. | ||
− | == | + | ==Mempublikasi public key== |
− | + | Sekarang, anda telah mencapai langkah di mana anda bisa menjadikan public key anda menjadi public. Cara termudah melakukannya adalah dengan menggunakan salah satu dari banyak key-server. Server yang anda gunakan tidak terlalu penting karena terhubung dan saling memperbarui setidaknya setiap hari. Misalnya anda bisa menggunakan server di MIT: | |
gpg --keyserver=x-hkp://pgp.mit.edu -a --send-keys <key-ID> | gpg --keyserver=x-hkp://pgp.mit.edu -a --send-keys <key-ID> | ||
+ | gpg --keyserver=https://keys.openpgp.org:443 -a --send-keys <key-ID> | ||
− | + | ||
+ | Karena saat ini anda hanya memiliki kunci sendiri di keyring anda, anda juga bisa menghapus deskripsi. Kemungkinan kedua adalah menggunakan antarmuka web. Di sana anda harus menyalin-paste kunci anda. Agar bisa menyalin kunci anda, berikut perintahnya: | ||
gpg -a --export <description> | gpg -a --export <description> | ||
− | + | Sekarang, kunci Anda sudah public. Kami akan menguji ini sebentar lagi. Ada satu fitur kecil yang bagus: daripada setiap kali memasukan keyserver, akan lebih mudah jika Anda mendefinisikannya di file konfigurasi anda. Edit file .gnupg/gpg.conf | |
+ | |||
+ | vi .gnupg/gpg.conf | ||
+ | |||
+ | Masukan entry | ||
+ | |||
+ | keyserver x-hkp://pgp.mit.edu | ||
+ | |||
+ | Jika Anda telah melakukannya, Anda dapat memeriksa, jika kunci Anda sudah tersedia: | ||
gpg --search-keys <description> | gpg --search-keys <description> | ||
− | + | ==Exchange Keys== | |
+ | |||
+ | |||
+ | gpg --list-keys | ||
+ | |||
+ | /users/alice/.gnupg/pubring.gpg | ||
+ | --------------------------------------- | ||
+ | pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org> | ||
+ | sub 1024g/78E9A8FA 1999-06-04 | ||
+ | |||
+ | ===Exporting a public key=== | ||
+ | |||
+ | To send your public key to a correspondent you must first export it. The command-line option --export is used to do this. It takes an additional argument identifying the public key to export. As with the --gen-revoke option, either the key ID or any part of the user ID may be used to identify the key to export. | ||
+ | |||
+ | gpg --output alice.gpg --export alice@cyb.org | ||
+ | |||
+ | The key is exported in a binary format, but this can be inconvenient when the key is to be sent though email or published on a web page. GnuPG therefore supports a command-line option --armor[1] that that causes output to be generated in an ASCII-armored format similar to uuencoded documents. In general, any output from GnuPG, e.g., keys, encrypted documents, and signatures, can be ASCII-armored by adding the --armor option. | ||
+ | |||
+ | gpg --armor --export alice@cyb.org | ||
+ | -----BEGIN PGP PUBLIC KEY BLOCK----- | ||
+ | Version: GnuPG v0.9.7 (GNU/Linux) | ||
+ | Comment: For info see http://www.gnupg.org | ||
+ | |||
+ | [...] | ||
+ | -----END PGP PUBLIC KEY BLOCK----- | ||
+ | |||
+ | ===Importing a public key=== | ||
+ | |||
+ | A public key may be added to your public keyring with the --import option. | ||
+ | |||
+ | alice% gpg --import blake.gpg | ||
+ | |||
+ | gpg: key 9E98BC16: public key imported | ||
+ | gpg: Total number processed: 1 | ||
+ | gpg: imported: 1 | ||
+ | |||
+ | alice% gpg --list-keys | ||
+ | |||
+ | /users/alice/.gnupg/pubring.gpg | ||
+ | --------------------------------------- | ||
+ | pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org> | ||
+ | sub 1024g/78E9A8FA 1999-06-04 | ||
+ | |||
+ | pub 1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org> | ||
+ | sub 1024g/5C8CBD41 1999-06-04 | ||
+ | |||
+ | Once a key is imported it should be validated. GnuPG uses a powerful and flexible trust model that does not require you to personally validate each key you import. Some keys may need to be personally validated, however. A key is validated by verifying the key's fingerprint and then signing the key to certify it as a valid key. A key's fingerprint can be quickly viewed with the --fingerprint command-line option, but in order to certify the key you must edit it. | ||
+ | |||
+ | alice% gpg --edit-key blake@cyb.org | ||
+ | |||
+ | pub 1024D/9E98BC16 created: 1999-06-04 expires: never trust: -/q | ||
+ | sub 1024g/5C8CBD41 created: 1999-06-04 expires: never | ||
+ | (1) Blake (Executioner) <blake@cyb.org> | ||
+ | |||
+ | Command> fpr | ||
+ | pub 1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org> | ||
+ | Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16 | ||
+ | |||
+ | A key's fingerprint is verified with the key's owner. This may be done in person or over the phone or through any other means as long as you can guarantee that you are communicating with the key's true owner. If the fingerprint you get is the same as the fingerprint the key's owner gets, then you can be sure that you have a correct copy of the key. | ||
+ | |||
+ | After checking the fingerprint, you may sign the key to validate it. Since key verification is a weak point in public-key cryptography, you should be extremely careful and always check a key's fingerprint with the owner before signing the key. | ||
+ | |||
+ | Command> sign | ||
+ | |||
+ | pub 1024D/9E98BC16 created: 1999-06-04 expires: never trust: -/q | ||
+ | Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16 | ||
+ | |||
+ | Blake (Executioner) <blake@cyb.org> | ||
+ | |||
+ | Are you really sure that you want to sign this key | ||
+ | with your key: "Alice (Judge) <alice@cyb.org>" | ||
+ | |||
+ | Really sign? | ||
+ | Once signed you can check the key to list the signatures on it and see the signature that you have added. Every user ID on the key will have one or more self-signatures as well as a signature for each user that has validated the key. | ||
+ | |||
+ | Command> check | ||
+ | uid Blake (Executioner) <blake@cyb.org> | ||
+ | sig! 9E98BC16 1999-06-04 [self-signature] | ||
+ | sig! BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
==Personal Key-Ring Anda== | ==Personal Key-Ring Anda== | ||
Line 164: | Line 294: | ||
gpg -v --list-keys | gpg -v --list-keys | ||
− | === | + | ===Menambahkan key ke personal key-ring anda=== |
− | + | Jika anda memiliki file dengan kunci publik maka anda dapat menambahkan kunci ini ke ring kunci anda dengan cara berikut: | |
gpg --import <file> | gpg --import <file> | ||
− | + | Namun, lebih mudah untuk mendapatkan kunci langsung dari key-server: gunakan kembali perintahnya | |
gpg --search-keys <description> | gpg --search-keys <description> | ||
− | + | Dan pilih di daftar kunci yang diinginkan. | |
+ | ===Membuang key dari personal key-ring=== | ||
− | + | Tentu saja anda juga dapat menghapus kunci apapun dari ring kunci anda: | |
− | + | gpg --delete-key <description> | |
− | + | <Description> bisa berupa nama atau alamat email (atau bagiannya) dari kunci yang tidak dibutuhkan lagi. Jika anda mencoba untuk menghapus kunci di mana anda juga memiliki kunci rahasia, maka anda harus menghapus kunci rahasia pertama dengan | |
− | + | gpg --delete-secret-keys | |
− | == | + | ==Trusted and Untrusted Key and Signing Key== |
− | + | Seperti disebutkan di atas GPG memecahkan masalah kebutuhan bertukar kunci terlebih dahulu. Sebagai pengganti kunci publik dan pribadi diperkenalkan. Namun, dengan melakukan hal itu, sebuah masalah baru muncul: Jika saya menerima (oleh keyserver, atau surat dll) kunci publik dari seseorang, bagaimana saya tahu bahwa kunci ini benar-benar milik orang yang dikatakan bahwa itu milik? Mungkin saja ada orang yang membuat sebuah kunci dengan nama saya dan menggunakannya dan tidak ada yang akan menyadari bahwa itu bukan saya! | |
− | + | Satu-satunya solusi untuk masalah ini adalah, bahwa saya harus sangat berhati-hati dalam menerima kunci lain, yaitu, saya harus yakin bahwa kunci dan orang itu tergabung bersama. Ini dapat diperiksa dengan membandingkan Key-ID dan sidik jari (lihat di atas). Ini tidak terlalu memuaskan, karena anda akan setuju. Oleh karena itu, seseorang telah mencari ide yang lebih baik - dan telah menemukannya: Saya tidak perlu memeriksa apakah kunci dan milik orang sama, selama ada beberapa teman saya (yang saya percaya) yang mengkonfirmasi Kunci tertentu! Dan ini dilakukan dengan "key-signing". Jika saya menandatangani kunci publik orang lain (dengan menggunakan kunci saya), maka saya mengonfirmasikan bahwa kunci ini adalah milik orang yang seharusnya. Atau sebaliknya: Jika saya menerima kunci publik seseorang yang tidak saya kenal, tapi ketahuilah bahwa kuncinya ditandatangani oleh beberapa orang yang saya tahu, maka saya mungkin yakin bahwa kunci ini juga merupakan kunci yang benar yang mungkin saya menggunakan. | |
− | + | Oleh karena itu, penting bahwa kunci anda ditandatangani oleh sebanyak mungkin orang, dan anda mungkin juga kadang-kadang ditanya apakah anda akan memberi tanda kunci. Lakukan, tapi lakukan hanya jika anda benar-benar yakin bahwa orang yang anda minta tanda tangan dan kunci yang anda masuki milik bersama! | |
− | === | + | ===Bagaimana cara sign sebuah public key=== |
− | + | Pertama, anda harus mencetak Key-ID dan sidik jari Anda (gunakan gpg -v --fingerprint <description>) dan tandatangani tulisan ini dengan tangan. Ini bisa berguna kapanpun anda harus membuktikan kepada seseorang bahwa ini adalah kunci publik ANDA. | |
− | + | Untuk menandatangani kunci publik, anda harus memiliki kunci di ring kunci anda. Cara memasukkan kunci ke dalam ring kunci anda dijelaskan di atas. Bila anda memiliki kunci dan anda yakin itu adalah tombol yang tepat, maka anda menandatanganinya sebagai berikut: | |
− | + | gpg --edit-key <description> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | gpg (GnuPG) 1.4.20; Copyright (C) 2015 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. | ||
+ | |||
+ | Secret key is available. | ||
+ | |||
+ | pub 2048R/7CDE0585 created: 2017-06-11 expires: 2017-06-21 usage: SC | ||
+ | trust: ultimate validity: ultimate | ||
+ | sub 2048R/4FF4D430 created: 2017-06-11 expires: 2017-06-21 usage: E | ||
+ | [ultimate] (1). Onno W. Purbo <onno@indo.net.id> | ||
− | + | gpg> '''sign''' | |
+ | |||
+ | pub 2048R/7CDE0585 created: 2017-06-11 expires: 2017-06-21 usage: SC | ||
+ | trust: ultimate validity: ultimate | ||
+ | Primary key fingerprint: 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 | ||
+ | |||
+ | Onno W. Purbo <onno@indo.net.id> | ||
+ | |||
+ | This key is due to expire on 2017-06-21. | ||
+ | Are you sure that you want to sign this key with your | ||
+ | key "Onno W. Purbo <onno@indo.net.id>" (87FD2C32) | ||
+ | |||
+ | Really sign? (y/N) '''y''' | ||
+ | |||
+ | You need a passphrase to unlock the secret key for | ||
+ | user: "Onno W. Purbo <onno@indo.net.id>" | ||
+ | 2048-bit RSA key, ID 87FD2C32, created 2017-06-11 | ||
+ | |||
+ | gpg> '''save''' | ||
+ | |||
+ | Setelah Anda menandatanganinya, tidak ada yang tahu tentang tanda tangan baru ini. Jadi, selanjutnya, kuncinya harus dikirim lagi ke pemilik kuncinya atau bahkan lebih baik kembali ke key-server. Hal ini dilakukan dengan cara yang persis sama seperti sebelumnya: | ||
gpg -a --send-keys <key-ID> | gpg -a --send-keys <key-ID> | ||
− | + | Pemilik yang menerima kunci publik yang baru ditandatangani itu harus memasukkannya lagi ke dalam key ring. Catatan: GPG dan key-server menyadari bahwa kunci telah disertakan sudah satu kali dan hanya akan memperbarui tanda tangan kunci! | |
− | === | + | ===Menjaga key-ring updated=== |
− | + | Seperti biasanya anda tidak tahu kapan seseorang menandatangani kunci publik yang juga berada di dalam key ring anda, penting untuk memperbarui key ring anda dari waktu ke waktu. Hal ini dilakukan dengan perintah berikut: | |
gpg --refresh-keys | gpg --refresh-keys | ||
− | + | Kemudian semua kunci anda di key-ring anda dibandingkan dengan yang ada di server utama dan jika perlu diperbarui. | |
− | ==Encrypting | + | ==Encrypting dan Decrypting== |
− | + | Anda dapat mengenkripsi file apapun dengan menggunakan perintah berikut: | |
gpg -e -a -r <description> file | gpg -e -a -r <description> file | ||
− | |||
− | + | <decription> di isi dengan Key-ID dari public key tujuan. Key-ID tersebut bisa di lihat di gpg --list-keys. Tambahkan 0x di depan key-id tersebut, misalnya 0x91AD85E1. Jika anda ingin meng-enkrip file untuk anda sendiri, makaanda harus menggunakan kunci publik anda sendiri. | |
+ | |||
+ | Switch -a memastikan bahwa file output menggunakan format ASCII bukan biner dengan extension .asc. | ||
+ | Jika tidak digunakan switch -a, maka akan di hasilkan file biner dengan extension .gpg. | ||
+ | |||
+ | Untuk mendekrip file yang di enkripsi menggunakan perintah berikut: | ||
+ | |||
+ | gpg -d -o newdecryptedfile file.asc | ||
+ | gpg -d -o newdecryptedfile file.gpg | ||
+ | |||
+ | Anda akan diminta password anda untuk membuka file. File yang didekrip disimpan dalam newdecryptedfile. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==Membuat dan Verifikasi Tanda Tangan Digital== | ||
+ | |||
+ | Membuat tanda tangan digital dari dokumen doc | ||
+ | |||
+ | gpg --output doc.sig --sign doc | ||
+ | |||
+ | Verifikasi dokumen dengan tanda tangan digital | ||
+ | |||
+ | gpg --output doc --decrypt doc.sig | ||
+ | |||
+ | |||
+ | ===Membuat Clear Sign=== | ||
+ | |||
+ | Dokumen di tanda tangan, tapi tidak di enkripsi | ||
+ | |||
+ | gpg --clearsign doc | ||
+ | |||
+ | ===Detached Signature=== | ||
+ | |||
+ | Supaya tanda bisa terpisah | ||
− | gpg - | + | gpg --output doc.sig --detach-sig doc |
− | + | Cek | |
− | + | gpg --verify doc.sig doc | |
− | + | ==How to set up pine for use with GPG== | |
Pine offers the option to include additional filers to choose from just after you press Ctrl-x for "send your mail". We will show how to set these up in a second. However there is one small problem we have to solve beforehand: GPG always uses only one interface (gpg and all details are specified in the given options. In pine however you will not see the options, but just the name of the program. So, in order to be able to specify several different filters that you can distinguish, we have to introduce artificially some new names for gpg. First you have to find out where the gpg is situated: | Pine offers the option to include additional filers to choose from just after you press Ctrl-x for "send your mail". We will show how to set these up in a second. However there is one small problem we have to solve beforehand: GPG always uses only one interface (gpg and all details are specified in the given options. In pine however you will not see the options, but just the name of the program. So, in order to be able to specify several different filters that you can distinguish, we have to introduce artificially some new names for gpg. First you have to find out where the gpg is situated: | ||
Line 277: | Line 464: | ||
Note that there are several clever programs to simplify the use of gpg with pine even more (see the links below). | Note that there are several clever programs to simplify the use of gpg with pine even more (see the links below). | ||
− | ==Security | + | ==Tip Security== |
− | GPG | + | GPG digunakan oleh ribuan orang (sampai setengah juta sudah). Oleh karena itu, penting bagi anda untuk menunjukkan penanganan tertentu saat menggunakannya. Terutama, sangat penting bahwa anda hanya menandatangani kunci di mana Anda aenar-benar yakin bahwa kunci dan orang tergabung bersama. |
− | + | Namun, hal yang paling penting yang harus diingat saat menggunakan GPG adalah anda tidak PERNAH memasukkan frase sandi secara remote (rlogin, telnet, dll; pengecualian: ssh, karena ssh mengenkripsi transmisi ke komputer lain), dan tidak pernah ada Komputer yang tidak diketahui atau tidak masuk (sangat mudah untuk mengetahui apa yang telah anda ketik, bahkan setelah anda sudah meninggalkannya!). | |
− | == | + | ==Cara menggunakan revocation certificate== |
− | + | Jika Anda ingin "menghapus" kunci anda di semua server, anda harus menggunakan sertifikat pencabutan, seperti yang dijelaskan di atas. Jika anda masih mengetahui frasa sandi anda, maka anda bisa membuatnya dengan mudah (sekali lagi lihat di atas). Jika anda lupa frasa sandi anda, maka BERHARAP anda telah membuat sebuah sertifikat pencabutan pada saat Anda membuat kunci anda, jika tidak, anda akan tersesat ... Untuk mencabut kunci anda, anda harus mengimpor sertifikat pembatalan anda ke dalam keyring Anda: | |
gpg --import <file> | gpg --import <file> | ||
− | + | Di sini, file harus berisi sertifikat pencabutan. Sekarang, anda hanya perlu mengirim kunci anda sendiri pada key-server, seperti yang dijelaskan di atas. | |
==Links to Other Websites about GPG== | ==Links to Other Websites about GPG== |
Latest revision as of 17:14, 29 January 2023
GnuPG GnuPG for daily use (a mini How-To...)
Ringkasan ini bukan deskripsi lengkap tentang GnuPG dan semua aspeknya. Namun, ini akan menjadi pendahuluan dan referensi singkat, terutama dipikirkan orang-orang yang belum pernah menggunakan GnuPG sejauh ini atau baru saja memulai. Untuk informasi lebih lanjut silahkan lihat link yang ada.
Ini berasumsi bahwa pembaca menggunakan sistem seperti UNIX dan GPG sudah terpasang pada sistem.
Apakah GPG?
Kriptografi memiliki dua tugas utama: Kriptografi harus memberikan kerahasiaan (secrecy) dan keaslian (authenticity). Kerahasiaan berarti bahwa pesan yang ditulis oleh seseorang A hanya dapat dibaca oleh orang B yang dipilih oleh A. Keaslian, di sisi lain, harus memastikan bahwa orang yang menerima pesan dapat yakin bahwa pesan ini telah ditulis oleh A dan bukan oleh orang lain.
Ada cukup banyak sistem yang memenuhi tugas ini. Namun, sistem konvensional tersebut memiliki kelemahan besar bahwa A dan B harus menukar kunci rahasia sebelumnya. Hal ini tidak hanya sangat menyebalkan, tapi bahkan terkadang tidak mungkin (misalnya jika B tinggal sangat jauh dari A dll). GPG memecahkan masalah ini dengan cara yang sangat cerdas: daripada hanya memiliki satu kunci yang dibutuhkan oleh keduanya, A dan B, setiap pengguna memiliki dua kunci, yang umum (dikenal semua orang) dan yang private (yang harus dirahasiakan). Clue-nya adalah jika sebuah pesan dienkripsi oleh kunci publik, dia hanya dapat didekripsi lagi dengan kunci privat, dan sebaliknya.
Jadi, jika A mengenkripsi pesannya dengan kunci publik B, maka tidak ada yang bisa mendekripnya lagi kecuali B karena hanya dia yang memiliki kunci privat yang sesuai. Dan, di sisi lain, jika A mengenkripsi pesannya dengan kunci pribadinya, maka hanya kunci publik A yang bisa mendekrip pesannya lagi, yang diketahui B. Tapi karena hanya A yang dapat mengenkripsi pesan sedemikian rupa sehingga Kunci publik A mendekripnya lagi, B dapat memastikan bahwa pesan tersebut telah ditulis oleh A.
Jadi, jika A melakukan keduanya, mengenkripsi dengan kunci privatnya dan kunci publik B, maka hanya B yang bisa membaca pesannya dan B pasti akan menjadi A yang telah mengirim pesannya.
Mulai
Untuk memulai, anda harus membuat sepasang kunci publik dan private anda masing-masing, dan anda harus menjadikan kunci publik diketahui sebanyak mungkin orang. Untuk yang terakhir, ada server kunci besar yang didistribusikan ke seluruh dunia yang terhubung satu sama lain. Jadi, jika Anda mengirim kunci anda ke satu server, server ini akan secara otomatis menginformasikan semua hal lain tentang kunci anda. Dan jika anda memerlukan kunci siapa pun, anda mungkin "meminta" server untuk itu. Cara bagaimana melakukan ini akan dijelaskan di bawah ini.
Membuat pasangan kunci
Untuk membuat pasangan kunci, anda harus mengambil shell dan menjalankan perintah berikut:
gpg --full-generate-key gpg --gen-key
gpg (GnuPG) 1.4.20; Copyright (C) 2015 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. gpg: directory `/home/onno/.gnupg' created gpg: new configuration file `/home/onno/.gnupg/gpg.conf' created gpg: WARNING: options in `/home/onno/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/home/onno/.gnupg/secring.gpg' created gpg: keyring `/home/onno/.gnupg/pubring.gpg' created 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) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) Requested keysize is 2048 bits 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) 10 Key does not expire at all Is this correct? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" Real name: Onno W. Purbo Email address: onno@indo.net.id Comment: You selected this USER-ID: "Onno W. Purbo <onno@indo.net.id>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key.
gpg: checking the trustdb gpg: public key of ultimately trusted key 615DA990 not found gpg: public key of ultimately trusted key D01586E7 not found gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 4 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 4u gpg: next trustdb check due at 2017-06-21 pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] Key fingerprint = 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 uid Onno W. Purbo <onno@indo.net.id> sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21]
Sekarang Anda memiliki direktori baru, yang disebut .gnupg, dan private dan public key. Untuk memeriksa ini, ketik:
gpg --list-keys <description>
Di sini, dan juga di bab-bab berikut, kami bermaksud dengan <description> nama atau alamat email Anda atau bagian darinya. Jadi misalnya jika User-ID "Stefan M. Moser <stefan.moser@switzerland.NOSPAM.org>", maka <description> bisa seperti
Stefan Moser stefan stefan.moser stefan.moser@switzerland.NOSPAM.org stef oser
Jika Anda ingin daftar semua kunci anda, ketik tanpa argumen, yaitu,
gpg --list-keys
Dalam kasus saya jawaban dari shell terlihat sebagai berikut:
/home/onno/.gnupg/pubring.gpg ----------------------------- pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] uid Onno W. Purbo <onno@indo.net.id> sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21]
Sebenarnya, anda akan mendapatkan info lebih lanjut jika anda menyertakan opsi -v dalam perintah anda, dan yang lebih baik adalah sebagai berikut:
gpg -v --fingerprint <description>
Yang memberikan output seperti:
gpg -v --fingerprint
gpg: using PGP trust model /home/onno/.gnupg/pubring.gpg ----------------------------- pub 2048R/7CDE0585 2017-06-11 [expires: 2017-06-21] Key fingerprint = 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 uid Onno W. Purbo <onno@indo.net.id> sub 2048R/4FF4D430 2017-06-11 [expires: 2017-06-21]
Ini menunjukkan bahwa sebenarnya anda sudah memiliki dua pasang kunci, namun hal ini seharusnya tidak mengganggu anda karena kunci ini termasuk dalam satu kesatuan dan dapat dipandang sebagai satu-satunya. Key-ID (tambang 91AD85E1) bersama dengan sidik jari (10x4 digit) secara unik menentukan kunci anda. Selanjutnya, ini menunjukkan bahwa sejauh ini anda telah menandatangani kunci ini. Apa artinya ini, kita akan lihat nanti. Sebagai langkah selanjutnya, sangat penting untuk menghasilkan sertifikat pencabutan.
Revocation-Certificate
Sekarang, anda telah membuat sebuah kunci. Tapi bagaimana cara memusnahkannya lagi? Mungkin anda berpikir bahwa ini tidak penting pada saat ini, dan pada dasarnya anda benar. Namun, ada masalah: dalam beberapa bulan atau tahun banyak orang akan tahu kunci publik Anda. Jadi, jika anda tidak ingin menggunakan kunci ini lagi (mungkin karena anda lupa kalimat rahasianya, atau karena ada yang menemukannya dll.), Anda harus memberi tahu semua orang. Jika tidak, anda akan terus menerima email yang dienkripsi dengan kunci ini. Untuk melakukannya, ada sertifikat yang disebut pencabutan. Jika sertifikat ini dikirim ke server kunci, kunci tersebut secara definitif "hancur". Alasan mengapa saya memberi tahu anda sekarang, adalah sebagai berikut: hanya mungkin membuat surat pencabutan jika anda mengetahui kalimat rahasia tersebut. Jadi jika anda lupa, maka anda tidak bisa menggunakan kunci anda lagi, tapi anda juga tidak bisa menghancurkannya. Oleh karena itu, sangat penting bahwa Anda mempersiapkan sertifikat ini SEKARANG karena sekarang Anda masih harus mengetahui kalimat rahasia anda, bukan?
Anda harus melakukan langkah-langkah berikut:
gpg -a --gen-revoke <description> gpg -a --gen-revoke onno
sec 2048R/87FD2C32 2017-06-11 Onno W. Purbo <onno@indo.net.id> Create a revocation certificate for this key? (y/N) y Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 1 Enter an optional description; end it with an empty line: > Reason for revocation: Key has been compromised (No description given) Is this okay? (y/N) y You need a passphrase to unlock the secret key for user: "Onno W. Purbo <onno@indo.net.id>" 2048-bit RSA key, ID 87FD2C32, created 2017-06-11 Revocation certificate created.
Sekarang sertifikat pencabutan dihasilkan. Seharusnya terlihat seperti berikut ini
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 Comment: A revocation certificate should follow iQEfBCABAgAJBQJZPRL6Ah0CAAoJENEb5DCH/Swyi3YIAKSECD6rSaFqMB9oY7uq iUCfSUs9Aw/IwcBpZjvbxs5Rn1HrwGi2XJVcYZCw+5Ve6fov8UDITS34+WBiwe9A 1ZbdNPAMrBaXhUiwymSa7BGRhudE0kn+1lIetrqtsMZYyZHXM0c4gBHcLRcpTaMk CjjaYVvFZwzktOrGWdSnu6cNSYK5Z1y4frr5A9rMdPVtlHDHyoJLhyjsuFMsMfjb Xj5U8z9SOG3yvdJ+DUsA797OjKqxj3CIYzyLYOeIg1ICL2yrxPbbpq0qsd/wi1rz iUjVPBohwK2qffycXRbIWHtcZpTfMLeHmvORq1CpMQ2vjCtFWo7/Fe51sTyPRlUe 0yE= =x3w2 -----END PGP PUBLIC KEY BLOCK-----
Salin beberapa baris ini ke dalam file dan simpan di tempat yang aman. Terbaik di floppy disk atau mencetaknya dan menyimpan kertas di tempat yang aman.
Mempublikasi public key
Sekarang, anda telah mencapai langkah di mana anda bisa menjadikan public key anda menjadi public. Cara termudah melakukannya adalah dengan menggunakan salah satu dari banyak key-server. Server yang anda gunakan tidak terlalu penting karena terhubung dan saling memperbarui setidaknya setiap hari. Misalnya anda bisa menggunakan server di MIT:
gpg --keyserver=x-hkp://pgp.mit.edu -a --send-keys <key-ID> gpg --keyserver=https://keys.openpgp.org:443 -a --send-keys <key-ID>
Karena saat ini anda hanya memiliki kunci sendiri di keyring anda, anda juga bisa menghapus deskripsi. Kemungkinan kedua adalah menggunakan antarmuka web. Di sana anda harus menyalin-paste kunci anda. Agar bisa menyalin kunci anda, berikut perintahnya:
gpg -a --export <description>
Sekarang, kunci Anda sudah public. Kami akan menguji ini sebentar lagi. Ada satu fitur kecil yang bagus: daripada setiap kali memasukan keyserver, akan lebih mudah jika Anda mendefinisikannya di file konfigurasi anda. Edit file .gnupg/gpg.conf
vi .gnupg/gpg.conf
Masukan entry
keyserver x-hkp://pgp.mit.edu
Jika Anda telah melakukannya, Anda dapat memeriksa, jika kunci Anda sudah tersedia:
gpg --search-keys <description>
Exchange Keys
gpg --list-keys
/users/alice/.gnupg/pubring.gpg --------------------------------------- pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org> sub 1024g/78E9A8FA 1999-06-04
Exporting a public key
To send your public key to a correspondent you must first export it. The command-line option --export is used to do this. It takes an additional argument identifying the public key to export. As with the --gen-revoke option, either the key ID or any part of the user ID may be used to identify the key to export.
gpg --output alice.gpg --export alice@cyb.org
The key is exported in a binary format, but this can be inconvenient when the key is to be sent though email or published on a web page. GnuPG therefore supports a command-line option --armor[1] that that causes output to be generated in an ASCII-armored format similar to uuencoded documents. In general, any output from GnuPG, e.g., keys, encrypted documents, and signatures, can be ASCII-armored by adding the --armor option.
gpg --armor --export alice@cyb.org -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v0.9.7 (GNU/Linux) Comment: For info see http://www.gnupg.org
[...] -----END PGP PUBLIC KEY BLOCK-----
Importing a public key
A public key may be added to your public keyring with the --import option.
alice% gpg --import blake.gpg
gpg: key 9E98BC16: public key imported gpg: Total number processed: 1 gpg: imported: 1
alice% gpg --list-keys
/users/alice/.gnupg/pubring.gpg --------------------------------------- pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org> sub 1024g/78E9A8FA 1999-06-04
pub 1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org> sub 1024g/5C8CBD41 1999-06-04
Once a key is imported it should be validated. GnuPG uses a powerful and flexible trust model that does not require you to personally validate each key you import. Some keys may need to be personally validated, however. A key is validated by verifying the key's fingerprint and then signing the key to certify it as a valid key. A key's fingerprint can be quickly viewed with the --fingerprint command-line option, but in order to certify the key you must edit it.
alice% gpg --edit-key blake@cyb.org
pub 1024D/9E98BC16 created: 1999-06-04 expires: never trust: -/q sub 1024g/5C8CBD41 created: 1999-06-04 expires: never (1) Blake (Executioner) <blake@cyb.org>
Command> fpr pub 1024D/9E98BC16 1999-06-04 Blake (Executioner) <blake@cyb.org> Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16
A key's fingerprint is verified with the key's owner. This may be done in person or over the phone or through any other means as long as you can guarantee that you are communicating with the key's true owner. If the fingerprint you get is the same as the fingerprint the key's owner gets, then you can be sure that you have a correct copy of the key.
After checking the fingerprint, you may sign the key to validate it. Since key verification is a weak point in public-key cryptography, you should be extremely careful and always check a key's fingerprint with the owner before signing the key.
Command> sign pub 1024D/9E98BC16 created: 1999-06-04 expires: never trust: -/q Fingerprint: 268F 448F CCD7 AF34 183E 52D8 9BDE 1A08 9E98 BC16
Blake (Executioner) <blake@cyb.org> Are you really sure that you want to sign this key with your key: "Alice (Judge) <alice@cyb.org>"
Really sign? Once signed you can check the key to list the signatures on it and see the signature that you have added. Every user ID on the key will have one or more self-signatures as well as a signature for each user that has validated the key.
Command> check uid Blake (Executioner) <blake@cyb.org> sig! 9E98BC16 1999-06-04 [self-signature] sig! BB7576AC 1999-06-04 Alice (Judge) <alice@cyb.org>
Personal Key-Ring Anda
Agar bisa membaca sandi dan mengkodekan kiriman dengan kunci publik pengguna lain, penting bagi anda untuk memiliki kunci tersebut. Karena tidak terlalu praktis untuk meminta setiap kali kunci-server untuk kunci semacam itu, anda tetap menyimpan kunci anda sendiri dengan semua kunci dari orang-orang yang sering anda ajak berkomunikasi.
At the moment, I guess the only key in your key ring is the one you just have created. If you are not sure about that, you may check it, as seen above, by:
gpg -v --list-keys
Menambahkan key ke personal key-ring anda
Jika anda memiliki file dengan kunci publik maka anda dapat menambahkan kunci ini ke ring kunci anda dengan cara berikut:
gpg --import <file>
Namun, lebih mudah untuk mendapatkan kunci langsung dari key-server: gunakan kembali perintahnya
gpg --search-keys <description>
Dan pilih di daftar kunci yang diinginkan.
Membuang key dari personal key-ring
Tentu saja anda juga dapat menghapus kunci apapun dari ring kunci anda:
gpg --delete-key <description>
<Description> bisa berupa nama atau alamat email (atau bagiannya) dari kunci yang tidak dibutuhkan lagi. Jika anda mencoba untuk menghapus kunci di mana anda juga memiliki kunci rahasia, maka anda harus menghapus kunci rahasia pertama dengan
gpg --delete-secret-keys
Trusted and Untrusted Key and Signing Key
Seperti disebutkan di atas GPG memecahkan masalah kebutuhan bertukar kunci terlebih dahulu. Sebagai pengganti kunci publik dan pribadi diperkenalkan. Namun, dengan melakukan hal itu, sebuah masalah baru muncul: Jika saya menerima (oleh keyserver, atau surat dll) kunci publik dari seseorang, bagaimana saya tahu bahwa kunci ini benar-benar milik orang yang dikatakan bahwa itu milik? Mungkin saja ada orang yang membuat sebuah kunci dengan nama saya dan menggunakannya dan tidak ada yang akan menyadari bahwa itu bukan saya!
Satu-satunya solusi untuk masalah ini adalah, bahwa saya harus sangat berhati-hati dalam menerima kunci lain, yaitu, saya harus yakin bahwa kunci dan orang itu tergabung bersama. Ini dapat diperiksa dengan membandingkan Key-ID dan sidik jari (lihat di atas). Ini tidak terlalu memuaskan, karena anda akan setuju. Oleh karena itu, seseorang telah mencari ide yang lebih baik - dan telah menemukannya: Saya tidak perlu memeriksa apakah kunci dan milik orang sama, selama ada beberapa teman saya (yang saya percaya) yang mengkonfirmasi Kunci tertentu! Dan ini dilakukan dengan "key-signing". Jika saya menandatangani kunci publik orang lain (dengan menggunakan kunci saya), maka saya mengonfirmasikan bahwa kunci ini adalah milik orang yang seharusnya. Atau sebaliknya: Jika saya menerima kunci publik seseorang yang tidak saya kenal, tapi ketahuilah bahwa kuncinya ditandatangani oleh beberapa orang yang saya tahu, maka saya mungkin yakin bahwa kunci ini juga merupakan kunci yang benar yang mungkin saya menggunakan.
Oleh karena itu, penting bahwa kunci anda ditandatangani oleh sebanyak mungkin orang, dan anda mungkin juga kadang-kadang ditanya apakah anda akan memberi tanda kunci. Lakukan, tapi lakukan hanya jika anda benar-benar yakin bahwa orang yang anda minta tanda tangan dan kunci yang anda masuki milik bersama!
Bagaimana cara sign sebuah public key
Pertama, anda harus mencetak Key-ID dan sidik jari Anda (gunakan gpg -v --fingerprint <description>) dan tandatangani tulisan ini dengan tangan. Ini bisa berguna kapanpun anda harus membuktikan kepada seseorang bahwa ini adalah kunci publik ANDA.
Untuk menandatangani kunci publik, anda harus memiliki kunci di ring kunci anda. Cara memasukkan kunci ke dalam ring kunci anda dijelaskan di atas. Bila anda memiliki kunci dan anda yakin itu adalah tombol yang tepat, maka anda menandatanganinya sebagai berikut:
gpg --edit-key <description>
gpg (GnuPG) 1.4.20; Copyright (C) 2015 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. Secret key is available. pub 2048R/7CDE0585 created: 2017-06-11 expires: 2017-06-21 usage: SC trust: ultimate validity: ultimate sub 2048R/4FF4D430 created: 2017-06-11 expires: 2017-06-21 usage: E [ultimate] (1). Onno W. Purbo <onno@indo.net.id>
gpg> sign pub 2048R/7CDE0585 created: 2017-06-11 expires: 2017-06-21 usage: SC trust: ultimate validity: ultimate Primary key fingerprint: 2EA1 39C2 FB53 A840 DAD9 AD29 2295 76B3 7CDE 0585 Onno W. Purbo <onno@indo.net.id> This key is due to expire on 2017-06-21. Are you sure that you want to sign this key with your key "Onno W. Purbo <onno@indo.net.id>" (87FD2C32) Really sign? (y/N) y You need a passphrase to unlock the secret key for user: "Onno W. Purbo <onno@indo.net.id>" 2048-bit RSA key, ID 87FD2C32, created 2017-06-11 gpg> save
Setelah Anda menandatanganinya, tidak ada yang tahu tentang tanda tangan baru ini. Jadi, selanjutnya, kuncinya harus dikirim lagi ke pemilik kuncinya atau bahkan lebih baik kembali ke key-server. Hal ini dilakukan dengan cara yang persis sama seperti sebelumnya:
gpg -a --send-keys <key-ID>
Pemilik yang menerima kunci publik yang baru ditandatangani itu harus memasukkannya lagi ke dalam key ring. Catatan: GPG dan key-server menyadari bahwa kunci telah disertakan sudah satu kali dan hanya akan memperbarui tanda tangan kunci!
Menjaga key-ring updated
Seperti biasanya anda tidak tahu kapan seseorang menandatangani kunci publik yang juga berada di dalam key ring anda, penting untuk memperbarui key ring anda dari waktu ke waktu. Hal ini dilakukan dengan perintah berikut:
gpg --refresh-keys
Kemudian semua kunci anda di key-ring anda dibandingkan dengan yang ada di server utama dan jika perlu diperbarui.
Encrypting dan Decrypting
Anda dapat mengenkripsi file apapun dengan menggunakan perintah berikut:
gpg -e -a -r <description> file
<decription> di isi dengan Key-ID dari public key tujuan. Key-ID tersebut bisa di lihat di gpg --list-keys. Tambahkan 0x di depan key-id tersebut, misalnya 0x91AD85E1. Jika anda ingin meng-enkrip file untuk anda sendiri, makaanda harus menggunakan kunci publik anda sendiri.
Switch -a memastikan bahwa file output menggunakan format ASCII bukan biner dengan extension .asc. Jika tidak digunakan switch -a, maka akan di hasilkan file biner dengan extension .gpg.
Untuk mendekrip file yang di enkripsi menggunakan perintah berikut:
gpg -d -o newdecryptedfile file.asc gpg -d -o newdecryptedfile file.gpg
Anda akan diminta password anda untuk membuka file. File yang didekrip disimpan dalam newdecryptedfile.
Membuat dan Verifikasi Tanda Tangan Digital
Membuat tanda tangan digital dari dokumen doc
gpg --output doc.sig --sign doc
Verifikasi dokumen dengan tanda tangan digital
gpg --output doc --decrypt doc.sig
Membuat Clear Sign
Dokumen di tanda tangan, tapi tidak di enkripsi
gpg --clearsign doc
Detached Signature
Supaya tanda bisa terpisah
gpg --output doc.sig --detach-sig doc
Cek
gpg --verify doc.sig doc
How to set up pine for use with GPG
Pine offers the option to include additional filers to choose from just after you press Ctrl-x for "send your mail". We will show how to set these up in a second. However there is one small problem we have to solve beforehand: GPG always uses only one interface (gpg and all details are specified in the given options. In pine however you will not see the options, but just the name of the program. So, in order to be able to specify several different filters that you can distinguish, we have to introduce artificially some new names for gpg. First you have to find out where the gpg is situated:
which gpg
You will get an answer that could look, e.g., like /usr/sepp/bin/gpg. Use this path to generate the following aliases in a reasonable directory like, e.g., in your bin/:
cd yourhomedirectory/bin ln -s /usr/sepp/bin/gpg encrypt ln -s /usr/sepp/bin/gpg sign ln -s /usr/sepp/bin/gpg gpg
Of course use the path you have found above for the path of gpg! Now, you can set up pine by copying the following lines into .pinerc at the right place:
display-filters=_LEADING("-----BEGIN PGP MESSAGE-----")_ yourhomedirectory/bin/gpg --decrypt, _LEADING("-----BEGIN PGP SIGNED MESSAGE-----")_ yourhomedirectory/bin/gpg --decrypt
sending-filters=yourhomedirectory/bin/sign --clearsign, yourhomedirectory/bin/encrypt -a --encrypt -r _RECIPIENTS_ -r moser@quark.ch, yourhomedirectory/bin/gpg -a -s --encrypt -r _RECIPIENTS_ -r moser@quark.ch
yourhomedirectory/ has to be replaced by the path to your home-directory, and moser@quark.ch with your own key description. Now everything should work.
Sending emails with pine
With pine you write your mail as usual. When you want to send it, you have to press Ctrl-x (also as usual). However now, you can choose so-called "filters". Normal is "unfiltered". By pressing Ctrl-n or Ctrl-p you can get to "gpg", "encrypt", and "sign". The first filter will encrypt and sign your mail, the second only encrypt and the third only sign. Pine will automatically figure out to whom you send the mail and use this person's public key (if it is in your key-ring, otherwise there will be an error!). Just try it, it is really easy!
Receiving emails with pine
Receiving mails with pine is even easier: Everything is done automatically. You only have to read your mails as usual, and in case an encrypted message is coming in, you will be asked for your passphrase automatically.
A comment about pine
You will have noticed that the setup of the pine filters is such that every mail is encrypted both with the recipient's key and with your own key. The reason behind this is the following: if you only used the recipient's key then the message that is stored in your "Sent"-folder is encrypted such that you will never be able to decrypt it anymore! So the additional encryption with your own public-key makes sure that you will be able to read your own email also after the encryption process. (Many thanks to Clemens Hofmann for this hint!)
Note that there are several clever programs to simplify the use of gpg with pine even more (see the links below).
Tip Security
GPG digunakan oleh ribuan orang (sampai setengah juta sudah). Oleh karena itu, penting bagi anda untuk menunjukkan penanganan tertentu saat menggunakannya. Terutama, sangat penting bahwa anda hanya menandatangani kunci di mana Anda aenar-benar yakin bahwa kunci dan orang tergabung bersama.
Namun, hal yang paling penting yang harus diingat saat menggunakan GPG adalah anda tidak PERNAH memasukkan frase sandi secara remote (rlogin, telnet, dll; pengecualian: ssh, karena ssh mengenkripsi transmisi ke komputer lain), dan tidak pernah ada Komputer yang tidak diketahui atau tidak masuk (sangat mudah untuk mengetahui apa yang telah anda ketik, bahkan setelah anda sudah meninggalkannya!).
Cara menggunakan revocation certificate
Jika Anda ingin "menghapus" kunci anda di semua server, anda harus menggunakan sertifikat pencabutan, seperti yang dijelaskan di atas. Jika anda masih mengetahui frasa sandi anda, maka anda bisa membuatnya dengan mudah (sekali lagi lihat di atas). Jika anda lupa frasa sandi anda, maka BERHARAP anda telah membuat sebuah sertifikat pencabutan pada saat Anda membuat kunci anda, jika tidak, anda akan tersesat ... Untuk mencabut kunci anda, anda harus mengimpor sertifikat pembatalan anda ke dalam keyring Anda:
gpg --import <file>
Di sini, file harus berisi sertifikat pencabutan. Sekarang, anda hanya perlu mengirim kunci anda sendiri pada key-server, seperti yang dijelaskan di atas.
Links to Other Websites about GPG
This introduction is quite short and of course does not contain all information about using GPG, neither about GPG itself. If you like to read more, here are a few links:
- The official GnuPG Homepage
- The GnuPG Manual
- MIT PGP Key Server
- ETH PGP Key Server
- pgp4pine
- Pine Privacy Guard
- PGP Envelope
- PinePgp
Furthermore, the man-page is also very helpful:
man gpg
In case you know some more useful links, or have even written a site about GPG, please mail to !
This page is completely new. Therefore, I would be very happy to hear of you! Please, send any comments, suggestions about paragraphs that are not clear, any mistakes or also positive feedback to !
-||- _|_ _|_ / __|__ Stefan M. Moser [-] --__|__ /__\ /__ Associate Professor at National Chiao _|_ -- --|- _ / / Tung University (NCTU), Hsinchu, Taiwan / \ [] \| |_| / \/ Web: http://moser.cm.nctu.edu.tw/