Sunday, September 22, 2013

Tutorial Enkripsi dan Dekripsi Data


Pada pembahasan kali ini, kita akan belajar bagaimana mengirimkan data dengan sangat aman. Bagaimana caranya? Yang pertama tentu saja kita harus mendekripsi data yang akan diamankan agar tidak ada orang yang dapat membukanya baik pada saat pengiriman maupun pada saat data diterima oleh user yang tepat akan membaca pesan kita.


Nah untuk dekripsi dan enkripsi sendiri kita mengenal adanya public key dan private key. Public Key adalah kunci yang diberikan atau disebarluaskan kepada umum yang kemudian digunakan untuk meng-enkripsi data yang akan dikirim kepada kita penerima dan private key sendiri merupakan kunci yang kita gunakan sebagai penerima untuk membuka file (dekripsi) yang sebelumnya tadi di-enkripsi dengan public key milik kita dan dikirim oleh pengirim (umum). Perlu diingat bahwa tiap public key memiliki private key masing-masing dan data yang dienkripsi oleh suatu public key hanya dapat didekripsi oleh pasangan private keynya.

Selain mengenal istilah public key dan private key, dalam keamanan jaringan khususnya pada enkripsi dan dekripsi data kita juga mengenal istilah  PGP (Pretty Good Privacy) yang merupakan  suatu metode enkripsi yang menyimpan kerahasiaan suatu informasi agar tidak dapat diketahui/dibaca oleh pihak selain pengirim dan penerima informasi. Informasi ini bisa berupa Email rahasia, nomor kode kartu kredit, atau pengiriman dokumen rahasia perusahaan melalui internet. 
PGP menggunakan metode asymmetric cryptography, yang memiliki sistem pasangan public key dan private key. Setiap orang yang akan berkomunikasi menggunakan metode PGP harus memiliki sepasang kunci ini. Public key merupakan kunci yang dipublikasikan dan digunakan oleh orang lain untuk melakukan enkripsi pesan yang ditujukan kepada pemilik public key tersebut. Untuk men-dekripsi pesan tersebut, si penerima harus menggunakan private key milik-nya yang tidak boleh diketahui oleh orang lain. Berbeda dengan metode symmetric cryptography dimana proses enkripsi dan dekripsi hanya melibatkan satu buah kunci, sehingga si pengirim dan penerima harus bertukar kunci terlebih dahulu yang sangat beresiko karena dapat di-intercept oleh pihak lain di dalam jarigan.
Pada tutorial kali ini kita menggunakan program Gpg4win. Gpg4win adalah paket instalasi untuk Windows (2000/XP/2003/Vista/7) dengan program dan handbook untuk enkripsi file dan email. Gpg4win dan program-program di dalamnya adalah free software, berbeda dengan software PGP yang berbayar. Gpg4win terdiri dari program-program berikut:



   GnuPG, program inti dari Gpg4win yang bersifat gratis. GnuPG berbasis standar internasional OpenPGP (RFC 2440) yang kompatibel dengan PGP serta memiliki infrastruktur yang sama (certificate server, dll). GnuPG versi 2 juga mendukung standar cryptography S/MIME (IETF RFC 3851, ITU-T X.509 dan ISIS-MTT/Common PKI)

·         Kleopatra, program administrasi certificate yang menyediakan navigasi user untuk semua operasi cryptography maupun pengelolaan key.

·         GNU Privacy Assistant (GPA), program alternatif untuk manajemen certificate

·         GnuPG for Outlook (GpgOL), extension dari Microsoft Outlook

·         GPG Explorer eXtension (GpgEX), extension untuk Windows Explorer

·         Claws Mail, program email yang mendukung software GnuPG

Tools lain : Instant Crypt, software opensource untuk melakukan enkripsi & dekripsi berbasis Open PGP



Prinsip Enkripsi-Dekripsi


Meskipun memiliki keandalan tinggi, konsep public key ternyata menyisakan masalah dari sisi pengirim pesan. Misalkan Andi dan Budi ingin melakukan korespondensi menggunakan email rahasia. Mereka memang tidak perlu bertemu langsung untuk bertukaran key sebelum berkiriman email rahasia, cukup upload public key di certificate server atau di website masing-masing agar dapat diakses oleh lawan komunikasinya. Namun, bagaimana cara Andi meyakinkan dirinya bahwa public key tersebut adalah benar milik Budi? Dalam kasus tertentu, bisa saja ada orang lain yang berpura-pura menjadi Budi dan menggunakan public key miliknya untuk mendapatkan email rahasia yang seharusnya hanya boleh dibaca oleh Budi. Oleh karenanya, tidak hanya kerahasiaan pesan, tapi identitas dari pemilik public key juga harus terjamin kredibilitasnya. Hal ini disebut dengan authenticity. Terdapat dua metode yang digunakan : 

1. S/MIME (Secure/Multipurpose Internet Mail Extension), menggunakan konsep “hierarchical trust”. Jika menggunakan S/MIME, public key kita harus diautentikasi terlebih dahulu oleh organisasi terakreditasi sebelum dapat digunakan. Rantai hierarki ini biasanya terdiri dari tiga link : root certificate, certificate authority, dan user certificate



2. OpenPGP, menggunakan konsep “Web of trust”. Konsep ini merepresentasikan struktur dasar dari internet non-hierarki beserta user-usernya. Sebagai contoh, jika User B memberikan kepercayaan-nya kepada User A, maka User B juga akan meyakini kebenaran public key milik User C, jika key tersebut sudah diautentikasi kebenarannya oleh User A.



    Untuk memastikan bahwa pesan yang diterima adalah benar buatan si pengirim yang kita inginkan, PGP/GnuPG menyediakan fasilitas digital signature atau tandatangan digital. Pengirim menggunakan PGP/GnuPG untuk membuat digital signature dari pesan dengan algoritma RSA atau DSA. Untuk melakukannya, PGP/GnuPG akan melakukan komputasi untuk menghasilkan hash (message digest) dari plaintext, dan membuat digital signature dari hasil enkripsi hash tersebut menggunakan private key milik si pengirim. Penerima kemudian akan menggunakan public key milik si pengirim untuk men-dekripsi kode hash tersebut. Jika cocok, maka kode hash tersebut menjadi digital signature untuk pesan, sehingga penerima yakin bahwa pesan tersebut benar dibuat oleh pengirim yang diketahui, atau belum pernah dimodifikasi oleh siapa pun. PGP versi RSA menggunakan algoritma MD5 (Message Digest 5, 128 bit) untuk menggenerate kode hash, sedangkan vesi Diffie-Hellman menggunakan algoritma SHA-1.



OKE! Sekarang kita masuk ke tutorial MEMBUAT PUBLIC DAN PRIVATE KEY

1. Buka Kleopatra

2. Klik File > New Certificate..

3. Di kotak dialog, pilih opsi Create a Personal OpenPGP key pair

4. Masukkan detail key




5. Klik Next > Create Key, masukkan passphrase. Harus menyertakan karakter angka.




6. Akan muncul kotak dialog, pilih Make a Backup Of Your Key Pair untuk meng-export key





7. Masukkan direktori. Centang opsi ASCII armor untuk tipe file *.asc ; kosongkan untuk tipe file *.pgp atau *.gpg.




8. Private key sudah dibuat. Untuk mengexport Public key, klik kanan pada certificate dan pilih Export Certificate.


Nah, setelah membuat public dan private key selanjutnya kita dapat meng-enkripsi dan dekripsi pesan. Berikut tutorialnya :



1. Buka InstantCrypt

2. Klik Key Management > Import Key untuk memasukkan key

3. Enkripsi. Pada form Used Own Key, masukkan private key anda untuk melakukan digital signature. Pada form From/To, masukkan public key milik penerima pesan.




4. Masukkan pesan ke form Message Text, Klik Encrypt. Pesan terenkripsi.




5. Decrypt. Masukkan pesan terenkripsi ke form Encrypted Message. Pada form Used Own Key, masukkan private key anda untuk mendekripsi pesan. Pada form Sender (Signer’s Key), masukkan public key pengirim untuk membuka digital signature di dalam pesan. Klik Decrypt.



Tutorial tambahan : Authentikasi Public Key dengan metode openPGP



1. Buka Kleopatra

2. Klik kanan pada certificate yang akan diautentikasi. Pilih Certify Certificate.

3. Centang opsi I have verified the fingerprint. Fingerprint adalah identitas unik dari setiap key, dengan memverifikasi-nya, anda berarti menyatakan bahwa kunci tersebut benar milik orang yang anda maksud (pada gambar di bawah user : Adele)




4. Klik Next. Pilih opsi Certify for everyone to see. Klik Certify, masukkan passphrase.



5. Untuk mengecek key tersebut sudah diautentikasi oleh siapa saja, klik kanan pada certificate. Pilih Certificate Detail, buka tab User IDs and Certification


Referensi:
1. Networking Laboratory University of Indonesia
2. http://www.gpg4win.org


No comments:

Post a Comment