KRIPTOGRAFI DALAM KONTEKS KEAMANAN KOMPUTER DAN JARINGAN.
DEFENISI
Cryptography adalah suatu ilmu ataupun seni mengamankan pesan, dan dilakukan oleh cryptographer.
Cryptanalysis adalah suatu ilmu dan seni membuka (breaking) ciphertext dan orang yang
melakukannya disebut cryptanalyst.
ELEMEN
CRYPTOSYSTEM
Cryptographic
system atau cryptosystem adalah suatu fasilitas
untuk mengkonversikan plaintext ke ciphertext dan sebaliknya. Dalam sistem ini,
seperangkat parameter yang menentukan transformasi pencipheran tertentu disebut
suatu set kunci. Proses enkripsi dan dekripsi diatur oleh satu atau beberapa
kunci kriptografi.
1. Kriptografi
dapat memenuhi kebutuhan umum suatu transaksi:
- Kerahasiaan (confidentiality) dijamin dengan melakukan enkripsi (penyandian).
- Keutuhan (integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah.
- Jaminan atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan transaksi dilakukan dengan menggunakan password atau sertifikat digital. Sedangkan keotentikan data transaksi dapat dilakukan dengan tanda tangan digital.
- Transaksi dapat dijadikan barang bukti yang tidak bisa disangkal (non-repudiation) dengan memanfaatkan tanda tangan digital dan sertifikat digital.
2.
Karakteristik cryptosytem yang baik sebagai berikut :
- Keamanan sistem terletak pada kerahasiaan kunci dan bukan pada kerahasiaan algoritma yang digunakan.
- Cryptosystem yang baik memiliki ruang kunci (keyspace) yang besar.
- Cryptosystem yang baik akan menghasilkan ciphertext yang terlihat acak dalam seluruh tes statistik yang dilakukan terhadapnya.
- Cryptosystem yang baik mampu menahan seluruh serangan yang telah dikenal sebelumnya
3. MACAM
CRYPTOSYSTEM
A. Symmetric
Cryptosystem
Dalam
symmetric cryptosystem ini, kunci yang digunakan untuk proses enkripsi dan
dekripsi pada prinsipnya identik, tetapi satu buah kunci dapat pula diturunkan
dari kunci yang lainnya. Kunci-kunci ini harus dirahasiakan. Oleh karena itulah
sistem ini sering disebut sebagai secret-key ciphersystem. Jumlah kunci
yang dibutuhkan umumnya adalah :
nC2=n.(n-1)
——–
2
——–
2
dengan n
menyatakan banyaknya pengguna
Contoh dari
sistem ini adalah Data Encryption Standard (DES), Blowfish, IDEA.
B. Assymmetric
Cryptosystem
Dalam
assymmetric cryptosystem ini digunakan dua buah kunci. Satu kunci yang disebut
kunci publik (public key) dapat dipublikasikan, sedang kunci yang lain
yang disebut kunci privat (private key) harus dirahasiakan. Proses
menggunakan sistem ini dapat diterangkan secara sederhana sebagai berikut :
bila A ingin mengirimkan pesan kepada B, A dapat menyandikan pesannya dengan
menggunakan kunci publik B, dan bila B ingin membaca surat tersebut, ia perlu
mendekripsikan surat itu dengan kunci privatnya. Dengan demikian kedua belah
pihak dapat menjamin asal surat serta keaslian surat tersebut, karena adanya
mekanisme ini. Contoh sistem ini antara lain RSA Scheme dan Merkle-Hellman
Scheme.
4. PROTOKOL
CRYPTOSYSTEM
Cryptographic
protocol adalah suatu protokol yang menggunakan kriptografi. Protokol ini
melibatkan sejumlah algoritma kriptografi, namun secara umum tujuan protokol
lebih dari sekedar kerahasiaan. Pihak-pihak yang berpartisipasi mungkin saja
ingin membagi sebagian rahasianya untuk menghitung sebuah nilai, menghasilkan
urutan random, atau pun menandatangani kontrak secara bersamaan.
Penggunaan
kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun
mendeteksi adanya eavesdropping dan cheating.
5. JENIS
PENYERANGAN PADA PROTOKOL
- Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.
- Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan-pesan tersebut.
- Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak hanya memiliki akses atas ciphertext dan plaintext untuk beberapa pesan, tetapi ia juga dapat memilih plaintext yang dienkripsi.
- Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan suatu kasus khusus chosen-plaintext attack. Cryptanalyst tidak hanya dapat memilih plaintext yang dienkripsi, ia pun memiliki kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin hanya dapat memiliki plaintext dalam suatu blok besar untuk dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat memilih blok plaintext yang lebih kecil dan kemudian memilih yang lain berdasarkan hasil yang pertama, proses ini dapat dilakukannya terus menerus hingga ia dapat memperoleh seluruh informasi.
- Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.
- Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda.
- Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.
6. JENIS
PENYERANGAN PADA JALUR KOMUNIKASI
- Sniffing: secara harafiah berarti mengendus, tentunya dalam hal ini yang diendus adalah pesan (baik yang belum ataupun sudah dienkripsi) dalam suatu saluran komunikasi. Hal ini umum terjadi pada saluran publik yang tidak aman. Sang pengendus dapat merekam pembicaraan yang terjadi.
- Replay attack [DHMM 96]: Jika seseorang bisa merekam pesan-pesan handshake (persiapan komunikasi), ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk menipu salah satu pihak.
- Spoofing [DHMM 96]: Penyerang – misalnya Maman – bisa menyamar menjadi Anto. Semua orang dibuat percaya bahwa Maman adalah Anto. Penyerang berusaha meyakinkan pihak-pihak lain bahwa tak ada salah dengan komunikasi yang dilakukan, padahal komunikasi itu dilakukan dengan sang penipu/penyerang. Contohnya jika orang memasukkan PIN ke dalam mesin ATM palsu – yang benar-benar dibuat seperti ATM asli – tentu sang penipu bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik sang nasabah. Pihak bank tidak tahu bahwa telah terjadi kejahatan.
- Man-in-the-middle [Schn 96]: Jika spoofing terkadang hanya menipu satu pihak, maka dalam skenario ini, saat Anto hendak berkomunikasi dengan Badu, Maman di mata Anto seolah-olah adalah Badu, dan Maman dapat pula menipu Badu sehingga Maman seolah-olah adalah Anto. Maman dapat berkuasa penuh atas jalur komunikas ini, dan bisa membuat berita fitnah.
METODE CRYPTOGRAFI
1. METODE KUNO
a. 475 S.M.
bangsa Sparta, suatu bangsa militer pada jaman Yunani kuno, menggunakan teknik
kriptografi yang disebut scytale, untuk kepentingan perang. Scytale terbuat
dari tongkat dengan papyrus yang mengelilinginya secara spiral.
Kunci dari
scytale adalah diameter tongkat yang digunakan oleh pengirim harus sama dengan
diameter tongkat yang dimiliki oleh penerima pesan, sehingga pesan yang
disembunyikan dalam papyrus dapat dibaca dan dimengerti oleh penerima.
b. Julius
Caesar, seorang kaisar terkenal Romawi yang menaklukkan banyak bangsa di Eropa
dan Timur Tengah juga menggunakan suatu teknik kriptografi yang sekarang
disebut Caesar cipher untuk berkorespondensi sekitar tahun 60 S.M. Teknik yang digunakan
oleh Sang Caesar adalah mensubstitusikan alfabet secara beraturan, yaitu oleh
alfabet ketiga yang mengikutinya, misalnya, alfabet ‘’A” digantikan oleh “D”,
“B” oleh “E”, dan seterusnya. Sebagai contoh, suatu pesan berikut :
Dengan aturan
yang dibuat oleh Julius Caesar tersebut, pesan sebenarnya adalah “Penjarakan
panglima divisi ke tujuh segera”.
2. TEKNIK
DASAR KRIPTOGRAFI
a. Substitusi
Salah satu
contoh teknik ini adalah Caesar cipher yang telah dicontohkan diatas. Langkah
pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat
sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk
keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan semakin
sulit pemecahan ciphertext oleh orang yang tidak berhak.
A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-1-2-3-4-5-6-7-8-9-0-.-,
B-F-1-K-Q-G-A-T-P-J-6-H-Y-D-2-X-5-M-V-7-C-8-4-I-9-N-R-E-U-3-L-S-W-,-.-O-Z-0
Gambar 3.
Tabel Substitusi
Tabel
substitusi diatas dibuat secara acak. Dengan menggunakan tabel tersebut, dari
plaintext “5 teknik dasar kriptografi” dihasilkan ciphertext “L 7Q6DP6 KBVBM
6MPX72AMBGP”. Dengan menggunakan tabel substitusi yang sama secara dengan arah
yang terbalik (reverse), plaintext dapat diperoleh kembali dari ciphertext-nya.
b. Blocking
Sistem
enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari
beberapa karakter yang kemudian dienkripsikan secara independen. Plaintext yang
dienkripsikan dengan menggunakan teknik blocking adalah :
Dengan
menggunakan enkripsi blocking dipilih jumlah lajur dan kolom untuk penulisan
pesan. Jumlah lajur atau kolom menjadi kunci bagi kriptografi dengan teknik
ini. Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan
dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya
adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan
blok-nya. Jadi ciphertext yang dihasilkan dengan teknik ini adalah “5K G
KRTDRAEAIFKSPINAT IRO”. Plaintext dapat pula ditulis secara horizontal dan
ciphertextnya adalah hasil pembacaan secara vertikal.
c. Permutasi
Salah satu
teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut
transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan
tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik
substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang
diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya
yang diacak. Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu
dibagi menjadi blok-blok dengan panjang yang sama.
Untuk contoh
diatas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter,
dengan aturan permutasi sebagai berikut :
Dengan
menggunakan aturan diatas, maka proses enkripsi dengan permutasi dari plaintext
adalah sebagai berikut :
Ciphertext
yang dihasilkan dengan teknik permutasi ini adalah “N ETK5 SKD AIIRK RAATGORP
FI”.
BERBAGAI SOLUSI ENKRIPSI MODERN
- Data Encryption Standard (DES)
- standar bagi USA Government
- didukung ANSI dan IETF
- popular untuk metode secret key
- terdiri dari : 40-bit, 56-bit dan 3×56-bit (Triple DES)
- Advanced Encryption Standard (AES)
- untuk menggantikan DES (launching akhir 2001)
- menggunakan variable length block chipper
- key length : 128-bit, 192-bit, 256-bit
- dapat diterapkan untuk smart card.
- Digital Certificate Server (DCS)
- verifikasi untuk digital signature
- autentikasi user
- menggunakan public dan private key
- contoh : Netscape Certificate Server
- IP Security (IPSec)
- enkripsi public/private key
- dirancang oleh CISCO System
- menggunakan DES 40-bit dan authentication
- built-in pada produk CISCO
- solusi tepat untuk Virtual Private Network (VPN) dan Remote Network Access
- Kerberos
- solusi untuk user authentication
- dapat menangani multiple platform/system
- free charge (open source)
- IBM menyediakan versi komersial : Global Sign On (GSO)
- Point to point Tunneling Protocol(PPTP), Layer Two Tunneling Protocol (L2TP)
- dirancang oleh Microsoft
- autentication berdasarkan PPP(Point to point protocol)
- enkripsi berdasarkan algoritm Microsoft (tidak terbuka)
- terintegrasi dengan NOS Microsoft (NT, 2000, XP)
- Remote Access Dial-in User Service (RADIUS)
- multiple remote access device menggunakan 1 database untuk authentication
- didukung oleh 3com, CISCO, Ascend
- tidak menggunakan encryption
- RSA Encryption
- dirancang oleh Rivest, Shamir, Adleman tahun 1977
- standar de facto dalam enkripsi public/private key
- didukung oleh Microsoft, apple, novell, sun, lotus
- mendukung proses authentication
- multi platform
- Secure Hash Algoritm (SHA)
- dirancang oleh National Institute of Standard and Technology (NIST) USA.
- bagian dari standar DSS(Decision Support System) USA dan bekerja sama dengan DES untuk digital signature.
- SHA-1 menyediakan 160-bit message digest
- Versi : SHA-256, SHA-384, SHA-512 (terintegrasi dengan AES)
- MD5
- dirancang oleh Prof. Robert Rivest (RSA, MIT) tahun 1991
- menghasilkan 128-bit digest.
- cepat tapi kurang aman
- Secure Shell (SSH)
- digunakan untuk client side authentication antara 2 sistem
- mendukung UNIX, windows, OS/2
- melindungi telnet dan ftp (file transfer protocol)
- Secure Socket Layer (SSL)
- dirancang oleh Netscape
- menyediakan enkripsi RSA pada layes session dari model OSI.
- independen terhadap servise yang digunakan.
- melindungi system secure web e-commerce
- metode public/private key dan dapat melakukan authentication
- terintegrasi dalam produk browser dan web server Netscape.
- Security Token
- aplikasi penyimpanan password dan data user di smart card
- Simple Key Management for Internet Protocol
- seperti SSL bekerja pada level session model OSI.
- menghasilkan key yang static, mudah bobol.
APLIKASI ENKRIPSI
Beberapa
aplikasi yang memerlukan enkripsi untuk pengamanan data atau komunikasi
diantaranya adalah :
a. Jasa
telekomunikasi
- Enkripsi untuk mengamankan informasi konfidensial baik berupa suara, data, maupun gambar yang akan dikirimkan ke lawan bicaranya.
- Enkripsi pada transfer data untuk keperluan manajemen jaringan dan transfer on-line data billing.
- Enkripsi untuk menjaga copyright dari informasi yang diberikan.
b. Militer dan
pemerintahan
- Enkripsi diantaranya digunakan dalam pengiriman pesan.
- Menyimpan data-data rahasia militer dan kenegaraan dalam media penyimpanannya selalu dalam keaadan terenkripsi.
c. Data
Perbankan
- Informasi transfer uang antar bank harus selalu dalam keadaan terenkripsi
d. Data
konfidensial perusahaan
- Rencana strategis, formula-formula produk, database pelanggan/karyawan dan database operasional
- pusat penyimpanan data perusahaan dapat diakses secara on-line.
- Teknik enkripsi juga harus diterapkan untuk data konfidensial untuk melindungi data dari pembacaan maupun perubahan secara tidak sah.
e. Pengamanan
electronic mail
- Mengamankan pada saat ditransmisikan maupun dalam media penyimpanan.
- Aplikasi enkripsi telah dibuat khusus untuk mengamankan e-mail, diantaranya PEM (Privacy Enhanced Mail) dan PGP (Pretty Good Privacy), keduanya berbasis DES dan RSA.
f. Kartu
Plastik
- Enkripsi pada SIM Card, kartu telepon umum, kartu langganan TV kabel, kartu kontrol akses ruangan dan komputer, kartu kredit, kartu ATM, kartu pemeriksaan medis, dll
- Enkripsi teknologi penyimpanan data secara magnetic, optik, maupun chip.
Mengenal Macam-Macam Kriptografi
Kriptografi adalah ilmu yang mempelajari bagaimana membuat suatu pesan yang dikirim
pengirim dapat disampaikan kepada penerima dengan aman. Kriptografi dapat
memenuhi kebutuhan umum suatu transaksi:
1. Kerahasiaan
(confidentiality) dijamin dengan melakukan enkripsi (penyandian).
2. Keutuhan
(integrity) atas data-data pembayaran dilakukan dengan fungsi hash satu arah.
3. Jaminan
atas identitas dan keabsahan (authenticity) pihak-pihak yang melakukan
transaksi dilakukan dengan menggunakan password atau sertifikat digital.
Sedangkan keotentikan data transaksi dapat dilakukan dengan tanda tangan
digital.
4. Transaksi
dapat dijadikan barang bukti yang tidak bisa disangkal (non-repudiation) dengan
memanfaatkan tanda tangan digital dan sertifikat digital.
Pembakuan
penulisan pada kriptografi dapat ditulis dalam bahasa matematika. Fungsi-fungsi
yang mendasar dalam kriptografi adalah enkripsi dan dekripsi.
Enkripsi adalah proses mengubah suatu pesan asli (plaintext) menjadi suatu pesan
dalam bahasa sandi (ciphertext).
C = E (M)
dimana
- M = pesan asli
- E = proses enkripsi
- C = pesan dalam bahasa sandi (untuk ringkasnya disebut sandi)
Sedangkan dekripsi
adalah proses mengubah pesan dalam suatu bahasa sandi menjadi pesan asli
kembali.
- M = D (C)
- D = proses dekripsi
Umumnya,
selain menggunakan fungsi tertentu dalam melakukan enkripsi dan dekripsi,
seringkali fungsi itu diberi parameter tambahan yang disebut dengan istilah kunci.
Untuk
memudahkan penggambaran suatu skenario komunikasi dalam pembahasan selanjutnya,
maka dipergunakan nama-nama orang yang relevan dengan peran yang dilakukannya
dalam komunikasi itu.
Kode &
nama
|
Penjelasan
|
A: Anto
|
Pihak pertama
|
B: Badu
|
Pihak kedua
|
C: Chandra
|
Pihak ketiga
|
E: Edi
|
Pihak penyadap informasi yang tidak
diperuntukkan kepadanya (eavesdropper)
|
M: Maman
|
Pihak yang tidak hanya menyadap informasi,
namun juga mengubah informasi yang disadap (malacious person)
|
T: Tari, Tata,
Tania
|
Pihak yang dipercaya oleh pihak pertama, kedua
dan ketiga (trusted person)
|
Jenis Serangan
Selain ada
pihak yang ingin menjaga agar pesan tetap aman, ada juga ternyata pihak-pihak
yang ingin mengetahui pesan rahasia tersebut secara tidak sah. Bahkan ada
pihak-pihak yang ingin agar dapat mengubah isi pesan tersebut. Ilmu untuk
mendapatkan pesan yang asli dari pesan yang telah disandikan tanpa memiliki
kunci untuk membuka pesan rahasia tersebut disebut kriptoanalisis. Sedangkan
usaha untuk membongkar suatu pesan sandi tanpa mendapatkan kunci dengan cara
yang sah dikenal dengan istilah serangan (attack).
Di bawah ini
dijelaskan beberapa macam penyerangan terhadap pesan yang sudah dienkripsi:
1. Ciphertext
only attack, penyerang hanya mendapatkan pesan yang sudah tersandikan
saja.
2. Known
plaintext attack, dimana penyerang selain mendapatkan sandi, juga
mendapatkan
pesan asli. Terkadang disebut pula
clear-text attack.
3. Choosen
plaintext attack, sama dengan known plaintext attack, namun
penyerang bahkan dapat memilih penggalan mana dari pesan asli yang akan
disandikan.
Berdasarkan
bagaimana cara dan posisi seseorang mendapatkan pesan-pesan dalam saluran
komunikasi, penyerangan dapat dikategorikan menjadi:
1. Sniffing:
secara harafiah berarti mengendus, tentunya dalam hal ini yang diendus adalah
pesan (baik yang belum ataupun sudah dienkripsi) dalam suatu saluran
komunikasi. Hal ini umum terjadi pada saluran publik yang tidak aman. Sang
pengendus dapat merekam pembicaraan yang terjadi.
2. Replay
attack: Jika seseorang bisa merekam pesan-pesan handshake (persiapan
komunikasi), ia mungkin dapat mengulang pesan-pesan yang telah direkamnya untuk
menipu salah satu pihak.
3. Spoofing
: Penyerang – misalnya Maman – bisa menyamar menjadi Anto. Semua orang dibuat
percaya bahwa Maman adalah Anto. Penyerang berusaha meyakinkan pihak-pihak lain
bahwa tak ada salah dengan komunikasi yang dilakukan, padahal komunikasi itu
dilakukan dengan sang penipu/penyerang. Contohnya jika orang memasukkan PIN ke
dalam mesin ATM palsu – yang benar-benar dibuat seperti ATM asli – tentu sang
penipu bisa mendapatkan PIN-nya dan copy pita magentik kartu ATM milik sang
nasabah. Pihak bank tidak tahu bahwa telah terjadi kejahatan.
4.
Man-in-the-middle : Jika spoofing terkadang hanya menipu satu
pihak, maka dalam skenario ini, saat Anto hendak berkomunikasi dengan Badu,
Maman di mata Anto seolah-olah adalah Badu, dan Maman dapat pula menipu Badu
sehingga Maman seolah-olah adalah Anto. Maman dapat berkuasa penuh atas jalur
komunikas ini, dan bisa membuat berita fitnah.
Kabel koaksial
yang sering dipergunakan pada jaringan sangat rentan terhadap serangan vampire
tap, yakni perangkat keras sederhana yang bisa menembus bagian dalam kabel
koaksial sehingga dapat mengambil data yang mengalir tanpa perlu memutuskan
komunikasi data yang sedang berjalan. Seseorang dengan vampire tap dan komputer
jinjing dapat melakukan serangan pada bagian apa saja dari kabel koaksial.
Penyerang juga
bisa mendapatkan kunci dengan cara yang lebih tradisional, yakni dengan
melakukan penyiksaan, pemerasan, ancaman, atau bisa juga dengan menyogok
seseorang yang memiliki kunci itu. Ini adalah cara yang paling ampuh untuk
mendapat kunci
.
Kunci Simetris
Ini adalah
jenis kriptografi yang paling umum dipergunakan. Kunci untuk membuat pesan yang
disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi
pembuat pesan dan penerimanya harus memiliki kunci yang sama persis.
Kunci Simetris
Siapapun yang
memiliki kunci tersebut – termasuk pihak-pihak yang tidak diinginkan – dapat
membuat dan membongkar rahasia ciphertext. Problem yang paling jelas disini
terkadang bukanlah masalah pengiriman ciphertext-nya, melainkan masalah
bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan.
Contoh algoritma kunci simetris yang terkenal adalah DES (Data Encryption
Standard) dan RC-4.
Kunci
Asimetris
Pada
pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman menemukan teknik
enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris
adalah pasangan kunci-kunci kriptografi yang salah satunya dipergunakan untuk
proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan
kunci publik dapat menggunakannya untuk mengenkripsikan suatu pesan, sedangkan
hanya satu orang saja yang memiliki rahasia tertentu – dalam hal ini kunci
privat – untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya.
Kunci
Asimetris
Dengan cara
seperti ini, jika Anto mengirim pesan untuk Badu, Anto dapat merasa yakin bahwa
pesan tersebut hanya dapat dibaca oleh Badu, karena hanya Badu yang bisa
melakukan dekripsi dengan kunci privatnya. Tentunya Anto harus memiliki kunci
publik Badu untuk melakukan enkripsi. Anto bisa mendapatkannya dari Badu,
ataupun dari pihak ketiga seperti Tari.
Teknik
enkripsi asimetris ini jauh lebih lambat ketimbang enkripsi dengan kunci
simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan
dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan
kunci asimetris. Sedangkan pesannya dikirim setelah disandikan dengan kunci
simetris tadi. Contoh algoritma terkenal yang menggunakan kunci asimetris
adalah RSA (merupakan singkatan penemunya yakni Rivest, Shamir dan Adleman).
Fungsi Hash
Satu Arah
Kini akan
dibahas mengenai keutuhan pesan saat dikirimkan. Bagaimana jika Anto
mengirimkan surat pembayaran kepada Badu sebesar 1 juta rupiah, namun di tengah
jalan Maman (yang ternyata berhasil membobol sandi entah dengan cara apa)
membubuhkan angka 0 lagi dibelakangnya sehingga menjadi 10 juta rupiah? Di mata
Tari, pesan tersebut harus utuh, tidak diubah-ubah oleh siapapun, bahkan bukan
hanya oleh Maman, namun juga termasuk oleh Anto, Badu dan gangguan pada
transmisi pesan (noise). Hal ini dapat dilakukan dengan fungsi hash satu arah
(one-way hash function), yang terkadang disebut sidik jari (fingerprint), hash,
message integrity check, atau manipulation detection code.
Saat Anto
hendak mengirimkan pesannya, dia harus membuat sidik jari dari pesan yang akan
dikirim untuk Badu. Pesan (yang besarnya dapat bervariasi) yang akan di-hash
disebut pre-image, sedangkan outputnya yang memiliki ukurannya tetap, disebut
hash-value (nilai hash). Kemudian, melalui saluran komunikasi yang aman, dia
mengirimkan sidik jarinya kepada Badu. Setelah Badu menerima pesan si Anto –
tidak peduli lewat saluran komunikasi yang mana – Badu kemudian juga membuat
sidik jari dari pesan yang telah diterimanya dari Anto. Kemudian Badu
membandingkan sidik jari yang dibuatnya dengan sidik jari yang diterimanya dari
Anto. Jika kedua sidik jari itu identik, maka Badu dapat yakin bahwa pesan itu
utuh tidak diubah-ubah sejak dibuatkan sidik jari yang diterima Badu. Jika
pesan pembayaran 1 juta rupiah itu diubah menjadi 10 juta rupiah, tentunya akan
menghasilkan nilai hash yang berbeda.
Membuat Sidik
Jari Pesan
Fungsi hash
untuk membuat sidik jari tersebut dapat diketahui oleh siapapun, tak
terkecuali, sehingga siapapun dapat memeriksa keutuhan dokumen atau pesan
tertentu. Tak ada algoritma rahasia dan umumnya tak ada pula kunci rahasia.
Jaminan dari
keamanan sidik jari berangkat dari kenyataan bahwa hampir tidak ada dua
pre-image yang memiliki hash-value yang sama. Inilah yang disebut dengan sifat
collision free dari suatu fungsi hash yang baik. Selain itu, sangat sulit untuk
membuat suatu pre-image jika hanya diketahui hash-valuenya saja.
Contoh
algoritma fungsi hash satu arah adalah MD-5 dan SHA. Message authentication
code (MAC) adalah salah satu variasi dari fungsi hash satu arah, hanya saja
selain pre-image, sebuah kunci rahasia juga menjadi input bagi fungsi MAC.
Tanda Tangan
Digital
Badu memang
dapat merasa yakin bahwa sidik jari yang datang bersama pesan yang diterimanya
memang berkorelasi. Namun bagaimana Badu dapat merasa yakin bahwa pesan itu
berasal dari Anto? Bisa saja saat dikirimkan oleh Anto melalui saluran
komunikasi yang tidak aman, pesan tersebut diambil oleh Maman. Maman kemudian
mengganti isi pesan tadi, dan membuat lagi sidik jari dari pesan yang baru
diubahnya itu. Lalu, Maman mengirimkan lagi pesan beserta sidik jarinya itu
kepada Badu, seolah-oleh dari Anto.
Untuk mencegah
pemalsuan, Anto membubuhkan tanda tangannya pada pesan tersebut. Dalam dunia
elektronik, Anto membubuhkan tanda tangan digitalnya pada pesan yang akan
dikirimkan untuk Badu sehingga Badu dapat merasa yakin bahwa pesan itu memang
dikirim oleh Anto.
Sifat yang
diinginkan dari tanda tangan digital diantaranya adalah:
1. Tanda
tangan itu asli (otentik), tidak mudah ditulis/ditiru oleh orang lain. Pesan
dan tanda tangan pesan tersebut juga dapat menjadi barang bukti, sehingga
penandatangan tak bisa menyangkal bahwa dulu ia tidak pernah menandatanganinya.
2. Tanda
tangan itu hanya sah untuk dokumen (pesan) itu saja. Tanda tangan itu tidak
bisa dipindahkan dari suatu dokumen ke dokumen lainnya. Ini juga berarti bahwa
jika dokumen itu diubah, maka tanda tangan digital dari pesan tersebut tidak
lagi sah.
3. Tanda
tangan itu dapat diperiksa dengan mudah.
4. Tanda
tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah bertemu dengan
penandatangan.
5. Tanda
tangan itu juga sah untuk kopi dari dokumen yang sama persis.
Meskipun ada
banyak skenario, ada baiknya kita perhatikan salah satu skenario yang cukup
umum dalam penggunaan tanda tangan digital. Tanda tangan digital memanfaatkan
fungsi hash satu arah untuk menjamin bahwa tanda tangan itu hanya berlaku untuk
dokumen yang bersangkutan saja. Bukan dokumen tersebut secara keseluruhan yang
ditandatangani, namun biasanya yang ditandatangani adalah sidik jari dari
dokumen itu beserta timestamp-nya dengan menggunakan kunci privat. Timestamp
berguna untuk menentukan waktu pengesahan dokumen.
Pembuatan
Tanda Tangan Digital
Keabsahan
tanda tangan digital itu dapat diperiksa oleh Badu. Pertama-tama Badu membuat
lagi sidik jari dari pesan yang diterimanya. Lalu Badu mendekripsi tanda tangan
digital Anto untuk mendapatkan sidik jari yang asli. Badu lantas membandingkan
kedua sidik jari tersebut. Jka kedua sidik jari tersebut sama, maka dapat
diyakini bahwa pesan tersebut ditandatangani oleh Anto.
Masalah
Pertukaran Kunci Publik
Anto hendak
mengirimkan Badu suatu dokumen rahasia. Jika mereka belum pernah bertemu
sebelumnya, tentu Badu harus mengirimkan kunci publiknya kepada Anto agar Anto
dapat melakukan enkripsi yang pesannya hanya dapat dibuka oleh Badu. Demikian
juga pula sebaliknya, Anto harus mengirimkan kepada Badu kunci publiknya agar
Badu dapat memeriksa keaslian tanda tangan Anto pada pesan yang dikirim. Dengan
cara ini Anto dapat memastikan pesan itu sampai ke tujuannya, sedangkan Badu
dapat merasa yakin bahwa pengirim pesan itu adalah Anto.
Masalah yang
muncul adalah bagaimana mereka dapat saling bertukar kunci dengan aman? Bisa
saja di tengah pertukaran kunci-kunci publik milik Anto dan Budi itu diganti
dengan kunci publik milik Maman. Dengan begitu Maman dengan bebas dapat
menyadap dan mengubah seluruh informasi. Inilah suatu contoh dari
man-in-the-middle attack.
Anto dan Badu
harus sama-sama yakin bahwa kunci-kunci publik yang mereka dapatkan benar-benar
otentik. Mereka bisa mendapatkannya dari sesorang yang dipercaya, Tari
misalnya. Setiap anggota jaringan diasumsikan telah memiliki saluran komunikasi
pribadi yang aman dengan Tari. Saluran inilah yang dimanfaatkan untuk mengirim
kunci publik Badu ke Anto (dan sebaliknya). Tari menjadi penjamin keabsahan
kunci jika Anto dan Badu sebelumnya tidak pernah bertukar kunci publik.
Skenario ini tetap membutuhkan kunci-kunci kriptografi lagi (baik itu kunci
simetris ataupun kunci asimetris) untuk pengamanan saluran komunikasi antara
Tari dengan Anto atau Badu.
Sertifikat
Digital
Masalah di
atas dapat dipecahkan dengan penggunaan sertifikat digital. Tari tidak lagi
setiap saat menjadi penukar kunci, namun Tari cukup menandatangani kunci publik
milik setiap orang di jaringan tersebut. Sebenarnya dalam sertifikat tersebut
tak hanya berisi kunci publik, namun dapat berisi pula informasi penting
lainnya mengenai jati diri pemilik kunci publik, seperti misalnya nama, alamat,
pekerjaan, jabatan, perusahaan dan bahkan hash dari suatu informasi rahasia.
Semua orang mempercayai otoritas Tari dalam memberikan tanda tangan, sehingga
orang-orang dalam jaringan itu merasa aman menggunakan kunci publik yang telah
ditandatangani Tari.
Contoh
Sertifikat Digital
Jika Maman
berhasil mencuri sertifikat digital yang dipertukarkan antara Anto dan Badu,
serta menggantinya dengan sertifikat digital milik dirinya sendiri, maka Anto
dan Badu dapat segera melihat bahwa sertifikat digital yang diterimanya bukan
‘lawan bicara’ yang semestinya.
Bagaimana jika
Chandra – yang berada di luar jaringan Tari – hendak berkomunikasi dengan Anto?
Chandra memiliki juga sertifikat, tetapi tidak ditandatangani oleh Tari,
melainkan oleh Tata, seseorang yang dipercaya dalam jaringan tempat Chandra
berada. Tari dan Tata adalah otoritas sertifikat (certificate authority), yaitu
pihak-pihak yang berwenang memberikan sertifikat. Namun Anto tidak mengenal dan
tidak mempercayai Tata. Masalah ini dapat diselesaikan jika ada otoritas sertifikat
(OS) yang kedudukannya lebih tinggi dari Tata dan Tari – katakanlah Tania.
Tania memberikan pengesahan kepada Tata dan Tari. Jadi ada hirarki dari
sertifikat digital. Jika Tania berada pada kedudukan hirarki yang paling
tinggi, maka Tania disebut otoritas sertifikat utama (root certificate
authority).
Anto
mempercayai tanda tangan Tari. Namun karena Tari sendiri keberadaannya disahkan
oleh Tania, tentunya Anto harus mengakui otoritas Tania. Jika Tania memberikan
pengesahan kepada OS lain dibawahnya, seperti Tata, maka dengan merunut
struktur hirarki percabangan OS, Anto dapat memeriksa kebenaran sertifikat
digital milik Chandra yang disahkan oleh Tata.
Contoh Hirarki
Otoritas Sertifikat Digital
Serangan
terhadap sistem yang memiliki pengamanan dengan sertifikat digital sulit
dilakukan. Jelas Edi tidak mendapatkan apa-apa kalaupun ia memainkan ulang
percakapan antara Anto dan Chandra. Edi membutuhkan kunci privat untuk bisa
membuka pesan-pesan yang dipertukarkan, padahal kunci privat itu tidak ada di
dalam sertifikat digital.
Penukaran
sertifikat digital Chandra dengan sertifikat digital Maman akan segera
diketahui, karena sertifikat digital itu pasti berbeda. Sedangkan jika
sertifikat yang dipertukarkan antara Chandra dan Anto tidak diganti, tetapi
yang diganti oleh Maman adalah pesan yang dipertukarkan, maka tentu ada
ketidakcocokan dalam pemeriksaan tanda tangan digital.
Secara
teoritis keunggulan dari tanda tangan digital adalah kemampuan untuk melakukan
proses otentikasi secara off-line. Pemeriksa cukup memiliki kunci publik dari
OS utama untuk mengetahui sah-tidaknya kunci publik dari lawan bicaranya.
Selain itu untuk meningkatkan keamanan, kunci publik OS utama bisa saja
diintegrasikan dalam program aplikasi. Namun kenyataannya, karena ada kemungkinan
sertifikat digital tersebut hilang, tercuri atau identitas pemilik sertifikat
berubah (perubahan alamat surat elektronik atau nomor KTP misalnya), maka
sertifikat digital perlu diperiksa keabsahannya dengan melihat daftar
sertifikat terbatalkan (certificate revocation list) yang disimpan oleh OS.
Tanda Tangan
Pesan Ganda
Andaikan Anto
membuat perjanjian jual-beli dengan Badu. Untuk masalah pembayaran, Anto
menginstruksikan bank untuk memberikan kepada Badu sejumlah uang sesuai dengan
perjanjian jual-beli, namun Anto tidak ingin agar bank mengetahui isi
perjanjian jual-beli itu.
1. Anto
membuat sidik jari dari SPP (yaitu Hash(SPP)) dan sidik jari SPJB (yakni
Hash(SPJB)).
2. Kemudian,
Anto membuat sebuah sidik jari baru dari gabungan kedua sidik jari sebelumnya (
Hash ( (Hash(SPP) + Hash(SPJB) ) ). Hasil hash tersebut dinamakan sidik jari
pesan ganda SPP & SPJB.
3. Anto
menyerahkan surat perjanjian jual belinya kepada Badu. Selain itu Anto juga
menyerahkan surat perintah pembayaran beserta sidik jari pesan ganda SPP &
SPJB kepada bank.
4. Saat Badu
ingin mengambil uang di bank, Badu membuat sidik jari dari surat perjanjian
jual beli (SPJB). Badu menyerahkan sidik jari SPJB kepada bank.
5. Bank
membuat sidik jari dari surat perintah pembayaran (SPP).
6. Bank
menggabungkan sidik jari SPP dengan sidik jari SPJB yang diterimanya dari Badu,
kemudian meng-hash-nya sehingga dihasilkan sidik jari pesan ganda SPP &
SPJB.
7. Jika sidik
jari pesan ganda SPP & SPJB yang baru dibuat itu sama dengan yang telah
diberikan oleh Anto, maka bank menjalankan kewajibannya kepada Badu.
Pembuatan
Sidik Jari Pesan Ganda
Jika sidik
jari pesan ganda SPP & SPJB dienkripsi dengan kunci privat Anto, maka akan
menjadi tanda tangan pesan ganda (dual-signature) Anto untuk kedua perjanjian
tersebut.
Protokol
Pembagian Rahasia
Jika Anto
memiliki rahasia, ia dapat memberikan ‘separuh’ rahasia itu kepada Badu dan
‘separuh’ rahasia itu kepada Chandra. Badu, yang menerima paruh pertama rahasia
Anto, tidak bisa mengetahui apa isi rahasia itu. Demikian pula dengan Chandra.
Namun, jika Badu dan Chandra menggabungkan potongan-potongan rahasia itu, maka
akan tergambar rahasia Anto. Pembagian rahasia (secret splitting) dapat
dilakukan dengan cara:
1. Anto
membuat seuntai string acak R yang panjangnya sama dengan pesan rahasia M.
2. Anto
melakukan operasi XOR antara M dengan R, sehingga menghasilkan S.
3. Anto
memberikan R kepada Badu dan S kepada Chandra
4. Jika Badu
dengan Chandra bertemu, maka mereka sanggup mendapatkan pesan rahasia M dengan
cara melakukan operasi XOR antara S dengan R.
Protokol
Komitmen-Bit
Protokol ini
bermanfaat kalau misalnya Anto hendak membuat suatu pernyataan atau komitmen
(katakanlah suatu string binari 1000), namun Anto tak ingin agar Badu
mengetahui isi pernyatan tersebut sebelum saatnya. Badu harus merasa yakin
bahwa Anto pada saatnya nanti, benar-benar mengeluarkan isi pernyataan yang
sebenarnya saat melakukan komitmen, dan tidak mengeluarkan pernyataan yang
sudah diubah (misalnya mengubah string tadi menjadi 1001). Ada beberapa jenis
protokol komitmen-bit, namun di bawah ini hanya dijelaskan salah satu
diantaranya, yakni dengan fungsi hash satu arah:
1. Anto
membuat dua buah string secara acak, yakni R1 dan R2
2. Anto
menggabungkan kedua string acak itu ke dalam pernyataannya (b) yang akan
dikomitmenkan menjadi (R1, R2, b)
3. Anto
menghitung hash dari gabungan string itu, Hash(R1, R2, b).
4. Anto
kemudian mengirimkan hash tersebut beserta R1 kepada Badu. Badu akan
menyimpannya untuk pemeriksaan nanti.
5. Jika sudah
tiba saatnya untuk menunjukkan pernyataannya, Anto memberikan seluruh string
(R1, R2, b) kepada Badu.
6. Badu
memeriksa fungsi hash dari (R1, R2, b). Jika cocok dengan hash yang
diperiksanya dulu, maka pernyataan Anto tidak diubah.
Tanda Tangan
Buta
Badu disodori
100 amplop tertutup oleh Anto. Amplop itu berisi secarik pesan dan kertas
karbon. Badu membuka 99 amplop secara acak. Jika seluruh amplop yang dibuka
ternyata berisi pesan yang mirip, maka Badu dapat merasa bahwa amplop ke-100
juga berisi pesan yang mirip pula. Namun, jika satu saja dari 99 amplop tadi
ada yang isi berbeda dari yang lain, maka Badu dapat mencurigai bahwa isi
amplop ke-100 bisa saja juga tidak mirip dengan isi ke-98 amplop lainnya.
Dalam kasus
dimana ternyata ke-99 amplop yang dibuka secara acak tadi berisi pesan yang
mirip, maka dengan keyakinan yang cukup tinggi Badu berani menandatangani
amplop terakhir yang belum dibuka. Tanda tangan Badu akan menembus amplop dan
kertas karbon, sehingga pesan dalam amplop akan tertandatangani oleh Badu. Badu
kurang lebih tahu apa isi pesan di amplop ke-100 itu. Protokol tanda tangan
buta (blind signature) bekerja sebagai berikut:
1. Anto
‘mengalikan’ dokumen (yang akan ditandatangani) dengan sebuah faktor pembuta.
2. Anto
mengirimkan dokumen itu kepada Badu
3. Badu
menandatangani dokumen itu
4. Badu
mengembalikan dokumen yang sudah ditandatangani tadi kepada Anto
5. Anto
membaginya dengan faktor pembuta, sehingga mendapatkan dokumen yang asli sudah
tertandatangani oleh Badu.
Protokol Uang
Digital
1. Deskripsi
Protokol
Berdasarkan
beberapa teori penunjang di atas, maka dapatlah dibangun suatu protokol untuk
uang digital. David Chaum, memiliki beberapa paten atas protokol uang digital
yang diciptakannya. Berikut ini dijelaskan salah satu protokol uang digital:
1.
Anto menyiapkan n lembar uang dengan nilai
tertentu. Setiap uang diberi nomor seri acak X yang cukup panjang, sehingga
kemungkinan 2 bilangan acak sama kecil sekali. Dalam setiap uang juga ada n
(I1, I2, …, In) string identifikasi yang berguna untuk memberikan informasi
mengenai pemilik uang, yakni Anto. Anto kemudian memecah tiap-tiap string
identitas diri itu tadi menjadi dua bagian dengan menggunakan protokol
pemecahan rahasia. Lantas Anto melakukan bit-komitmen pada setiap pecahan.
Contoh uang yang disiapkan adalah:
Nilai:
Rp.1.000,-
Nomor seri
acak: X
String
identitas: I1 = (I1L, I1R)
I2 = (I2L,
I2R)
. . . .
In = (InL,
InR)
2. Anto
memasukkan uang itu kedalam yang juga disisipi kertas karbon amplop (mengalikan
uang dengan faktor pembuta), lalu memberikannya kepada bank.
3. Bank akan
meminta Anto untuk membuka n – 1 amplop itu secara acak. Bank memeriksa apakah
semua uang tersebut memiliki nilai yang sama. Bank juga meminta kepada Anto
untuk membuktikan kejujuran dirinya saat menuliskan string identifikasi pada
uang itu, dengan cara menggabungkan pasangan-pasangan string identifikasi.
4. Jika bank
merasa bahwa Anto tidak melakukan kecurangan, maka bank akan menandatangani
uang terakhir yang masih di dalam amplop itu dan menyerahkannya kepada Anto.
Tanda tangan bank akan menembus amplop dan kertas karbon sehingga uang di
dalamnya tertandatangani.
5. Anto
membuka amplop. Uang siap dipakai.
6. Anto
menyerahkan uang kepada Badu. Badu sebagai penerima uang, akan memeriksa apakah
tanda tangan bank pada uang itu absah.
7. Badu akan
menyuruh Anto untuk membuka salah satu sisi dari setiap string identifikasi di
setiap uang dengan cara memberikan string pemilih sepanjang n-bit. Artinya,
jika string pemilih itu b1, b2, …, bn maka Anto harus membuka sisi kiri atau
kanan dari Ii, tergantung apakah bi itu 0 atau 1.
8. Setelah itu
Badu membawa uang tersebut ke bank. Bank akan memeriksa apakah nomor seri uang
tersebut sudah pernah diterima oleh bank. Kalau belum ada, maka uang tersebut
dinyatakan sah.
9. Jika nomor
seri uang itu sudah pernah diterima oleh bank, maka bank akan memeriksa string
identitas yang sudah terbuka pada uang itu dan membandingkannya dengan string
identitas pada uang dengan nomor seri sama yang pernah diterima bank
sebelumnya. Jika ternyata string identitas itu sama, maka berarti Badu yang
menggandakan uang tersebut. Namun jika berbeda, maka berarti Anto yang
menggandakan uang digital tersebut.
2.
Pembelanjaan Ganda
Jika Anto
menggandakan uang digitalnya lalu menggunakan uang digital yang sama itu dua
kali, bank dapat mendeteksinya meskipun Badu tidak bisa. Badu memang ‘membuka’
identitas uang, namun hanya separuh-separuh. Kalau uang digital itu pernah
diberikan Anto kepada Chandra, maka tentu Chandra juga pernah ‘membuka’ separuh
identitas uang digital tadi secara acak. Nah, kemungkinan bahwa proses
pembukaan identitas oleh Badu dan Chandra itu sama (maksudnya sama urutan
pembukaannya, misalnya kiri-kiri-kanan-kiri-kanan, dan seterusnya) adalah 1 per
2n. Andaikan n cukup besar, katakanlah 16 saja, maka kemungkinan Badu dan
Chandra secara acak membuka paruhan identitas dengan urutan sama adalah 1 :
65536. Artinya, jika Anto memberikan uangnya kepada dua orang yang berbeda,
kemungkinan besar paruhan identitas yang dibuka juga berbeda. Jika saat
otentikasi uang digital oleh bank ditemukan bahwa ada uang digital dengan nomor
seri sama yang telah diuangkan, dan paruhan identitasnya berbeda, maka
kemungkinan besar Anto menyerahkan uang digital yang sama kepada dua orang yang
berbeda.
Sedangkan
apabila Badu menguangkan uang digital yang sama dua kali, karena paruhan
identitas dari uang digital yang diotentikasi itu sama persis dengan yang sudah
tercatat, maka kemungkinan besar uang itu diberikan Anto kepada orang yang
sama. Badulah yang ketahuan menguangkan uang digital yang sama dua kali.
Penggunaan uang digital yang sama dua kali dikenal dengan istilah pembelanjaan
ganda (double spending).
Panjang Kunci
Panjang Kunci
Simetris
Meskipun ada
beberapa cara bagi seorang kriptoanalis untuk memecahkan pesan rahasia, namun
cara yang cukup umum dilakukan adalah dengan melakukan brute-force attack.
Dengan cara ini, seorang penyerang mencoba seluruh kemungkinan kunci yang ada,
sampai menemukan sebuah kunci yang jika dipergunakan untuk mendekripsi pesan
yang disandikan akan memunculkan suatu pesan yang bermakna. Tentunya cara ini
bermanfaat hanya jika sudah diketahui algoritmanya, namun tidak diketahui
kuncinya apa.
PIN 5 digit
berarti biasanya ada 100.000 kombinasi. Kelihatannya cukup, namun sebenarnya
kurang. Dengan sebuah komputer pribadi saja bisa dengan mudah diselesaikan.
Salah satu pencegahannya adalah dengan pembatasan seberapa banyak pemakai dapat
mencoba memasukkan PIN. Biasanya dibatasi tiga kali.
Berikut ini
diberikan contoh dari brute-force attack pada suatu algoritma ‘geser pada papan
ketik QWERTY’:
Sandi
zsdyrtvstf dicoba dengan kunci 3 menjadi bjkwpqmjql
Sandi
zsdyrtvstf dicoba dengan kunci 2 menjadi nkleqwzkwa
Sandi
zsdyrtvstf dicoba dengan kunci 1 menjadi mastercard
Ternyata kunci
1 cocok, karena dalam pesan yang disandikan itu mungkin ada transaksi yang
menggunakan kartu kredit ‘mastercard’. Dengan menggunakan kunci yang sama,
kemudian penyerang berusaha mendekripsikan bagian-bagian lain dari pesan,
mungkin berusaha mengambil nomor kartu kreditnya. Kunci itu juga dapat dipakai
untuk keperluan lain, misalnya untuk melakukan penipuan (spoofing).
DES, sebuah
algoritma simetris, memiliki panjang kunci 56-bit, artinya ada 256 kemungkinan
kunci. Sedangkan peraturan di Amerika Serikat yang akan diberlakukan pada tahun
1998 nanti akan melarang ekspor teknologi enkripsi lebih dari 40-bit. Sedangkan
untuk keperluan dalam negeri Amerika Serikat, kunci 128-bit masih diizinkan
penggunaannya.
Tahun 1995,
Michael Wierner merancang sebuah chip yang mengkhususkan diri untuk melakukan
brute-force attack pada metoda enkripsi DES. Chip tersebut dapat menemukan
kunci rahasia dalam waktu rata-rata 3,5 jam dan kunci itu dijamin dapat
ditemukan dalam waktu 7 jam. Harga pembuatannya adalah 1 juta dollar AS. Sesuai
hukum Moore, setiap 18 bulan kemampuan komputer meningkat 2 kali lipat untuk
harga yang sama. Maka, pada tahun 2000, harga chip itu hanya berkisar 100.000
dolar AS. Harga ini masih dalam jangkauan daya beli beberapa mafia kejahatan
terorganisir. Karena itu, kini disarankan untuk menggunakan DES dengan kunci
112-bit.
Panjang
kunci DES
|
Jaminan
waktu untuk menemukan kunci
|
40-bit
|
0,4 detik
|
56-bit
|
7 jam
|
64-bit
|
74 jam 40 menit
|
128-bit
|
157.129.203.952.300.000 tahun
|
Protokol
keamanan SSL (Secure Socket Layer) pada Netscape Navigator menggunakan
algoritma RC4 40-bit untuk enkripsi simetrisnya. Tahun 1995, Damien Doligez
menjebolnya menggunakan 120 komputer Unix yang terhubung pada jaringan dalam
waktu 8 hari. Dengan cara seperti ini, dijamin bahwa dalam 15 hari kunci itu
pasti ditemukan.
Panjang
kunci RC4
|
Jaminan
waktu untuk menemukan kunci
|
40-bit
|
15 hari
|
56-bit
|
2.691,49 tahun
|
64-bit
|
689.021,57 tahun
|
128-bit
|
12.710.204.652.610.000.000.000.000 tahun
|
Panjang Kunci
Asimetris
Sedangkan pada
sistem enkripsi kunci publik-privat, yang memegang peranan dalam menjebol kunci
privat adalah kesulitan mencari faktor prima bilangan yang sangat besar.
Beberapa kunci yang dipergunakan 10 tahun lalu saja kini sama sekali tidak laik
pakai seiring dengan perkembangan ilmu pengetahuan dan teknologi.
Kunci publik
yang dimanfaatkan SSL adalah teknologi kunci publik 40-bit dari RSA, yang
ternyata dapat dijebol dalam waktu 1,3 hari dengan 100 komputer menggunakan
brute-force attack [DHMM 96].
Ronald Rivest,
salah seorang penemu RSA, juga pernah menghitung bahwa untuk menemukan kunci
RSA 512-bit dengan cara brute-force attack membutuhkan biaya 8,2 juta dollar AS
[DaLe 96]. Untuk kasus tertentu, ini pun tidak aman. Kini perusahaan-perusahaan
disarankan menggunakan kunci 2048 bit agar data aman sampai tahun 2015.
Prospek
Pada saat
tulisan ini dibuat, ekspor teknologi enkripsi DES 56-bit keluar dari Amerika
Serikat masih diizinkan. Untuk yang lainnya hanya diizinkan 40-bit. Setelah
tanggal 31 Desember 1998, ekspor teknologi enkripsi DES dari Amerika Serikat
hanya dibatasi sampai 40-bit saja, atau boleh saja tetap 56-bit, namun
pengembang perangkat lunak itu harus menyediakan perangkat untuk membuka kunci
itu juga [Star 97].
Panjang-pendeknya
kunci dalam teknik-teknik enkripsi pada sistem perdagangan di Internet, akan
menjadi salah satu titik lemah sistem perdagangan di Internet itu sendiri. Ada
argumen yang menyatakan bahwa kalau pada suatu saat ukuran kunci publik-privat
terasa terlalu pendek, maka panjangkan saja lagi kunci itu, tentu proses
penyerangannya akan makin sulit. Hal ini memang benar, namun ada pertimbangan
lain bahwa pengguna kunci tersebut harus bisa melakukan proses enkripsi-dekripsi
dengan teknologi yang secara komersil memungkinkan. Terlihat di sini bahwa
dibutuhkan ukuran kunci yang cukup panjang supaya aman, tapi tidak terlalu
panjang agar memudahkan dalam penggunannya secara umum.
Beberapa
teknik brute-force attack lain yang tidak akan dibahas panjang disini, seperti
dengan penyebaran virus, komputasi paralel pada jaringan raksasa, undian Cina,
atau penggunaan komputer biologis. Semua itu menunjukkan bahwa ada kemungkinan
bahwa kunci bisa didapatkan dengan brute-force attack.
Satu hal yang
patut dicatat adalah bukan berarti dengan mungkinnya suatu metoda enkripsi
dijebol lantas metoda enkripsi itu tidak bermanfaat, namun yang penting apakah
biaya untuk melakukan serangan itu lebih besar dari pada harga informasi yang
dienkripsi itu. Jika ya, maka untuk apa sang pencuri melakukannya? Untuk apa
melakukan penyerangan dengan biaya 2 milyar rupiah kalau informasi yang
dienkripsi hanya berharga Rp.10.000,- saja?
strong
password
A password that cannot be easily guessed or
cracked. A strong password is at least eight characters long, does not contain
all or part of the user's account name, and contains at least three of the four
following categories of characters: uppercase characters, lowercase characters,
numbers, and symbols found on the keyboard (such as !, @, #).
A strong password:
has at least 15 characters;
has uppercase letters;
has lowercase letters;
has numbers;
has symbols, such as ` ! " ? $ ? % ^ & * (
) _ - + = { [ } ] : ; @ ' ~ # | \ < , > . ? /
is not like your previous passwords;
is not your name;
is not your login;
is not your friend’s name;
is not your family member’s name;
is not a dictionary word;
is not a common name;
is not a keyboard pattern, such as qwerty, asdfghjkl, or 12345678.
Strong password
Pengalaman menunjukkan bahwa sebagian besar pembajak web menggunakan beberapa daftar password yang sering dipakai masyarakat. Ada beberapa kata kunci menarik yang menunjukkan betapa manusia cukup pintar, namun kecerdasan tersebut dapat diprediksi.
Pada umumnya, masyarakat sering menggunakan kata kunci yang berhubungan dengan dirinya sebagai password. Kata kunci yang sering dipilih, misalnya nama lengkap, nama depan atau nama belakang, nama isteri atau suami, nama anak tersayang, mobil kebanggaan dan sebagainya.Banyak juga orang menggunakan kata kunci ” 12345678 ” atau ” !@#$%^&* ” sebagai rumusan paling mudah di keyboard komputer. Kata yang mudah lainnya yang juga sering digunakan sebagai password adalah ” 88888888 ” atau karakter yang berulang lainnya, seperti ” xxxxxxxx ”
Kecenderungan di atas menyebabkan password mudah dijebol oleh pembajak dan untuk itu perlu password yang kuat. Untuk membuat password yang kuat, hindari kecenderungan menggunakan pasword seperti dijelaskan di atas dan tentunya jangan mudah memberi tahukan password tersebut kepada siapapun.
Password yang kuat adalah password yang panjang, misalnya 12 karakter. Menurut perhitungan, untuk menjebol password 12 karakter membutuhkan waktu 17 tahun dengan mencoba-coba setiap kemungkinan karakter yang digunakan. Selain panjang, penggunaan kombinasi kata kunci juga membuat password menjadi kuat.
Untuk membentuk password yang kuat (strong password), web hybrid learning Universitas Esa Unggul menggunakan password d minimal 8 karakter dengan mengkombinasikan cara penulisannya. Penulisan kombinasi password yang dimaksud adalah menggunakan huruf besar, huruf kecil, non alphanumeric dan angka, contohnya Cinta@123789
Seseorang seringkali lupa atau keliru dengan password yang digunakan untuk mengakses sebuah web. Hal ini karena penggunaan password yang berbeda-beda untuk setiap web atau sistem komputer. Sebagai contoh, Universitas Esa Unggul memiliki beberapa web atau sistem komputer, diantaranya hybrid learning, learning management system (LMS) dan sistem informasi terpadu esa unggul (Sintesa) dengan password yang berbeda-beda.
Untuk mengatasi kelupaan atau kekeliruan di atas dapat digunakan password yang sama untuk semua web yang sering diakses. Namun penggunaan password seperti ini harus dijaga benar-benar kerahasiaannya, karena bila diketahui orang lain dapat disalahgunakan untuk hal-hal yang negatif.
Password dapat diganti secara periodik untuk menghindari pembajakan, demikian pula dengan password hybrid learning. Tata cara penggantian password hybdid learning Universitas Esa Unggul secara berurutan sebagai berikut :
- Klik mouse sebelah kiri sebanyak 2 kali pada nama pengguna yang tertera di sebelah kanan atas atau bagian bawah halaman depan web
- Klik ’Ubah password’ (Change password)
- Tulis password lama pada kolom ’Current password’. Jika belum pernah diubah, password awalnya adalah tanggal lahir.
- Tulis password yang baru pada kolom ’Password baru’ (New password) dengan huruf besar, huruf kecil, non alphanumeric dan angka. Contoh : Ali@201011001
- Tulis lagi password baru tersebut pada kolom ’Password baru (lagi)’ (New password – again). Penulisan password tersebut harus sama dengan’Password baru’ (New password)
- Klik ’Simpan perubahan’ (Save change)