PGP Sebagai Pengaman Email Anda 04 1997
PGP Sebagai Pengaman Email Anda 04 1997
PGP
Isi e-mail Isi e-mail Program Mail
sebelum dienkripsi setelah dienkripsi (Eudora, Pegasus, dll)
Sender side
Recipient side
PGP
Gambar 1.
Proses pengiriman e-mail dengan menggunakan PGP
ftp://ftp.ifi.uio.no/pub/pgp/ (primary)
ftp://ftp.ox.ac.uk/pub/crypto/pgp/
ftp://ftp.dsi.unimi.it/pub/security/crypt/PGP/
ftp://ftp.informatik.uni-hamburg.de/pub/virus/crypt/pgp/
Program PGP tersedia dalam berbagai platform seperti MS-Dos, Macintosh, Unix, VMS,
OS/2, Atari, dlsb. Untuk platform MS-Dos sendiri, terdapat dua jenis yaitu pgp263i.zip (16 bit)
dan pgp263ix.zip (32 bit). Untuk versi 32 bit, terdapat perbedaan pada kecepatan proses enkripsi
dan pembuatan key dibandingkan dengan versi 16 bit.
Dasar-dasar PGP
Sebelum menggunakan program PGP, ada baiknya kita tinjau terlebih dahulu konsep
yang digunakan oleh PGP. Hal ini bertujuan agar istilah-istilah dalam PGP dipahami dengan baik
sehingga tidak terjadi kesalahan dalam implementasi PGP itu sendiri.
Seperti yang telah disinggung di awal makalah, PGP menggunakan “private-public keys”
sebagai dasar otorisasinya. Setiap kali kita membuat kunci, PGP akan menciptakan dua buah
kunci yaitu Private key dan Public key yang merupakan sebuah pasangan yang bersesuaian.
Private key adalah kunci yang hanya diketahui oleh kita sendiri. Public key adalah kunci yang
kita beritahukan kepada orang-orang yang kita percaya. Public key digunakan sebagai dasar
proses pengenkripsian dokumen-dokumen yang hanya bisa dibuka oleh orang yang memiliki
private key yang bersesuaian.
Sebagai contoh : Adi memiliki 2 buah kunci yaitu kunci A (terdiri dari private key A dan public
key A) dan kunci B (terdiri dari private key B dan public key B). Kemudian, Hanna akan
mengirimkan sebuah e-mail rahasia kepada Adi. Hanna telah memperoleh public key B dari Adi
sendiri. Setelah itu, Hanna menjalankan program PGP untuk mengenkripsi e-mail yang akan
dikirimkannya ke Adi dengan menggunakan public key B. Ketika Adi menerima e-mail dari
Hanna, ia mempergunakan program PGP untuk dekripsinya. PGP akan menanyakan private key
yang bersesuaian yaitu private key B. Jadi, Adi hanya bisa mendekripsi isi e-mail tersebut
dengan menggunakan private key B saja.
Kita bisa mengumpulkan beberapa public key dari orang-orang yang membagikan public
key-nya. Dengan mengumpulkan beberapa public key, kita bisa mengirimkan sebuah e-mail
yang dienkripsi ke beberapa orang secara langsung. Untuk memperkaya koleksi public key yang
kita miliki, kita bisa melakukan tukar-menukar public key dengan orang lain. Ada cara lain
untuk mendapatkan public key yaitu melalui public key server. Kita bisa mengambil public key
dari orang-orang yang kita inginkan melalui public key server ini. Hanya saja, server tersebut
tidak menjamin validasi dari key tersebut. Salah satu resources yang cukup baik untuk public
key server adalah http://www.ifi.uio.no/pgp/keyservers.html. Homepage tersebut menjadi
pointer menuju public key server di berbagai negara.
Pada paragraf di atas, terdapat kata-kata “tidak menjamin validasi dari key tersebut”. Apa
artinya? Sebenarnya, kita bisa membuat public key sebanyak yang kita kehendaki dengan nama
yang berbeda. Bisa saja kita membuat public key dengan username Bill Clinton dan alamat e-
mail <thepresident@whitehouse.gov>. Dengan demikian, mail-mail rahasia yang ditujukan ke
Presiden Bill Clinton bisa kita baca. Tetapi, apakah semudah itu? Tentu saja tidak J. Pembuatan
dan penambahan public key sebaiknya dan sangat dianjurkan diikuti dengan certification dan
signature.
PGP memerlukan beberapa file tambahan yang berperan penting pada proses
autentifikasi. File tersebut ada 4 buah, yang bernama (default) : secring.pgp, pubring.pgp,
secring.pgp (cadangan), dan randseed.bin. File pubring.pgp adalah file yang berisi koleksi
public key milik kita. File secring.pgp adalah file yang berisi private key milik kita. File
secring.pgp (cadangan) adalah file cadangan yang berisi private key milik kita. File secring.pgp
yang asli akan dibandingkan dengan cadangannya saat melakukan perintah “pgp -kc”. Selain itu,
file cadangan tersebut bertujuan supaya bila terjadi sesuatu dengan file secring.pgp yang asli
sehingga tidak bisa dibaca, kita masih memiliki cadangan. Ketiga file ini seharusnya tidak
diperlihatkan ataupun diberikan kepada orang lain. Seluruh kunci untuk membuka akses PGP
terdapat di sana. Bila file-file ini jatuh ke tangan orang lain, kemungkinan tertembusnya enkripsi
PGP menjadi jauh lebih besar.
Instalasi PGP
Hal yang pertama kali dilakukan tentu saja mengambil program PGP melalui FTP ke
salah satu FTP Server di atas. Penulis mengambil program PGP dengan platform MS-Dos yang
bernama pgp263i.zip dan kemudian mengekstraknya dengan menggunakan program Unzip atau
Winzip. Pada saat proses ekstraksi berlangsung, tentukan letak direktori yang akan ditempati
oleh program PGP tersebut. Dalam contoh kali ini, penulis menggunakan direktori C:\pgp
sebagai tempat penyimpanan program PGP. Setelah diekstrak, pada direktori c:\pgp akan muncul
5 buah file yaitu : readme.1st ; readme.usa ; setup.doc; pgp263ii.zip; pgp263ii.asc. File
pgp263ii.zip diekstrak dengan menggunakan program Unzip atau Winzip dengan direktori yang
sama yaitu C:\pgp. Nah, setelah ekstraksi di atas, program PGP siap dikonfigurasi.
Hasil lengkapnya dapat dilihat seperti dibawah ini :
Directory of C:\PGP
Langkah selanjutnya adalah kita mengkonfigurasi program PGP tersebut melalui file
config.txt. Berikut contoh config.txt yang dikonfigurasi dan dipersingkat :
#
# PGP 2.6.3i Configuration file
#
MyName = "Joko Yuliantoro"
Language = en
CharSet = cp850
TMP = "c:\temp"
# Pager = "list"
ArmorLines = 0
# Armor = on # Use -a flag for ASCII armor whenever applicable
# TextMode = on # Attempt to use -t option where applicable
# ClearSig = off # Use ASCII armor even for unencrypted signed messages
# KeepBinary = on # Decrypt will not delete intermediate .pgp file
# Verbose = 2 # Verbose diagnostic messages
# Verbose = 0 # Be quiet
# Compress = off # Suppress compression to aid debugging
# ShowPass = on # Echo password when user types it
# Interactive = on # Interactively prompt the user when adding keys (-ka)
# EncryptToSelf = on # Encrypt all messages with your own public key
# AutoSign = off # Don't sign new userids
# Legal_Kludge = off # Use backwards-compatible format
BakRing = "c:\temp\secring.pgp"
Completes_Needed = 1
Marginals_Needed = 2
Cert_Depth = 2
# TZFix = 0
# Paths to keyrings and seed file for random generator.
PubRing = "c:\pgp\pubring.pgp"
SecRing = "c:\pgp\secring.pgp"
RandSeed = "c:\pgp\randseed.bin"
Language : Bahasa yang digunakan pada mode ‘help’. Defaultnya adalah ‘en’ (English).
CharSet : Himpunan karakter yang digunakan untuk mengenkripsi file. Default untuk
MS-Dos adalah ‘cp850’.
ArmorLines : Mendefinisikan berapa banyak baris dalam satu buah paket. Jika kita ingin
membuat file yang dienkripsi menjadi beberapa bagian, kita bisa definisikan
berapa banyak baris untuk setiap satu bagian. Jika nilainya diset ‘0’ (nol) maka
file enkripsi tidak dibagi-bagi.
BakRing : Tempat dimana file secring.pgp cadangan diletakkan. Jika diarahkan ke drive
A, maka setiap saat program PGP dijalankan, disket yang berisi file
secring.pgp cadangan tersebut harus selalu berada di drive A.
Cert_Depth : Menyatakan tingkat “introducers” yang bisa memberikan jaminan bahwa
public key orang lain yang diberikan kepada kita adalah asli. Sebagai contoh,
kita percaya kepada jaminan yang diberikan oleh Tati. Tati percaya sepenuhnya
kepada jaminan yang diberikan oleh Budi. Budi percaya kepada jaminan dari
Didi. Nah, kita percaya kepada jaminan yang diberikan oleh Didi jika nilai
Cert_Depth adalah 3. Jika nilai Cert_Depth adalah 2 maka kita tidak akan
percaya public key yang telah dijamin oleh Didi. Dalam hal ini, Tati adalah
“introducer” tingkat 1, Budi adalah tingkat 2 dan Didi adalah tingkat 3. Apabila
nilai Cert_Depth kita set menjadi 0 (nol) maka saat kita menerima public key
orang lain, kita harus menerima langsung dari pemilik public key dan
memberikan sendiri jaminan terhadap public key tersebut.
Pubring : Direktori tempat menyimpan dan nama file yang berisi koleksi public key
miliki kita
Secring : Direktori tempat menyimpan dan nama file yang berisi private key.
RandSeed : Direktori tempat menyimpan dan nama file yang berisi hasil proses random
generator saat kita menciptakan key.
Setelah file config.txt selesai diedit dan disimpan, maka selanjutnya kita mengkonfigurasi
parameter TZ dan path untuk program PGP. TZ ini kependekan dari Time Zone dan untuk WIB
digunakan nilai GMT-7. Jika parameter TZ tidak diset maka PGP tidak akan beroperasi. Ada dua
cara untuk mengkonfigurasi parameter tersebut. Cara pertama, kita langsung ketikkan perintah
“set TZ=GMT-7” dan “set path=c:\pgp;%path%” pada prompt DOS.
Jika langkah-langkah di atas telah selesai dilakukan, maka instalasi program PGP telah
selesai dan siap digunakan.
Penggunaan PGP
PGP memiliki banyak argumen yang mendefinisikan setiap fungsi yang berbeda-beda.
Untuk melihat keseluruhan argumen yang tersedia, gunakan perintah “pgp -h”.
Pertama-tama yang kita lakukan dalam menggunakan PGP ini menciptakan key, baik itu
public key maupun itu private key. Perintah untuk menciptakan key baru adalah “pgp -kg”.
Berikut ini adalah step-step untuk menciptakan key baru dengan huruf cetak tebal adalah huruf-
huruf yang kita ketikkan.
C:\PGP>pgp -kg
Pretty Good Privacy(tm) 2.6.3ia - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/04/20 06:50 GMT
You need a user ID for your public key. The desired form for this
user ID is your name, followed by your E-mail address enclosed in
<angle brackets>, if you have an E-mail address.
For example: John Q. Smith <12345.6789@compuserve.com>
Enter a user ID for your public key:
Joko Yuliantoro <joko@itb.ac.id>
C:\PGP>
Proses menciptakan key selesai! Hasilnya bisa dilihat dengan menggunakan perintah
“pgp -kvc”.
C:\PGP>pgp -kvc
Pretty Good Privacy(tm) 2.6.3ia - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/04/20 07:37 GMT
C:\PGP>
Dengan demikian kita telah memiliki sebuah key dengan MPILIB key 1024 bit.
Selanjutnya kita bisa mengekstrak public key kita sehingga bisa kita bagikan kepada orang-orang
yang kita percaya. Perintah ekstraksi public key adalah “pgp -kxa userid keyfile”.
C:\PGP>type pubkey.asc
Type Bits/KeyID Date User ID
pub 1024/9F5BC789 1997/04/20 Joko Yuliantoro <joko@itb.ac.id>
mQCNAzNagi4AAAEEALElR37C5A8X6g2wubF9Db0ngQKsOAUsCH+tgCLuJ0ajyiD1
DO6p/PoE4qB2W+bvt5bg+F2FwEssDBPv0fbCKIzqjhI2txR9c/sUEkpLTZgX4dIN
NWb5yTXqFQop8yLOd0hVvzXpogFDAOasRhCKXyw0PSaSfKeZhhY2iNqfW8eJAAUR
tCBKb2tvIFl1bGlhbnRvcm8gPGpva29AaXRiLmFjLmlkPokAlQMFEDNagi8WNoja
n1vHiQEBO2sD/1OJkFGfHY5wV2MsF4Agbyfbz6rUnKgnhhoGWX4YUEksz37NUsQf
MPcHbHfL+S4Zy5b3rFnWTWtpxh8y4YjBcw98ZWUBw0TBohKyImrPGRv0G3dJT6rE
B/j6PiN0Ko4ofSkkSI3DqiqNqYHnmPWU35NReEOUmwSWUUQjTymPSGoL
=141+
-----END PGP PUBLIC KEY BLOCK-----
C:\PGP>
Nah, file yang berisi public key adalah ‘pubkey.asc’ dan siap dikirimkan melalui e-mail
atau dikopikan ke disket.
Bagaimana menambahkan public key yang kita terima ke dalam koleksi public key yang
kita miliki? Gunakan perintah “pgp -ka keyfile”.
Checking signatures...
pub 1024/373CACCD 1997/04/20 Bino Oetomo <bino@ywcn.or.id>
sig! 373CACCD 1997/04/20 Bino Oetomo <bino@ywcn.or.id>
Keyfile contains:
1 new key(s)
C:\PGP>
Untuk melihat koleksi public key milik kita, gunakan kembali perintah “pgp -kvc”.
Dengan demikian, kita telah memiliki dua public key yaitu public key milik kita dan public milik
bino@ywcn.or.id.
Bagaimana cara mengenkripsi mail yang hendak dikirimkan? Salah satu cara adalah
menjalankan prosedur seperti Gambar 1. Kita buat isi mail kita ke dalam sebuah file teks. Kita
enkripsi dengan menggunakan PGP. Kita perintahkan program e-mail untuk membaca dan
mengirimkan file yang telah dienkripsi. Sesampainya di tujuan, penerima menyimpan isi mail
yang masih terenkripsi ke dalam bentuk file. Penerima menjalankan program PGP untuk
mendekripsi file tersebut. Hasil akhirnya adalah isi mail awal.
Sebagai contoh, Bino mengirimkan mail ke kita yang isi mailnya dalam bentuk PGP
adalah sebagai berikut :
-----BEGIN PGP MESSAGE-----
Version: 2.6.3ia
hIwDFjaI2p9bx4kBBACJ18DnvB9r0FD1CYoKPcPu5MGlgXB+ymi0WswCGTUrRncu
cmr95EmE+2nApJ+cwDYFMWXC2gy+zuh+uTclkD3nNkBpcyiEmfOeDbzCk/VSe9q+
25YIACfXQy2vD+jZ1r9VoUI1TQxdYsvXooo9iS4mtCuW6t3QTi+GBtcuPjH6sqYA
AAGG8lmor/f2/RPgt06h+jtOBmMFE/pQM6Ad0SNdM6nE/u5ypSJiiYCt5OuxkhRq
masBbFRSLku+YFFKfbWAEbgDMlXel4HngPjEh5c0SF/QVtvzJ5w1HYnyxJoTh2IT
5stTn9bRSCKTiP75H/0CFjPbWlQfIquv/9QdJSuOQ7eLeX57uEdG3tDd5jtd53m5
uYBA+YwPyKXDr8sOMlP1GqpaNZIUImg+py2nUUDSwxxVJhuyESE2F8NbiECA9LVy
ygasK8r+XkjoB6zojN+Bp8D/PsmhCDET9pc5pVv3Y1X+XrjuTtMwlCeU9l3Z2YEH
yeh5h59zh2q1gffhi0DlazKtb1H4kor3fzfsZMaYVi+8NxidQ8Gmb85Mvng4Iusz
DfTA1VHdvPkVPM8oR13DteR30YRqCG8C14Hy2Fw/MATofQbJbJ+UgeRBVen38W8e
jUlsE2bysIiFWUUPuKwK4kc3FojJw5Dx/VV7sFTykCXQo68KUTkN+O/6I4xJxjbS
nDBhqQvUHp9i
=Albb
-----END PGP MESSAGE-----
Mail ini masih dalam bentuk enkripsi. Kita terima dengan menggunakan program mail
(Eudora, Pegasus, dll) kemudian kita simpan ke file “mail.asc”. Kita dekripsi mail tersebut
dengan perintah “pgp keyfile”
C:\PGP>pgp mail.asc
Pretty Good Privacy(tm) 2.6.3ia - Public-key encryption for the masses.
(c) 1990-96 Philip Zimmermann, Phil's Pretty Good Software. 1996-03-04
International version - not for use in the USA. Does not use RSAREF.
Current time: 1997/04/20 11:04 GMT
C:\PGP>type mail
Kode : 476-B345-F54-C
Username : pakne
Password : jompa jampu
- bino -
C:\PGP>
Proses dekripsi telah selesai dengan munculnya file ‘mail’ yang dapat dimengerti. Dari
contoh di atas, terlihat jelas bahwa file yang dikirimkan adalah file yang terenkripsi. Jika ada
orang yang bisa membaca isi mail tersebut, sia-sia saja karena isi mail yang dikirimkan tidak
memiliki arti bagi manusia.
Dengan demikian, Anda telah siap mengirimkan mail pertama Anda yang terenkripsi oleh
PGP. Ada beberapa macam penerapan PGP selain untuk enkripsi e-mail tetapi penjelasan secara
detil tidak disatukan dengan tulisan ini. Sebagai contoh, MIT telah mengeluarkan PGPfone versi
beta pada tanggal 11 Juli 1996. Program PGPfone ini bertujuan untuk menambah fungsi “secure
telephone” ke komputer atau notebook. PGPfone menggunakan “speech-compression” dan
algoritma kriptografi yang canggih untuk mengamankan jalur telepon yang Anda gunakan.
Selain cara penggunaan di atas, terdapat beberapa software siap pakai yang bertujuan
meringkas beberapa fungsi PGP dan mempermudah proses “redirecting” input-ouput program
PGP dengan input-output program lain. Software-software tersebut tersedia bebas dan bersifat
shareware. Salah satu URL yang bagus untuk software-software di atas adalah
http://www.ifi.uio.no/pgp/utils.shtml.