”Mempercayai” Password:
Network Authentication

Eueung Mulyana, Onno W. Purbo
Computer Network Research Group (CNRG) ITB

Aspek security jaringan berkaitan erat dengan servis yang disediakan: inbound atau outbound. Security pada servis outbound dapat diupayakan sebaik mungkin dengan konfigurasi firewall. Demikian pula dengan akses anonymous servis inbound, seperti anonymous FTP, HTTP, Gopher dll. Dalam hal ini, informasi sengaja disediakan bagi semua orang. Lain halnya bila kita ingin menyediakan akses non-anonymous (atau authenticated services), dimana selain melalui firewall, seseorang yang meminta akses juga harus mendapat ‘ijin’ server setelah terlebih dahulu membuktikan identitasnya. Inilah authentication. Untuk selanjutnya, penulis menggunakan istilah autentisasi sebagai sinonim kata tersebut.

Resiko-Security Servis Inbound
Mengapa perlu autentisasi…..? Internet adalah jaringan publik, dan terbuka bagi setiap orang diseluruh penjuru dunia untuk menggabungkan diri. Begitu besarnya jaringan ini, telah menimbulkan keuntungan serta kerugian. Sering kita dengar dan baca tentang bobolnya sistem komputer keuangan bank, informasi rahasia Pentagon atau basis data transkrip akademik mahasiswa. Kalimat tersebut cukup untuk mewakili pernyataan bahwa kita harus ‘waspada’ terhadap orang-orang ‘jahat’ dan senantiasa berusaha memperkecil kemungkinan bagi mereka untuk dapat melakukan niat jahatnya. Memang mudah untuk meniadakan kemungkinan penyusupan (akses ilegal) dari luar dengan menutup semua kanal trafik servis inbound ke jaringan internal. Namun ini berarti telah mereduksi keuntungan utama adanya jaringan: komunikasi dan pemakaian sumber daya bersama (sharing resources). Jadi, konsekuensi alami dengan jaringan cukup besar, adalah menerima dan berusaha untuk memperkecil resiko ini, bukan meniadakannya.

Kita akan mulai dari seorang network-administrator (NA) yang telah melakukan tugasnya dengan baik, dalam menyiapkan ‘pertahanan’ bagi semua servis outbound dan anonymous-inbound. Perlu beberapa hal tambahan lagi yang sebaiknya diingat. Apakah pertahanan tersebut sudah cukup kuat bagi terjadinya pencurian hubungan (hijacking attack)? Apakah didalamnya sudah dipertimbangkan kemungkinan pemonitoran ilegal paket-paket informasi yang dikirimkan (packet sniffing - playback attack)? Atau apakah sudah termasuk kesiapan bagi benar-benar adanya akses ilegal didalam sistem (false authentication)?

Hijacking biasanya terjadi pada komputer yang menghubungi jaringan kita, walaupun untuk beberapa kasus langka, bisa terjadi pada sembarang jalur yang dilaluinya. Sehingga akan bijaksana bila seorang NA mempertimbangkan pemberian kepercayaan akses, hanya dari komputer yang paling tidak mempunyai sistem security sama atau mungkin lebih ‘kuat’, dibandingkan dengan jaringan dibawah tanggung-jawabnya. Usaha memperkecil peluang musibah ini, juga dapat dilakukan dengan mengatur packet-filter dengan baik atau menggunakan server modifikasi. Misalnya, kita dapat menyediakan fasilitas anonymous-FTP bagi sembarang komputer dimanapun, tapi authenticated-FTP hanya diberikan pada host-host yang tercantum pada daftar ‘kepercayaan’. Hijacking ditengah jalur dapat dihindari dengan penggunaan enkripsi antar jaringan (end to end encryption).

Kerahasiaan data dan password juga merupakan topik disain security. Program yang didedikasikan untuk packet-sniffing dapat secara otomatis menampilkan isi setiap paket data antara client dengan servernya. Proteksi password dari kejahatan demikian dapat dilakukan dengan implementasi password sekali pakai (non-reusable password), sehingga walaupun dapat termonitor oleh sniffer, password tersebut tidak dapat digunakan lagi. 

Resiko hijacking dan sniffing data (bukan password) tidak dapat dihindari sama sekali. Artinya NA harus mempertimbangkan kemungkinan ini dan melakukan optimasi bagi semakin kecil-nya kesempatan tersebut. Pembatasan jumlah account dengan akses penuh serta waktu akses jarak jauh, merupakan salah satu bentuk optimasi.

Mekanisme Autentisasi 
Subyek autentisasi adalah pembuktian. Yang dibuktikan meliputi tiga kategori, yaitu: sesuatu pada diri kita (something you are SYA), sesuatu yang kita ketahui (something you know SYK), dan sesuatu yang kita punyai (something you have SYH). SYA berkaitan erat dengan bidang biometrik, seperti pemeriksaan sidik-jari, pemeriksaan retina mata, analisis suara dll. SYK identik dengan password. Sedangkan bagi SYH umumnya digunakan kartu identitas seperti smartcard. \

Barangkali, yang sekarang masih banyak digunakan adalah sistem ber-password. Untuk menghindari pencurian password dan pemakaian sistem secara ilegal, akan bijaksana bila jaringan kita dilengkapi sistem password sekali pakai. Bagaimana caranya penerapan metoda ini? 

Pertama, menggunakan sistem perangko-waktu ter-enkripsi. Dengan cara ini, password baru dikirimkan setelah terlebih dulu dimodifikasi berdasarkan waktu saat itu. Kedua, menggunakan sistem challenge-response (CR), dimana password yang kita berikan tergantung challenge dari server. Kasarnya kita menyiapkan suatu daftar jawaban (response) berbeda bagi ‘pertanyaan’ (challenge) yang berbeda oleh server. Karena tentu sulit sekali untuk menghafal sekian puluh atau sekian ratus password, akan lebih mudah jika yang dihafal adalah aturan untuk mengubah challenge yang diberikan menjadi response (jadi tidak random). Misalnya aturan kita adalah: “kapitalkan huruf kelima dan hapus huruf keempat”, maka password yang kita berikan adalah MxyPtlk1W2 untuk challenge sistem Mxyzptlk1W2.

Kalau pada sistem CR, harus diketahui ‘aturan‘-nya, maka pada sistem perangko-waktu, kita mesti mengingat password bagi pemberian perangko-waktu ini. Apakah cara seperti ini tidak mempersulit? Beruntung sekali mekanisme tersebut umumnya ditangani oleh suatu perangkat, baik perangkat lunak ataupun dengan perangkat keras. Kerberos, perangkat lunak autentisasi yang dibuat di MIT dan mengadopsi sistem perangko-waktu, mewajibkan modifikasi client bagi sinkronisasi waktu dengan server serta pemberian password perangko-waktu. Modifikasi program client mengingatkan kita pada proxy dan memang, kurang lebih seperti itu. Sistem CR biasanya diterapkan sekaligus dengan dukungan perangkat keras. Contoh sistem CR operasional adalah perangkat SNK-004 card (Digital Pathways) yang dapat diterapkan bersama-sama dengan paket TIS-FWTK (Trusted Information System - internet FireWall ToolKit).

TIS-FWTK menawarkan solusi password sekali pakai (sistem CR) yang ‘menyenangkan’: S/Key. S/Key menerapkan prosedur algoritma hash iteratif terhadap suatu seed, sedemikian sistem dapat memvalidasi response-client instant tapi tidak mempunyai kemampuan untuk memprediksi response-client berikutnya. Sehingga bila terjadi penyusupan pada sistem, tidak ada ‘sesuatu’  yang bisa dicuri (biasanya daftar password). Algoritma hash mempunyai dua sifat utama. Pertama, masukan tidak bisa diregenerasikan dari keluaran (non-reversibel). Kedua, terdapat dua kemungkinan masukan bagi sebuah keluaran yang sama.

Enkripsi dan Cryptography
Cryptography telah berkembang sejak lama, ketika orang menginginkan informasi yang ia kirimkan tidak dapat ‘dibaca’ oleh pihak tak berkepentingan. Secara tradisional cryptography dikenal dengan dua mekanisme, kunci privat atau kunci publik. DES (data encryption standard) yang digunakan oleh Kerberos menggunakan sistem kunci-privat. RSA (Rivest Shamir Addleman) mengimplementasikan sistem kunci-publik. Salah satu dari kontributor RSA, Ron Rivest kemudian membuat MD4 (message digest function # 4) yang digunakan oleh S/Key-nya TIS-FWTK. Optimasi dan blasteran antara kedua metoda tradisional ini melahirkan PGP (Pretty Good Privacy). Pembahasan dari DES, RSA, atau PGP merupakan buku tersendiri dan tidak pada tempatnya diungkapkan disini. Tapi yang jelas, sistem kunci-privat dicirikan dengan proses encrypt-decrypt melalui kunci identik, sedangkan pada sistem kunci-publik, proses ini dilakukan dengan dua buah kunci: kunci publik untuk encrypt dan kunci rahasia untuk decrypt dimana kedua kunci ini digenerasikan dan mempunyai relasi dekat melalui sebuah algoritma matematis. Karena diperlukan proses matematis terlebih dulu, kecepatan sistem kunci-publik bisa ribuan kali lebih lambat dari algoritma kunci-privat ekivalen walaupun disisi lain menawarkan proteksi lebih baik. Eksploitasi terhadap kelebihan dan kekurangan sistem kunci privat dan publik dilakukan PGP, dimana untuk transmisi data dilakukan secara sistem kunci-privat dengan session-key sehingga berjalan cepat, sedangkan transmisi session-key- nya sendiri menggunakan kunci-publik.

Dengan enkripsi, informasi yang kita kirimkan ke suatu jaringan melalui jaringan lain yang keamanannya meragukan (internet), relatif lebih terjamin. Enkripsi antar jaringan menyebabkan seorang ‘pencuri’ harus berusaha sedikit lebih keras untuk mendapatkan informasi ilegal yang ia harapkan. Ada beberapa kesempatan bagi implementasi enkripsi, yaitu: pada level aplikasi, level data-link, dan level jaringan.
Enkripsi pada level aplikasi mensyaratkan penggunaan perangkat lunak client-server khusus. Sesuai dengan model referensi OSI, enkripsi data-link hanya berlaku untuk hubungan titik ke titik, seperti sistem enkripsi pada modem telepon. Sedangkan enkripsi level jaringan (network layer) diterapkan pada router atau peralatan lain yang bersebelahan dengan jaringan dikedua sisi. Optimasi kepentingan dan kebijakan security dilakukan dengan mengatur jenis/bagian paket IP yang akan dienkrip, penyesuaian terhadap arsitektur firewall dan konsekuensinya, efektifitas distribusi kunci-enkripsi dll. Di masa depan, dimana teknologi VLAN (Virtual LAN) diperkirakan menjadi pilihan utama untuk Intranet  (enterprisewide), penggunaan enkripsi level jaringan ini menjadi begitu penting. Barangkali sama pentingnya dengan keadaan sebuah perusahaan yang sementara ini ‘terpaksa’ menggunakan internet sebagai jalur bagi pengiriman informasi sensitif antara kantor pusat dengan cabangnya dibelahan bumi yang lain.

Kerberos dan TIS-FWTK Authentication Server
Kerberos adalah salah satu karya proyek Athena, kolaborasi antara MIT, IBM dan DEC. Kerberos didisain untuk medukung autentisasi dan enkripsi data pada lingkungan terdistribusi melalui modifikasi client atau server standard. Beberapa vendor sistem operasi telah memasukan Kerberos kedalam produknya. MIT sendiri menyediakan secara free banyak versi Unix yang telah di-Kerberizing. Bahkan bagi kepentingan porting ke sistem operasi atau perangkat lunak client-server yang belum mendukung Kerberos, MIT menyediakan source-code nya, juga secara free. Proyek Athena sendiri mengimplementasikan Kerberos pada banyak aplikasi seperti NFS, rlogin, email, dan sistem password. Secure RPC (Sun Microsystems) juga mengimplementasikan hal yang sama.

Ada beberapa hal yang perlu dipertimbangkan dalam implementasi Kerberos. Modifikasi perangkat lunak client dan server akan menyebabkan pembatasan pilihan aplikasi. Sayangnya juga tidak ada metoda alternatif sebagai pengganti modifikasi source-code (seperti dalam proxy yang membolehkan custom user procedure atau custom client software). Kemudian, umumnya orang juga sepakat untuk menyebut: “Kerberos relatif sulit diterapkan/ dikelola”.

Paket sistem autentisasi lain ditawarkan oleh TIS-FWTK: authentication-server. Server ini didisain secara modular, fleksibel sehingga mendukung banyak mekanisme autentisasi populer seperti sistem password reusable standard, S/Key, card SecurdID dari Security Dynamics (sistem dengan perangko-waktu), card SNK-004 Digital Pathways (sistem CR) serta kemudahan untuk pengintegrasian mekanisme baru. Kembali kepada perbincangan diawal tulisan ini, kalau kepentingan utama kita adalah bagaimana menyiapkan ‘pertahanan’ bagi servis inbound non-anonymous, barangkali authentication-server adalah solusi yang patut dipertimbangkan. Mengapa? Bagaimana sistem ini bekerja? Tidak banyak ruang dalam tulisan ini untuk memuat semua diskusi kita tentang autentisasi, tapi ilustrasi penutup berikut akan memberikan sedikit gambaran bagi anda, peminat security jaringan, menyangkut authentication-server. Selamat menyimak!