An example on how to personalize a Smartjac SMAOT100NFC card (USIM / ISIM / CSIM / NFC) with Milenage algorithm support, with Ki and OPc value, using Gemalto Card Admin.
This lesson applies to our multi application UICC cards SMAOT100NFC.
Card ATR (Answer To Reset) : 3B9F96803FC7008031E073FE211B6408050300829000EF
Default codes:
GPIN: 1234
LPIN: 5678
ADM1: 11111111
PUK: 12345678
Software used is Gemalto Card Admin version 2.8. Please make sure you use this version if you need to work with CSIM or ISIM files. Contact our support if you need help to upgrade.
Leave as is and click "Select"
The software will now scan files in a range defined in Tools/Options/3G Scan Configuration. However this scan is not enough in order to see all DF's and EF's on our card so we will need to scan the card again.
You will now see more files and directories. As you can see the ISIM application directory is now visible. You should also see files 6FFC and 6FFD under ADF USIM application directory. These are the files where the authentication keys are kept. The Key Ki is put in 6FFC and the OPc is put in file 6FFD. in case you want to read and/or update the content of the files, you will need to change the access rights in file 6F06, in this case the records 10 and 11 (can be 13 and 14 also). (the column SE01 in Card Admin shows what security record the files uses)
So in this screenshot 10 means that you will have to go to tab / record 10 in file 6F06 that keeps Access Rules for the files.
APDU Exchange window: Use this window to send any of the APDU commands handled by the card in byte code.
Click on the ikon for APDU exchange [A] and then verify the Admin code as shown on the screen-shot. Click "Exchange" and you should get SW1=90 SW2=00 as a confirmation that the verification was succesful.
First time:
Create a macro file and add APDU macros to it:
Click File and select New to create a new macro file.
Specify the name and location of the macro file (with a .amf file extension) and click Save to create a new file.
Enter a description of the macro in the Macro Name box.
Enter the APDU command in the fields as in screenshot
Click Exchange to send the APDU command to the card.
Click Add to add the macro to the file.
1. Open ARR [Access Rule Reference] file by double-clicking on file 6F06.
2. Go to record 10 (tab 10 (or 13)) and change Read to ALWAYS, then click "Check and Modify"
3. Go to record 11 (or 14) and change Read to ALWAYS and Update to ALWAYS, click "Check and Modify"
4. Click on "Update"
Note: on our standard 3G Milenage SMAOT cards, records 16 and 17 are the records to be changed.
You may change these records back to original settings after editing the files 6FFC and 6FFD if you need to keep these files secured.
In this example we will update the Ki to 77777777777777777777777777777777 and OPc to DB46EEF88A1A4F3BB05B1AD880DA07F2. With SMAOT100NFC cards you will need to calculate a CRC value and add it to the end of the Ki and OPc value. If you have a CRC calculator or a tool to calculate CRC values then use CRC-CCITT (0xFFFF) 16 bit calculations with CRC polynom 1021. In our case we will use online tools to calculate this.
Go to http://www.lammertbies.nl/comm/info/crc-calculation.html and click button "Hex" and enter the Ki value and click "Calculate CRC". The checksum in our case is CA39.
Fill in value and click "Update"
Fill in the OPc value + checksum after the first byte "01". Click "Update"
Choose algorithm and fill in your key (and OPc value if you chose Milenage, this time without checksums) and click "Authenticate" to verify your values.
...or you don't have the tools to do so, then you can actually use the OP value in file 6FFD. Change the first byte to "00" and enter the OP value after that. You still have to calculate the CRC checksum.
Don't forget to edit IMSI and ACC. Both most have values (ACC must be different from 00 00) in order for the card to succesfully register on the network.
Created : 2016-05-25 11:49:51, Last Modified : 2017-06-15 13:50:09
Below you'll find our PGP public key. Use it to exchange encrypted messages with us.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP Universal 3.4.2 (Build 502)
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
b0sfmPZ3
=jOBj
-----END PGP PUBLIC KEY BLOCK-----