Tinjauan Smart Card untuk Pengamanan Database Berbasis Komputer.
1. JENIS-JENIS KARTU DAN STANDARISASINYA
Secara umum ada 3 jenis kartu SMARTCARD yang ada didunia, yaitu :
• Memory Card, ini adalah jenis pertama yang dikenal orang dan digunakan pertama kali untuk kartu telepon. Jenis kartu ini meyimpan data yang telah di-preload oleh manufakturnya, kemudian mesin pembaca akan mengurangi isi variabel yang disimpannya.
• Microprosessor Card, kartu jenis ini dapat diprogram dengan bebas untuk keperluan apa saja. Hal ini dimungkinkan dengan adanya mikroprosesor dalam chip. Keterbatasaannya ada pada ukuran ROM yang dimiliki dan fungsi aritmatika yang masih sederhana.
• Contactless Card, kartu jenis ini mentransfer data tanpa ada kontak elektrik antara kartu dan terminalnya. Dapat berupa memory card atau microprocessor card.
Mengingat banyaknya manufaktur yang membuat smartcard maka perlu dibuatkan standarisasi skala internasional untuk memudahkan dalam pertukaran dan transfer data antara kartu-kartu buatan manufaktur tersebut.
Pengembangan teknologi Smartcard tunduk pada standarisasi yang ditetapkan oleh ISO(International Organisation for Standarisation)/IEC(International Electrotechnical Commission) dan atau CEN(Comite Eurpean de Normalisation). Dokumen standarisasi Smartcard yang perlu diketahui untuk penulisan ini hanya dokumenISO7816danISOTC86/SC6.
2. FORMAT KARTU
Smartcard mempunyai format yang hampir sama dengan jenis kartu lain, misalnya kartu magnetik. Kartu ini mempunyai dimensi chip 85.6 mm X 54 mm. Semua jenis Smartcard memiliki chip dengan dimensi yang sama. Chip ini ditanam dalam plat plastik tipe ID-1 yang terbuat dari bahan PVC dengan tebal 0,76 mm sesuai standar ISO 7810. Selain plat ID-1 ada juga plat tipe ID-00 dan ID-000 dengan dimensi masing-masing 66,10 mm X 33,10 mm dan 25 mm X 15 mm. Untuk lebih jelasnya, silahkan lihat gambar berikut.
3. TERMINAL CYBERMOUSE/ACR20
Satu-satunya cara untuk menghubungkan Smartcard dengan ‘dunia luar’ adalah lewat komunikasi serial. Perangkat tambahan yang dibutuhkan untuk melakukan kontak listrik ke Smartcard disebut Terminal. Fungsi lainya adalah untuk memberi suplai listrik ke Smartcard. Sebutan lain untuk terminal adalah Card Reader atau Chip Reader atau Smartcard Reader. Jenis Card Reader yang penulis gunakan adalah jenis ACS-20 merek Cybermouse.
Berbeda dengan Smartcard yang memiliki standar yang sama dalam pembuatannya, terminal mempunyai banyak bentuk dan macamnya. Mulai dari jenis yang hanya terdiri dari unit pembaca kartu dan kabel serial sampai pada perangkat yang lebih kompleks yang dapat terdiri dari LCD, printer, dan kabel yang terhubung ke jaringan internet.
4. FEATURES PADA CYBERMOUSE/ACR20
Berikut ini adalah beberapa features yang dimiliki Cybermouse atau jenis
ACR20 :
• ISO 7816 compatible Smartcard interface.
• Mendukung kartu memori
• Mendukung kartu mikroprosesor dengan protokol T=0 dan T=1
• Proteksi untuk hubungan singkat pada kontak dengan Smartcard
• Interfacing dengan komunikasi serial RS-232 atau USB
• Baud rate hingga 115.2 kbit/s
• Security Aplication Module (optional)
Terminal, apapun bentuknya, harus melayani mekanisme khusus dalam melakukan kontak elektrik ke Smartcard, dan memberikan suplai listrik ke dalam chip Smartcard, sebelum melakukan proses selanjutnya. Pada saat Smartcard dimasukkan ke dalam terminal maka proses yang terjadi adalah : terminal melakukan kontak dan menyalurkan suplai listrik ke dalam chip Smartcard, kemudian terminal mendeteksi respons dari Smartcard lalu mengirim byte-byte dalam format tertentu lewat kabel serial.
5. SERIAL INTERFACE
Cybermouse/ACR20 terhubung melalui interface serial asinkron yang mengacu pada protokol RS-232. Dengan parameter-parameter berikut :
6. PROTOKOL KOMUNIKASI
Dalam kondisi normal, Cybermouse berlaku sebagai perangkat pasif.
Maksudnya adalah, Cybermouse menunggu command dari PC atau mikrokontroller, menerima command dan mengirim respons setelah mengeksekusi command tersebut. Command berikutnya hanya bisa ditransmisikan stelah command sebelumnya selesai dieksekusi. Ada dua kondisi dimana Cybermouse mengirim respons tanpa menunggu command dari PC, yaitu pada saat mengirim reset message dan card status message.
Command
Command terdiri dari dua jenis yaitu :
Normal command (kurang dari 255 byte)
Normal command terdiri dari 4 byte protokol dan N byte data (variabel) dengan struktur sebagai berikut :
Dengan perincian masing-masing byte sebagai berikut :
Header Start of command (01h)
Instruction Kode instruksi
Datalength Panjang data atau variabel
Data Data, variabel atau parameter
Checksum Checksum di dapat dengan melakukan operasi XOR pada semua byte hingga mulai dari start of command sampai byte ke N+4
Extended command (N > 255 byte).
Extended command terdiri dari 6 byte protokol dan N byte data dengan struktur sebagai berikut:
Respons
Respons terdiri dari tiga jenis berdasarkan adanya kesalahan dan command yang menimbulkannya yaitu :
No transmission error with normal command (N<255 bytes) Ini adalah respons yang diberikan Cybermouse jika normal command telah dieksekusi tanpa terjadi kesalahan (misal kesalahan pada cheksum). Respons
ini terdiri dari 3 byte protokol, 2 byte status dan N byte data .Strukturnya sebagai berikut :
1 2 3 4 5..N+4 N+5
HEADER SW1 SW2 DATALENGTH = N DATA CHECKSUM
Berikut ini adalah penjelasan mengenai bagian-bagian tersebut :
Header Selalu 01h
SW1 Menyatakan status eksesusi comman
90h = command berhasil dieksekusi
60h = kesalahan pada data command
67h = kesalahan pada saat pengeksekusian
FFh= status message yang dikirm oleh reader
SW2 Penjelasan detil tertentu mengenai status eksekusi command
Datalength Panjang data atau variabel yang dikirm oleh SMARTCARD
Data Data, variabel atau parameter
Checksum Checksum di dapat dengan melakukan operasi XOR pada semua byte hingga mulai dari start of command sampai byte ke N+4
No transmission error with extended command (N>255 bytes)
Transmission error
Jika Cybermouse menerima command yang tidak dikenal atau byte checksumnya tidak valid, maka Cybermouse akan mengirim respons ‘NOT ACKNOWLEDGE’ dengan bentuk sebagai berikut :
Reset Message
Reset terjadi pada saat Smartcard menerima power dari Cybermouse.
Normalnya, reset message hanya dikirm sekali dan mempunyai format yang sama dengan respons dengan perincian sebagai berikut:
Card Status Message
Pada Cybermouse atau jenis ACR20, ketika Smartcard dimasukkan atau dicabut, maka Cybermouse akan mengirim card status message untuk memberi tahu bahwa kartu sedang ada didalam Cybermouse atau tidak. Card Status Message dapat dinon-aktifkan dengan command SET_NOTIFICATION.
Card status message mempunyai format sebagai berikut :
Untuk kartu masuk
7. PROTOKOL TRANSMISI
Baik command maupun respons termasuk reset message dan card status message, dikenali dengan adanya 1 byte tambahan didepan yang menyatakan start-of-text (STX), yaitu byte 02h dan 1 byte di belakang bernilai 03h yang menyatakan end-of-text(ETX).
Untuk transmisi command dan respons, yang digunakan adalah karakter ASCII yang merepresentasikan bilangan heksadesimal. Tiap byte yang ditransmisikan, dipecah menjadi 2 byte karakter ASCII untuk tiap digit heksadesimal.
Contoh yang lebih detil, misalnya untuk mentransmisikan command GET_ACR_STAT (kode instruksi = 01h, parameter tidak ada ) maka informasi yang ditransmisikan meliputi byte 01h untuk kode instruksi dan byte 00h untuk datalength. Bentuk string yang ditransmisikan menjadi :