1
votes

I am trying to write a simple javacard app that allows you to read the cards GUID/UUID using a simple APDU command.

As I have come to understand each smart card contains a GUID which is unique to the card. This GUID should be retrievable using a standard APDU command.

Does any one know how to do this? Maby have example projects or even just a java function that does this?

Best regards

A.E

2
I found this on the HID site for Omnikey cards. The read UID (the PC/SC command for GET UID is 0xFF 0xCA 0x00 0x00 0x00). hidglobal.com/faqs.php?techCat=19A.E
That would be Omnikey readers instead of Omnikey cards. Many readers support special APDUs that are not forwarded to the card.martijno

2 Answers

0
votes

AFAIK GUID/UUID is not a standard card instance identification mean applicable for any smartcard product. For example, SIM cards are rather identified using the content of a file EF_ICCID (ICC Identification) (ETSI TS 102 221 V6.15.0 (2010-02)) so you can get it through normal UICC file access APIs. The ATR is used for card type identification (ISO/IEC 7816-4). GUID/UUID presence on card is specific to some smartcard manufacturer/product or smartcard application.

So for GUID/UUID you should identify at least the product and the manufacturer doc or someone working with that specific card can answer you if this information is retrievable and how (using standard APIs - e.g. if it's stored in a EF- or proprietary) from an applet.

From terminal side this is usually done using SELECT/READ* or GET DATA APDUs after some security verifications.

0
votes

GUID is not necessary to be a smart card identifier. Actually there could be no unique identifier in a smart card. GUID is always the result of some custom implementation, for example, store the GUID number in a read only file.

I'm not sure of class byte 0xFF, GSM is A0, 00/8X is used for UICC, 8X is used for GP, INS CA is usually GETDATA