Thursday, July 11, 2013

Command Set Overview--Mifare DESFire--


  1. Security Commands
Catatan : semua command dan data frames yang dipertukarkan antara PICC dan PCD menggunakan format yang didefinisikan dalam ISO 14443-4

    2. PICC Commands










   3.Application Commands


    4. Data Manipulation Commands

     5.Wrapping of Native DESFire APDUs
Format yang digunakan pada DESFire APDU sesuai dengan case-4 pada 7816. Strukturnya seperti terlihat di bawah :




Coding of Communication Settings & Access Rights in Mifare DESFire


  • Coding of Communication Settings

Settingan komunikasi mendefinisikan level security yang digunakan antara PCD dan PICC. Settingan komunikasi ini selalu berhubungan dengan level file.
Setting komunikasi ini hanya satu byte dalam setiap file applikasi, konfigurasinya seperti terlihat di bawah :


Pada tabel tersebut terlihat bahwa jika ingin menggunakan DES/3DES maka settingannya adalah 0x03 dalam bilangan hex.
Key yang digunakan untuk DES dan 3DES tersebut terdiri dari 16 byte. Jika 8 byte pertama dari key tersebut sama dengan 8 byte berikutnya {byte 9 - 16}, maka PICC akan menggunakan DES. Namun jika tidak sama maka akan digunakan 3DES. Contohnya :
          key1{byte 1-8}= 0x0011223344556677
          key2{byte 9-16}=0x0011223344556677
brarti pada kasus ini PICC secara otomatis akan menggunakan DES. Tetapi jika
         key1 = 0x9988776655332211
         key2 = 0x1122334455667799
maka PICC akan menggunakan TDES. Hehe.. simple kn yh... :D


  • Coding of Access Rights
Ada empat hak akses {2 byte untuk setiap file, sprt trlht di bawah} yang tersimpan dalam setiap aplikasi di PICC, yaitu :
1. Read Access (GetValue, Debit for Value files)
2. Write Access (GetValue, Debit, LimitedCredit for Value files)
3. Read&Write Access (GetValue, Debit, LimitedCredit, Credit for Value files)
4. ChangeAccessRights


Setiap hak akses tersebut dikodekan dalam 4 bit atau satu nibble. Setiap nibble mewakili satu key yang tersimpan dalam masing-masing database key suatu applikasi. 
Satu nibble memungkinkan untuk menghasilkan 16 nilai yang berbeda. Oleh sebab itu settingan nilai-nilai tersebut mengikuti aturan berikut :
  1. Jika nilainya 0 - 13 {Maks. 14 keys}, maka nibble ini merepresentasikan jenis-jenis key yang ada dalam applikasi. Hal menunjukkan bahwa jika kita memilih key nomor 14 - 15 brarti PICC akan memberikan error respon
  2. Jika nibble tersebut bernilai 14 (0xE). Ini berarti "FREE ACCESS". Jadi PCD dapat mengirimkan command-command tertentu tanpa harus didahului oleh proses authentikasi
  3. Jika bernilai 15(0xF). Ini adalah kebalikan dari 14, jadi "DENY ACCESS". Maka PCD tidak dapat melakukan apa-apa terhadap applikasi yang berada pada PICC
Nah jika suatu file mempunyai konfigurasi :
0x12 0x3E
maka untuk melakuan Read file, PCD dapat menggunakan key ke-1 atau key ke-3. Trz untuk Write file, PCD dapat menggunakan key ke-2 dan key ke-3.

Kemudian jika konfigurasi filenya adalah 0x45 0xEE. Maka PCD untuk melakukan Read atau Write boleh tidak menggunakan key apapun juga karena konfigurasi Read&Write-nya di set ke 0xE, "free access". Tetapi dapat pula menggunakan key no. 4 untuk read dan key no. 5 untuk write.