3

My question focuses on the differences regarding PKCS11 implementation between a .Net and a Java smartcard.

More generally, do smartcard use a specific "OS" (or firmware) and only differ in the middleware / application layer ? Is it easy to format and switch between both middleware ?

1

I'm rather rusty on my Smartcard stuff but I'll have a crack at an answer anyway.

Smartcards are small embedded computers in their own right and so they do indeed use a very simplified OS. The 2 you mention are the standard ones.

They all have some standard capabilities that are not especially dependent on the OS. The ability to present a certificate, encrypt/decrypt some data, request a PIN, etc are all part of the smartcard specification. These features are accessed from a host computer via a standard interface library, generally PCSC.

In addition though, most if not all smartcards of the last decade are able to act as very simple general purpose computers and that is where the differences come. Java smartcards run an embedded version of a Oracle Java as an OS and use Java as the programming language, .NET cards use an embedded version of Microsoft .NET in a similar way. Originally, there were only "dumb" smartcards and Java based "smart" smartcards. Now I believe that the .NET ones are much more common.

Hope this helps.

  • nice ! And do you know if a .NET card may be formatted to switch to Java smartcard or it is not so easy ? – crypto-learner Jan 3 '15 at 0:40
  • Not possible I'm afraid, the OS is baked into the card, partly for strong security. – Julian Knight Jan 4 '15 at 17:23
  • Do you mean that the smartcard OS is read-only and you can't flash it ? True that would have sense.. – crypto-learner Jan 5 '15 at 16:49
  • No, the OS is read-only, you can add apps to it in addition to the standard certificate information. – Julian Knight Jan 5 '15 at 16:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.