Andreas Schwier wrote in reply to Dave's posting (and my responses are embedded
in the text below):
> I fully agree with your statements, but it's not that terrible. I've been
> working in the industry for 14 years now and as a former member of the German
> standardisation body (NI17.4) I've been involved in the work that gave us
> ISO7816-3,4 and 5.
>
> Industry standards are always a tradeoff. They usually reflect the interest of
> companies that send people to these standardisation groups. It's
> quite expensive to do this kind of work, so it does not surprise that
> companies only invest that money, if they see some benefit (which is surely not
> interoperability).
Interoperabiliy is now a mandatory requirement for the public sector in
Europe, and the eEurope Initiative aims, with its Smart Card Charter, to
bring about interoperability in transactions between the citizen and
business. The user-centric goals are one contact reader slot spec or
standard to take all the cards that the citizen may wish to use in
transactions with government, banks, and business, and for all single
and multi-app cards issued for this purpose to be always accepted in
that slot. On top of this, there is a competition requirement: the public
sector must not be tied into single supplier relationships in this area.
Please look at the UK Framework for Smart Cards in Government on
the www.iagchampions.gov.uk web site - there is a similar push for a
common PKI infrastructure introduced in another document on that
web site. eEurope covers the same topics: cards, terminals, PKI
infrastructure.
I was yesterday at a meeting to discuss the UK specifications for
public transport ticketing. On the bus, the card interface has to be
contactless. At other times (e.g. purchasing the ticket over the
internet), the card interface can be contact. Over the next month, some
of us hope to study the drafts of 14443 up to part 3 (parts 2 and 3 have
just been completed, ready for the FDIS stage) in order to assess
whether they are good enough to build interoperable systems for both
microprocessor cards and Mifare cards.
>
> The other problem with standards, is that they only contain the results of very
> long disussions that were held in these groups. Reading the standard
> does not tell you why things are done in a certain way. You only see in a very
> compressed document, what everyone finally agreed on.
And the reasons should be documented and published, because they
would help designers to understand the often impenetrable text of the
standard.
There is another problem with standards: patents (but that is a long
story, and someone else has explained part of it).
>
> Now other people take these standards and try to implement them. And because
> developers don't really like reading standards and because they don't have the
> background information, things gets out of hand. A good example is the chaining
> mechanism in T=1. Soon after the first drafts of T=1 were written, people
> started implementing T=1, but they left out chaining and claimed that it is
> optional. If you look at the standard it's clearly not and you see that T=1
> without chaining doesn't make any sense.
>
> Standards take very long to develop and it would not work, if companies did not
> try to implement proprietary system, just to find the best solution for a
> standard. But because of this, standard often need to embrace even these poor
> first time shots, because they suddenly got successfull in the marketplace and
> defined the common standard (I can think of better ways to exchange documents
> than in Word format, but it's there and won't go away soon).
There is no excuse for standards developers not doing a professional
job, i.e. getting the standard right. The problem is basically finance.
Many companies and countries want the standard, and they want it to
be correct and complete, but they will not finance the work - so the
developers are frequently not allowed to do the job properly.
An ISO editor tells me that ISO has moved to pdf format, and we still
have problems, as was evident at the UK contactless technical panel
recently when we were comparing documents that we had each
porinted off.
>
>
> PC/SC is a good global specification to start with. I guess the combination of
> PC/SC with the CT-API / CT-BCS approach in M.U.S.C.L.E will work quite well. I
> don't see companies writing terminal drivers for OCF, and IMHO OCF will always
> be used as a layer on top of PC/SC.
When you look at the low levels of PC/SC (electrical, data comms,
ATR processing), and providing that you have knowledge of both
ISO 7816 and EMV, you quickly realise that PC/SC is a mess down
there. Its is a muddled mixture of ISO and EMV, and it says that, if the
reader can't cope with the ATR that the card sends, the reader should
carry on and hope that soemthing works.
That is not a professional way to do things. I jave asked PC/SC (and
Microsoft) to sort this out, but nothing has been done.
>
>
> Just take your MasterCard, VISA or Amex with an EMV application on the chip and
> you can stick it into any EMV terminal around the world. The standards for that
> are here, but it's not yet a business case for the banks to invest into chip.
And EMV is not ISO compliant, which causes problems making
terminals (and also when trying to configure multiapplication cards).
Scheme developers outside of banking do not want to use EMV.
>
>
> Most modern cards do that [T=1] today, unfortunately some French companies do not
> really like T=1 for historic reasons. Quite often these cards even support both
> protocols with PPS.
First, ISO and EMV versions of T=1 are different, and both have
problems in the error recovery area (developing a state diagram from
the text shows this error handling problem). This was communicated
to EMV in 1998.
Second, the committee draft of ISO's 14443 (Proximity cards) part 4 has
recently been sent to reviewers for comment. It specifies a protocol
very like T=1, but is that protocol correctly defined? We don't know.
There is no state diagram. There is no money to prove the correctness.
14443 stops at part 4, because that part is intended to be a bridge
across to 7816 part 4 (the project I mentioned above does not include
part 4, as the text is not yet finalised).
>
> And who is going to register and maintain these identifier ? And why would I
> need the ATR to identify the card ? What I need is a mechanism to identify the
> application on the card and I can do that using the AID stored in EF_DIR. PC/SC
> introducted the concept of identifying the card with the ATR and as you can
> see, that doesn't really work well. Why do I want Microsoft Plug and Play with
> a SmartCard ? In most cases I know what I want to do with the card before I
> insert it into the reader.
Here is the error in all the 7816 and 14443 work: it is wrong to assume
that you know what you are going to do with the card before the card
is entered into the reader. ISO has always failed to treat the card and
reader together as a system. You MAY know what you WANT to do
with the card, or you may be in the position where the cardholder or
the equipment operator has not yet decided what to do.
There is another problem here: some schemes want their application to
have priority. That means it is implicitly selected when the card is
powered on. That means it takes over the ATR historical bytes in
order to announce its own information. That means that app can be
executed very quickly. When EMV and Mondex and a transport ticket
app all want to be top of the heap, what do we do?
>
> The ATR is for the pure purpose of defining the interface characteristics for
> communication between the card and the terminal. Everything else is
> application. The historical bytes shall be used to offer some proprietary
> information about the chip, that can be used for diagnostic purposes.
>
But in a multi-app card, different apps may want the comms to work in
different ways. And EMV (quite correctly for interoperability) wants
the card to detect that it has been sent a warm reset (drop the reset
line but leave power and clock on the card) and respond with a basic
ATR (of which there are 2 versions, one saying T=0 and the other
saying T=1).
> ISO7816-4 contains all thats needed in sections 8 - Historical bytes and 9 -
> Application independent card services. It's up to the application developer to
> make use of that.
>
> > 3) ISO-7816 should include a command for the creation of a
> > transparent file and a command for the listing of files.
>
> ISO7816 Part 9 - Additional interindustry commands and security attributes
> does that.
>
> > 4) Card manufacturers need to be ISO compliant. Class instructions
> > should be standardized to either 00 or C0 or whatever. I should be able
> > to list the directory of files on the card in 1 way on any card.
>
> Just pick a card that implements the latest standards that.
Once again, EMV is not ISO compliant. EMV, however, has defined an
application selection mechanism in order to make it easier to know
what is on the card.
EMV and ISO need to come together, because EMV has answers to
some of the problems.
>
> > 5) There must be a standard for putting the keys on the card. If RSA is
> > used then do pq... whatever but in the same order on each card. Also,
> > cards should have the same endianness. This is crazy that people haven't
> > learned their lessons on this one yet.
>
> That's a little bit more tricky, as the keys are usually stored in specific
> areas in the card. This would clearly be the job of a card service provide in
> PC/SC. On top of that a PKCS#11 layer will do the rest.
#PKCS15 is aimed at unifying PKI token storage in cards.
>
There's an old rhyme: Oh what a tangled web we weave, when first we
practice to deceive. I accept that very nearly all of the people involved
in these standards have no intention to deceive, but the complete lack
of transparency in ISO deliberations on these card standards has
resulted in an extremely frustrating muddle. CEN is working in a much
more transparent manner, running Workshops to publicise the work of
those standards groups which have some public money in them. The
UK is running supplier forums for contactless cards used in transport
ticketing (it was one of those that I attended yesterday), and at long
last we have public money assisting the work, and the UK supporting
CEN work in the area of public transport applications on cards.
Peter Tomlinson
Iosis, 34 Strathmore Road, Bristol BS7 9QJ, UK
Phone & fax +44 (0)117 951 4755
Email [EMAIL PROTECTED] or [EMAIL PROTECTED]
***************************************************************
Linux Smart Card Developers - M.U.S.C.L.E.
(Movement for the Use of Smart Cards in a Linux Environment)
http://www.linuxnet.com/smartcard/index.html
***************************************************************