An embodiment of the present invention relates to the field of electronic systems and, more particularly, to an approach for securing communications between a terminal and one of a smartcard and a smartcard reader.
The insecurity of applications in conventional open personal computing (PC) platforms due to viruses and other attacks is well-known. The Trusted Computing Group (TCG) is developing specifications for enhancing the security of such open PC platforms. The present specifications define several mechanisms for improving the assurance level of the PC platform. Assuming these platforms will support legacy applications, however, it is possible that some peripheral devices and/or other devices that work in connection with the platforms may still be vulnerable to viruses and/or other attacks unless their interfaces are designed to provide adequate security.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements, and in which:
A method and apparatus for securing communications between a smartcard or smartcard reader and a terminal is described. In the following description, particular components, software and hardware modules, systems, protocols, form factors, etc. are described for purposes of illustration. It will be appreciated, however, that other embodiments are applicable to other types of components, software and/or hardware modules, systems protocols, and/or form factors, for example.
References to “one embodiment,” “an embodiment,” “example embodiment,” “various embodiments,” etc., indicate that the embodiment(s) of the invention so described may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes the particular feature, structure, or characteristic. Further, repeated use of the phrase “in one embodiment” does not necessarily refer to the same embodiment, although it may.
Aspects of embodiments of the invention may be described for purposes of illustration as being implemented in one of hardware, firmware or software. It will be appreciated that such aspects may instead be implemented in a different medium.
Presently, there is interest in using a GSM (Global System for Mobile Communications) SIM (Subscriber Identity Module) or USIM (Universal SIM) card to authenticate a wireless local area network (WLAN) subscriber using a laptop PC platform or other mobile computing device. To enable such an implementation, the security issues associated with using hardware credentials such as SIM/USIM cards, smartcards and similar security tokens are important considerations. In particular, some of the existing credential access protocols associated with these devices were designed for closed and/or less hostile environments, and may require enhancements to prevent some of the security threats associated with an open platform such as a PC, for example.
Also, the connection (local link) between platforms needs a sufficient level of protection. Embodiments of the present invention provide an approach for securing the local link between platforms that contain smartcard capabilities (software or hardware). The protection approach described in relation to various embodiments is relatively strong and provides mutual authentication between the two platforms.
Referring to
Smartcard and/or Universal Integrated Circuit Card (UICC), as the terms are used herein, may include, for example, one or more of a Subscriber Identity Module (SIM) card, a Universal SIM (USIM) card, a Removable User Identity Module (RUIM), an IP Multimedia Services Identity Module (ISIM), a Wireless Identity module (WIM), a Java Card, and/or other credential card, functionality or module, and may alternately be referred to herein as a credential, a credential module or card, a token, a machine, or an identity module or card.
The term smartcard reader may be used herein to refer to any device, platform or system that includes a smartcard and is capable of accessing data from the smartcard. Examples may include a cellular/mobile telephone, a personal digital assistant, a notebook-enabled platform, or any other smartcard-holding device.
Terminal, as the term is used herein, refers to an electronic system or platform such as, for example, a laptop, notebook or other type of mobile computing system such as a personal digital assistant, a desktop or enterprise computing system, etc., and may alternately be referred to as a platform or a machine. Other types of electronic systems are within the scope of various embodiments.
Trusted, as the term is used herein in relation to a system, software, firmware and/or hardware, indicates that the source of the associated hardware, firmware and/or software is known and can be verified, that its state can be measured and verified at any point in time, and that it behaves in the intended way. Secure or protected, as the terms are used herein in reference to storage, for example, indicate that the associated storage or element has sufficient protections associated with it to prevent access by untrusted or unauthorized sources.
For some embodiments, as mentioned above, the smartcard 210 may be included within a module such as, for example, a General Packet Radio Service (GPRS) card module, a cellular telephone, a Personal Digital Assistant (PDA) etc. and/or may include or be coupled to the terminal via another type of smartcard reader. A smartcard 210 in accordance with various embodiments may be substantially compliant with ISO/IEC 7816 Part 4, Inter-industry Commands for Interchange and ETSI TS 102 221 version 4.3.0 specifications (UICC) and/or similar and/or future versions of such specifications and, for some embodiments, may include additional Public Key Infrastructure (PKI) support as described in more detail below. Smartcards compliant with ISO/IEC 7816 Part 4 and/or ETSI TS 102 221 version 4.3.0 support data communications using packets referred to as Application Protocol Data Units (APDUs). Further, the smartcard (ICC or UICC) of some embodiments supports T=0 protocol and mapping from C-APDUs (Command—APDU) to C-TPDUs (Command—Transfer Protocol Data Unit).
For some embodiments, the terminal 205 may support ISO 7816 Part 4 (ISO 7816-4) APDUs and UICC-Terminal Interface APDUs specified in ETSI TS 102 221 version 4.3.0 or equivalent. The APDU interface may not necessarily be a physical interface. If a smartcard is embedded inside a GPRS (General Packet Radio Service) module, or is accessible remotely over a Bluetooth™ local interface, for example, the local link transport layer protection protocol of some embodiments, described in more detail below, may still function as long as the underlying transport provides reliable message delivery.
The terminal 205 and the smartcard and/or smartcard reader 210 communicate over link(s) (or buses) 215 and 220, which may be provided by the same physical or virtual link (e.g. a single bus or wireless link). For such embodiments, the link 215 represents data communications between the terminal 205 and the smartcard 210 outside of the secure communications protocol of some embodiments, while the link 220 represents protected data communications between the terminal 205 and the smartcard 210.
Links 215 and 220 (or the single link/bus represented by the links 215 and 220) may be implemented in any one of a variety of ways. For example, the link(s) may be provided by a wireless link such as a Bluetooth™ local interface, a wireless local area network (WLAN) connection (e.g. 802.11a/b/g) or another type of wireless link operating at the same frequency band—2.4 GHz ISM (Industrial, Scientific and Medical) band—such as a microwave link, a HomeRF LAN, a link in accordance with IEEE 802.15.1 (Wireless Personal Area Network (WPAN)), another emerging IEEE standard link, a ZigBee link or a cordless telephone link, for example. Wired local connections such as, for example, a Universal Serial Bus (USB) connection may also be used for some embodiments.
For the exemplary environment 200, the terminal 205 stores or has access to a host application 225 that may communicate with a credential application 227 on the smartcard 210 when executed. For embodiments for which the smartcard 210 is or includes a Subscriber Identity Module (SIM), the host application 225 may be an EAP-SIM (Extensible Authentication Protocol-SIM) application, for example and the credential application may be a wireless local area network-SIM (WLAN-SIM) application. Other types of host and/or smartcard-based applications and associated communications between the applications are within the scope of various embodiments.
It will be appreciated that one or both of the smartcard 210 and the terminal 205 may include, be coupled to or have access to elements not shown in
In order to provide for secure communications between the terminal 205 and the smartcard or smartcard reader 210, for one embodiment, the environment 200 implements a local link transport layer protection protocol as described in more detail below. The local link transport layer protection protocol of some embodiments may be considered to be an adaptation of the Transport Layer Security (TLS) protocol set forth in IETF RFC 2246, which is an element of the TCP/IP (Transmission Control Protocol/Internet Protocol) protocol suite. In particular, for such embodiments, the platform supporting the local link transport layer protection protocol (e.g., notebook PC) may implement the key derivation and cryptographic procedures for TLS as well as the usage models of individual cipher suites that are supported by the local link transport layer protection protocol to preserve significant TLS security properties. Further, like TLS, the local link transport layer protection protocol implements data protection in the transport layer as defined in the Open Systems Interconnect (OSI) seven layer model or a corresponding layer with a similar function in a different type of model. For such embodiments, where the trusted smartcard interface is based on APDUs, the local link transport layer protection protocol may alternately be referred to herein as APDU-TLS or the APDU-TLS protocol.
To implement the local link transport layer protection protocol, the terminal 205 stores in a data store 228 or has access via a machine-accessible medium (which may alternately be represented by the storage 228) to a local link transport layer protection protocol server application or applet 230 (APDU-TLS server application 230 for the exemplary embodiment of
The server application 230 works in conjunction with a local link transport layer protection protocol client application 235 (APDU-TLS client application 235 for the exemplary embodiment of
To provide for protected communications between the terminal 205 and the smartcard 210, a local link transport layer protection protocol session is first established between the terminal 205 and the smartcard 210 by the server and client applications 230 and 235. This includes performing a mutual authentication process. Thereafter, credential data may be accessed from the smartcard credential application 227 by the host application 225 over the local link transport layer protocol-protected channel 220 as described in more detail below.
To support the mutual authentication process, for one embodiment, the smartcard 210 stores at least one unique client certificate 240 (e.g., issued by a Certificate Authority (CA)) that is trusted by the Terminal 205 and the Terminal 205 stores at least one root certificate 245 (e.g., of the same CA) for establishing trust. Similarly, the Terminal 205 stores at least one unique server certificate 247 issued by a CA trusted by the smartcard 210 and the smartcard stores at least one root certificate 249 from the same CA. In each case, if more than one certificate is available, the first certificate may be the default.
The local link transport layer protection or APDU-TLS protocol of various embodiments supports either credential certificates or authorization certificates so long as they provide for authentication of the smartcard-Terminal communication link. For some embodiments, the Terminal 205 and the smartcard 210 may use different certificate formats for performance reasons. For example, the server certificate may be based on the Card Verifiable format described in section 14.7 of the Application Interface for Smart Cards Used as Secure Signature Creation Devices—Part 1 Basic Requirements Version 1.07; 10 Jul. 2003. Such certificates use RSA signature algorithms and the data elements are encoded using Tag-Length-Values.
The smartcard certificate 240 may be based on a profile of the X.509v3 certificate format specified in RFC 2459 and the base 64 encoded PEM files according to coding rules specified in RFC 1421. The smartcard certificate 240 of various embodiments may support a signature algorithm (e.g., RSA) and possess an RSA public key at a minimum (possibly a 1024 bit key). The size of the associated datastructure is therefore dependent on the contents of the certificate data. The private key(s) associated with this certificate(s) may be stored in a protected area of the smartcard 210 that is not accessible by any Terminal 205 applications or applications on the smartcard 210 other than the credential application 227, such as a trusted storage partition of the data store 237, for example.
A root CA datastructure on the ICC 210 may be used to store the root certificate(s) 249, which are CA public keys for certificate signature validation. Depending on the particular format, there may be information regarding the CA in addition to the public key stored in this file. But where the RSA signature algorithm is used and a minimum of 1024 bit RSA public key is needed, the length of this file may be greater than or equal to 128 bytes for some embodiments.
Specific certificate format details and signature verification details may vary for different embodiments so long as the local link transport layer protection protocol messages for sending and receiving a certificate are used, appropriate signature verification is performed and status is indicated when errors are encountered.
Assuming a simplified PKI (Public Key Infrastructure) model, support for certificate chains up to 3 levels may be required for certain applications. The details of the PKI model, may be specific to the particular deployment. No revocation ability is assumed, however, such that the scope of the certificates may be restricted to securing the communication channel between the smartcard and/or smartcard reader 210 and the Terminal 205.
Referring back to
Referring back to
Referring to
In particular, at the APDU-TLS inactive state 505, there is no APDU-TLS session either initiated or in progress. This is a default state when no application using the APDU-TLS module library 235 (or 335 in
The initiation involves the terminal server selecting the APDU-TLS application and starting the session handshake. For one exemplary embodiment in which the smartcard may include a SIM to be used to enable WLAN communications, as shown in
Referring back to
As shown in
For random number generation, the smartcard 210 should have a good source of randomness for generating the client random number. For one embodiment the Trusted Platform Module (TPM) 250 (
Thus, after mutual authentication of the terminal 205 and the token or smartcard 210, keying material is derived so that the rest of the traffic between the token 210 and the end point on the terminal or platform 205 is encrypted. To further secure the key generation and storage of keys, for some embodiments, referring to
Again, referring back to
While in the APDU-TLS PROTECTED STATE or the APDU-TLS HANDSHAKE state, an APDU-TLS STOP EVENT 530 or 535 may occur indicating that the terminal 205 desires to terminate the APDU-TLS session. If this event occurs in the APDU-TLS INACTIVE state, it may be ignored for some embodiments. For one embodiment, a specific APDU may be sent to terminate the APDU-TLS session (e.g. ALERT(close_notify) for one specific embodiment).
For some embodiments, an APDU-TLS RESUME or similar event 540 may also be used to re-negotiate a session with fresh session keys and may be invoked on a periodic basis set by Terminal 205 policy.
While the local link transport layer protection protocol described herein may be considered to be an adaptation of the TLS protocol for some embodiments, it may not be compatible with the TLS protocol and there may be some notable differences. For example, the local link transport layer protection protocol may support only a subset of the TLS cipher suites described in IETF RFC 3268 for computation of cryptographic values and may use a modified protocol message set. Further in contrast to the TLS protocol, for the local link transport layer protection protocol, the client may select the cipher suite instead of the server. Additionally, mutual authentication may be mandated for some embodiments.
Thus, various embodiments of an approach for securing communications between a credential and a platform are described. In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be appreciated that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. For example, while specific exemplary commands have been described herein, it will be appreciated that different commands that cause similar operations to be performed may be used for other embodiments. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
This application is related to co-pending U.S. patent application Ser. No. 10/715,970 entitled, “Method and System To Provide A Trusted Channel Within A Computer System For A SIM Device,” Attorney Docket Number 42P18073, assigned to the assignee of the present invention and filed Nov. 17, 2003 and to co-pending U.S. patent application Ser. No. 10/881,658 entitled, “A System Including a Wireless Wide Area Network (WWAN) Module Associated with an External Identity Module Reader and Approach for Certifying the WWAN Module”, Attorney Docket Number 42P18589, assigned to the assignee of the present invention and filed Jun. 29, 2004.