简体   繁体   中英

Different between Native smart card and java smart card

I want to know what different between native smart card and java card smart card? I know Java card smart card have capability to download and delete applet and I read in javacardos forum java card smart card not have pointer.How to detect native smart card from java card in practical? And any different?

"Smart Card" basically means a processor card with a SoC that includes a full CPU. Java Card runs on top of a Smart Card.

There are certainly file based cards that have contain a full ISO/IEC 7816-4/9/11 filesystem, although those usually also have proprietary parts (which is somewhat required because ISO/IEC 7816-4 doesn't contain a full specification of what needs to be implemented and leaves many blanks to be filled in by the implementer).

For Java Card you basically have to implement those APDU's that are required for your specific functionality. There was once a file system API in there but that has long been deprecated, for better or worse.

There isn't any specific command that tells you if a card is a Java Card or not. Some cards have a specific set of historical bytes in the ATR when delivered to a client. However, those may be set to different values as well.

If you want to check if a card is a Java Card: try and see if there is a Card Manager on the card, using SELECT by AID with the Open and Global platform AID's . If they succeed then that's a pretty big hint that the card is a Java Card.

Because each application DF in Java Card is selected by name, you generally won't find SELECT by DF ID working in the root folder. If none of those work before you select a Java Card applet (ie when you are in the root) then the card may be a Java Card. There is however the possibility to have an applet default selected, and such an applet may implement that function as well.

For a native smartcard, you just add a whole filesystem (directory structure, including special objects like PINs and keys), since everything else (algorithm implementations) is part of the operating system.

The easiest check is: look at the class byte of some instructions, which the card understands. Zero might indicate compliance to ISO 7816-4.

Other check: The Create command from ISO 7816-9 is not useful for a Javacard.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM