WO2006053278A2 - System and method for securing the intialization of a smartcard controller - Google Patents

System and method for securing the intialization of a smartcard controller Download PDF

Info

Publication number
WO2006053278A2
WO2006053278A2 PCT/US2005/041119 US2005041119W WO2006053278A2 WO 2006053278 A2 WO2006053278 A2 WO 2006053278A2 US 2005041119 W US2005041119 W US 2005041119W WO 2006053278 A2 WO2006053278 A2 WO 2006053278A2
Authority
WO
WIPO (PCT)
Prior art keywords
smartcard
firmware
driver
controller
digital signature
Prior art date
Application number
PCT/US2005/041119
Other languages
French (fr)
Other versions
WO2006053278A3 (en
Inventor
Daniel A. Castillo
Keith R. Mowery
Cheng L. Xu
Original Assignee
Texas Instruments Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Incorporated filed Critical Texas Instruments Incorporated
Priority to EP05851597A priority Critical patent/EP1834276A4/en
Publication of WO2006053278A2 publication Critical patent/WO2006053278A2/en
Publication of WO2006053278A3 publication Critical patent/WO2006053278A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Definitions

  • the present invention is directed to a system and method for securing the initialization of an inherently non-secure Smartcard controller.
  • Smartcards are rapidly becoming a favored way to transport and communicate personal information securely and reliably.
  • Smartcards assume the general size and shape of a conventional credit card but include data processing and storage circuitry that allows them to receive, process, store and transmit information.
  • Smartcards are destined for use in financial (e.g. , banking) transactions, official identification and healthcare delivery, among other things.
  • International Standards Organization (ISO) Standards 7810, 7816/1 and 7816/2 specify the physical structure and hardware and software architecture of Smartcards and are incorporated herein by reference. Smartcards receive and transmit information by being coupled to a "cardbus.”
  • ISO Standards Organization
  • Standards 7816/1 and 7816/2 also specify the structure and communication protocol(s) of cardbuses. Since security is advocated as one of the hallmarks of Smartcards, the above- referenced standards provide for a reasonably high level of security of data crossing a cardbus.
  • Deutsch Telecom has created a certification process, called "Bl,” that establishes a security level for Smartcard terminals as a whole. Compliance with Bl affords a distinct competitive advantage.
  • PCs can advantageously host Smartcard interfaces so they can act as multifunction terminals with respect to Smartcards.
  • a PC could, for example, enable point-of-sale (POS) financial transactions to be made or medical information to be taken from, or given to, a patient.
  • POS point-of-sale
  • the host PC must be provided with a suitable hardware adapter.
  • a suitable adapter contains a Smartcard controller and typically assumes the physical form of an expansion card coupled to the host PC's Peripheral Component Interconnect (PCI) bus.
  • PCI Peripheral Component Interconnect
  • PCI bus presents a nearly universal, reliable, wide, fast, open-standards bus suitable for communication with a Smartcard controller
  • its security does not rise to the level required for Smartcard communication, and particularly for compliance with B 1.
  • the security issue arises when the Smartcard controller is initialized. To understand the problem, one should understand how a Smartcard controller would be initialized in a host PC.
  • a Smartcard controller contains flash memory. During initialization, firmware for driving the controller is caused to be loaded from the PC's hard drive into Smartcard controller's flash memory. Then, in a separate action, a Smartcard driver is caused to be loaded from the PC's hard drive into the PC's main memory. An application running in the PC can then communicate with the Smartcard driver; the Smartcard driver communicates with the firmware; and the firmware communicates with a Smartcard via the Smartcard controller. The communication path is reversed for data transmitted from the Smartcard back to the application.
  • the present invention provides, in one aspect, a system for securing the initialization of a Smartcard controller.
  • the system includes: (1) a firmware loader associated with a Smartcard controller and configured to receive and authenticate firmware and provide an associated Smartcard driver digital signature and (2) a Smartcard driver associated with the Smartcard controller and configured to be authenticated using the Smartcard driver digital signature and authenticate the firmware.
  • the present invention provides a method of securing the initialization of a Smartcard controller.
  • the method includes: (1) receiving firmware into a Smartcard controller, the firmware including an associated Smartcard driver digital signature, (2) authenticating a Smartcard driver using the Smartcard driver digital signature and (3) authenticating the firmware with the Smartcard driver.
  • the present invention provides a Smartcard terminal.
  • the Smartcard terminal includes: (1) a host computer having a disk drive, a PCI bus and a Smartcard controller, (2) a firmware loader associated with the Smartcard controller and configured to receive firmware from the disk drive via the PCI bus, authenticate the firmware and provide an associated Smartcard driver digital signature and (3) a Smartcard driver associated with the Smartcard controller and configured to be authenticated using the Smartcard driver digital signature and authenticate the firmware.
  • FIGURE 1 illustrates a block diagram of one embodiment of a Smartcard terminal including a system for securing the initialization of a Smartcard controller constructed according to the principles of the present invention
  • FIGURE 2 illustrates a diagram showing how firmware and a Smartcard driver may be securely loaded and initialized in a host computer;
  • FIGURE 3 illustrates a flow diagram of one embodiment of a method of securing the initialization of a Smartcard controller carried out according to the principles of the present invention.
  • FIGURE 1 illustrated is a block diagram of one embodiment of a Smartcard terminal.
  • the Smartcard terminal includes a system for securing the initialization of a Smartcard controller constructed according to the principles of the present invention.
  • FIGURE 1 illustrates two cooperating pieces of hardware: the Smartcard terminal, which takes the form of a host computer 100, and a Smartcard 110.
  • the host computer 100 is a PC and has a disk drive 130, a PC Card controller 140, a Smartcard controller 150, a processor 160 and main memory 170. While the PC may have more than one bus for interconnecting especially the disk drive 130, processor 160 and main memory 170, FIGURE 1 illustrates a PCI bus 120.
  • the PCI bus 120 is shown as interconnecting the PC Card controller 140, the Smartcard controller 150, the processor 160 and the main memory 170 (ostensibly to support direct memory access, or DMA).
  • the disk drive 130 is not shown as being coupled directly to the PCI bus 120, because the disk drives of most PCs are not so coupled. However, this need not be the case. Further, those skilled in the art should understand that the present invention is not limited to a PCI bus, and may be practiced with respect to any conventional or later-developed bus.
  • the Smartcard 110 contains Smartcard circuitry 180. Those skilled in the pertinent art are familiar with the types of Smartcard circuitry 180 typically provided on a Smartcard.
  • the Smartcard circuitry 180 communicates with the Smartcard controller 150 via a conventional cardbus 190.
  • the PCI bus 120 is inherently non-secure. As a result, the PC Card controller 140 and the Smartcard controller 150 are also non-secure. Since Smartcards are designed to convey confidential or sensitive information, it is important that the Smartcard controller 150 be rendered secure in all aspects of its operation.
  • the cardbus 190 is considered secure at all times.
  • the Smartcard controller 150 is capable of employing data encryption, allowing it to scramble any data it may communicate over the PCI bus 120.
  • the Smartcard controller 150 does not have encryption capability during its initialization (when its firmware and associated driver are being installed).
  • the present invention is directed to increasing the security of the initialization process of the Smartcard controller 150.
  • the disk drive 130, processor 160 and main memory 170 may be conventional or of any later-developed type.
  • the processor 160 is capable of executing Microsoft Windows®, which is an almost universally used operating system.
  • the present invention is not limited to a particular size, speed or architecture for the disk drive
  • FIGURE 2 illustrated is a diagram showing how firmware and a Smartcard driver may be securely loaded and initialized in a host computer.
  • FIGURE 2 is highly schematic and is designed to represent the flow of software objects, components or modules during initialization.
  • FIGURE 2 shows four "domains:" the disk drive 130, the main memory 170, the Smartcard controller 150 and the Smartcard 110, as set forth in FIGURE 1.
  • the PCI bus 120 interposes the domains of the disk drive 130 and the main memory 170 and the domains of the Smartcard controller 150 and the Smartcard 1 10.
  • the cardbus 190 interposes the domains of the Smartcard controller 150 and the Smartcard 1 10.
  • an operating system 250 is assumed to have been loaded into the main memory 170 and to be executing.
  • the disk drive 130 is assumed to contain a firmware loader driver file 200, a firmware image file 220, a Smartcard driver file 260 and at least one application file 280.
  • the firmware image file 220 and the Smartcard driver file 260 are tightly associated with one another in that each contains information necessary and sufficient to authenticate the other.
  • Microsoft provides a service, called "Windows Hardware Quality Labs" (WHQL), that can digitally sign counterpart firmware image files and Smartcard driver files so they are tightly associated with one another.
  • WHQL Windows Hardware Quality Labs
  • the firmware loader driver file 200 is also associated with the Smartcard driver file 260 in that the Smartcard driver file 260 contains information necessary and sufficient to authenticate the firmware loader driver file 200.
  • the firmware loader driver file 200 is loaded into the main memory 170, resulting in a firmware loader driver 210.
  • the operating system 250 can afford an additional degree of security to the loading of the firmware 230 if it limits the rights of users with respect to loading drivers.
  • Microsoft Windows® XP for example, allows only users having administrator rights to load drivers. Thus, unauthorized driver modifications are wholly unavailable to non-administrators.
  • the firmware loader driver 210 is executed, causing the firmware image file 220 to begin to be downloaded via the non-secure PCI bus 120 into flash memory (not shown) contained within the Smartcard controller 150, resulting in firmware 230.
  • the operating system 250 is assumed to contain conventional mechanisms for loading and executing hardware drivers; the illustrated embodiment of the present invention can employ these mechanisms without modification.
  • the firmware image file 220 is digitally signed. Accordingly, the firmware loader driver 210 employs the digital signature of the firmware image file 220 to authenticate the firmware 230.
  • the digital signature may be a WHQL digital signature. Those skilled in the pertinent art are familiar with digital signatures and their use.
  • the firmware 230 makes a Smartcard driver digital signature 240 available for external access (perhaps by loading it into an externally readable memory location).
  • the operating system 250 which again is assumed to be executing in the main memory 170, causes the Smartcard driver file 260 to begin to be loaded into the main memory 170, resulting in a Smartcard driver 270.
  • the Smartcard driver file 260 is digitally signed.
  • the operating system 250 employs both the Smartcard driver digital signature 240 and the digital signature of the Smartcard driver file 260 (which is probably identical to the Smartcard driver digital signature 240) to authenticate the Smartcard driver 270. Assuming the Smartcard driver 270 successfully authenticates by way of both the Smartcard driver digital signature 240 and the digital signature of the Smartcard driver file 260, the Smartcard driver 270 is considered loaded.
  • the firmware 230 has helped to authenticate the Smartcard driver 270. It is now time for the Smartcard driver 270 to authenticate the firmware 230. Accordingly, the Smartcard driver 270 contains a digital signature corresponding to the firmware 230. The Smartcard driver 270 uses that digital signature to authenticate the firmware 230. In the illustrated embodiment, the firmware 230 is capable of transmitting a copy of itself to the Smartcard driver 270 for purposes of authentication. Also in the illustrated embodiment, the Smartcard driver 270 further authenticates, by means of digital signature, the firmware loader driver 210 that originally loaded the firmware 230.
  • the firmware 230 Assuming the firmware 230 successfully authenticates by way of both the digital signature contained in the firmware image file 210 and the digital signature contained in the Smartcard driver 270 (and optionally further assuming that the firmware loader driver 210 has been authenticated), the firmware 230 is considered loaded. In the illustrated embodiment, it is only at this point, when both the firmware 230 and the Smartcard driver 270 are considered loaded by virtue of their full authentication, that the Smartcard controller 150 is advertised as being available to the operating system 250.
  • At least one application file 280 is loaded into the main memory 170 and becomes an executing application 290. It is assumed that the application 290 is to communicate with one or more Smartcards.
  • the Smartcard terminal presents a Card Terminal - Application Programming Interface (CT-API)-compatible interface to the application 290 that allows the application 290 to communicate with synchronous Smartcards.
  • CT-API Card Terminal - Application Programming Interface
  • CT-API is, in the illustrated embodiment, closely tied with the firmware 230; calls by the CT-API to the firmware are to specific addresses and are tested with respect to response time, requiring timely responses by the firmware 230. Any unauthorized modification to the firmware 230 would have to be made with detailed knowledge of the CT-API and its response time requirements and is therefore unlikely.
  • such communication is by way of the operating system 250, the Smartcard driver 270, the firmware 230 and ultimately to the Smartcard circuitry 180. Having initialized, the Smartcard driver 270 and the firmware 230 are capable of encrypting their communication across the PCI bus 120, and security is maintained.
  • FIGURE 3 illustrated is a flow diagram of one embodiment of a method of securing the initialization of a Smartcard controller carried out according to the principles of the present invention.
  • the method begins in a start step 305, in which it is desired to initialize a Smartcard controller in a secure manner.
  • the method proceeds to a step 310, in which a firmware image file is downloaded into the Smartcard controller.
  • a decisional step 315 it is determined whether the download was successful.
  • the method proceeds to a step 320, in which the firmware so downloaded is authenticated.
  • the firmware is authenticated by way of a digital signature received along with the firmware.
  • a Smartcard driver digital signature is also made available as described above.
  • a decisional step 325 it is determined whether authentication has occurred without error.
  • the method proceeds to a step 330, in which a Smartcard driver file is loaded into the host computer's main memory.
  • a decisional step 335 it is determined whether the load was successful.
  • the method proceeds to a step 340, in which the Smartcard driver so loaded is authenticated.
  • the Smartcard driver is authenticated by way of a digital signature received along with the Smartcard driver.
  • the Smartcard driver is further authenticated by using the Smartcard driver digital signature that was made available in the step 320.
  • a decisional step 345 it is determined whether authentication has occurred without error.
  • the method proceeds to a step 350, in which the Smartcard driver authenticates the firmware (and may also authenticate the firmware loader driver).
  • the Smartcard driver authenticates the firmware by way of a digital signature contained in the Smartcard driver.
  • a decisional step 355 it is determined whether authentication has occurred without error.
  • steps 315, 325, 335, 345, 355 If, in any of the decisional. steps 315, 325, 335, 345, 355, an error is found to have occurred in either downloading, loading or authentication, an error message (perhaps dependent upon the nature of the error) is generated in a step 365, and the method ends in the end step 370 without having advertised the availability of the Smartcard controller to the host computer's operating system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

A system and method for securing the initialization of a Smartcard controller and a Smartcard terminal incorporating the system or the method. In one embodiment, the system includes: (1) a firmware loader associated with a Smartcard controller and configured to receive and authenticate firmware (320) and provide an associated Smartcard driver digital signature, and (2) a Smartcard driver associated with the Smartcard controller and configured to be authenticated (340) using the Smartcard driver digital signature and authenticate the firmware (350).

Description

SYSTEM AND METHOD FOR SECURING THE INITIALIZATION OF A SMARTCARD CONTROLLER
The present invention is directed to a system and method for securing the initialization of an inherently non-secure Smartcard controller. BACKGROUND
Smartcards are rapidly becoming a favored way to transport and communicate personal information securely and reliably. Smartcards assume the general size and shape of a conventional credit card but include data processing and storage circuitry that allows them to receive, process, store and transmit information. By virtue of their size, information- carrying capacity and security, Smartcards are destined for use in financial (e.g. , banking) transactions, official identification and healthcare delivery, among other things. International Standards Organization (ISO) Standards 7810, 7816/1 and 7816/2 specify the physical structure and hardware and software architecture of Smartcards and are incorporated herein by reference. Smartcards receive and transmit information by being coupled to a "cardbus." ISO
Standards 7816/1 and 7816/2 also specify the structure and communication protocol(s) of cardbuses. Since security is touted as one of the hallmarks of Smartcards, the above- referenced standards provide for a reasonably high level of security of data crossing a cardbus. In addition, Deutsch Telecom has created a certification process, called "Bl," that establishes a security level for Smartcard terminals as a whole. Compliance with Bl affords a distinct competitive advantage.
Personal computers (PCs) can advantageously host Smartcard interfaces so they can act as multifunction terminals with respect to Smartcards. As a Smartcard terminal, a PC could, for example, enable point-of-sale (POS) financial transactions to be made or medical information to be taken from, or given to, a patient. To enable a PC to act as a Smartcard terminal, the host PC must be provided with a suitable hardware adapter. A suitable adapter contains a Smartcard controller and typically assumes the physical form of an expansion card coupled to the host PC's Peripheral Component Interconnect (PCI) bus.
While the PCI bus presents a nearly universal, reliable, wide, fast, open-standards bus suitable for communication with a Smartcard controller, its security does not rise to the level required for Smartcard communication, and particularly for compliance with B 1. The security issue arises when the Smartcard controller is initialized. To understand the problem, one should understand how a Smartcard controller would be initialized in a host PC.
A Smartcard controller contains flash memory. During initialization, firmware for driving the controller is caused to be loaded from the PC's hard drive into Smartcard controller's flash memory. Then, in a separate action, a Smartcard driver is caused to be loaded from the PC's hard drive into the PC's main memory. An application running in the PC can then communicate with the Smartcard driver; the Smartcard driver communicates with the firmware; and the firmware communicates with a Smartcard via the Smartcard controller. The communication path is reversed for data transmitted from the Smartcard back to the application.
The security hole exists because the firmware must be loaded across the PCI bus, which as stated above is non-secure. The Smartcard controller is rendered non-secure as a result. A hacker could change the firmware before it is loaded into the flash memory and thereby create a "back door" into a financial, medical or insurance information network. To increase security, the firmware could, of course, be installed into the flash memory when the Smartcard controller is manufactured and never changed thereafter. However, that significantly impairs the flexibility and utility of the controller and is therefore unacceptable. Accordingly, what is needed in the art is a way to improve the security of Smartcard controller initialization in a PC such that the security of the firmware loaded into the Smartcard controller is reasonably guaranteed. More specifically, what is needed in the art is a way to provide a level of security over a PCI bus that meets or exceeds Bl. SUMMARY
To address the above-discussed deficiencies of the prior art, the present invention provides, in one aspect, a system for securing the initialization of a Smartcard controller. In one embodiment, the system includes: (1) a firmware loader associated with a Smartcard controller and configured to receive and authenticate firmware and provide an associated Smartcard driver digital signature and (2) a Smartcard driver associated with the Smartcard controller and configured to be authenticated using the Smartcard driver digital signature and authenticate the firmware. In another aspect, the present invention provides a method of securing the initialization of a Smartcard controller. In one embodiment, the method includes: (1) receiving firmware into a Smartcard controller, the firmware including an associated Smartcard driver digital signature, (2) authenticating a Smartcard driver using the Smartcard driver digital signature and (3) authenticating the firmware with the Smartcard driver.
In yet another aspect, the present invention provides a Smartcard terminal. In one aspect, the Smartcard terminal includes: (1) a host computer having a disk drive, a PCI bus and a Smartcard controller, (2) a firmware loader associated with the Smartcard controller and configured to receive firmware from the disk drive via the PCI bus, authenticate the firmware and provide an associated Smartcard driver digital signature and (3) a Smartcard driver associated with the Smartcard controller and configured to be authenticated using the Smartcard driver digital signature and authenticate the firmware. BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 illustrates a block diagram of one embodiment of a Smartcard terminal including a system for securing the initialization of a Smartcard controller constructed according to the principles of the present invention; FIGURE 2 illustrates a diagram showing how firmware and a Smartcard driver may be securely loaded and initialized in a host computer; and
FIGURE 3 illustrates a flow diagram of one embodiment of a method of securing the initialization of a Smartcard controller carried out according to the principles of the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
Referring initially to FIGURE 1, illustrated is a block diagram of one embodiment of a Smartcard terminal. The Smartcard terminal includes a system for securing the initialization of a Smartcard controller constructed according to the principles of the present invention. FIGURE 1 illustrates two cooperating pieces of hardware: the Smartcard terminal, which takes the form of a host computer 100, and a Smartcard 110. In the illustrated embodiment, the host computer 100 is a PC and has a disk drive 130, a PC Card controller 140, a Smartcard controller 150, a processor 160 and main memory 170. While the PC may have more than one bus for interconnecting especially the disk drive 130, processor 160 and main memory 170, FIGURE 1 illustrates a PCI bus 120. The PCI bus 120 is shown as interconnecting the PC Card controller 140, the Smartcard controller 150, the processor 160 and the main memory 170 (ostensibly to support direct memory access, or DMA). The disk drive 130 is not shown as being coupled directly to the PCI bus 120, because the disk drives of most PCs are not so coupled. However, this need not be the case. Further, those skilled in the art should understand that the present invention is not limited to a PCI bus, and may be practiced with respect to any conventional or later-developed bus.
The Smartcard 110 contains Smartcard circuitry 180. Those skilled in the pertinent art are familiar with the types of Smartcard circuitry 180 typically provided on a Smartcard. The Smartcard circuitry 180 communicates with the Smartcard controller 150 via a conventional cardbus 190. Returning to the host computer 100, those skilled in the pertinent art are familiar with the structure, function and capabilities of the PCI bus 120; it is conventional in all respects. Those skilled in the pertinent art are also aware that the PCI bus 120 is inherently non-secure. As a result, the PC Card controller 140 and the Smartcard controller 150 are also non-secure. Since Smartcards are designed to convey confidential or sensitive information, it is important that the Smartcard controller 150 be rendered secure in all aspects of its operation. The cardbus 190 is considered secure at all times. Following initialization, the Smartcard controller 150 is capable of employing data encryption, allowing it to scramble any data it may communicate over the PCI bus 120. However, the Smartcard controller 150 does not have encryption capability during its initialization (when its firmware and associated driver are being installed). Thus, the present invention is directed to increasing the security of the initialization process of the Smartcard controller 150.
The disk drive 130, processor 160 and main memory 170 may be conventional or of any later-developed type. In the illustrated embodiment, the processor 160 is capable of executing Microsoft Windows®, which is an almost universally used operating system. The present invention is not limited to a particular size, speed or architecture for the disk drive
130, processor 160 and main memory 170 and is operable with respect to any conventional or later-developed operating system. Likewise, the PC Card controller 140 and Smartcard controller are conventional. In fact, the PC Card controller 140 and Smartcard controller may reside in a single integrated circuit (IC) and therefore be located on a single PCI expansion card. Such an IC is commercially available item PCI-7510 from Silicom Connectivity Solutions of Kfar-Sava, Israel. Having described an exemplary Smartcard terminal, a secure initialization process can now be described. Accordingly, turning to FIGURE 2, illustrated is a diagram showing how firmware and a Smartcard driver may be securely loaded and initialized in a host computer. FIGURE 2 is highly schematic and is designed to represent the flow of software objects, components or modules during initialization. Accordingly, FIGURE 2 shows four "domains:" the disk drive 130, the main memory 170, the Smartcard controller 150 and the Smartcard 110, as set forth in FIGURE 1. The PCI bus 120 interposes the domains of the disk drive 130 and the main memory 170 and the domains of the Smartcard controller 150 and the Smartcard 1 10. The cardbus 190 interposes the domains of the Smartcard controller 150 and the Smartcard 1 10.
Five software components are assumed to be in initial positions before initialization begins. First, an operating system 250 is assumed to have been loaded into the main memory 170 and to be executing. Second, the disk drive 130 is assumed to contain a firmware loader driver file 200, a firmware image file 220, a Smartcard driver file 260 and at least one application file 280.
As will be seen, the firmware image file 220 and the Smartcard driver file 260 are tightly associated with one another in that each contains information necessary and sufficient to authenticate the other. For example, Microsoft provides a service, called "Windows Hardware Quality Labs" (WHQL), that can digitally sign counterpart firmware image files and Smartcard driver files so they are tightly associated with one another. In the illustrated embodiment of the present invention, the firmware loader driver file 200 is also associated with the Smartcard driver file 260 in that the Smartcard driver file 260 contains information necessary and sufficient to authenticate the firmware loader driver file 200. When initialization of the Smartcard controller 150 begins, the firmware loader driver file 200 is loaded into the main memory 170, resulting in a firmware loader driver 210. It should be stated at this point that the operating system 250 can afford an additional degree of security to the loading of the firmware 230 if it limits the rights of users with respect to loading drivers. Microsoft Windows® XP, for example, allows only users having administrator rights to load drivers. Thus, unauthorized driver modifications are wholly unavailable to non-administrators. The firmware loader driver 210 is executed, causing the firmware image file 220 to begin to be downloaded via the non-secure PCI bus 120 into flash memory (not shown) contained within the Smartcard controller 150, resulting in firmware 230. The operating system 250 is assumed to contain conventional mechanisms for loading and executing hardware drivers; the illustrated embodiment of the present invention can employ these mechanisms without modification.
The firmware image file 220 is digitally signed. Accordingly, the firmware loader driver 210 employs the digital signature of the firmware image file 220 to authenticate the firmware 230. The digital signature may be a WHQL digital signature. Those skilled in the pertinent art are familiar with digital signatures and their use. At this point, the firmware 230 makes a Smartcard driver digital signature 240 available for external access (perhaps by loading it into an externally readable memory location).
The operating system 250, which again is assumed to be executing in the main memory 170, causes the Smartcard driver file 260 to begin to be loaded into the main memory 170, resulting in a Smartcard driver 270. Like the firmware image file 220, the Smartcard driver file 260 is digitally signed. The operating system 250 employs both the Smartcard driver digital signature 240 and the digital signature of the Smartcard driver file 260 (which is probably identical to the Smartcard driver digital signature 240) to authenticate the Smartcard driver 270. Assuming the Smartcard driver 270 successfully authenticates by way of both the Smartcard driver digital signature 240 and the digital signature of the Smartcard driver file 260, the Smartcard driver 270 is considered loaded.
At this point, the firmware 230 has helped to authenticate the Smartcard driver 270. It is now time for the Smartcard driver 270 to authenticate the firmware 230. Accordingly, the Smartcard driver 270 contains a digital signature corresponding to the firmware 230. The Smartcard driver 270 uses that digital signature to authenticate the firmware 230. In the illustrated embodiment, the firmware 230 is capable of transmitting a copy of itself to the Smartcard driver 270 for purposes of authentication. Also in the illustrated embodiment, the Smartcard driver 270 further authenticates, by means of digital signature, the firmware loader driver 210 that originally loaded the firmware 230. Assuming the firmware 230 successfully authenticates by way of both the digital signature contained in the firmware image file 210 and the digital signature contained in the Smartcard driver 270 (and optionally further assuming that the firmware loader driver 210 has been authenticated), the firmware 230 is considered loaded. In the illustrated embodiment, it is only at this point, when both the firmware 230 and the Smartcard driver 270 are considered loaded by virtue of their full authentication, that the Smartcard controller 150 is advertised as being available to the operating system 250.
In a process that is in all likelihood independent of the above-described process, at least one application file 280 is loaded into the main memory 170 and becomes an executing application 290. It is assumed that the application 290 is to communicate with one or more Smartcards. In the illustrated embodiment of the present invention, the Smartcard terminal presents a Card Terminal - Application Programming Interface (CT-API)-compatible interface to the application 290 that allows the application 290 to communicate with synchronous Smartcards.
It should be stated that the CT-API is, in the illustrated embodiment, closely tied with the firmware 230; calls by the CT-API to the firmware are to specific addresses and are tested with respect to response time, requiring timely responses by the firmware 230. Any unauthorized modification to the firmware 230 would have to be made with detailed knowledge of the CT-API and its response time requirements and is therefore unlikely.
In the context of FIGURE 2, such communication is by way of the operating system 250, the Smartcard driver 270, the firmware 230 and ultimately to the Smartcard circuitry 180. Having initialized, the Smartcard driver 270 and the firmware 230 are capable of encrypting their communication across the PCI bus 120, and security is maintained.
Turning now to FIGURE 3, illustrated is a flow diagram of one embodiment of a method of securing the initialization of a Smartcard controller carried out according to the principles of the present invention. The method begins in a start step 305, in which it is desired to initialize a Smartcard controller in a secure manner.
The method proceeds to a step 310, in which a firmware image file is downloaded into the Smartcard controller. In a decisional step 315, it is determined whether the download was successful.
If so, the method proceeds to a step 320, in which the firmware so downloaded is authenticated. In one embodiment, the firmware is authenticated by way of a digital signature received along with the firmware. A Smartcard driver digital signature is also made available as described above. In a decisional step 325, it is determined whether authentication has occurred without error.
The method proceeds to a step 330, in which a Smartcard driver file is loaded into the host computer's main memory. In a decisional step 335, it is determined whether the load was successful.
If so, the method proceeds to a step 340, in which the Smartcard driver so loaded is authenticated. In one embodiment, the Smartcard driver is authenticated by way of a digital signature received along with the Smartcard driver. The Smartcard driver is further authenticated by using the Smartcard driver digital signature that was made available in the step 320. In a decisional step 345, it is determined whether authentication has occurred without error.
If so, the method proceeds to a step 350, in which the Smartcard driver authenticates the firmware (and may also authenticate the firmware loader driver). In one embodiment, the Smartcard driver authenticates the firmware by way of a digital signature contained in the Smartcard driver. In a decisional step 355, it is determined whether authentication has occurred without error.
At this point, both the firmware and the Smartcard driver are authenticated. Therefore, the availability of the Smartcard controller is advertised to the host computer's operating system in a step 360, and normal operation of the Smartcard controller can commence. The method ends in an end step 370.
If, in any of the decisional. steps 315, 325, 335, 345, 355, an error is found to have occurred in either downloading, loading or authentication, an error message (perhaps dependent upon the nature of the error) is generated in a step 365, and the method ends in the end step 370 without having advertised the availability of the Smartcard controller to the host computer's operating system.
Although the present invention has been described in reference to details of specific example embodiments, those skilled in the art should understand that various changes, substitutions and alterations can be made to those embodiments without departing from the scope of the invention in its broadest form.

Claims

1. A method of securing an initialization of a Smartcard controller, comprising: receiving firmware into a Smartcard controller, said firmware including an associated
Smartcard driver digital signature; authenticating a Smartcard driver using said Smartcard driver digital signature; and authenticating said firmware with said Smartcard driver.
2. The method as recited in Claim 1, wherein said receiving comprises receiving said firmware via a Peripheral Component Interconnect (PCI) bus.
3. The method as recited in Claim 1 or 2, further comprising authenticating said firmware with a firmware digital signature received therewith.
4. The method as recited in Claim 1 or 2, wherein said authenticating said Smartcard driver comprises authenticating said Smartcard driver using an operating system of a host computer.
5. The method as recited in Claim 1 or 2, wherein said authenticating said firmware comprises authenticating said firmware with a firmware digital signature included in said Smartcard driver.
6. The method as recited in any of Claims 1-5, further comprising advertising said Smartcard controller as available to a host computer only after carrying out said receiving, said authenticating said Smartcard driver and said authenticating said firmware.
7. The method as recited in Claim 1 wherein said receiving comprises receiving said firmware as a firmware image.
8. A Smartcard terminal, comprising: a host computer having a disk drive, a Peripheral Component Interconnect (PCI) bus and a Smartcard controller; a firmware loader associated with said Smartcard controller and configured to receive firmware from said disk drive via said PCI bus, authenticate said firmware and provide an associated Smartcard driver digital signature; and a Smartcard driver associated with said Smartcard controller and configured to be authenticated using said Smartcard driver digital signature and authenticate said firmware.
9. A system for securing the initialization of a Smartcard controller, comprising: a firmware loader associated with a Smartcard controller and configured to receive and authenticate firmware and provide an associated Smartcard driver digital signature; and a Smartcard driver associated with said Smartcard controller and configured to be authenticated using said Smartcard driver digital signature and authenticate said firmware.
PCT/US2005/041119 2004-11-10 2005-11-10 System and method for securing the intialization of a smartcard controller WO2006053278A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05851597A EP1834276A4 (en) 2004-11-10 2005-11-10 System and method for securing the intialization of a smartcard controller

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/986,102 2004-11-10
US10/986,102 US7374080B2 (en) 2004-11-10 2004-11-10 System and method for securing the initialization of an inherently non-secure Smartcard controller

Publications (2)

Publication Number Publication Date
WO2006053278A2 true WO2006053278A2 (en) 2006-05-18
WO2006053278A3 WO2006053278A3 (en) 2009-06-04

Family

ID=36315291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/041119 WO2006053278A2 (en) 2004-11-10 2005-11-10 System and method for securing the intialization of a smartcard controller

Country Status (3)

Country Link
US (1) US7374080B2 (en)
EP (1) EP1834276A4 (en)
WO (1) WO2006053278A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209328A1 (en) * 2005-03-15 2006-09-21 Microsoft Corporation Systems and methods that facilitate selective enablement of a device driver feature(s) and/or application(s)
US8001311B2 (en) * 2008-06-27 2011-08-16 Microsoft Corporation Simulation of smartcard removal and reinsertion
US8086778B2 (en) * 2008-06-27 2011-12-27 Microsoft Corporation Filter driver to enumerate smartcard nodes for plug and play
US8261067B2 (en) * 2008-08-07 2012-09-04 Asteris, Inc. Devices, methods, and systems for sending and receiving case study files
EP2930641B1 (en) * 2014-04-07 2019-04-03 Nxp B.V. Method of Programming a Smart Card, Computer Program Product and Programmable Smart Card
US10621353B2 (en) * 2016-12-28 2020-04-14 Intel Corporation Firmware loading for exploit resistance
CN106933536B (en) * 2017-03-01 2019-08-27 天地融科技股份有限公司 A kind of application load operating method and the smart card of smart card
US11599641B2 (en) * 2019-04-24 2023-03-07 Crowdstrike, Inc. Firmware retrieval and analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061437A2 (en) 2000-02-17 2001-08-23 General Instrument Corporation Method and system for secure downloading of software

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574677B1 (en) * 2000-02-23 2003-06-03 Inventec Corporation Method for using smart card on HPC
US7797729B2 (en) * 2000-10-26 2010-09-14 O2Micro International Ltd. Pre-boot authentication system
US6968453B2 (en) * 2001-01-17 2005-11-22 International Business Machines Corporation Secure integrated device with secure, dynamically-selectable capabilities
US6665759B2 (en) * 2001-03-01 2003-12-16 International Business Machines Corporation Method and apparatus to implement logical partitioning of PCI I/O slots
US20030084440A1 (en) * 2001-10-26 2003-05-01 George Lownes Method of providing a code upgrade to a host device having a smart card interface
EP1324286A3 (en) * 2001-12-20 2005-01-05 NCR International, Inc. Self-service terminal
US7302589B2 (en) * 2002-02-20 2007-11-27 Intel Corporation Method for securing memory mapped control registers
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
US20050044363A1 (en) * 2003-08-21 2005-02-24 Zimmer Vincent J. Trusted remote firmware interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061437A2 (en) 2000-02-17 2001-08-23 General Instrument Corporation Method and system for secure downloading of software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1834276A4

Also Published As

Publication number Publication date
EP1834276A4 (en) 2012-10-24
EP1834276A2 (en) 2007-09-19
US7374080B2 (en) 2008-05-20
WO2006053278A3 (en) 2009-06-04
US20060097040A1 (en) 2006-05-11

Similar Documents

Publication Publication Date Title
US11829776B2 (en) Integrated circuit device that includes a protected memory component for transmitting protected data over a communication interface
US10061928B2 (en) Security-enhanced computer systems and methods
RU2267155C2 (en) Method for user-computer interaction for use by a set of flexibly connected computer systems, device, having block for connection to flexibly connected computer systems, a set of devices, having a block for connection to flexibly connected computer system, universal serial bus key, method for interaction with main computer via usb and data storage method (variants)
US8560852B2 (en) Method and system for communication between a USB device and a USB host
US7249266B2 (en) User-computer interaction method for use by a population of flexible connectable computer systems
US6401208B2 (en) Method for BIOS authentication prior to BIOS execution
US7899443B2 (en) Multi-access solid state memory devices and a telephone utilizing such
US9015848B2 (en) Method for virtualizing a personal working environment and device for the same
US8201239B2 (en) Extensible pre-boot authentication
WO2006053278A2 (en) System and method for securing the intialization of a smartcard controller
US8322610B2 (en) Secure access module for integrated circuit card applications
US8156331B2 (en) Information transfer
US7861015B2 (en) USB apparatus and control method therein
US20050216756A1 (en) System and method for key distribution and network connectivity
US20060075486A1 (en) Self-contained token device for installing and running a variety of applications
US20110145592A1 (en) Virtual Token for Transparently Self-Installing Security Environment
US20070199058A1 (en) Method of using a security token
JP2004206660A (en) Detachable device, control circuit, firmware program of control circuit, information processing method in control circuit and circuit design pattern
US20030154375A1 (en) Universal crypto-adaptor system for supporting multiple APIs and multiple smart cards
US7328849B2 (en) Smart card providing data mapping for multiple applications and related methods
JP2011150499A (en) Thin client system, thin client terminal, and thin client program
WO2003003170A1 (en) Personal user device and method for selecting a secured user input/ output mode in a personal user device
EP1933523A1 (en) Delegated cryptographic processing
CN118568743A (en) Data encryption and decryption method, device, medium and equipment based on hardware encryption card
Catuogno et al. Securing operating system services based on smart cards

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KN KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005851597

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005851597

Country of ref document: EP