Sistem Penunjang Keputusan Pemilihan
Handphone
Dengan Metode AHP Menggunakan
Expert Choice
Weda Adistianaya Dewa, Evy Sophia
Sistem Bel Otomatis Terprogram Berbasis Raspberry Pi
Mochamad Subianto
Analisis Popularitas Laman Pemerintah Daerah Di
Wilayah Malang Raya
Berbasis Perangkat Pemeringkatan Dalam Jaringan
Sujito, Dian Wahyuningsih
Simple Network Monitoring Protocol (SNMP)
Untuk Memonitor Trafik User
Yusriel Ardian
Autentikasi Akses Aplikasi Komputer
Menggunakan Teknologi Smart Card (Java Card)
Mochamad Husni, Saipi
Analisis Situs Web Perusahaan Jasa Pengiriman Barang
Menggunakan Perangkat Pemeringkatan Alexa
PENGANTAR REDAKSI
STIKI Informatika Jurnal (SMATIKA Jurnal) merupakan jurnal yang
diterbitkan oleh Lembaga Penelitian & Pengabdian kepada Masyarakat
(LPPM), Sekolah Tinggi Informatika & Komputer Indonesia (STIKI) Malang.
Pada edisi ini, SMATIKA Jurnal menyajikan 6 (enam) naskah dalam
bidang sistem informasi, jaringan, pemrograman web, perangkat bergerak
dan sebagainya. Redaksi mengucapkan terima kasih dan selamat kepada
Pemakalah yang diterima dan diterbitkan dalam edisi ini, karena telah
memberikan kontribusi penting pada pengembangan ilmu dan teknologi.
Sejumlah pakar dari luar STIKI (Mitra Bestari) telah memberikan
kontribusinya yang sangat berharga dalam menilai naskah yang dimuat.
Untuk itu Rekasi menyampaikan banyak terima kasih kepada para Penilai
(reviewer) tersebut.
Pada kesempatan ini, redaksi kembali mengundang dan memberi
kesempatan kepada para Peneliti di bidang Teknologi Informasi untuk
mempublikasikan hasil-hasil penelitiannya melalui jurnal ini. Bagi para
pembaca yang berminat, Redaksi memberi kesempatan untuk
berlangganan.
Akhirnya Redaksi berharap semoga artikel-artikel dalam jurnal ini
bermanfaat bagi para pembaca khususnya dan bagi perkembangan ilmu
dan teknologi di bidang Teknologi Informasi pada umumnya.
Pelindung
Yayasan Perguruan Tinggi Teknik Nusantara
Penasehat
Ketua STIKI
Pembina
Pembantu Ketua Bidang Akademik STIKI
Mitra Bestari
Prof. Dr. Ing. Ir. Iping Supriana Suwardi, DEA (Institut Teknologi
Bandung)
Prof. Dr. Ir. Kuswara Setiawan, MT (UPH Surabaya)
Prof. Dr. Ir. Joko Lianto Buliali, M.Sc (Institut Teknologi 10 Nopember
Surabaya)
Dr. Ing. Setyawan P. Sakti, M.Eng (Universitas Brawijaya)
Ketua Redaksi
Subari, S.Kom
Section Editor
Jozua F. Palandi, M.Kom
Layout Editor
Saiful Yahya, S.Sn, MT.
Tata Usaha/Administrasi
Ery Christianto
SEKRETARIAT
Lembaga Penelitian & Pengabdian kepada Masyarakat
Sekolah Tinggi Informatika & Komputer Indonesia (STIKI)
Malang
SMATIKA
Jurnal
Jl. Raya Tidar 100 Malang 65146
Tel. +62-341 560823
Fax. +62-341 562525
Website: jurnal.stiki.ac.id
ISSN 2087-0256
Volume 05, Nomor 01 Tahun 2015
DAFTAR ISI
Sistem Penunjang Keputusan Pemilihan Handphone
Dengan Metode AHP Menggunakan Expert Choice ...
01 - 04
Weda Adistianaya Dewa, Evy Sophia
Sistem Bel Otomatis Terprogram Berbasis Raspberry Pi ...
05 - 12
Mochamad Subianto
Analisis Popularitas Laman Pemerintah Daerah Di Wilayah
Malang Raya Berbasis Perangkat Pemeringkatan Dalam Jaringan ...
13 - 19
Sujito, Dian Wahyuningsih
Simple Network Monitoring Protocol (SNMP)
Untuk Memonitor Trafik User ...
20 - 24
Yusriel Ardian
Autentikasi Akses Aplikasi Komputer
Menggunakan Teknologi Smart Card (Java Card) ...
25 - 29
Mochamad Husni, Saipi
Analisis Situs Web Perusahaan Jasa Pengiriman Barang
Menggunakan Perangkat Pemeringkatan Alexa ...
30 - 33
Rahayu Widayanti, Dwi Safiroh Utsalina
Undangan Makalah
SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 25
AUTENTIKASI AKSES APLIKASI KOMPUTER
MENGGUNAKAN TEKNOLOGI SMART CARD
(JAVA CARD)
Mochamad Husni
1, Saipi
21)STMIK Pradnya Paramita Malang, husni_stmik@yahoo.co.id
2)STMIK Pradnya Paramita Malang
ABSTRAKSI
Autentikasi akses aplikasi komputer diperlukan untuk melindungi aplikasi tersebut dari orang-orang 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 orang-orang 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
Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card)
P a g e | 26 SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015 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/jw-03-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:
Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card)
SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 27 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 di-download 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 fungsi-fungsi 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
Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card)
P a g e | 28 SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015 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 class-class library pada smartcardio dijelaskan pada (http://java.sun.com/javase/6/docs/jre/api/se curity/smartcardio /spec/javax/smartcardio/package-summary.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 :
user
Mekanisme autentikasi
Smart card
CAD
Aplikasi Klien Database
Username,password Store data username,password
Kirim APDU
Username,password Beri hak akses
APDU CAD Get username,password
get username .password
Data username ,passowrd Akses aplikasi
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
Autentikasi Akses Aplikasi Komputer Menggunakan Teknologi Smart Card (Java Card)
SMATIKA Jurnal Volume 05 Nomor 01 Tahun 2015, P a g e | 29 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 Card”,
http://java.sun.com/javacard, waktu akses 5 April 2009 [2] Anonymous,2009,”Java Card Programming”, http://www.javaworld.com/ javaworld/jw-03-1998/jw-03-javadev.html, April 2009
[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”,