Previous Table of Contents Next


EMV Commands

EMV extends the ISO 7816 command set, and the EMV specification goes to great lengths to define the details of the specific commands that a smart card must respond to in order to be EMV compliant. The EMV smart card commands are:

  APPLICATION BLOCK (CLA=8C16 or 8416, INS=1E16)
  APPLICATION UNBLOCK (CLA=8C16 or 8416, INS=1816)
  CARD BLOCK (CLA=8C16 or 8416, INS=1616)
  EXTERNAL AUTHENTICATE (CLA=0016, INS=8216)
  GENERATE APPLICATION CRYPTOGRAM (CLA=8016, INS=AE16)
  GET DATA (CLA=8016, INS=CA16)
  GET PROCESSING OPTIONS (CLA=8016, INS=A816)
  INTERNAL AUTHENTICATE (CLA=0016, INS=8816)
  PIN CHANGE/UNBLOCK (CLA=8C16 or 8416, INS=2416)
  READ RECORD (CLA=0016, INS=B216)
  SELECT (CLA=0016, INS=A416)
  VERIFY (CLA=0016, INS=2016)

Data Authentication and Digital Certificates

The EMV specification defines two methods for authenticating the data on an EMV smart card—static and dynamic. These techniques are not unique to payment system applications and could be used to authenticate important data in any application domain. Data authentication ensures that the card is authentic and not a counterfeit or “spoof” card.

Static data authentication simply checks whether unvarying data that was placed on the card when it was originally created is still valid. Dynamic data validation checks data that can change during the lifetime of the card. Both methods employ public/private key pairs for authentication.

An EMV application that supports static data authentication carries the digital certificate of the issuer’s public key, along with the static data signed with the issuer’s private key. The digital certificate of the issuer’s public key is signed by a certificate authority whose public key is held by the terminal. The authentication of the static data is performed by the terminal as follows:

1.  Retrieve issuer’s public key digital certificate from the smart card.
2.  Verify authenticity of the digital certificate using the certificate authority’s public key.
3.  Retrieve signed static data block to be authenticated from the smart card.
4.  Verify the authenticity of the signed static data block using the issuer’s public key.

Dynamic data authentication is a little more complicated but runs along the same lines. In order to support dynamic data authentication, the smart card carries its own private key and a digital certificate for the corresponding public key in addition to the digital certificate containing the public key of the issuer. The authentication of dynamic data is performed by the terminal as follows:

1.  Retrieve the issuer’s public key digital certificate from the smart card.
2.  Verify the authenticity of the issuer’s public key digital certificate using the public key of the certificate authority.
3.  Retrieve the digital certificate of the smart card’s public key from the smart card.
4.  Verify the authenticity of the smart card’s public key digital certificate using the public key of the certificate authority.
5.  Use the INTERNAL AUTHENTICATE command to instruct the smart card to sign specific data elements using the smart card’s private key.
6.  Retrieve signed data elements from the smart card.
7.  Verify the authenticity (and accuracy) of the signed data elements using the card’s public key.

It is easy to see the beginning of the SET protocols in this simple EMV data validation protocol.

Visa Integrated Circuit Card Specification

The Visa Integrated Circuit Card (ICC) specification is Visa’s extension of EMV’96 beyond credit and debit payment systems to stored value and loyalty applications. In particular, it applies EMV’96 to two Visa stored value applications, the Chip Card Payment Service (CCPS) and VisaCash.

The Visa ICC specification also covers Visa’s Easy Entry smart card application. Easy Entry defines a way for a smart card to behave like a magnetic stripe card—not electrically of course, but with respect to the format and content of the data it emits. As a result, a smart card containing Easy Entry applications can be used with the existing and extensive magstripe infrastructure. It is the duty of the terminal to perform the electrical translations between the ISO 7816 interface to the smart card and the needs of the magstrip transaction processing network.

Because stored value and loyalty applications make it necessary to be able to write data to the card as well as read from it (to add cash or points to the card, for example), the CCPS specification adds a PUT DATA command (CLA=0416, INS DA16) to the basic EMV’96 commands. Furthermore, since this command which essentially mints money just might attract some hacker interest, the secure messaging and data validation capabilities of EMV’96 are also considerably strengthened in CCPS so that only the right people can increase cash value or the loyalty point totals on the card.

SET 2.0 and the Visa Open Technology Platform

As of this writing, neither the specifications for SET 2.0 nor the specifications for Visa’s Open Technology Platform have been released. SET 2.0 is claimed to include smart cart support and you can imagine that it will be the next step in the evolution of EMV’96. Clearly, the stage has been set in EMV’96 and CCPS to handle SET.

The Visa Open Technology Platform (OTP) is a customization of the Java Card specification, which is a closed and highly constrained multiapplication environment. A primary concern of the Java Card and the OTP is to provide the card issuer with quality control over the applications on the card. What impact this has on cardholders and application developers remains to be seen.


Previous Table of Contents Next