java card - Portal Garuda

advertisement
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
Download