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 PKI(Public Key Infrastructure). Dengan demikian seseorang pasti mempunyai sepasang kunci yaitu Private Key dan Public Key. Tulisan ini membahas secara ringkas beberapa penggunaan umum GPG yang biasa dilakukan.
Pada beberapa distro program ini terinstall secara default. Bila pada distro anda pgp belum terinstall, maka anda dapat mencari paket yang sesuai dengan distro yang anda pakai, atau mungkin menginstall manual dari source code yang bisa didownload Disini.
Oke lanjut saja pada tahap cara pemakaiannya dibawah ini :
Pembuatan Keypair
Sebelum menggunakan fasilitas yang ditawarkan oleh gpg, anda harus membuat keypair(pasangan private dan public key) terlebih dahulu.
[sokam@yudowati 17:54 sokam]$ gpg --gen-keyDi sini anda dapat memilih algoritma yang digunakan untuk membuat keypair. Penggunaan DSA(2) atau RSA(4) terbatas pada digital signature dan tidak dapat digunakan untuk mengenkrip suatu teks. Pilih DSA and ElGamal dengan memasukkan angka "1" atau cukup dengan menekan tombol [Enter].
gpg (GnuPG) 1.2.4; Copyright (C) 2003 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) RSA (sign only)
Your selection?
DSA keypair will have 1024 bits.Pada bagian ini anda dapat memilih panjang kunci (dalam bit) yang digunakan sebagai kunci. Panjang key untuk DSA adalah 1024, dan yang anda pilih adalah panjang kunci ELG-E. Aturan umum yang berlaku adalah semakin pendek ukuran key yang anda pakai maka semakin mudah key itu dicrack oleh orang lain, namun dapat dikomputasi lebih cepat oleh komputer. Semakin panjang ukuran key, kamungkinan cracking semakin sulit, namun komputasinya juga memakan daya yang cukup besar. Untuk saat ini key dengan panjang 1024 bit dianggap sudah cukup kuat. Anda dapat memasukkan angka 768 atau 2048 untuk mengubah nilainya, namun bila anda memilih 1024 maka anda cukup menekan tombol [Enter].
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)
Please specify how long the key should be valid.Masukkan lama berlaku key anda. Lama waktu dapat mempunyai satuan hari, minggu, bulan, atau tahun. Bila anda memilih defaultnya (0) maka key anda akan berlaku seumur hidup atau sampai anda kehilangan private key anda. Berapa pun masa berlaku yang anda pilih, anda akan dimintai konfirmasi mengenai pilihan anda.
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)
You need a User-ID to identify your key; the software constructs the user idBerikutnya anda harus memberi input minimal pada Real name dan Email address. Teks yang anda masukkan pada bagian Comment akan muncul di dalam tanda kurung. Masukkan huruf "O" dan tekan [Enter] bila anda sudah selesai.
from Real Name, Comment and Email Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Real name: Kamas Muhammad
Email address: kamas@entahlah.com
Comment: sokam
You selected this USER-ID:
"Kamas Muhammad (sokam) <kamas@entahlah.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
You need a Passphrase to protect your secret key.Masukkan passphrase anda. Passphrase ini dimasukkan dua kali. Ingat, jangan memasukkan passphrase yang mudah ditebak, tapi anda harus bisa mengingatnya.
Enter passphrase:
We need to generate a lot of random bytes. It is a good idea to performKarakter acak yang muncul seperti pada cuplikan di atas menunjukkan proses pembuatan keypair. Setelah proses ini selesai, maka hasilnya akan ditampilkan di bawah. Pada contoh di atas key yang baru dibuat mempunyai sidik jari DB9A F0A9 31E2 ED77 3AFF 3D26 ADD5 B92F 7D25 97DD, dengan UserID 7D2597DD.
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.++++++++++++++++++++...+++++++++++++++++++++++++..++++++++++.+++++
.++++++++++++++++++++..++++++++++.++++ ++++++++++++++++++++++++++..+++++
............................................................................
..... .+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++.+++++++++
++++++++++++++++.++++++++++++++++++++++ ++++.+++++++++++++++............
.......................................................................++++
+^^^
public and secret key created and signed.
key marked as ultimately trusted.
pub 1024D/7D2597DD 2004-12-13 Kamas Muhammad (sokam) <kamas@entahlah.com>
Key fingerprint = DB9A F0A9 31E2 ED77 3AFF 3D26 ADD5 B92F 7D25 97DD
sub 1024g/FE6B4921 2004-12-13
Export Public key
Seperti yang tadi sempat disebutkan bahwa public key harus didistribusikan(entah dengan cara apa) kepada orang lain. Untuk itu kita harus mengexport public kita.
[sokam@yudowati 18:53 sokam]$ gpg --export -a kamas@entahlah.comBlok text di atas adalah public key kamas@entahlah.com. Pilihan (-a) digunakan untuk mengexport key dalam bentuk text. Tanpa pilihan itu maka key akan diexport dalam bentuk binary. Penasaran? Silakan coba ulangi perintah di atas tanpa opsi -a. Hasilnya takkan menyakiti siapa pun.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.4 (GNU/Linux)
mQGiBEG9e+MRBACCNz0Ikx4jouFT1Z3dY8mGwiDVxJuATRr7SpHCA+endBjR9d1R
zd9MLD5eyvHtVIeeii8oFNCHw7WA6wREblvcRrNPqHjmkR2lIlKI4QEosQsaAN/8
fy5eLlWZvrZjjepVde6kSuiM4ClN2tuTgplXDjwBGattWcTh5OgL1qyUIwCg3kF9
+mvEE7V0aZNe96kz8FkOlc0D/RzEdtkJWqblZ7CHmR85seybul/EWFUYv+4r0xfx
wF5dtr2G1VOauZWM6y5TcrsvHHzdtQYZhbZ9tqPZ8J64+00GKdHR/7ZyBbB6iAo8
DOxON1x/euGHNcsp2q1VSvXsbQ6phb6bMZMj47AbDwzrrX/djX+F58ajRsf+yCIW
Wf+TA/wLpNwUUAwltNv+k1JfG8Xb3Xi6Uif97n9biFPE//cIZ8v3XshObiQg9KRR
BHtcZR++UN21gtAtmooO54Ymo6EMqfOw6dEuQL1lykcKPEcU8graBZMMA8/pVMMM
OuOsCzEGFdp12SpS5YbTBoRYYh5Gt6BK8MK28Z3M2LA5WHHh97YAAAArS2FtYXMg
TXVoYW1tYWQgKHNva2FtKSA8a2FtYXNAZW50YWhsYWguY29tPoheBBMRAgAeBQJB
vXvjAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJELmv46iRqkXy4QEAmQGGoOnW
7i0PqsP4QsXbEsCOoKr4AKCVyejE2rGcjMs73n44YMANAlWsFrkBDQRBvXvrEAQA
+l30skBL33SJjpq63WIVt9Td64TBlACbdHdg51t/hNL/1sO54Q4d6xFCUvhcZnA3
L6b9+KHz2Z15k19/DVV35Yo0jQiM5V9gim4PPnLO7UwNyANeD6da6lrjsCcKZx4F
rHjM5iKU/z5VT2cAgeiMhPMA0XkmsKPQaGdjFV69f1cAAwUD/iWWZUkpEkpfh+HE
v8rtP6kPJ64s2gBivtQGnRJysUfOQJ2tSXlyajveZmwYuHRVMmDMDo9YEajtakqL
j5Q+FYwvWWoM8CXNgN5WBjEiBFFCOvx2IhqbiZajqQ7pv9+UiyFyjmSODb4eEmSj
vvA+8VLq1L9YcBHLl/tdTEXBkRAFiEkEGBECAAkFAkG9e+sCGwwACgkQua/jqJGq
RfJy7QCgnzANWiq4N7ljv8wbPDLYONFV5LAAoNTexQryWjGYBW+UVhD7mBBmi+uD
=HMhm
-----END PGP PUBLIC KEY BLOCK-----
Teks itu dapat kita distribusikan melalui segala macam media seperti website, melalui email, atau disubmit key keyserver agar dapat diakses oleh orang lain dengan mudah.
Import Public Key
Sebelum anda dapat mengenkrip teks untuk orang lain atau memverifikasi tanda tangan orang lain anda harus mengimport public key orang itu. Pada contoh ini sokam mengimport public key milik wawa yang telah didownload dan disimpan pada file pkwawa.asc.
[sokam@yudowati 19:05 sokam]$ gpg --import < pkwawa.ascSekarang, pada daftar key dapat kita lihat bahwa kita memiliki 2 key yakni milik kamas dan wawa.
gpg: key 6A31E44C: public key "Purwaning <wawa@sayang.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
[sokam@yudowati 19:08 sokam]$ gpg --list-keyMengenkripsikan Text
/home/sokam/.gnupg/pubring.gpg
------------------------------
pub 1024D/7D2597DD 2004-12-13 Kamas Muhammad (sokam) <kamas@entahlah.com>
sub 1024g/FE6B4921 2004-12-13
pub 1024D/6A31E44C 2004-12-13 Purwaning <wawa@sayang.com>
sub 1024g/F0F8A1D0 2004-12-13
Misal kita mempunyai sebuah file dengan nama fileteks.txt. Isi file ini sebelum dienkrip bila dilihat dengan cat tampak seperti di bawah ini.
[sokam@yudowati 19:13 sokam]$ cat fileteks.txtKini file teks di atas akan dienkrip untuk wawa@sayang.com
Tak kuasa ku menahan jenuh ini
Kian lama kian menyesak menyiksa
Dalam hampa
Sebaiknya kau biarkan ku memilih
Agar tiada kendala antara kita
Yang menjadi penyesalan
Kuingin memahami segala yang menjadi beban di benakmu
Hilangkanlah prasangka seolah kumengekang keinginan
Yang kau pendam
[sokam@yudowati 19:16 sokam]$ gpg -e -r wawa@sayang.com -a fileteks.txtPerintah di atas memiliki beberapa opsi yaitu:
- -e/--encrypt: mengenkrip suatu file.
- -r/--recipient: tujuan pesan. Pilihan ini menentukan public key mana yang digunakan untuk mengenkrip pesan kita. Pada contoh di atas tujuannya adalah wawa@sayang.com.
- -a/--armor: output enkripsi dalam bentuk ascii/text, bukan binary.
[sokam@yudowati 19:16 sokam]$ cat fileteks.txt.ascDapat kita lihat bahwa hasilnya sudah tidak bisa lagi dibaca. Puisi romantis itu kini telah menjadi huruf acak yang hanya Wawa saja yang dapat membukanya.
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.4 (GNU/Linux)
hQEOA9QUeAPw+KHQEAP5AbYFeQGqYOOEZe+NW+QOzAASegaTe5aX/l9tVr5+CnHR
YGlDDfSiH6+usTLqsxTDnnh7gczlLk89hYPIiFCVoXz56396wN7gGhGwNIdiiC4P
j+3WjuaarT7I/ykftPDLAv5B6SWZOclrj0xs9JT4UpSBs/zkHSuA1IHBWcwVrDID
/2xtGghcRj1uant3TWmeesHicvy6BaE8tq5xzyrM4y8DQHWc/Q6XGFolUcvhghwn
OYuaeM9KcchZ360tzQFuU0qDRkbnLpf9Y0ukvJG6yZ364pHTYIltvrdHxqnOZQTa
+NHIGitD7ec5bz7rbRj5lS557SsuIswUIN1wdjAbWCru0sBCAZ/OvlZDKCTAvN9s
rXW127sEZtL11/NvU9pX47qKaWbjSN6/B71zCScMOrncjt39nRacfHJZHjC/uMAR
soCt6UQj7tTvBu+RkopjBp4f4QyiNXbj5hICmfV4VtO81tzXWkBM3d+uvSkstqBg
RIrO3A2XC73OGp6CHwWfP6sBPkTtnljiX/x8BhhZZga1fJ563KToShBqPqsffy6h
PMf2ncqvU/sxA/ZmpWZ4VZdvBqVusfB322aG8Sft2n0eHpbr28PUG0PPJiz65O23
mYrLSDXJvXqSfiThfTies0Lm8NrP5/WE0qkT+ibQiBh0aqpK6Rk+hbE8xhf/9cAh
b0cCCYRQ
=uUMQ
-----END PGP MESSAGE-----
Mendeskripsikan Text
Teks yang dikirim oleh Sokam ke Wawa adalah teks yang telah dienkrip, sehingga bila di tengah jalan ada orang yang iseng mengintip, maka mungkin dia hanya bisa membaca mantra pengusir nyamuk yang takkan jelas suaranya bila dia tetap nekat membacanya.
Wawa pun akan menerima teks yang persis sama, yaitu dalam bentuk yang terenkrip. Hanya saja, karena Wawa mempunyai private key dari public key yang digunakan oleh Sokam mengenkrip puisinya maka dia dapat membaca isi file itu. Berikut adalah keluaran dekrip teks yang dilakukan oleh Wawa.
[wawa@yudowati 19:30 wawa]$ gpg --decrypt fileteks.txt.ascUntuk mendekrip teks itu Wawa perlu memasukkan passphrase yang digunakan saat dia membuat keypair. Bila passphrase yang dimasukkan salah maka file itu tidak dapat didekrip. Bila yang passphrase yang dimasukkan benar maka seperti yang tampak pada potongan teks di atas, Wawa dapat membaca puisi yang dikirim oleh Kamas.
You need a passphrase to unlock the secret key for
user: "Purwaning <wawa@sayang.com>"
1024-bit ELG-E key, ID F0F8A1D0, created 2004-12-13 (main key ID 6A31E44C)
Enter passphrase: ******
user: "Purwaning <wawa@sayang.com>"
1024-bit ELG-E key, ID F0F8A1D0, created 2004-12-13 (main key ID 6A31E44C)
gpg: encrypted with 1024-bit ELG-E key, ID F0F8A1D0, created 2004-12-13
"Purwaning <wawa@sayang.com>"
Tak kuasa ku menahan jenuh ini
Kian lama kian menyesak menyiksa
Dalam hampa
Sebaiknya kau biarkan ku memilih
Agar tiada kendala antara kita
Yang menjadi penyesalan
Kuingin memahami segala yang menjadi beban di benakmu
Hilangkanlah prasangka seolah kumengekang keinginan
Yang kau pendam.
Mendatangani Suatu File
Selain dienkrip, suatu file juga dapat ditandatangani sehingga nantinya dapat diperiksa apakah file/teks yang diterima benar-benar dikirim oleh orang yang diharapkan atau tidak. Puisi sokam bila ditandatangani tanpa dienkrip akan tampak seperti di bawah ini.
[sokam@yudowati 19:55 sokam]$ gpg -u 7D2597DD --clearsign fileteks.txtParameter (-u) digunakan untuk menentukan username yang digunakan untuk menandatangani file yang kita sebutkan. Parameter ini tidak dibutuhkan bila default-key telah dikonfigurasi pada ~/.gnupg/options. Yang dipakai untuk menandatangani adalah private key, jadi kita tidak bisa menandatangani suatu teks dengan menggunakan public key orang lain. --clearsign adalah pilihan untuk menandatangani dalam bentuk clear text.
You need a passphrase to unlock the secret key for
user: "Kamas Muhammad (sokam) <kamas@entahlah.com>"
1024-bit DSA key, ID 7D2597DD, created 2004-12-13
Enter passphrase: *****
[sokam@yudowati 20:03 sokam]$ cat fileteks.txt.asc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tak kuasa ku menahan jenuh ini
Kian lama kian menyesak menyiksa
Dalam hampa
Sebaiknya kau biarkan ku memilih
Agar tiada kendala antara kita
Yang menjadi penyesalan
Kuingin memahami segala yang menjadi beban di benakmu
Hilangkanlah prasangka seolah kumengekang keinginan
Yang kau pendam
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFBvZFBrdW5L30ll90RAqtsAJ94Mg5X4g8szoIlPhWenHld/Rh/AwCfYNyf
XvI3bQEJ4C5Itu2S4Kz5Ga0=
=Yi1E
-----END PGP SIGNATURE-----
Verifikasi Tandatangan
Setelah ditandatangani oleh pengirim, penerima juga harus memverifikasi tandatangan yang dibubuhkan pada file itu. Kini Wawa akan memeriksa apakah yang mengirim file itu benar-benar Kamas.
[wawa@yudowati 20:11 wawa]$ gpg --verify signed.ascOutput Good Signature merupakan tanda bahwa tandatangan yang dibubuhkan benar-benar dari kamas.
gpg: Signature made Mon Dec 13 19:55:29 2004 WIT using DSA key ID 7D2597DD
gpg: Good signature from "Kamas Muhammad (sokam) <kamas@entahlah.com>"
Sumber : Disini
Penulis : sokam.or.id