Hi all,

Martin asked me to share my findings about the Serbian national eID
smart card, something I will be more than happy to post to this list.

At the moment the card is not recognized by OpenSC.

As it is written in Ludovic Rousseau's smartcard_list.txt file the card
ATR is 3B B9 18 00 81 31 FE 9E 80 73 FF 61 40 83 00 00 00 DF

All Serbian citizens over the age of 16 residing in the country can
choose to have either a smart card, or a non smart card version of the
national ID card. I found some data that about 60% of citizens do have a
card with a smart card chip.

There is the Wikipedia entry about the card:
http://en.wikipedia.org/wiki/Serbian_identity_card

The smart card contains full name, place and date of birth, current
address, unique citizens number, eID number, photo (fingerprint data and
electronic signature should also be there). Certificates for legally
binding digital signatures are included on the card.

Freeware proprietary CSP based middleware for Windows RSIDCardMW can be
downloaded from http://ca.mup.gov.rs/download.html There is also a
Windows software and a dll library called Celik that can be used to read
the public data (name, address, photo,...) of the smart card.

Yesterday I wrote an alternative to Celik in Python based on PC/SC
interface (pcsc-lite on GNU/Linux) and pyscard Python wrapper that is
available from http://gitorious.org/freesteel/freesteel It is sending a
bunch of SELECT FILE/READ BINARY commands to the card and reading the
output written on the card in UTF-8 encoded text. I did testing only
with my own eID card and I am waiting for comments to confirm that I got
the data format right and it is not broken when working with other eIDs.

>From what I saw, the smart card is in ISO 7816 format (I do not know how
compatible, it is just what I used to get public data of the card). I do
not know what would be required to implement the support for this card
in OpenSC or is it already supported using some of the standard modules.

To my knowledge there is no published technical specification. The
company which is implementing the PKI for the Ministry of Internal
Affairs of Republic of Serbia is a local company named NetSet
(http://www.netset.rs). I did not try to get technical data from the
Ministry or the NetSet. This is something I will most certainly at least
try to do once I have enough time and knowledge how can I use it to
implement OpenSC support for the smart card.

I can run the middleware inside the VM and trace calls to my reader
using usbmon, analyzing them with logdecode from carddecoders. My plan
is to do the tracing during the digital signing and I hope this will
give me some interesting findings about the card.

Probably I am not the best who should try this as everything with the
smart cards is very unknown to me as the developer, but it should be
also fun to learn something new.

Is this how the things are supposed to work? Should I try something
different first? Is there some documentation available on how one can
add support for a new card? I read somewhere that card driver and the
PKCS#15 emulation are required for every smart card, is that true?

Thanks,
Goran Rakic



_______________________________________________
opensc-devel mailing list
opensc-devel@lists.opensc-project.org
http://www.opensc-project.org/mailman/listinfo/opensc-devel

Reply via email to