AUTENTIKASI AKSES APLIKASI KOMPUTER MENGGUNAKAN TEKNOLOGI SMART CARD (JAVA CARD) Mochamad Husni1, Saipi2 1) STMIK Pradnya Paramita Malang, [email protected] 2) STMIK Pradnya Paramita Malang ABSTRAKSI Autentikasi akses aplikasi komputer diperlukan untuk melindungi aplikasi tersebut dari orangorang yang tidak berhak untuk mengakses aplikasi tersebut, penggunaan sistem autentikasi bermacam-macam, untuk lebih amannya menggunakan object pressision seperti sidik jari, retina mata dan smart card. Penggunaan smart card sekarang ini mengalami perkembangan yang sangat pesat terutama untuk identifikasi dan autentikasi. Autentikasi menggunakan smart card banyak mempunyai keunggulan diantaranya mengenai integritas data, enkripsi data, dan juga sebagai object pressision. Smart card digunakan sebagai objek untuk log in ke aplikasi yang dilindungi dengan sistem autentikasi ini. Data pada smart card kemudian dicocokkan dengan data log in dan dengan database aplikasi jika dinyatakan valid maka seseorang diberikan hak akses terhadap aplikasi tersebut. Smard card diisi dengan applet yang berisi data log in seorang user yang berupa username, password dan id worker. Setelah smart card berhasil diisi applet maka langkah selanjutnya adalah membuat aplikasi klien yang akan membaca data smart card. Pada aplikasi klien ini juga terdapat autentikasi smart card yang terdaftar pada sistem yang berhak untuk mengakses aplikasi yang dilindungi dengan autentikasi ini. Kata kunci : Smart Card, Java Card. 1. LATAR BELAKANG Sejalan dengan perkembangan teknologi informasi, keperluan akan penggunaan teknologi informasi ini pun semakin meningkat. Ditinjau dari jenis keperluannya penggunaan teknologi informasi pun bermacam-macam, seperti sistem pengakses satelit, pengelolaan data jarak jauh melalui media internet, sistem informasi perbankan, dan lain-lain. Namun sistem informasi atau aplikasi yang telah dibangun tersebut harus dioperasikan oleh orang yang berhak untuk mengaksesnya. Apalagi sistem informasi atau aplikasi itu merupakan aplikasi yang bersifat terbatas (restricted) untuk orangorang tertentu, sebagai contoh dalam hal ini adalah sistem infromasi perbankan yang mengelola data nasabah bank, jika orang yang tidak berhak dapat mengakses sistem tersebut maka orang tersebut dapat melakukan hal-hal yang tidak diinginkan oleh civitas bank. Dalam sistem informasi atau aplikasi komputer memang diperlukan sebuah autentikasi akses terhadap sistem tersebut. Banyak cara yang digunakan untuk melakukan autentikasi akses terhadap sebuah sistem diantaranya adalah menggunakan uji keabsahan password, uji sidik jari, uji retina mata, dan menggunakan smart card yang berisi data akses pengguna. Dari semua contoh sistem autentikasi tersebut mempunyai kelebihan dan kekurangan masing-masing. Namun yang menarik bagi penulis adalah autentikasi yang disebutkan terakhir yaitu autentikasi berbasis smart card. Ada beberapa alasan untuk mendukung hal tersebut yaitu data yang ada pada smart card sukar untuk dipalsukan, smart card mendukung kriptografi data, smart card dapat menyimpan data dengan kapasitas tertentu bergantung jenis smart card. 2. RUMUSAN MASALAH Adapun yang menjadi rumusan masalah dalam penelitian ini adalah Bagaimana membuat aplikasi (applet) yang akan dimasukkan ke dalam smart card, dan aplikasi klien untuk membaca data dari smart card. 3. TUJUAN PENELITIAN Untuk mengetahui bagaimana sebuah data akan diinputkan dan diproses ke dalam smart card, dan bagaimana komunikasi data SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 25 Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card) dari dan ke terminal itu dilakukan sehingga terjadi komunikasi data anatar keduanya. Serta dapat membaca data dari smart card tersebut menggunakan aplikasi klien yang membaca data smart card. 4. KAJIAN TEORI “Smart card adalah sebuah kartu yang telah dipendam sirkuit terpadu (integrated circuit)…” (http://id.wikipedia.org/wiki/Kartu_pintar). “Jenis smart card jika ditinjau dari media yang menghubungkan antara smart card dengan smart card reader (card-acceptance device = CAD), smart card terbagi menjadi dua jenis yaitu contact smart card dan contactless smart card...” (http://en.wikipedia.org/wiki/Smart_card). Contact smart card merupakan smart card yang berhubungan dengan CAD melaui bersentuhan secara fisik, sedangkan contactless smart card merupakan smart card yang cara kontaknya dengan CAD tanpa bersentuhan secara fisik tetapi menggunakan media frekuensi radio. Komponen tambahan yang ada pada contactless smart card adalah berupa antena yang memancarkan sinyal frekuensi radio tersebut. Sedangkan jenis smart card jika ditinjau dari ada atau tidaknya microprocessor pada smart card, smart card terbagi menjadi dua jenis yaitu microprocessor card dan memory card (http://www.javaworld.com/ javaworld/jw03-1998/jw-03-javadev.html). Microprocessor card merupakan smart card yang didalamnya terdapat microprocessor, sedangkan memory card merupakan smart card yang tidak mempunyai microprocessor tetapi hanya dapat menyimpan data saja. Secara sederhana smart card dapat dianalogikan sebagai kartu yang mempunyai kemampuan untuk memproses data melalui chip yang terdapat didalamnya. Chip diprogram sesuai dengan keperluan aplikasi yang dikembangkan. Salah satu smart card yang mendukung untuk diprogram pada bagian chipnya adalah Java Card. Java Card merupakan smart card yang berisi applet yang dibangun dari class-class Java Card API (Application Programming Interface). Jika dilihat secara fisik smart card mempunyai karakteristik memori penyimpanan yang sangat kecil. “Smart card merupakan representasi dari platform komputasi paling kecil saat ini. Konfigurasi memori dari smart card ini bisa saja dalam ukuran 1K RAM, 16K EEPROM dan 24K ROM...” (Zhiqun Chen[versi pdf]:2000:29) Java Card adalah sebuah kartu smart card yang dapat menjalankan program-program java. Tantangan terbesar dari desain teknologi Java Card adalah menyelaraskan java system software di dalam smart card dengan keterbatasan ruang untuk aplikasi. Solusinya adalah dengan hanya men-support sebuah subset dari fitur-fitur java dan untuk mengaplikasikan sebuah model terpisah untuk diimplementasikan ke java virtual machine (JVM). Sama halnya dengan teknologi Java standard, teknologi java card juga mempunyai java runtime environment, tetapi dalam teknologi java card dikenal dengan sebutan Java Card Runtime Environment (JCRE). “JCRE terdiri dari komponen sistem Java Card yang berjalan dalam smart card. JCRE bertanggung jawab untuk manajemen resource kartu, komunikasi jaringan, eksekusi applet, system on-card dan keamanan applet...” (Zhiqun Chen[versi pdf]:2000:36) JCRE duduk pada bagian puncak dari smart card hardware dan native system. JCRE terdiri dari Java Card virtual machine (interpreter bytecode), kelas-kelas framework aplikasi Java Card (API) dan kelas-kelas sistem JCRE. JCRE memisahkan applet dari teknologi smart card dan menyediakan sistem standar serta interface API untuk applet. Sebagai hasilnya applet mudah untuk ditulis dan portabel pada arsitektur smart card yang bervariasi. “Layer paling dasar dari JCRE terdiri dari Java Card Virtual Machine (JCVM) dan native methods..” (Zhiqun Chen[versi pdf]:2000:37). JCVM meng-eksekusi bytecode, mengontrol alokasi memori, dan me-manage objek. Native methods menyediakan dukungan untuk JCVM dan layer berikutnya dari kelas system. Mereka bertanggung jawab untuk menangani protocol komunikasi low-level, manajemen memori, dukungan cryptography dan lain sebagainya. Dalam pembentukan bytecode pada java card, pada proses kompilasi java card yang dilakukan di lingkungan PC, proses ini memerlukan Application Programming Interface (API). “Java Card API terdiri dari sebuah set kelas yang di-customized untuk pemrograman aplikasi smart card sesuai dengan model ISO 7816” (Zhiqun Chen[versi pdf]:2000:40) . API terdiri dari tiga paket inti dan satu paket tambahan yaitu: P a g e | 26 SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015 Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card) 1. Paket java.lang, menyediakan dukungan bahasa java yang fundamental. Objek kelas mendefinisikan dasar untuk hirarki kelas Java Card. 2. Paket javacard.framework, menyediakan kelas-kelas framework dan interface untuk fungsionalitas inti dari applet Java Card. 3. Paket javacard.security, menyediakan framework untuk fungsi-fungsi cryptography yang didukung oleh platform Java Card. 4. Paket javacardx.crypto, ini merupakan paket tambahan. Mendefinisikan chiper kelas dasar abstrak untuk mendukung fungsi cryptography dan deskripsi. Applet Java Card adalah program java mengikuti sebuah set konvensi yang memungkinkan itu untuk berjalan dalam Java Card Runtime Environment. Applet Java Card tidak ditujukan untuk berjalan dalam lingkungan browser. Nama applet dipilih untuk aplikasi Java Card adalah karena applet Java Card dapat di-load ke dalam Java Card Runtime Environment setelah kartu di manufaktur. Tidak seperti aplikasi pada banyak sistem embedded, applet tidak perlu untuk di-burned ke dalam ROM selama manufaktur, tetapi dapat secara dinamis didownload ke kartu pada saat berikutnya. Struktur applet smart card mempunyai beberapa method utama. Method utama tersebut merupakan turunan dari kelas javacard.framework.Applet, method utama pada applet yaitu: install(), select(), deselect() dan process(). Method install() akan dipanggil ketika dilakukan instalasi applet ke smart card. Method select() dipanggil sebelum fungsifungsi pada applet siap digunakan sehingga siap menerima command APDU dari klien. Method deselect() dipanggil ketika layanan pada applet tidak dibutuhkan lagi. Dan method process() dipanggil ketika terdapat APDU yang dikirimkan ke applet yang bersangkutan. Komunikasi dua arah merupakan sebuah syarat awal bagi seluruh interaksi antara smart card dan reader. “Jalur komunikasi dari dan ke smart card adalah bersifat half duplex..”(Zhiqun Chen:2000:89). Pada sistem smart card hanya tersedia jalur atau koneksi yang berfungsi sebagai tempat pertukaran data digital antara smart card dan terminalnya. Karena itu smart card dan terminalnya harus mengirimkan data secara bergantian. Prosedur pengiriman semacam ini dikenal dengan istilah transmisi half duplex dimana perangkat yang satu menjadi pengirim dan perangkat lainnya menjadi penerima. ”Komunikasi Smart Card dengan standar protocol APDUs didefinisikan dalam ISO 7816-4...”(Zhiqun Chen:2000:87), pesan perintah dikirim dari layar aplikasi kemudian dikembalikan oleh smart card ke layar aplikasi. Header terdiri dari 4 field: class (CLA), perintah (INS) serta parameter 1 dan 2 (P1 dan P2). Masing-masing field berukuran 1 byte. Respons APDUs terdiri dari conditional body dan mandatory trailer. Conditional body berisi data field yang menyatakan data yang diperlukan oleh respon APDUs. Mandatory trailer terdiri dari status byte SW1 dan SW2 menyatakan status proses dari command APDUs di dalam kartu. Java Card 2.2.1 merupakan API (Application Programming Interface) yang digunakan untuk pembuatan applet smart card. Dalam dokumentasi distribusi Java Card 2.2.1(http://java.sun.com/javacard, waktu akses 5 April 2009, 07:03) disebutkan bahwa API pada Java Card 2.2.1 mempunyai package class sebagai berikut : Java.io Java.io merupakan subset dari package java.io dalam bahasa pemrograman Java Standard. Java.lang Menyediakan class yang fundamental untuk mendesain teknologi java card dan merupakan subset bahasa pemrograman Java. Java.rmi Package java.rmi mendefinisikan the Remote interface yang mengidentifikasi method-method pada CAD (Card Acceptance Device). Javacard.framework Menyediakan framework dari class-class dan interface untuk membangun applet pada teknologi Java Card. Javacard.framework.service Menyediakan service untuk class dan interface framework. Javacard.security Menyediakan class dan interface untuk implementasi keamanan dan kriptografi. Javacard.crypto Merupakan package tambahan untuk versi Java Card 2.2.1, menyediakan class dan interface untuk implementasi keamanan dan kriptografi. SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 27 Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card) user Smartcardio merupakan kumpulan class yang digunakan untuk melakukan komunikasi antara aplikasi klien dengan smart card melaui CAD. “Dalam class smartcartio terdapat beberapa class yang mendukung komunikasi antara aplikasi klien dengan smart card melalui CAD...”(http://java.sun.com/javase/6/ docs/jre/api/security/smartcardio/spec/javax/ smartcardio/package-summary.html), yaitu : ATR Card CardChannel CardTerminal CardTerminals CommandAPDU ResponseAPDU TerminalFactory Adapun penjelasan mengenai classclass library pada smartcardio dijelaskan pada (http://java.sun.com/javase/6/docs/jre/api/se curity/smartcardio /spec/javax/smartcardio/packagesummary.html). 5. RANCANGAN SISTEM Adapun bagian-bagian sistem yang terkait yaitu user, smart card, CAD (Card Acceptance Device), aplikasi klien dan database. Seorang user pertama-pertama memasukkan smart card ke dalam CAD, kemudian CAD mengirimkan data yang ada pada smart card ke aplikasi klien, kemudian aplikasi klien mencocokkan data yang dimasukkan pada form login yang berupa username dan password dengan data username dan password pada smart card dan data username dan password yang ada pada database aplikasi. Jadi pada sistem autentikasi pada aplikasi klien terjadi dua kali pengecekan data username dan password pada media yang berbeda yaitu pada smart card dan database. Secara grafis mekanisme sistem yang dibangun dipresentasikan oleh mekanisme sistem pada gambar 1 : Smart card Username,password Store data username,password Akses aplikasi APDU CAD Get username,password CAD Mekanisme autentikasi get username .password Kirim APDU Beri hak akses Aplikasi Klien Username,password Data username ,passowrd Database Gambar 1. Rancangan sistem Sistem yang akan dibangun berupa aplikasi yang akan membaca data smart card dan mengisi smart card tersebut dengan applet yang telah dibuat menggunakan Java Card. Data smart card tersebut digunakan sebagai data untuk log in ke aplikasi yang dilindungi oleh sistem autentikaksi smart card ini. Applet yang dibangun mempunyai struktur method sebagai berikut : 1. INS_SELECT 2. INS_VERIFY_USER 3. INS_GET_USERNAME 4. INS_GET_PASSWORD 5. INS_GET_IDWORKER Method INS_SELECT merupakan method yang digunakan untuk memilih applet. Method INS_VERIFY_USER merupakan method untuk memverifikasi user, Method INS_GET_USERNAME digunakan untuk mengambil data username yang ada pada smart card. Method INS_GET_PASSWORD merupakan method untuk mengambil data password yang ada pada smart card. Sedangkan method INS_GET_IDWORKER untuk mengambil data id pekerja. Dalam membangun aplikasi klien untuk smart card penulis menggunakan class smartcardio, untuk mengakses data yang ada pada smart card melalui CAD. Dalam penulisan ini penulis hanya menyeratakan method-method aplikasi klien yang digunakan untuk membaca data pada smart card. 6. HASIL PENELITIAN Hasil penelitian dari penelitian yang penulis lakukan berupa smart card yang berisi applet yang mana applet ini berupa applet untuk autentikasi user untuk log in ke P a g e | 28 SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015 Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card) aplikasi yang dilindungi dengan sistem autentikasi ini. Selain smart card yang telah diprogram tersebut penulis juga membuat aplikasi klien yang berfungsi untuk membaca data pada smart card berupa login form dan aplikasi yang dilindungi dengan sistem autentikasi ini. Pada login form tersebut terdapat input-an berupa username dan password yang dilengkapi dengan pengecekan kevalidan smart card dan status smart card apakah smart card sudah dimasukkan atau belum dimasukkan. Proses autentikasi pada aplikasi smart card dimulai pada seorang pengguna memasukkan username dan password. Data username dan password tersebut kemudian kirimkan oleh aplikasi klien ke smart card melalui CAD. Kemudian smart card mencocokkan username dan password tersebut dengan data username dan password yang tersimpan di smart card. Jika data username dan password tersebut cocok maka smart card akan mengirimkan data respon 90 00 kepada aplikasi klien maka aplikasi klien akan memberikan hak akses kepada user tersebut dan sebaliknya jika respon yang diberikan 63 00 maka username dan password yang dimasukkan melewati aplikasi klien tidak cocok dengan data username dan password yang ada pada smart card maka aplikasi klien tidak memberikan hak akses kepada user tersebut. 7. KESIMPULAN Dalam pembuatan applet smart card memerlukan pengetahuan dasar bahasa pemrograman java dan konsep smart card sehingga dihasilkan applet yang sesuai dengan keperluan. Dalam aplikasi klien smart card komunikasi data antara applet yang dibangun dapat berjalan dengan semestinya serta applet tersebut dapat menghasilkan komunikasi yang saling respon antara keduanya. 8. DAFTAR PUSTAKA [1] Anonymous, 2009,”Java http://java.sun.com/javacard, akses 5 April 2009 [2] Anonymous,2009,”Java Programming”, http://www.javaworld.com/ javaworld/jw-03-1998/jw-03javadev.html, April 2009 Card”, waktu Card [3] Anonymous, 2009, ”Kartu Pintar”, http://id.wikipedia.org/wiki/Kartu_pint ar, April 2009 [4] Anonymous, 2009, ”Smart Card”, http://en.wikipedia.org/wiki/Smart_car d, waktu April 2009 [5] Anonymous,2009,”Smarcardio API”, http://java.sun.com/javase/6/doc s/jre/api/ security/smartcardio/spec/javax/smartc ardio/package-summary.html, waktu April 2009 [6] Chen, Zhiqun, 2000,”Java Card Technology for Smart Card”, http://books.google.co.id/books? id=4WDj4H6pT50C&dq=zhiqu n+chen+smart+card&printsec=fr ontcover&source=bl&ots=6jVg9 Svg88&sig=eACiyfil8KfKFTXIfRpJaG0R88&hl=id&ei=LFC NSpuoK5Hq6AO3tsXZCg&sa =X&oi=book_result&ct=result&resnu m=1#v=onepage&q=&f=false waktu April 2009 SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 29