04 June 2012

Teknologi SmartCard (Part 2)


Lanjutan Teknologi SmartCard (Part 1)

MIFARE
MIFARE merupakan suatu teknologi contactless smart card yang dikenal luas, dilengkapi dengan kartu dan reader. Teknologi MIFARE berdasarkan ISO 14443 dengan frekuensi 13.56 MHz.
MIFARE banyak digunakan untuk aplikasi e-wallet, access control, ID card, ticketing, dan lain sebagainya.

Dari sisi kapasitas, terdapat MIFARE Standard 1k yang memiliki kapasitas penyimpanan 768 byte, terdiri dari 16 sector, dimana masing-masing sektor diproteksi oleh dua key yang berbeda (key A dan key B). MIFARE Standard 4k memiliki kapasitas 3 kilobyte yang terdiri dari 64 sektor.
MIFARE UltraLight memiliki kapasitas 512 bit tanpa dukungan security, tetapi tentunya dengan biaya yang lebih murah.

Keamanan

Berbicara mengenai sebuah sistem, apalagi jika digunakan sebagai sistem pembayaran, maka sisi keamanan merupakan hal yang tak terpisahkan dari sistem itu sendiri.

Sebuah resiko yang patut dipertimbangkan adalah, keunggulan tracking yang dihasilkan oleh tag RFID dapat berpotensi terbaca secara luas sehingga dimungkinkan pihak lain mengetahui lokasi yang mungkin bersifat privat atau rahasia, baik dalam kaitannya dengan kepentingan keamanan individu, perusahaan, atau militer.

Tentu saja sistem yang ingin Anda terapkan dengan menggunakan smart card atau tag RFID harus terlebih dahulu mempertimbangkan kemungkinan diatas ataupun resiko lainnya.
Smart card sendiri telah dibekali dengan kriptografi secara hardware dengan menggunakan algoritma enkripsi (misalnya RSA, DSA, dan lain-lain) yang menghasilkan key unik. Hal ini menyebabkan smart card tidak dapat diduplikasi dengan mudah.

Melalui kemasan yang baik pada kartu, data pada chip juga dapat dilindungi sehingga tahan terhadap debu dan air.

Aplikasi Smart Card

Jika dikaitkan lagi dengan Aladdin, maka customer bagaikan tokoh Aladdin yang memiliki keinginan untuk dipenuhi, smart card bagaikan lampu wasiat yang siap digesek setiap saat, lalu siapa dong yang jadi Jin alias pengabul permintaannya? Yang mendapat peran Jin adalah Anda, para programer!

Baiklah, apapun sebutannya, memuaskan customer adalah tugas mulia. Apa saja yang harus Anda siapkan untuk membuat aplikasi berbasis smart card? Hal pertama tentunya memahami spesifikasinya.

Untuk mudahnya, anggap Anda ingin membuat sebuah aplikasi absensi karyawan dengan menggunakan smart card, tentu saja Anda dapat membuat aplikasi yang tidak menggunakan media kartu, kartu hanyalah kemasan untuk tag atau chipnya. 

Tetapi untuk mudahnya kita akan berasumsi menggunakan kartu sebagai kemasannya.

Untuk itu, setiap karyawan memiliki sebuah smart card agar dapat melakukan absensi. Sebuah card reader yang terhubung dengan sebuah komputer akan digunakan untuk membaca smart card tersebut, dan aplikasi Anda pada komputer tersebut akan melakukan proses pendataan yang diperlukan.

Dari sisi hardware, Anda harus mengenal atau menentukan spesifikasinya, misalnya frekuensi yang digunakan (jika merupakan contactless atau RFID card), karakteristik dan kapasitas memory yang digunakan didalam chip, dan spesifikasi readernya.

Dari sisi software, yang Anda butuhkan adalah interface yang mengirimkan output, dan diterima sebagai input pada aplikasi Anda. 

Interface ini dapat berupa API (Application Programming Interface), yang sering merupakan bagian dari SDK (Software Development Kit) yang disediakan oleh vendor hardware.

Sedangkan “mantra” atau bahasa pemrograman yang Anda gunakan, adalah bahasa pemrograman favorit Anda, tentu saja jika Anda menggunakan SDK dari vendor, pastikan bahasa pemrograman yang Anda gunakan didukung oleh SDK tersebut.

Agar aplikasi Anda dapat berkomunikasi dengan card reader dan memperoleh input darinya, aplikasi Anda harus terlebih dahulu mengenali card reader, untuk itu diperlukan proses inisiasi dengan card reader.

Jika proses inisiasi telah berjalan, tugas berikut aplikasi Anda adalah menangkap data yang diberikan oleh card reader saat sebuah smart card terbaca. Jika sebuah smart card terdeteksi, Anda mungkin perlu melakukan beberapa validasi data yang diijinkan masuk dalam aplikasi.

Mungkin Anda juga perlu mengambil beberapa informasi yang terdapat didalam smart card, mungkin berupa nomor induk karyawan atau informasi lainnya. Informasi disimpan didalam memory smart card berdasarkan blok-blok yang telah telah ditentukan. Jika diperlukan, aplikasi Anda dapat menuliskan kembali informasi pada lokasi blok memory tertentu pada smart card.

Hingga langkah ini, beberapa perintah dasar yang harus Anda miliki berkaitan dengan hardware, adalah perintah-perintah :
  1. Inisiasi card reader.
  2. Validasi / Autentifikasi smart card.
  3. Membaca informasi dari smart card.
  4. Menulis informasi pada smart card.
Agar terdapat batas yang jelas, Anda perlu membuat suatu modul (mungkin Anda perlu memberikannya nama, misalnya modul Smart) yang mengakomodir kebutuhan hingga tahap ini. Perintah-perintah programming yang digunakan bisa jadi berbeda jika Anda menggunakan API atau SDK yang berbeda, tetapi fungsi dasarnya tetap sama.

Selebihnya diluar modul Smart diatas, adalah aplikasi database yang umum, menyimpan dan memroses data, melakukan perhitungan yang diperlukan, menampilkan laporan, dan lain sebagainya.

Jika suatu saat Anda membuat aplikasi lain yang menggunakan smart card, Anda dapat menggunakan kembali (re-use) modul Smart diatas, dan berkonsentrasi pada proses bisnis di aplikasi dan database.

Informasi didalam smart card, mungkin memiliki format tertentu, misalnya tertulis dalam karakter hexadecimal, untuk itu seperangkat  library atau function konversi perlu Anda siapkan.

Untuk mendukung keamanan, ada baiknya Anda melakukan enkripsi pada informasi penting yang ingin disimpan pada smart card.
Dari sebuah aplikasi sederhana, bukan tidak mungkin berkembang menjadi aplikasi yang lebih rumit seperti contoh-contoh yang telah dijelaskan diatas. Dalam hal ini, segala kemungkinan yang dapat dipikirkan untuk menjadi celah keamanan sistem harus diantisipasi dengan baik.

Kesimpulan

Penggunaan smart card dan tag RFID saat ini semakin meluas pada berbagai sektor, tentu saja dibutuhkan perencanaan yang matang saat sebuah sistem diputuskan melakukan migrasi atau perubahan menggunakan teknologi ini.

Yang terpenting adalah pada akhirnya kita akan merasakan keuntungannya, misalnya untuk mengurangi kesalahan administratif, mempercepat proses, memberikan rasa aman, dan lain sebagainya. Untuk semua keuntungan itulah, teknologi seharusnya digunakan.

0 komentar:

Post a Comment