Aplikasi Kriptografi
Identifikasi dan Otentikasi (Identification and Authentication)
Identifikasi (Identification) adalah proses verifikasi identitas seseorang atau sesuatu. Sebagai contoh, ketika menarik uang dari bank, petugas (teller) meminta tanda pengenal (misalnya SIM, KTP, dan lain-lain) untuk memverifikasi identitas pemilik rekening dari mana uang ditarik. Proses yang sama dapat dilakukan secara elektronik dengan menggunakan kriptograf1. Setiap kartu Automatic Teller Machine (ATM)dilengkapi dengan satu Personal Identification Number (PIN)yang rahasia yang memadukan pemilik kartu dengan kartu tersebut demikian juga dengan rekening yang bersangkutan. Ketika kartu dimasukkan ke dalam mesin ATM, mesin tersebut akan meminta pengguna kartu untuk memasukkan PIN. Jika PIN yang dimasukkan benar, mesin akan mengidentifikasikan orang tersebut benar sebagai pemilik kartu sehingga kepadanya diberikan akses. [SCH96]
Otentikasi (Authentication) merupakan sebuah istilah yang digunakan dalam pengertian yang luas. Secara tersirat kata tersebut mempunyai arti lebih dari sekedar menyampaikan ide yaitu bahwa alat tersebut telah menyediakan jaminan bahwa informasi tidak dimanipulasi oleh pihak yang tidak mempunyai wewenang. Otentikasi bersifat spesifik dalam topik keamanan yang berusaha dicapa1. Contohnya meliputi pengendalian akses, otentikasi entity, otentikasi pesan, integritas data, non-repudiation, dan otentikasi kunc1.
Otentikasi merupakan salah satu hal yang paling penting dalam keamanan informas1. Hingga pertengahan tahun 1970-an, dipercaya bahwa kerahasiaan dan otentikasi terhubung secara erat. Dengan penemuan dari fungsi-fungsi hash dan digital signatures, disadari bahwa kerahasiaan dan otentikasi sebenarnya adalah masalah yang terpisah dan independen. Awalnya tidak kelihatan penting untuk memisahkan keduanya tetapi terdapat situasi dimana hal tersebut tidak hanya berguna tetapi juga penting. Contohnya, jika terdapat komunikasi dua pihak antara Anto dan Badu yang berlangsung, dimana Anto berada di suatu negara dan Badu di negara lainnya, Negara tuan rumah mungkin tidak memperbolehkan kerahasiaan dalam saluran komunikasi karena satu atau kedua negara mungkin ingin memonitor semua komunikas1. Namun, Anto dan Badu ingin meyakinkan identitas masing-masing, dan juga integritas serta keaslian dari informasi yang mereka kirim dan mereka terima.
Skenario diatas menggambarkan beberapa aspek otentikasi yang independen. Jika Anto dan Badu ingin meyakinkan identitas masing-masing, terdapat dua kemungkinan yang dapat dipertimbangkan.
1. Anto dan Badu dapat berkomunikasi tanpa penundaan waktu. Berarti mereka berkomunikasi secara real time.
2. Anto atau Badu dapat saling menukar pesan dengan penundaan waktu. Berarti pesan mungkin dirouting melalui jaringan yang berbeda, disimpan, dan disampaikan pada beberapa saat kemudian.
Dalam kemungkinan pertama, Anto dan Badu akan memverifikasi identitas masing-masing secara real time. Hal ini dapat dicapai oleh Anto dengan mengirimkan beberapa challenge kepada Badu dimana hanya Badu yang dapat meresponnya secara tepat. Badu dapat melakukan tindakan yang sama untuk mengidentifikasi Anto. Jenis otentikasi ini secara umum dikenal sebagai otentikasi entityatau secara sederhana disebut identifikas1.
Dalam kemungkinan kedua, tidaklah tepat untuk mengirimkan challenge dan menunggu respon, dan selain itu jalur komunikasi mungkin hanya tersedia pada satu arah. Teknik yang berbeda sekarang diperlukan untuk meng-otentikasi keaslian pesan. Bentuk otentikasi ini disebut otentikasi keaslian data (data origin authentication). [SCH96]
Tanda Tangan Digital (Digital Signature)
Otentikasi pesan dengan fungsi hash memang berhasil melindungi kedua belah pihak yang saling bertukar pesan dari pihak ketiga. Tetapi, otentikasi pesan tidak bisa mencegah kemungkinan kedua belah pihak saling menyerang satu sama lain.
Pada situasi dimana tidak ada kepercayaan penuh antara pengirim dan penerima pesan, diperlukan suatu mekanisme yang lebih daripada sekedar otentikas1. Solusi yang paling menarik dari masalah ini adalah tanda tangan digital (digital signature). Tanda tangan digital adalah suatu mekanisme otentikasi yang memungkinkan pembuat pesan menambahkan sebuah kode yang bertindak sebagai tanda tangannya. Tanda tangan tersebut menjamin integritas dan sumber dari sebuah pesan.
Digital signature (tanda tangan digital) dari suatu dokumen adalah potongan informasi yang didasarkan kepada dokumen dan kunci rahasia penanda-tangan. Tanda tangan ini biasanya diciptakan melalui penggunaan fungsi hash(hash function) dan fungsi tanda tangan privat (enkripsi kunci rahasia penanda tangan). [SCH96]
Protokol Pertukaran Kunci (Key Exchange Protocol)
Key exchange protocol(protokol pertukaran kunci) adalah sebarisan langkah yang dilakukan bila dua atau lebih pihak perlu sepakat atas suatu kunci yang digunakan untuk suatu secret-key cryptosystem. Protokol ini memungkinkan orang menggunakan kunci secara bersama dengan bebas dan aman melalui suatu medium yang tidak aman, tanpa perlu terlebih dahulu ada pembentukan kunci rahasia bersama.
Sertifikasi (Certification)
Sertifikasi adalah sebuah skema dimana pihak (orang) yang dipercayai seperti penguasa atau pihak yang berwenang mengeluarkan sertifikat untuk pihak lain. Pihak yang dipercayai mengeluarkan kupon (vouchers) yang disebut sertifikat yang memiliki sejumlah arti yang mendalam, misalnya nomor ijazah. Teknologi sertifikasi dikembangkan untuk identifikasi dan otentikasi dimungkinkan dalam skala besar.
Untuk dapat lebih memahami kegunaan sertifikat digital ini, dapat dijelaskan lebih lanjut pada skenario berikut in1. Anto hendak mengirimkan Badu suatu dokumen rahasia dengan metode kunci publik. 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 Badu itu diganti dengan kunci publik milik Maman. Dengan begitu Maman dengan bebas dapat menyadap dan mengubah seluruh informas1. 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 Tar1. 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.
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 hashdari 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 Tar1.
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 juga memiliki 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 Tar1. 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 Tar1. 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 menurut struktur hirarki percabangan OS, Anto dapat memeriksa kebenaran sertifikat digital milik Chandra yang disahkan oleh Tata.
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 aplikas1. 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. [KUR04, SCH96]