Gentoo Logo

Panduan Pengguna GnuPG Gentoo

Daftar Isi:

1.  Pendahuluan

Apa yang anda dapatkan dari panduan ini

Panduan ini menganggap anda sudah mengenal kriptografi kunci publik, enkripsi, dan tanda tangan digital. Jika belum, loncatlah ke Kriptografi Kunci Publik atau bacalah Buku Pegangan GnuPG, bab 2, kemudian kembali lagi.

Panduan ini akan mengajarkan anda cara menginstal GnuPG, cara menciptakan pasangan kunci, cara menambahkan kunci ke keyring, cara mengirimkan kunci publik ke server kunci dan cara menandatangani, mengenkripsi, memeriksa atau menerjemahkan pesan yang anda kirim atau terima. Anda juga akan mempelajari cara mengenkripsi file di komputer anda agar orang lain tidak dapat membacanya.

Instalasi software yang diperlukan

Paling tidak anda harus meng-emerge gnupg. Saat ini sudah banyak aplikasi yang mendukung penggunaan gpg, jadi ada baiknya anda menambahkan crypt pada variabel flag USE. Jika anda ingin menggunakan klien e-mail dengan dukungan gnupg, anda dapat menggunakan pine (emerge pinepgp), mutt (emerge mutt), Mozilla Thunderbird (emerge mozilla-thunderbird), evolution (evolution adalah aplikasi GNOME yang mirip dengan Microsoft Outlook) dan KMail dari KDE (KMail merupakan bagian dari paket kdepim).

Anda mungkin akan tertarik dengan Kgpg jika anda menggunakan KDE. Dengan program kecil ini anda dapat mengimpor kunci-kunci dari file ASCII, menandatangani kunci hasil impor, mengekspor kunci dan masih banyak fitur lainnya.

2.  Menciptakan kunci dan menambahkannya ke koleksi kunci publik

Menciptakan kunci

Untuk menciptakan kunci anda sendiri, jalankan gpg --gen-key. Kali pertama anda menjalankannya, beberapa direktori akan diciptakan; jalankan kembali untuk menciptakan kunci:

Daftar Kode 2.1: Proses pembuatan kunci

$ gpg --gen-key
gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
   (5) RSA (sign only)
   Your selection? 1

Di sini anda dapat memilih tipe kunci yang ingin anda gunakan. Kebanyakan pengguna memilih DSE anda ElGamala yang merupakan default. Kemudian tentukan ukuran kunci - ingat, semakin besar kunci anda akan semakin baik, tetapi jangan gunakan kunci DSA/ElGamal yang lebih besar dari 2048. Biasanya 1024 sudah cukup untuk e-mail biasa.

Selanjutnya masa berlaku. Lebih kecil lebih baik, tetapi kebanyakan pengguna boleh menggunakan kunci yang akan tetap berlaku untuk 2 sampai 3 tahun.

Daftar Kode 2.2: Menentukan ukuran kunci

DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
    What keysize do you want? (1024) 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) 0
Key does not expire at all

Sekarang saatnya untuk memasukkan beberapa informasi tentang diri anda. Jika anda ingin mengirimkan kunci publik anda kepada orang lain, anda harus menggunakan alamat e-mail asli anda di sini.

Daftar Kode 2.3: Memasukkan informasi pribadi

Is this correct (y/n)? y
                        
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: John Doe
Email address: john@nowhere.someplace.flick
Comment: The Real John Doe
You selected this USER-ID:
"John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O 
You need a Passphrase to protect your secret key.    

Enter passphrase: 

Sekarang ketik kata sandi anda dua kali. Akan baik sekali jika anda menggunakan kata sandi yang rumit. Jika ada orang yang berhasil mencuri kunci pribadi anda dan menjebol kata sandinya, ia akan dapat mengirimkan e-mail yang ditandatangani oleh "anda" sehingga penerima akan percaya bahwa e-mail tersebut benar-benar berasal dari anda.

Selanjutnya, GnuPG akan menciptakan kunci anda. Gerakkan mouse atau putar MP3 untuk menciptakan data acak agar proses ini lebih cepat selesai.

Menciptakan sertifikat pembatalan

Penting: Bagian ini sangat penting dan anda harus melakukannya SEKARANG JUGA!

Setelah menciptakan kunci, anda harus menciptakan sertifikat pembatalan. Dengan begini anda dapat membatalkan kunci anda jika terjadi hal-hal yang tidak diinginkan dengan kunci anda (mis. ada orang yang berhasil mencuri kunci pribadi/kata sandi anda).

Daftar Kode 2.4: Menciptakan sertifikat pembatalan

$ gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

$ gpg --output revoke.asc --gen-revoke 75447B14

sec  1024D/75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhere.someplace.flick>

Create a revocation certificate for this key? 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:
> Sistem jebol dan kunci serta passwordnya tercuri
>
Reason for revocation: Key has been compromised
Someone cracked me and got my key and passphrase
Is this okay? y

You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

Perintah gpg --list-keys menampilkan daftar kunci yang tersedia. Anda dapat menggunakannya untuk melihat ID kunci anda agar anda dapat menciptakan sertifikat pembatalan. Sekarang saat yang tepat untuk menyalin semua isi direktori .gnupg dan sertifikat pembatalan (yang dikurung dengan ASCII - revoke.asc) pada media yang aman (seperti dua buah floppy atau satu CD-R yang disimpan di tempat aman). Jangan lupa bahwa revoke.asc dapat anda gunakan untuk membatalkan kunci anda dan mengkadaluarsakannya.

Catatan: Jika anda memiliki banyak alamat e-mail yang ingin anda gunakan dengan kunci ini, jalankan gpg --edit-key ID_KUNCI lalu gunakan perintah adduid. Anda akan ditanyakan tentang nama, e-mail dan komentar untuk ID kedua yang ingin anda gunakan.

Mengekspor kunci

Untuk mengekspor kunci, ketik gpg --armor --output john.asc --export john@nowhere.someplace.flick. Anda juga hampir selalu dapat menggunakan ID kunci atau sesuatu yang mengenali kunci (di sini kita menggunakan alamat e-mail). John sekarang sudah memiliki file john.asc yang boleh ia kirimkan kepada teman-temannya, atau untuk disimpan di sebuah website agar orang lain dapat berkomunikasi secara aman dengannya.

Mengimpor kunci

Untuk menambahkan file pada koleksi kunci publik, pertama anda harus mengimpornya, kemudian memeriksa sidik jarinya. Setelah memeriksa sidik jari, anda harus memvalidasinya.

Catatan: Anda harus berhati-hati ketika memeriksa kunci. Ini adalah salah satu kelemahan dari kriptografi kunci publik.

Sekarang kita akan menambahkan kunci publik Luis Pinto (teman penulis) pada koleksi kunci kita. Setelah menelpon dan memintanya untuk mengirimkan sidik jari kuncinya, Penulis dapat membandingkan sidik jari dengan output dari perintah fpr. Karena kunci ini sah, penulis menambahkannya ke koleksi kunci. Pada contoh ini, kunci Luis akan kadaluarsa pada 2003-12-01 jadi penulis ditanyakan apakah tanda tangan penulis pada kuncinya akan kadaluarsa pada waktu yang sama.

Daftar Kode 2.5: Mengimpor dan menandatangani kunci

$ gpg --import luis.asc
gpg: key 462405BB: public key imported
gpg: Total number processed: 1
gpg:               imported: 1
$ gpg --list-keys
/home/humpback/.gnupg/pubring.gpg
---------------------------------
pub  1024D/75447B14 2002-12-08 John Doe (The Real John Doe) <john@nowhere.someplace.flick>
sub  2048g/96D6CDAD 2002-12-08

pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@student.dei.uc.pt>
uid                            Luis Pinto <lmpinto@dei.uc.pt>
sub  4096g/922175B3 2002-12-01 [expires: 2003-12-01]

$ gpg --edit-key lmpinto@dei.uc.pt
gpg (GnuPG) 1.0.7; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.


gpg: checking the trustdb
gpg: checking at depth 0 signed=0 ot(-/q/n/m/f/u)=0/0/0/0/0/1
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
sub  4096g/922175B3  created: 2002-12-01 expires: 2003-12-01
(1)  Luis Pinto <lmpinto@dei.uc.pt>
(2). Luis Pinto <lmpinto@student.dei.uc.pt>

Command> fpr
pub  1024D/462405BB 2002-12-01 Luis Pinto <lmpinto@dei.uc.pt>
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB
     
Command> sign
Really sign all user IDs? y
                           
pub  1024D/462405BB  created: 2002-12-01 expires: 2003-12-01 trust: -/-
             Fingerprint: F056 3697 ADE3 CF98 B80B  8494 0AD3 E57B 4624 05BB

     Luis Pinto <lmpinto@dei.uc.pt>
     Luis Pinto <lmpinto@student.dei.uc.pt>

This key is due to expire on 2003-12-01.
Do you want your signature to expire at the same time? (Y/n) Y
How carefully have you verified the key you are about to sign actually belongs
to the person named above?  If you don't know what to answer, enter "0".

   (0) I will not answer. (default)
   (1) I have not checked at all.
   (2) I have done casual checking.
   (3) I have done very careful checking.

   Your selection? 3
Are you really sure that you want to sign this key
with your key: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"

I have checked this key very carefully.

Really sign? y
              
You need a passphrase to unlock the secret key for
user: "John Doe (The Real John Doe) <john@nowhere.someplace.flick>"
1024-bit DSA key, ID 75447B14, created 2002-12-08

Command> check
uid  Luis Pinto <lmpinto@dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe
uid  Luis Pinto <lmpinto@student.dei.uc.pt>
sig!3       462405BB 2002-12-01   [self-signature]
sig!3       75447B14 2002-12-08   John Doe (The Real John Doe) <john@nowhe

3.  Bertukar kunci dengan server kunci

Mengirimkan kunci ke server kunci

Setelah anda memiliki kunci anda sendiri, kiranya ide baik untuk mengirimkannya ke server kunci dunia. Terdapat banyak sekali server kunci dan kebanyakannya saling menukarkan kunci. Pada contoh ini kita akan mengirimkan kunci Luis ke server subkeys.pgp.net. Server ini menggunakan HTTP. Jadi jika anda menggunakan proxy untuk lalu lintas HTTP, jangan lupa atur terlebih dahulu (export http_proxy=http://proxy_host:port/). Perintah untuk mengirimkan kunci adalah: gpg --keyserver subkeys.pgp.net --keyserver-options honor-http-proxy --send-key 75447B14 di mana 75447B14 adalah ID kunci. Jika anda tidak menggunakan proxy HTTP, anda dapat menghapus --keyserver-options honor-http-proxy.

Anda juga dapat mengirimkan kunci milik orang lain yang telah anda tandatangani ke server. Kita dapat telah mengirimkan kunci Luis Pinto ke server kunci. Dengan cara ini, seseorang yang kita percayai dapat menggunakan tandatangan yang telah anda berikan untuk kunci Luis yang anda percayai.

Mengambil kunci dari server kunci

Sekarang kita akan mencari kunci milik Gustavo Felisberto dan menambahkannya ke koleksi kunci milik John Doe (jika anda tidak menyadarinya, Gustavo Felisberto adalah penulis sendiri :) ).

Daftar Kode 3.1: Mencari kunci di server kunci

$ gpg --keyserver subkeys.pgp.net --keyserver-options honor-http-proxy --search-keys humpback@felisberto.net
gpg: searching for "humpback@felisberto.net" from HKP server subkeys.pgp.net
Keys 1-5 of 5 for "humpback@felisberto.net"
(1)Gustavo Felisberto (apt-get install anarchy) <humpback@felisberto.net> 1024
  created 2002-12-06, key B9F2D52A
(2)Gustavo Felisberto <humpback@altavista.net> 1024
  created 1999-08-03, key E97E0B46
(3)Gustavo A.S.R. Felisberto <humpback@altavista.net> 1024
  created 1998-12-10, key B59AB043
(4)Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
  created 1998-08-26, key 39EB133D
(5)Gustavo Adolfo Silva Ribeiro Felisberto <humpback@altavista.net> 1024
  created 1998-06-14, key AE02AF87
  Enter number(s), N)ext, or Q)uit >1
gpg: requesting key B9F2D52A from HKP keyserver subkeys.pgp.net
gpg: key B9F2D52A: public key imported
gpg: Total number processed: 1
gpg:               imported: 1

Seperti yang dapat anda lihat dari respon server, penulis telah mengirimkan beberapa kunci ke server, tetapi untuk saat ini hanya menggunakan B9F2D52A. Sekarang John Doe dapat menandatanganinya jika ia mempercayai kunci tersebut.

4.  Menggunakan Agen GPG

Apa itu Agen GPG?

Pada beberapa kasus, ketika bekerja dengan berbagai aplikasi di mana anda sering menggunakan kunci GPG, anda harus berkali-kali mengetaikkan kata sandi. Banyak aplikasi yang telah mendukung mekanisme penyimpanan kata sandi untuk mempermudah penggunanya. Namun cara ini tetap tidak dapat digunakan untuk banyak aplikasi sekaligus (seberapa aman 'tuh?) dan memaksa aplikasi lain untuk meminta anda kembali memasukkan kata sandi.

Agen GPG adalah aplikasi terpisah yang digunakan oleh GPG untuk menyimpan kata sandi dengan cara yang standar dan aman. Agen ini mengizinkan berbagai aplikasi untuk menggunakan GPG secara bersamaan: Jika anda telah mengetikkan kata sandi anda untuk sebuah aplikasi, aplikasi lainnya dapat menggunakan GPG tanpa perlu meminta anda untuk kembali mengetikkannya - tentu saja jika anda mengizinkan agen GPG untuk melakukannya.

Gentoo menyediakan beberapa aplikasi agen GPG. Paket app-crypt/gnupg-1.9.* berisi salah satunya, dan kita akan menggunakannya pada panduan ini.

Instalasi dan konfigurasi gpg-agent dan pinentry

Anda harus menginstal gnupg-1.9.*, yang berisi gpg-agent, dan pinentry. pinentry adalah sebuah aplikasi pembantu yang digunakan oleh gpg-agent untuk meminta anda mengetikkan kata sandi pada sebuah jendela grafis. Jendela ini memiliki tiga jenis: ia dapat menggunakan pustaka gtk+, Qt, atau curses (tergantung pada flag USE yang anda tetapkan ketika menginstalnya).

Daftar Kode 4.1: Instalasi gpg-agent dan pinentry

# emerge \>=gnupg-1.9.20 pinentry

Selanjutnya, ciptakan file ~/.gnupg/gpg-agent.conf dan masukkan baris berikut ini yang menentukan timeout default untuk kata sandi (mis. 30 menit) dan aplikasi yang akan dipanggil untuk menampilkan jendela tempat memasukkan kata sandi (mis. versi Qt dari pinentry).

Daftar Kode 4.2: Edit ~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-qt
no-grab
default-cache-ttl 1800

Sekarang konfigurasikan GnuPG agar menggunakan agen ketika diperlukan. Edit ~/.gnupg/gpg.conf dan tambahkan baris berikut:

Daftar Kode 4.3: Konfigurasi GnuPG untuk menggunakan Agen GPG

use-agent

Sekarang sistem anda sudah (hampir) siap untuk menggunakan agen GPG.

Menjalankan Agen GPG Secara Otomatis

Jika anda menggunakan KDE, edit /usr/kde/3.x/env/agent-startup.sh (untuk seluruh sistem), atau ~/.kde/env/gpgagent.sh (khusus user) dan tambahkan perintah berikut ini agar KDE langsung menjalankan agen GPG.

Daftar Kode 4.4: Memerintahkan KDE agar langsung menjalankan Agen GPG

eval "$(gpg-agent --daemon)"

Jika anda menggunakan desktop lain, tambahkan baris tersebut (sama seperti di atas) pada ~/.xinitrc (jika anda menggunakan startx) atau ~/.xsession (jika anda menggunakan XDM/GDM/KDM/...).

5.  Bekerja dengan berbagai dokumen

Mengenkrip dan menandatangani

Katakanlah anda memiliki sebuah file yang ingin anda kirimkan kepada Luis. Anda dapat mengenkripsinya, menandatanganinya, atau mengenkripsi sekaligus menandatanganinya. Mengenkripsi berarti hanya Luis yang dapat membukanya. Tanda tangan anda akan mengatakan pada Luis bahwa file tersebut hanya diperuntukkan baginya.

Tiga perintah berikut ini akan melakukannya, yaitu mengenkripsi, menandatangani, dan mengenkripsi sekaligus menandatangani.

Daftar Kode 5.1: Mengenkripsi dan menandatangani file

$ gpg --output doc.gpg --encrypt --recipient lmpinto@dei.uc.pt dokumen_yang_akan_dienkripsi
$ gpg --output doc.gpg --sign --recipient lmpinto@dei.uc.pt dokumen_yang_akan_ditandatangani
$ gpg --output doc.gpg --encrypt --sign --recipient lmpinto@dei.uc.pt dokumen_yang_akan_dienkripsi_dan_ditandatangani

Perintah tersebut akan menciptakan file binari. Jika anda ingin menciptakan file ASCII, tambahkan saja opsi --clearsign pada awal perintah.

Mendekripsi dan memeriksa tanda tangan

Sekarang katakanlah anda baru saja mendapatkan sebuah file yang dienkripsi khusus untuk anda. Perintah untuk mendekripsinya adalah gpg --output dokumen --decrypt dokumen_terenkripsi.gpg. Ini akan mendekripsi dokumen tersebut dan memeriksa tanda tangannya (jika memang ada).

MElakukan Enkripsi dan Dekripso tanpa kunci

Anda juga dapat mengenkripsi file tanpa menggunakan kunci, tetapi dengan password. Password ini sendiri akan berfungsi sebagai kunci - digunakan sebagai symmetric cypher. Anda dapat mengenkripsi file dengan menggunakan opsi --symmetric; dan mendekripsinya dengan menggunakan perintah yang sebelumnya telah kita bahas.

Daftar Kode 5.2: Mengenkripsi file dengan password

$ gpg --output document.gpg --symmetric document
(GnuPG akan menanyakan passphrase)

Fitur-fitur Advanced

GnuPG memiliki beberapa fitur advanced bagus lain. Untuk mengetahuinya, bukalah file ~/.gnupg/gpg.conf.

Daftar Kode 5.3: ~/.gnupg/gpg.conf

#keyserver x-hkp://subkeys.pgp.net
#keyserver-options auto-key-retrieve include-disabled include-revoked

Carilah kedua baris di atas dan hapus tanda komentarnya. Dengan ini, kapanpun GnuPG harus memeriksa tanda tangan dan tidak dapat menemukan kunci publik pada koleksi kunci, GnuPG akan menghubungi server kunci di subkeys.pgp.net dan akan mencoba untuk mengambilnya dari sana.

Perintah bagus lainnya adalah gpg --refresh-keys. Perintah ini akan menghubungi server kunci yang ditentukan pada file opsi dan memperbarui kembali semua kunci publik yang ada di koleksi kunci anda dari sana, mencari kunci yang telah dibatalkan, ID baru, dan tanda tangan baru pada kunci. Anda sebaiknya menjalankan perintah ini satu atau dua kali setiap bulan agar anda mendapatkan pemberitahuan ketika ada salah satu kunci yang telah dibatalkan.

6.  Antarmuka GnuPG

Tentang tanda tangan e-mail

Kemungkinan besar anda akan menggunakan GnuPG dengan e-mail, untuk menandatangani/mengenkripsi surat anda dan membaca surat-surat yang ditandatangani/dienkripsi. Jadi kita akan membahas hal ini terlebih dahulu.

Ada dua cara untuk menandatangani/mengenkripsi e-mail dengan GnuPG, cara lama dan cara baru :). Dengan cara lama, surat akan tampak seperti teks biasa, tanpa ada kemungkinan untuk merubah formatnya dan file lampiran tidak dapat ditandatangani/dienkripsi. Berikut ini adalah tampilan surat yang ditandatangani dengan cara lama:

Daftar Kode 6.1: Tanda tangan teks biasa

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Test message

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 6.5.8 for non-commercial use

iQA/AwUBP8461jMX0745gR7AEQIEOwCg011GbufXO3ED3FkLWXmfzg7xm1cAoJD0
0EU3Kd2EKNCqataEqM5qjpPs
=LchZ
-----END PGP SIGNATURE-----

Surat semacam ini sudah tidak layak digunakan lagi, karena kita sudah memiliki GUI yang bagus dan aplikasi e-mail yang mendukung html.

Untuk mengatasinya, diciptakanlah sebuah tambahan untuk MIME (Multipurpose Internet Mail Extensions). MIME menambahkan sebuah kolom pada e-mail yang memberitahukan kepada aplikasi e-mail bahwa surat tersebut ditandatangani dan/atau dienkripsi. Beberapa aplikasi bahkan mengacak-acak isinya, Microsoft Outlook dikenal tidak dapat bekerja dengan cara ini.

Kgpg

Kgpg adalah GUI yang bagus untuk GnuPG. Pada layar utama, anda dapat menyalin teks yang ingin anda tandatangani atau enkripsi, dan anda juga dapat menyalin teks yang dikurung dengan ASCII yang ingin anda dekripsi.


Gambar 6.1

Fig. 1: Layar utama kgpg

Pada gambar di atas, anda dapat melihat layar utama Kgpg yang berisi teks yang dikurung dengan ASCII dan teks terenkripsi. Dari sini anda dapat mendekripsinya (anda harus memgetikkan kata sandi), mengenkripsi file lain, menyalin teks baru untuk ditandatangani...


Gambar 6.2

Fig. 2: Layar manajer kunci kgpg

Sekarang anda dapat melihat layar manajer kunci. Dari sini kita dapat melihat kunci kita untuk John Doe. Dua kunci terpercaya untuk Gustavo dan Luis, serta satu kunci tidak terpercaya untuk Daniel Robbins (penulis masih belum menghubunginya untuk memeriksa sidik jarinya :) ).

Seahorse

Seahorse diciptakan untuk menjadi antarmuka GUI GnuPG untuk desktop Gnome. Software ini berkembang dengan cepat, tetapi masih belum memiliki beberapa fitur penting yang dimiliki oleh Kgpg atau versi baris perintah.

Enigmail

Enigmail adalah plug-in untuk klien e-mail berbasis Mozilla (seperti Thunderbird dan Seamonkey) yang sangat mudah dikonfigurasi. Pada Seamonkey, masuklah ke Preferences -> Privacy & Security -> Enigmail. Dari sana anda dapat memasukkan e-mail kunci anda. Sebelumnya anda harus meng-emerge enigmail untuk digunakan dengan Thunderbird. Kemudian anda dapat mengkonfigurasinya dari Edit -> Account Settings -> OpenPGP Security.

Surat-surat yang datang dengan pgp tidak terpercaya atau tanda tangan gpg akan ditandai dengan gambar pulpen rusak. Surat-surat lain yang memiliki tanda tangan bagus akan tampak dengan pulpen lurus yang bagus. Enigmail bahkan memiliki kemampuan untuk mengambil kunci dari server kunci, tetapi jika bermasalah akan menampilkan beberapa pesan aneh (anda masih ingat cara menggunakan versi baris perintah 'kan?).

KMail

Jika anda telah mengaktifkan flag USE crypt, maka KMail akan dikompilasi dengan dukungan gpg, dan dapat mengenkripsi/mendekripsi surat-surat PGP secara otomatis juga mengenkripsi surat-surat OpenPGP/MIME. Jika anda ingin mendekripsi surat OpenPGP/MIME, maka anda harus menggunakan agen GPG (bacalah Menggunakan Agen GPG).

Anda dapat memeriksa apakah KMail telah dikonfigurasi dengan benar dari Settings, Configure KMail, Security, Crypto Backends. Seharusnya anda akan melihat backend berbasis GpgME pada daftar yang ditampilkan dan anda dapat memberi tanda cek untuk OpenPGP. Jika backend ini tidak dapat diberi tanda cek, klik Rescan. Jika masih tetap sama, berarti KMail belum dikonfigurasi dengan benar.

Jika anda masih belum dapat mengkonfigurasi KMail dengan benar, bacalah halaman KMail PGP HowTo untuk mengetahui cara-caranya.

Claws-Mail

Aplikasi ini berjalan sangat kencang dengan kotak surat besar dan memiliki semua fitur-fitur bagus yang kita perlukan juga bekerja sangat bagus dengan gpg. Satu-satunya masalah adalah, aplikasi ini tidak dapat bekerja dengan tanda tangan PGP kama, jadi ketika anda menerima surat seperti ini, anda harus memeriksa sendiri tanda tangannya.

Untuk menggunakan kunci gpg dengan Claws-Mail, masuklah ke konfigurasi akun dan pilih tab privacy. Pilih kunci yang ingin anda gunakan, kebanyakan pengguna akan memilih kunci default.

7.  Kriptografi Kunci Publik

Dasar Kriptografi Kunci Publik

Konsep dari kriptografi kunci publik ditemukan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976. Ketika penulis pertama kali mendengat kata "kunci publik" dan "kriptografi" dalam satu kalimat pada tahun 93, penulis mengira hal ini mustahil untuk dilakukan. Dulu sebelum internet ada (sebenarnya sudah ada, tetapi belum untuk penulis), penulis pergi ke perpustakaan umum dan mencari buku yang membahas kriptografi. Ketika itu penulis baru berumum 16 tahun, maka petugas di sana memandang penulis dengan terheran-heran dan memberikan sebuah buku untuk anak-anak tentang kata sandi (yaitu kata-kata yang diganti dengan kata-kata lainnya seperti Caesar Cyhper yang terkenal atau Rot-13 (Tragbb Ebpxf, naq lbh xabj vg vf tbbq orpnhfr lbh ner ernqvat guvf qbp.), (emerge rotix jika anda tidak dapat membaca teks tersebut)). Penulis sangat kecewa dan mulai mencara informasi lain. Senang sekali rasanya memiliki anggota keluarga yang hebat matematika, karena ketika penulis berbincang-bincang dengannya, penulis langsung diperkenalkan dengan dunia baru.

Sekarang sedikit matematika:

Daftar Kode 7.1: Konsep matematika

Definisi:

1- Bilangan prima adalah bilangan positif yang lebih besar dari satu dan hanya
dapat dibagi dengan satu dan bilangan itu sendiri.
8 bilangan prima pertama adalah 2,3,5,7,11,13,17,19

Theorem (Tanpa bukti)
1- Semua bilangan positif selain bilangan prima dapat dipecah menjadi perkalian
bilangan prima yang tidak sama.
4=2*2
6=2*3
8=2*4=2*2*2
10=2*5
12=2*6=2*2*3

"Fakta":
1- Pengkalian dua bilangan besar sangatlah mudah
2- Pencarian faktor prima dari bilangan positif sangatlah susah

Jika penulis berikan angka 35 kepada anda dan mengatakan bahwa angka ini adalah hasil dari perkalian dua bilangan prima, maka dengan mudah anda akan mengetahui bahwa kedua bilangan itu adalah 5 dan 7. Tetapi bagaimana jika penulis mengatakan hal yang sama untuk angka 1588522601? Anda akan menghabiskan banyak waktu (atau putaran CPU) untuk mengetahui bahwa kedua angka tersebut adalah 49811*31891. Dan jika bilangannya semakin besar, maka pekerjaan ini akan menjadi "tidak mungkin" untuk dilakukan. Jadi jika sekarang penulis memberikan bilangan yang sangat besar dan merupakan hasil perkalian dari dua bilangan prima, berarti penulis mengetahui sesuatu yang tidak diketahui oleh orang lain.

Ini adalah dasar dari implementasi Public Key Cryptography (PKC) yang saat ini digunakan. Sebagai contoh (yang tidak nyata), penulis memberikan bilangan kepada semua orang yang dapat digunakan oleh mereka untuk mengacak surat mereka kepada penulis. Setiap orang dapat melihat surat tersebut, tetapi karena hanya penulis yang mengetahui jalan pintas untuk membacanya, maka orang lain harus "memecah" bilangan besar tersebut untuk membacanya. Dan pada kenyataannya, hal tersebut tidak mungkin dilakukan dalam waktu singkat (jika dilihat dari metode dan komputer tercepat yang telah ada saat ini). Di sini, dua bilangan prima besar disebut sebagai KUNCI PRIBADI, dan dua bilangan non-prima disebut KUNCI PUBLIK.

Pada prakteknya, teori tersebut tidak selalu 100% akurat dengan kenyataan, tetapi bisa digunakan sebagai dasar yang bagus untuk para pemula. Bagi anda yang penasaran, bacalah entri Wikipedia tentang protokol Diffie-Hellman. Untuk informasi tambahan, bacalah buku "Handbook of Applied Cryptography" karya Alfred J. Menezes, Paul C. van Oorschot dan Scott A. Vanstone. Buku ini juga tersedia gratis di internet pada website di atas.

Satu konsekuensi dari metode di atas adalah, jika anda mengacak surat anda, maka anda akan kehilangan surat asli anda yang belum diacak dan tidak lagi dapat membacanya dari surat yang telah diacak.

Tanda tangan

Kita telah melihat cara orang lain mengirimkan surat yang diacak kepada kita jika mereka memiliki kunci publik kita. Tetapi bagaimana kita tahu bahwa penulis pesan tersebut benar-benar merupakan orang yang diakuinya? Dengan kata lain: Jika penulis mendapatkan e-mail dari anda, bagaimana penulis bisa tahu bahwa andalah pengirim surat tersebut dan bukan orang lain?

Ingat ketika penulis mengatakan bahwa PKC tidaklah sesederhana seperti yang penulis jelaskan? Teorinya, ketika anda mengacak sebuah surat dengan kunci pribadi anda agar ketika penulis menerimanya, penulis dapat menggunakan kunci publik anda untuk memeriksa tanda tangannya dan kemudian menggunakan kunci peibadi penulis untuk membuka surat tersebut. Seperti yang dapat anda lihat, kita tidak dapat melakukannya berdasarkan penjelasan yang telah penulis berikan.

Selain itu, penting juga untuk menandatangani surat-surat yang tidak anda acak. Agar ketika anda menulis surat yang boleh dibaca semua orang, anda dapat mencantumkan "merek" anda pada surat tersebut. Dan jika ada sebuah karakter yang diganti, hal tersebut dapat (dan akan) diketahui.

Server Kunci dan Kunci Bertanda Tangan

Tetapi katakanlah penulis tidak pernah melakukan kontak dengan anda sampai anda menyurati penulis, bagaimana cara penulis mendapatkan kunci publik anda, dan bagaimana penulis tahu bahwa kunci tersebut adalah kunci anda? Untuk alasan ini, anda harus mengenal sebuah konsep lainnya, yaitu penandatangan kunci.

Untuk mengatasi masalah ini, diciptakanlah Server Kunci. Ketika anda menciptakan sepasang kunci (Kunci Publik dan Kunci Pribadi), anda kirimkan kunci publik anda ke server kunci. Setelah itu, siapapun dapat mengambilnya dari sana. Cara ini dapat mengatasi masalah pencarian kunci. Tetapi bagaimana penulis tahu bahwa kunci tersebut adalah kunci milik sang pengirim surat? Untuk itu, anda harus mengenal konsep penandatangan kunci:

Penandatangan kunci artinya, jika penulis memiliki kunci publik seseorang, dan penulis yakin bahwa kunci tersebut benar-benar miliknya (teman penulis, seseorang yang penulis kenal dalam kehidupan nyata, dsb.), penulis dapat menandatangani kunci tersebut dan mengirimkannya ke server kunci. Dengan begitu, secara tidak langsung penulis telah mengatakan pada dunia bahwa: "Kunci ini benar-benar milik orang yang mengakuinya.". Akhirnya, orang lain yang memegang kunci publik penulis dan mempercayai penulis dapat menggunakan kepercayaan tersebut untuk mempercayai kunci yang telah penulis tanda tangani tadi.

Hal ini terkadang memusingkan, untuk itu mari kita lihat situasi nyata:

Bayangkanlah situasi dengan tiga orang, John, Mary dan Lisa. John adalah teman baik Mary tetapi tidak mengenal Lisa; Lisa adalah teman baik Mary tetapi tidak mengenal Joh. Suatu hari, Lisa menyurati John dengan menandatanganinya. John akan mengambil kunci publik Lisa dari server kunci dan menguji surat tersebut, jika semuanya berjalan dengan lancar, John akan melihat bahwa pengirim surat tersebut juga merupakan pemiliki kunci yang baru ia dapatkan. Tetapi bagaimana John tahu bahwa si pengirim adalah Lisa?

John kemudian melihat bahwa kunci tersebut ditandatangani oleh Mary karena ia telah memiliki kunci publik Mary dan mempercayai kunci tersebut. Dengan kepercayaan ini, John akan menyimpulkan bahwa surat yang ia terima benar-benar ditulis oleh Lisa.

Sekarang anda sudah siap untuk mengikuti panduan ini, kembalilah ke bab 1 dan pelajari cara menggunakan gpg.

8.  Catatan Akhir dan Ucapan Terima Kasih

Beberapa Masalah

Penulis mendapatkan beberapa masalah dengan foto di dalam kunci. Periksalah versi GnuPG yang anda gunakan. Jika anda menggunakan versi 1.2.1-r1 atau yang lebih baru, kemungkinan anda tidak akan mendapatkan masalah. Versi yang lebih lama akan mendatangkan masalah. Perlu diketahui juga bahwa kebanyakan server kunci tidak menyukai kunci berfoto, jadi lebih baik anda tidak menambahkan foto ke dalam kunci anda.

Versi terbaru dari GnuPG kelihatannya tidak bekerja baik dengan gpg --send-keys yang dahulu digunakan untuk mengirimkan semua kunci yang ada di dalam koleksi kunci anda.

Apa yang tidak dibahas di sini

gpg adalah aplikasi yang sangat rumit. Anda dapat melakukan lebih banyak hal lagi selain yang telah dibahas di sini. Dokumen ini diperuntukkan bagi pengguna baru GnuPG. Untuk informasi lain, kunjungilah Website GnuPG.

Kami tidak menjelaskan aplikasi lain seperti pgp4pine, gpgpine, evolution dan mungkin aplikasi untuk Windows, tetapi kami mungkin akan memperluas dokumen ini di masa mendatang.

Ucapan Terima kasih

Buku Pegangan GnuPG dari John Michael Ashley adalah buku yang sangat bagus untuk para pemula.

Swift (Sven Vermeulen) yang telah mendorong penulis untuk menulis dokumen ini.

Seluruh tim #gentoo-doc, kalian hebat.

Tiago Serra yang telah mengingatkan penulis untuk kembali membahas masalah privasi.



Print

Diperbarui 29 Desember 2007

Versi asli dari dokumen ini terakhir diupdate 13 Juni 2010

Rangkuman: Panduan singkat ini akan mengajarkan anda dasar-dasar penggunaan GnuPG, alat pangaman komunikasi anda.

Gustavo Felisberto
Author

John P. Davis
Editor

Sven Vermeulen
Editor

Dzikri Aziz
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.