Site Tools


desfire

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
desfire [2017/05/16 06:46]
JavaCardOS [User Guide]
desfire [2017/05/16 07:17] (current)
JavaCardOS
Line 1: Line 1:
-====== ​Overview ​======+====== ​DESFire User Manual ​====== 
 +===== Overview ​=====
  
 MIFARE DESFire EV1 card operates at 13.56 MHz wireless frequency, according to the ISO 14443A standard with the transport protocol complying to the ISO 14443-4 standard. It features a 4K byte NVM, a high speed triple-DES data encryption co-processor,​ a flexible memory organization structure, a mutual 3-pass authentication technique together with a true random number generator and an anti-tear mechanism to guarantee data integrity during contactless transactions. It can be applied to multiple applications that needed high security, such as, entrance guard system, staff attendance, company access, identification and so on.  MIFARE DESFire EV1 card operates at 13.56 MHz wireless frequency, according to the ISO 14443A standard with the transport protocol complying to the ISO 14443-4 standard. It features a 4K byte NVM, a high speed triple-DES data encryption co-processor,​ a flexible memory organization structure, a mutual 3-pass authentication technique together with a true random number generator and an anti-tear mechanism to guarantee data integrity during contactless transactions. It can be applied to multiple applications that needed high security, such as, entrance guard system, staff attendance, company access, identification and so on. 
-====== Preparation ​======+===== Preparation =====
  
 Hardware:  ​ Hardware:  ​
Line 15: Line 16:
  
 Note: Please download [[https://​javacardos.com/​tools/​pyresman.html|pyResMan]] from [[https://​javacardos.com/​tools/​pyresman.html|javacardos.com]] or [[https://​github.com/​JavaCardOS/​pyResMan/​releases|gitHub]]. Note: Please download [[https://​javacardos.com/​tools/​pyresman.html|pyResMan]] from [[https://​javacardos.com/​tools/​pyresman.html|javacardos.com]] or [[https://​github.com/​JavaCardOS/​pyResMan/​releases|gitHub]].
-====== User Guide ======+===== User Guide =====
  
 Connect [[https://​javacardos.com/​store/​smartcard-reader-r502.php|R502 Reader]] to computer via USB cable and put DESFire Card on [[https://​javacardos.com/​store/​smartcard-reader-r502.php|R502 Reader]]. Double click [[https://​javacardos.com/​tools/​pyresman.html|pyResMan.exe]]. Connect [[https://​javacardos.com/​store/​smartcard-reader-r502.php|R502 Reader]] to computer via USB cable and put DESFire Card on [[https://​javacardos.com/​store/​smartcard-reader-r502.php|R502 Reader]]. Double click [[https://​javacardos.com/​tools/​pyresman.html|pyResMan.exe]].
Line 21: Line 22:
  
 {{:​001.png?​600|}} {{:​001.png?​600|}}
-===== 1.Security Related Commands ====+==== 1.Security Related Commands ====
  
-====  1.1 Authenticate ​====+===  1.1 Authenticate ===
  
 Click "​Authenticate"​ to  complete the card authentication. When "​DESFire authenticated"​ appears, it indicates that the authentication is successful. This procedure not only confirms that both entities can trust each other but also generates a session key which can be used to keep the further communication path secure. After the authentication procedure is successfully,​ the further operation on PICC, application,​ file, file data can be executed. Click "​Authenticate"​ to  complete the card authentication. When "​DESFire authenticated"​ appears, it indicates that the authentication is successful. This procedure not only confirms that both entities can trust each other but also generates a session key which can be used to keep the further communication path secure. After the authentication procedure is successfully,​ the further operation on PICC, application,​ file, file data can be executed.
  
 {{:​002.png?​600|}} {{:​002.png?​600|}}
-====  1.2 ChangeKey ​====+===  1.2 ChangeKey ===
  
 Not implemented yet. Not implemented yet.
  
-====  1.3 GetKeySettings ​====+===  1.3 GetKeySettings ===
  
 Click "Get key settings"​ button to get the configuration information on PICC and application master key configuration settings, as shown below. Click "Get key settings"​ button to get the configuration information on PICC and application master key configuration settings, as shown below.
Line 38: Line 39:
 {{:​003.png?​600|}} {{:​003.png?​600|}}
  
-===== 2.PICC Level Commands ​=====+==== 2.PICC Level Commands ====
  
-==== 2.1 GetVersion ​====+=== 2.1 GetVersion ===
  
 Click "​GetVersion"​ to get manufacturing related data of the PICC. Click "​GetVersion"​ to get manufacturing related data of the PICC.
Line 46: Line 47:
 {{:​004.png?​600|}} {{:​004.png?​600|}}
  
-==== 2.2 FormatPICC====+=== 2.2 FormatPICC===
  
 Click "​FormatPICC"​ to release the PICC user memory. Click "​FormatPICC"​ to release the PICC user memory.
Line 54: Line 55:
 {{:​005.png?​600|}} {{:​005.png?​600|}}
  
-==== 2.3 CreateApplication ​====+=== 2.3 CreateApplication ===
  
 Click "​Create Application"​ to  create new applications on the PICC. Type  Application Identifier (AID) and then press "​OK"​. Click "​Create Application"​ to  create new applications on the PICC. Type  Application Identifier (AID) and then press "​OK"​.
Line 62: Line 63:
 {{:​006.png?​600|}} {{:​006.png?​600|}}
  
-==== 2.4 GetAppliationIDS ​====+=== 2.4 GetAppliationIDS ===
  
 The "Get Application IDS" command ​ returns the Application IDentifiers of all active applications on a PICC and add them to the right dropdown list. The "Get Application IDS" command ​ returns the Application IDentifiers of all active applications on a PICC and add them to the right dropdown list.
Line 68: Line 69:
 {{:​007.png?​600|}} {{:​007.png?​600|}}
  
-==== 2.5 SelectApplication  ​====+=== 2.5 SelectApplication ​ ===
  
 "​SelectApplication"​ command allows to select one specific application for further access. "​SelectApplication"​ command allows to select one specific application for further access.
Line 74: Line 75:
 {{:​008.png?​600|}} {{:​008.png?​600|}}
  
-==== 2.6 DeleteApplication ​====+=== 2.6 DeleteApplication ===
  
 Click "​DeleteApplication"​ button to permanently deactivate the selected applications on the PICC. Click "​DeleteApplication"​ button to permanently deactivate the selected applications on the PICC.
Line 80: Line 81:
 {{:​009.png?​600|}} {{:​009.png?​600|}}
  
-===== 3.Application and Data Manipulation Level Commands ​=====+==== 3.Application and Data Manipulation Level Commands ====
  
-==== 3.1 Create Std Data File ====+=== 3.1 Create Std Data File ===
  
 Click "​Create Std Data File" to create files for the storage of plain unformatted user data within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the file size, press "​OK"​. Click "​Create Std Data File" to create files for the storage of plain unformatted user data within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the file size, press "​OK"​.
Line 92: Line 93:
 {{:​010.png?​600|}} {{:​010.png?​600|}}
  
-==== 3.2 Create Backup Data File ====+=== 3.2 Create Backup Data File ===
  
 Click "​Create Backup Data File…"​ to create backup files for the storage of plain unformatted user data within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the file size, press "​OK"​. Click "​Create Backup Data File…"​ to create backup files for the storage of plain unformatted user data within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the file size, press "​OK"​.
Line 102: Line 103:
 {{:​011.png?​600|}} {{:​011.png?​600|}}
  
-==== 3.3 CreateValueFile ​====+=== 3.3 CreateValueFile ===
  
 Click "​Create Value File…"​ to create files for the storage and manipulation of 32bit signed integer values within an existing application on the PICC. Click "​Create Value File…"​ to create files for the storage and manipulation of 32bit signed integer values within an existing application on the PICC.
Line 109: Line 110:
 {{:​012.png?​600|}} {{:​012.png?​600|}}
  
-==== 3.4 CreateLinearRecordFile ​====+=== 3.4 CreateLinearRecordFile ===
  
 Click "​Create Linear RecordFile…"​ in the pop-up dialog box, enter "File No." and set "​Record Size" to to create Linear Record File. Once the file is filled completely with data records and the maximum number of records. further writing to the file is not possible unless it is cleared. Click "​Create Linear RecordFile…"​ in the pop-up dialog box, enter "File No." and set "​Record Size" to to create Linear Record File. Once the file is filled completely with data records and the maximum number of records. further writing to the file is not possible unless it is cleared.
Line 121: Line 122:
 {{:​013.png?​600|}} {{:​013.png?​600|}}
  
-==== 3.5 Create Cyclic Record File ====+=== 3.5 Create Cyclic Record File ===
  
 Click "​Create Cyclic Record File…"​ to create files within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the size of the file to record and the maximum number of records. Once the file is filled completely with data records, the PICC automatically overwrites the oldest record with the latest written one. Click "​Create Cyclic Record File…"​ to create files within the currently selected application on the PICC. In the pop-up dialog box, enter File No. and set the size of the file to record and the maximum number of records. Once the file is filled completely with data records, the PICC automatically overwrites the oldest record with the latest written one.
Line 129: Line 130:
 {{:​014.png?​600|}} {{:​014.png?​600|}}
  
-==== 3.6 Get File IDs ====+=== 3.6 Get File IDs ===
  
 Click "Get File IDs" button to get File IDentifiers of all active files within the currently selected application and add them to the right dropdown list. Click "Get File IDs" button to get File IDentifiers of all active files within the currently selected application and add them to the right dropdown list.
Line 135: Line 136:
 {{:​015.png?​600|}} {{:​015.png?​600|}}
  
-==== 3.7 Get File Settings ​====+=== 3.7 Get File Settings ===
  
 Click "Get File Settings"​ to get information on the properties of a specific file. Click "Get File Settings"​ to get information on the properties of a specific file.
Line 141: Line 142:
 {{:​016.png?​600|}} {{:​016.png?​600|}}
  
-==== 3.8 Changes Files Settings ​====+=== 3.8 Changes Files Settings ===
  
 Not implemented yet. Not implemented yet.
  
-==== 3.9 Delete File ====+=== 3.9 Delete File ===
  
 Click "​Delete File" to permanently delete a file within the file directory of the currently selected application. Click "​Delete File" to permanently delete a file within the file directory of the currently selected application.
Line 151: Line 152:
 {{:​017.png?​600|}} {{:​017.png?​600|}}
  
-===== 4.Data Manipulation Commands ​=====+==== 4.Data Manipulation Commands ====
  
-==== 4.1 Write Record ​====+=== 4.1 Write Record ===
  
 In the dropdown list, select the created standard data files or backup data files, ​ click "Write Data…"​ and enter the data in the pop-up dialog box. In the dropdown list, select the created standard data files or backup data files, ​ click "Write Data…"​ and enter the data in the pop-up dialog box.
Line 159: Line 160:
 {{:​018.png?​600|}} {{:​018.png?​600|}}
  
-==== 4.2 Read Data ====+=== 4.2 Read Data ===
  
 In the dropdown list, select the standard data files or backup data files, ​ click "Read Data…"​ and enter the length of data to read in the pop-up dialog box, press "​OK"​. In the dropdown list, select the standard data files or backup data files, ​ click "Read Data…"​ and enter the length of data to read in the pop-up dialog box, press "​OK"​.
Line 167: Line 168:
 {{:​020.png?​600|}} {{:​020.png?​600|}}
  
-==== 4.3 Credit ​====+=== 4.3 Credit ===
  
 In the dropdown list, select the created value file, then the buttons of "value File" line and "​Transaction"​ line  are avaliable. In the dropdown list, select the created value file, then the buttons of "value File" line and "​Transaction"​ line  are avaliable.
Line 177: Line 178:
 {{:​022.png?​600|}} {{:​022.png?​600|}}
  
-==== 4.4 Get Value ====+=== 4.4 Get Value ===
  
 From the list box, select the created value file, click "Get Value…"​ to read data. From the list box, select the created value file, click "Get Value…"​ to read data.
Line 183: Line 184:
 {{:​023.png?​600|}} {{:​023.png?​600|}}
  
-==== 4.5 Debit ====+=== 4.5 Debit ===
  
 From the list box, select the created value file, click  "​Debit"​ to  decrease a value stored in a Value File. From the list box, select the created value file, click  "​Debit"​ to  decrease a value stored in a Value File.
Line 194: Line 195:
 {{:​025.png?​600|}} {{:​025.png?​600|}}
  
-==== 4.6 LimitedCredit ​====+=== 4.6 LimitedCredit ===
  
 Click "​Limited Credit"​ button, enter data in "​value"​ textbox and press "​OK"​. Click "​Limited Credit"​ button, enter data in "​value"​ textbox and press "​OK"​.
Line 200: Line 201:
 {{:​026.png?​600|}} {{:​026.png?​600|}}
  
-==== 4.7 Write Record ​====+=== 4.7 Write Record ===
  
 Select the created "​linear Record File" or "​cyclic record file" in the list. then the buttons of "​Record File" line are available. Select the created "​linear Record File" or "​cyclic record file" in the list. then the buttons of "​Record File" line are available.
Line 210: Line 211:
 {{:​028.png?​600|}} {{:​028.png?​600|}}
  
-==== 4.8 Read Records ​====+=== 4.8 Read Records ===
  
 Click “Read Records…” and enter the length of data to read in the pop-up dialog box, press "​OK"​. Click “Read Records…” and enter the length of data to read in the pop-up dialog box, press "​OK"​.
Line 218: Line 219:
 {{:​030.png?​600|}} {{:​030.png?​600|}}
  
-==== 4.9 Clear Record File ====+=== 4.9 Clear Record File ===
  
 Click "Clear Record File…"​ to clear LinearRecordFile data or CyclicRecordFile data,then remember to click "​Commit Transaction"​ to validate the data. Click "Clear Record File…"​ to clear LinearRecordFile data or CyclicRecordFile data,then remember to click "​Commit Transaction"​ to validate the data.
Line 228: Line 229:
 {{:​032.png?​600|}} {{:​032.png?​600|}}
  
-==== 4.10 Commit Transaction ​====+=== 4.10 Commit Transaction ===
  
 Besides std data file, for other files, it requires "​Commit Transaction"​ operation to validate the data.  Otherwise, the data won't have any changes. Besides std data file, for other files, it requires "​Commit Transaction"​ operation to validate the data.  Otherwise, the data won't have any changes.
Line 236: Line 237:
 {{:​033.png?​600|}} {{:​033.png?​600|}}
  
-==== 4.11 Abort Transaction ​====+=== 4.11 Abort Transaction ===
  
 The AbortTransaction command allows to invalidate all previous write access on Backup Data Files, Value Files and Record Files within one application. This is useful to cancel a transaction without the need for re-authentication to the PICC, which would lead to the same functionality. The AbortTransaction command allows to invalidate all previous write access on Backup Data Files, Value Files and Record Files within one application. This is useful to cancel a transaction without the need for re-authentication to the PICC, which would lead to the same functionality.
  
 {{:​034.png?​600|}} {{:​034.png?​600|}}
desfire.txt · Last modified: 2017/05/16 07:17 by JavaCardOS