One document matched: draft-urien-tls-psk-emv-00.txt




  TLS Working Group                                            P. Urien 
  Internet Draft                                      Telecom ParisTech 
  Intended status: Informational                L.Cogneau and P. Martin 
  Expires: April 15, 2010                                        Xiring 
                                                       October 15, 2009 
 
                           EMV support for TLS-PSK 
                        draft-urien-tls-psk-emv-00.txt 
 
 
Status of this Memo 
    
   This Internet-Draft is submitted to IETF in full conformance with 
   the provisions of BCP 78 and BCP 79. 
    
   Internet-Drafts are working documents of the Internet Engineering 
   Task Force (IETF), its areas, and its working groups.  Note that 
   other groups may also distribute working documents as Internet-
   Drafts. 
    
   Internet-Drafts are draft documents valid for a maximum of six 
   months and may be updated, replaced, or obsoleted by other documents 
   at any time.  It is inappropriate to use Internet-Drafts as 
   reference material or to cite them other than as "work in progress." 
    
   The list of current Internet-Drafts can be accessed at 
   http://www.ietf.org/1id-abstracts.html 
    
   The list of Internet-Draft Shadow Directories can be accessed at 
   http://www.ietf.org/shadow.html 
    
    
Abstract 
    
   This draft describes an authentication protocol based on TLS pre 
   shared key (TLS-PSK), RFC 4279. Identity and psk attributes, defined 
   in TLS-PSK are extracted from EMV chips, which are widely deployed 
   for payments transactions. The goal of this protocol is to provide a 
   strong mutual authentication transparent for the end users and 
   guarantying the confidentiality and the integrity of exchanged data 
   over Internet network. 
   This is a new step avoiding the use of static passwords for on-line 
   services, such as electronic banking or electronic payment. 
    
Conventions used in this document 
    
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
   document are to be interpreted as described in RFC-2119. 
    
    


   Urien & All                Expires April 2010              [Page 1] 
 
                            EMV Support for TLS-PSK        October 2009 
 
Table of Contents 
    
   Abstract........................................................... 1 
   Conventions used in this document.................................. 1 
   1 Introduction..................................................... 3 
      1.1 The issuer.................................................. 3 
      1.2 The WEB site................................................ 4 
      1.3 The user.................................................... 4 
   2 About TLS-PSK.................................................... 4 
      2.1 The PSK mode................................................ 5 
      2.2 The DHE-PSK mode............................................ 5 
      2.3 The RSA-PSK mode............................................ 6 
   3 Overview of an EMV smart card.................................... 6 
      3.1 Definition of some EMV object............................... 6 
          3.1.1 PAN .................................................. 6 
          3.1.2 PSN .................................................. 6 
          3.1.3 Signed Static Application Data (SSAD) ................ 7 
          3.1.4 ICC Public Key Certificate (IPKC) .................... 7 
          3.1.5 CDOL1 ................................................ 7 
          3.1.6 CDOL2 ................................................ 7 
      3.2 Cryptogram generation....................................... 7 
          3.2.1 ARQC ................................................. 8 
          3.2.2 AAC .................................................. 8 
   4 EMV cards for TLS-PSK............................................ 8 
      4.1 Overview.................................................... 8 
          4.1.1 EMV-ID ............................................... 8 
          4.1.2 EMV-CPG .............................................. 8 
          4.1.3 EMV-PSK .............................................. 9 
          4.1.4 Authentication scheme selection ...................... 9 
      4.2 PSK calculations............................................ 9 
          4.2.1 psk .................................................. 9 
          4.2.2 psk-identity ......................................... 9 
      4.3 DHE-PSK calculations........................................ 9 
          4.3.1 psk .................................................. 9 
          4.3.2 psk-identity ......................................... 9 
      4.4 RSA-PSK calculations....................................... 10 
          4.4.1 psk ................................................. 10 
          4.4.2 psk-identity ........................................ 10 
   5 IANA Considerations............................................. 10 
   6 Security Considerations......................................... 10 
      6.1 Replay attack.............................................. 10 
      6.2 Man in Middle attack (MIM)................................. 10 
      6.3 Phishing attack............................................ 11 
   7 References...................................................... 11 
      7.1 Normative References....................................... 11 
      7.2 Informative References..................................... 12 
   Authors' Addresses................................................ 12 
   Full Copyright Statement.......................................... 12 
    



   Urien & All                Expires April 2010              [Page 2] 
 
                            EMV Support for TLS-PSK        October 2009 
 
1 Introduction 
    
   Millions of EMV cards, equipped with microprocessor chips (compliant 
   with ISO 7816-1/4 standard), are already deployed by banks and used 
   every day for payment transactions. These devices are equipped with 
   tamper resistant micro-controller and therefore have computing 
   resources. Each card is identified by a number (the PAN or Primary 
   Account Number) and stores a symmetric cryptographic key required 
   for cryptograms generation. The card contains at least one 
   certificate (RSA based) and its content is signed by its management 
   entity, usually refereed as the ISSUER. Optionally EMV cards hold 
   RSA private keys, used for authentication purposes according to a 
   mechanism called DDA (Dynamic Data authentication)  
    
   The goal of this protocol is to provide a strong and mutual 
   authentication method using EMV chip capabilities, and typically 
   used for on-line banking services. In order to avoid password 
   techniques which are vulnerable to social engineering based attacks 
   like Phishing or Man In The Middle, we suggest deploying TLS-PSK 
   [TLS-PSK] facilities; the needed parameters i.e. psk-identity and 
   psk, are stored and computed by standard EMV chips. In addition, 
   this authentication method does not require any decision-making from 
   an unaware end user. 
    
   The operational architecture deals with three entities, the issuer, 
   a registered WEB site, and the user. 
    
    
      +-----------+ TLS-PSK +-------------+               +----------+ 
      |           |<------->|             | (PAN,EMV-CTG) |  ISSUER  | 
      |   USER    | EMV-ID  |     WEB     | ------------> |   AUTH.  | 
      |           | EMV-CTG |     SITE    |     OK        |  SERVER  | 
      |           | EMV-PSK |             | <-----------  |          | 
      +----+------+         +------+------+               +-----+----+ 
           !                       !                            ! 
       +---v--+                    ! DATABASE                +--+--+ 
       | EMV  |         +--------+-----+-------+             | HSM | 
       |DEVICE|         | EMV-ID | PAN | Other |             +-----+ 
       +------+         +--------+-----+-------+ 
    
                       Figure 1. Operational Architecture 
    
1.1 The issuer. 
    
   The issuer authentication server checks cryptograms (EMV-CTG) 
   produced by EMV chip. These operations need the public information 
   of the EMV chip as PAN value and are usually performed thanks to a 
   security module controlled by he issuer. It could be, for example, 
   HSM (Hardware Secure Module) facilities controlled by the bank 
   issuer. 
    

   Urien & All                Expires April 2010              [Page 3] 
 
                            EMV Support for TLS-PSK        October 2009 
 
1.2 The WEB site. 
    
   The WEB site is able to indirectly authenticate EMV cryptograms, via 
   issuer services. It forwards (PAN, EMV-CTG) tuples, which are 
   checked by the issuer authentication center 
    
   This entity manages database that stores all useful public data 
   available in this customer EMV card. 
    
   We note EMV-ID a fix identifier used as an index (primary key) for 
   this database. EMV-ID is a digest of a set of public information 
   embedded in the EMV device; in order to avoid brute force attack its 
   entropy should be greater than 80 bits. 
    
   The psk-identity attribute includes EMV-ID, a cryptogram (EMV-CTG), 
   and additional values useful for its verification. 
    
   The psk attribute is deduced from the EMV device (EMV-PSK). 
    
1.3 The user 
    
   The user is equipped with an EMV chip and a smart card reader. He 
   opens TLS-PSK sessions from its browser. 
    
2 About TLS-PSK 
    
   The [TLS-PSK] describes a pre-shared key mechanism dedicated to the 
   TLS protocol. Two additional parameters are defined 
   - The PSK or pre-shared key. 
   - The PSK identity (psk-identity), an identifier associated to the 
   PSK value 
    
   The Client starts a TLS-PSK dialog by requesting specific 
   CipherSuites in its Hello message. Three set of Cipher-Suites are 
   supported 
    
   - The first set (PSK) uses only symmetric key operations for 
   authentication. 
   - The second set (DHE-PSK) uses a Diffie-Hellman exchange 
   authenticated with a pre-shared key, 
   - The third set (RSA-PSK) combines public key authentication of the 
   server with pre-shared key authentication of the client. 
    
    
   The Server chooses a CipherSuite and MAY select a particular psk-
   identity scheme by inserting the parameter psk-identity-hint in its 
   ServerKeyExchange message 
    
   struct { 
             select (KeyExchangeAlgorithm) { 
                 /* other cases for rsa, diffie_hellman, etc. */ 

   Urien & All                Expires April 2010              [Page 4] 
 
                            EMV Support for TLS-PSK        October 2009 
 
                 case psk:  /* NEW */ 
                 case diffie_hellman_psk: 
                 case rsa-psk: 
                     opaque psk-identity-hint<0..2^16-1>; 
             }; 
         } ServerKeyExchange; 
    
    
2.1 The PSK mode 
    
   The client packs in the ClientKeyExchange its PSK identity (psk-
   identity) 
    
   struct { 
             select (KeyExchangeAlgorithm) { 
                 /* other cases for rsa, diffie_hellman, etc. */ 
                 case psk:   /* NEW */ 
                     opaque psk-identity<0..2^16-1>; 
             } exchange_keys; 
         } ClientKeyExchange; 
    
   If the PSK is N octets, the premaster secret is formed by the 
   concatenation of  
   - A uint16 reflecting the N value, 
   - N zero octets, 
   - A uint16 reflecting the N value, 
   - The PSK value. 
    
    
2.2 The DHE-PSK mode 
    
   The client packs in the ClientKeyExchange its PSK identity (psk-
   identity) 
    
   struct { 
             select (KeyExchangeAlgorithm) { 
                 /* other cases for rsa, diffie_hellman, etc. */ 
                 case Diffie-hellman-psk:   /* NEW */ 
                     opaque psk-identity<0..2^16-1>; 
                     ClientDiffieHellmanPublic public; 
             } exchange_keys; 
         } ClientKeyExchange; 
    
   If the PSK is N octets, the premaster secret is formed by the 
   concatenation of: 
    
   - A uint16 reflecting the Diffie Hellman value, 
   - The Diffie Hellman computed value (g**ab), 
   - A uint16 reflecting PSK length, 
   - The PSK value. 
    

   Urien & All                Expires April 2010              [Page 5] 
 
                            EMV Support for TLS-PSK        October 2009 
 
2.3 The RSA-PSK mode 
    
   The client packs in the ClientKeyExchange its PSK identity (psk-
   identity) 
    
         struct { 
             select (KeyExchangeAlgorithm) { 
                 /* other cases for rsa, diffie_hellman, etc. */ 
                 case rsa_psk:   /* NEW */ 
                     opaque psk-identity<0..2^16-1>; 
                     EncryptedPreMasterSecret; 
             } exchange_keys; 
         } ClientKeyExchange 
    
   "The EncryptedPreMasterSecret field sent from the client to the 
   server contains a 2-byte version number and a 46-byte random value, 
   encrypted using the server's RSA public key". If the PSK is N 
   octets, the actual premaster secret is formed by the concatenation 
   of: 
    
   - A uint16 reflecting the length of the RSA premaster secret (48 
   bytes). 
   - The RSA premaster secret, 2-byte version number and a 46-byte 
   random value. 
   - A uint16 reflecting PSK length, 
   - The PSK value. 
    
3 Overview of an EMV smart card 
    
   An EMV smart card contains one or several EMV applications. 
    
   An EMV application manages a set of information that can be freely 
   read. These data are encoding according to the ASN.1 syntax. 
    
   An EMV application produces cryptograms that authenticate payment 
   transactions. 
    
3.1 Definition of some EMV object 
    
  3.1.1 PAN 
    
   The Primary Account Number (PAN) is typically an 8 bytes value, 
   which represents the card number, coded according to a BCD format 
   (i.e. 16= 2x8 decimal digits). 
    
   The TAG associated to this object is 0x5A. 
    
  3.1.2 PSN 
    
   The PAN Sequence Number (PSN) represents an additional identifier 
   for the card; its typical value is 0x00. 

   Urien & All                Expires April 2010              [Page 6] 
 
                            EMV Support for TLS-PSK        October 2009 
 
    
   The TAG associated to this object is 0x5F34. 
    
  3.1.3 Signed Static Application Data (SSAD) 
    
   This attribute is a signature for a set of information stored in the 
   card. 
    
   The TAG associated to this object is 0x93. 
    
  3.1.4 ICC Public Key Certificate (IPKC) 
    
   This optional attribute, is the certificate of the card public key 
   (if any). Generally the remainder of the public key is stored in an 
   additional object, the ICC Public Key Remainder (IPKR) 
    
   The TAG associated to the object ICC Public Key Certificate is 
   0x9F46. 
    
   The TAG associated to the object ICC Public Key Remainder is 0x9F46 
    
  3.1.5 CDOL1 
    
   The Card Risk Management Data 1 (CDOL1), is according to the EMV 
   terminology a Data Object List (DOL), i.e. a list of tuples TAG 
   value (one or two bytes) and object length (one byte) 
    
   CDOL1 is the list of objects required for the generation of a 
   transaction cryptogram. 
    
   The TAG associated to this attribute is 0x8C 
    
  3.1.6 CDOL2 
    
   The Card Risk Management Data 2 (CDOL2), is according to the EMV 
   terminology a Data Object List (DOL), i.e. a list of tuples TAG 
   value (one or two bytes) and the object length (one byte) 
    
   CDOL2 is the list of objects required for the completion of a 
   transaction. It is the concatenation of the Authorization Response 
   Code (TAG 8A, length 02) and the CDOL1 value. 
    
   The TAG associated to this attribute is 0x8D 
    
3.2 Cryptogram generation 
    
   Cryptogram generation is handled by the GENERATE AC command, 
   associated with ARQC (Authorization Request Cryptogram) or AAC 
   (Application Authentication Cryptogram) parameters. 
    


   Urien & All                Expires April 2010              [Page 7] 
 
                            EMV Support for TLS-PSK        October 2009 
 
  3.2.1 ARQC 
    
   The Authorization Request Cryptogram (ARQC) starts an EMV 
   transaction. A set of values, whose elements are listed by the CDOL1 
   object, and without TAG or length information, are pushed towards 
   the card. 
    
   The content of CDOL1 is noted xCDOL1 and the response to ARQC is 
   noted yCDOL1. 
    
   xCDOL1 comprises an Unpredictable Number (TAG 9F37, length 04), i.e. 
   a random value of 32 bits. The response yCDOL1, includes an 8 bytes 
   cryptogram and additional information. 
    
  3.2.2 AAC 
    
   The Application Authentication Cryptogram ends an EMV transaction. A 
   set of values, whose elements are listed by the CDOL2 object, and 
   without TAG or length information, are pushed towards the card. 
    
   The content of CDOL2 is noted xCDOL2 and the response to AAC is 
   noted xCDOL2. 
    
4 EMV cards for TLS-PSK 
    
4.1 Overview 
    
   The basic idea of this protocol is to used the PAN, i.e. the card 
   number as a static PSK. However the PAN entropy is small, about 36 
   bits, so brute force attacks are possible. In order to avoid these 
   issues, the PAN value is replaced by others parameters stored in the 
   card and providing sufficient entropy, e.g. greater than 80 bits. 
    
   The psk-identity is a list of information proving that the client 
   holds the card associated with the PAN. This proof is based on an 
   ARQC associated with a 32 bits random number, which is noted r32. 
    
  4.1.1 EMV-ID 
    
   The EMV-ID attribute is computed according the following relation: 
    
   EMV-ID = h(h(SSAD)), where  
   - SSAD is the Signed Static Application Data,  
   - and h is a digest function 
    
  4.1.2 EMV-CPG 
    
   The EMV cryptogram (emv-cpg) is the response (yCDOL1) to an ARQC 
   associated with the r32 random number. The ARQC request is followed 
   by an AAC operation that cancels the EMV transaction. 
    

   Urien & All                Expires April 2010              [Page 8] 
 
                            EMV Support for TLS-PSK        October 2009 
 
   Values used for ARQC and AAC (xCDOL1 and xCDOL2) are fix, apart from 
   the unpredictable number set to r32, and their structures are 
   described by the CDOL1 and CDOL2 objects. 
    
   By convention, the R32 number is a concatenation of multiple r32i 
   values (up to four), and EMV-CPG is the concatenation of associated 
   emv-cpgi, with the index i ranging between 1 and R32-length/4. 
    
  4.1.3 EMV-PSK 
    
   The EMV-PSK attribute is computed according to the following 
   relation: 
    
   EMV-PSK = h(SSAD), where  
   - SSAD is the Signed Static Application Data, 
   - and h is a digest function 
    
  4.1.4 Authentication scheme selection 
    
   When the parameter psk-identity-hint is not delivered by the server, 
   a default mode is selected. This default mode works with a static 
   PSK. Otherwise the psk-identity-hint determines a particular profile 
   for xCDOL1 values and PSK calculation. 
    
4.2 PSK calculations 
    
  4.2.1 psk 
    
   PSK = EMV-PSK. 
    
  4.2.2 psk-identity 
    
   RH = h(ClientRandom | ServerRandom), where h is a digest function. 
    
   R32 is the 32 less significant bits of RH. 
    
   The psk-identity is the concatenation of the following values: 
   uint16(length) | R32 
   uint16(length) | EMV-ID 
   unit16(length) | PSN 
   uint16(length) | CDOL1 
   uint16(length) | EMV-CPG 
    
4.3 DHE-PSK calculations 
    
  4.3.1 psk 
    
   PSK = EMV-PSK. 
    
  4.3.2 psk-identity 
    

   Urien & All                Expires April 2010              [Page 9] 
 
                            EMV Support for TLS-PSK        October 2009 
 
   RH = h(ClientRandom | ServerRandom), where h is a digest function. 
    
   R32 is the 32 less significant bits of RH. 
    
   The psk-identity is the concatenation of the following values: 
   uint16(length) | R32 
   uint16(length) | EMV-ID 
   unit16(length) | PSN 
   uint16(length) | CDOL1 
   uint16(length) | EMV-CPG 
    
4.4 RSA-PSK calculations 
    
  4.4.1 psk 
    
   PSK = EMV-PSK 
    
  4.4.2 psk-identity 
    
   RH = h(ClientRandom | ServerRandom | ServerPublicKey), where h is a 
   digest function. 
    
   R32 is the 32 less significant bits of RH. 
    
   The psk-identity is the concatenation of the following values: 
   uint16(length) | R32 
   uint16(length) | EMV-ID 
   unit16(length) | PSN 
   uint16(length) | CDOL1 
   uint16(length) | EMV-CPG 
    
5 IANA Considerations 
    
6 Security Considerations 
    
6.1 Replay attack 
    
   The attacker holds a previous value of the psk-identity, including a 
   datagram and R32 random value. He then starts a TLS-PSK session with 
   the server and generates the ClientRandom value. 
    
   Because the server produces the ServerRandom value, this attack will 
   success with a probability of 1/2**32, since R32 is deduced from 
   h(ClientRandom | ServerRandom). This probability may be reduced by 
   using multiple EMV cryptograms. 
    
   However, even with this low probability, the attacker will also need 
   to collect the EMV-PSK value. 
    
6.2 Man in Middle attack (MIM) 
    

   Urien & All                Expires April 2010              [Page 10] 
 
                            EMV Support for TLS-PSK        October 2009 
 
   In a MIM scenario, the user opens a session with a fake server that 
   afterwards opens another session with the legitimate server. In that 
   case both sessions works with the same tuple of ClientRandom and 
   ClientServer numbers. 
    
   As a consequence information transported by psk-identity for PSK and 
   DHE-PSK is valid, i.e. the EMV datagram is generated with the right 
   R32=h(ClientRandom | ServerRandom) parameter. 
    
   In the case of RSA-PSK the fake server will need to choose a public 
   key (FakeServerPublicKey) so that, 
    
   R32 = h(FakeClientRandom | ServerRandom | FakeServerPublicKey) 
    
   So he will have to manage a set of 2**32 public key, and to compute 
   about 2**32 digest values. This complexity may be increased by using 
   multiple EMV cryptograms. 
    
   This attack works only if the hacker knows the correct EMV-PSK 
   information. 
    
6.3 Phishing attack 
    
   Phishing attack will collect a valid psk-identity, but as 
   demonstrated in section 6.1 reply attacks do not work. 
    
7 References 
    
7.1 Normative References 
    
   [TLS 1.0] Dierks, T., C. Allen, "The TLS Protocol Version 1.0", RFC 
   2246, January 1999 
    
   [TLS 1.1] Dierks, T., Rescorla, E., "The Transport Layer Security 
   (TLS) Protocol Version 1.1", RFC 4346, April 2006 
    
   [TLS 1.2] Dierks, T., Rescorla, E., "The Transport Layer Security 
   (TLS) Protocol Version 1.1", draft-ietf-tls-rfc4346-bis-10.txt, 
   March 2008 
    
   [TLS-EXT] Blake-Wilson, S., Nystrom, M., Hopwood, D, Mikkelsen, J, 
   Wright, T., "Transport Layer Security (TLS) Extensions", RFC 4346, 
   April 2006 
    
   [TLS-PSK] P. Eronen, H. Tschofenig, "Pre-Shared Key Ciphersuites for 
   Transport Layer Security (TLS"), RFC 4279, December 2005. 
    
   [EMV] Book 1 - Application Independent ICC to Terminal Interface 
   Requirement and Application Selection, Book 2 - Security and Key 
   Management, Book 3 - Application Specification, Book 4 - Cardholder, 
   Attendant, and Acquirer Interface Require. 

   Urien & All                Expires April 2010              [Page 11] 
 
                            EMV Support for TLS-PSK        October 2009 
 
    
    
7.2 Informative References 
    
    
Authors' Addresses 
    
   Pascal Urien 
   Telecom ParisTech 
   37/39 rue Dareau, 75014 Paris, France 
    
   Email: Pascal.Urien@enst.fr 
    
Full Copyright Statement 
    
   Copyright (c) 2009 IETF Trust and the persons identified as the 
   document authors. All rights reserved. 
    
   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents in effect on the date of 
   publication of this document (http://trustee.ietf.org/license-info). 
   Please review these documents carefully, as they describe your 
   rights and restrictions with respect to this document. 
    
    
   All IETF Documents and the information contained therein are 
   provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION 
   HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, 
   THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL 
   WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY 
   WARRANTY THAT THE USE OF THE INFORMATION THEREIN WILL NOT INFRINGE 
   ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS 
   FOR A PARTICULAR PURPOSE. 
    
    
   Expires April 2010 
















   Urien & All                Expires April 2010              [Page 12] 

PAFTECH AB 2003-20262026-04-24 01:32:21