`
`
`
`PCT
`
`WORLD INTELLECTUALPROPERTY ORGANIZATION
`International Bureau
`
`Al
`
`i
`
`———-
`|
`
`INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT)
`.
`.
`3
`(51) International Patent Classification © :
`(11) International Publication Number:
`WO 95/16238
`GO6F 12/14
`_
`(43) International Publication Date:
`
`15 June 1995 (15.06.95)
`
`Ten South Wacker Drive, Chicago, IL 60606 (US).
`
`
`
`
`
`
`" (21) International Application Number: PCT/US94/13898|(81) Designated States: AM, AT, AU, BB, BG, BR, BY, CA, CH,
`CN, CZ, DE, DK, EE, ES, FI, GB, GE, HU, JP, KE, KG,
`KP, KR, KZ, LK, LR, LT, LU, LV, MD, MG, MN, MW,
`NL, NO, NZ, PL, PT, RO, RU, SD, SE, SI, SK, TJ, TT,
`UA, UZ, VN, European patent (AT, BE, CH, DE, DK, ES,
`FR, GB, GR,IE, IT, LU, MC, NL, PT, SE), OAPI patent
`(BF, BJ, CF, CG, CI, CM, GA, GN, ML, MR, NE, SN, TD,
`TG), ARIPO patent (KE, MW, SD, SZ).
`
`; (22) International Filing Date:
`
`5 December 1994 (05.12.94)
`
`(30) Priority Data:
`08/161,854
`
`6 December 1993 (06.12.93)
`
`US
`
`(71) Applicant: TELEQUIP CORPORATION[US/US], 18 Clinton
`Drive, Hollis, NH 03049 (US).
`
`(72) Inventors: JONES, Michael, F.; 7 Foxglove Court, Nashua, NH
`03062 US). ZACHAI, Arthur, 22 Ross Road, Swampscott,
`MA 01907 (US).
`
`(74) Agents: CALL, Charles, G. et al.; Allegretti & Witcoff, Ltd.,
`
`Published
`With international search report.
`Before the expiration of the time limit for amending the
`claims and to be republished in the event of the receipt of
`amendments.
`
`— (
`
`54) Title: SECURE COMPUTER MEMORY CARD
`
`’‘i
`
`‘i’‘¢:’:’.’':
`°’as8¢8a
`eae1‘
`
`%
`
`
`
`DataStorage
`
`ete!
`“489
`
` precenccerccscoteceenancccesunecscosunsy
`
`cecescorescnencsencssatesecsesere
`eoenencnseusscoesesssonsoceser=
`poceses,
`
`
`
`\
`tl
`Secure
`
`
`
`
`$:$
`
`: ~5
`
`(57) Abstract
`
`A detachable PCMCIA memory card (100) incorporating a smartcard integrated circuit (250) for storing a password value and logic
`circuitry for preventing access to information stored on the memory card (100) unless the user of the host computer (110) to which the
`memory card (100) is connected can supply a password matching the stored password. The smartcard integrated circuit (250) may also be
`used to store public and private key values used to encrypt and decrypt data stored on the card (100) or elsewhere on the host computer
`(110) or exchanged with a remote computer (120).
`Ld
`
`1
`1
`
`KINGSTON 1003
`
`
`
`KINGSTON 1003
`
`
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international
`applications under the PCT.
`
`AT
`AU
`BB
`BE
`BF
`BG
`BJ
`BR
`BY
`CA
`CF
`CG
`CH
`Cl
`CM
`CN
`cs
`CZ
`DE
`DK
`ES
`Fl
`FR
`GA
`
`Austria
`Australia
`B.ubados
`BclgilDD
`Burkina F""°
`Bulgaria
`Benin
`Brazil
`Belarus
`Canada
`Central African Republic
`Congo
`Swit=land
`COte d'Ivoire
`Cameroon
`Oiina
`Cucbostovakia
`Cuch Republic
`Germany
`Denmark
`Spain
`Finland
`Prance
`Gabon
`
`United Kingdom
`GB
`GE
`Georgia
`GN
`Guinea
`GR Gr=
`Hungary
`HU
`Ireland
`IE
`Italy
`IT
`JP
`Japan
`Kenya
`KE
`KG
`Kyrgys1an
`Democratic People's Rqiublic
`KP
`of Korea
`Republic of Korea
`Kazakhstan
`Llccblenstein
`Sri Lanka
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagucar
`Mali
`Mongolia
`
`KR
`KZ
`LI
`LK
`LU
`LV
`MC
`MD
`MG
`ML
`MN
`
`M1l
`MW
`NE
`NL
`NO
`NZ
`PL
`PT
`RO
`RU
`SD
`SE
`SI
`SK
`SN
`TD
`TG
`TJ
`Tr
`UA
`us
`uz
`VN
`
`Mauritania
`Malawi
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`Slovenia
`Slovakia
`Senegal
`Oiad
`Togo
`TajikislaD
`Trinidad and Tobago
`Ukraine
`United States of America
`Uzbekistan
`Viet Nam
`
`..
`
`2
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`- 1 -
`
`SECURE COMPUTER MEMORY CARD
`
`FIELD OF THE INVENTION
`
`This invention relates generally to methods and apparatus for storing,
`
`processing and communicating private data.
`
`5
`
`Computers are widely used to store and process information which is
`
`BACKGROUND OF THE INVENTION
`
`considered private. For most businesses, the confidentiality of computer data is
`
`maintained using the practice followed for conventional business data :
`
`restricting access to office space where sensitive records are kept, whether those
`
`records take the form of documents kept in file cabinets or machine-readable
`
`JO
`
`data stored in an computer.
`
`As the capabilities and usefulness of laptop and notebook computers have
`
`increased, functions formerly performed within the security of the office have
`
`moved to the field. Sales personnel and executives often travel with computers
`
`loaded with confidential data on pricing, customers, and strategic planning.
`
`15
`
`Although available encryption and decryption programs can be used to protect
`
`such data when it is not in use, these programs are often inconvenient to use or
`
`provide poor security as a result of inadequate key management.
`
`Encryption methods typically rely on "secret keys" known only to
`
`authorized users of the protected data. In the widely used Data Encryption
`
`20
`
`Standard ("DES") developed and promulgated by the National Bureau of
`
`Standards, data is encyphered in 64-bit blocks using a single 56-bit key, as
`
`described in NBS FIPS PUB 46, "Data Encryption Standard," National Bureau of
`
`Standards (1977). Encryption techniques using two. keys, one for encypting the
`
`.
`
`data and a different key for decryption, are called "public key" systems because
`
`25
`
`the encryption key can be made public so that anyone can use the public key to
`
`encrypt sensitive data, but only a recipient with the secret key can decrypt it.
`
`One widely used and highly effective public key algorithm known as the "RSA"
`
`system is described in Rivest et al. U.S. Patent 4,405,829.
`
`The security of both single-key and public-key encryption systems
`
`30
`
`depends on user's ability to keep the key or keys secret. Although both the DES
`
`and RSA encryption algorithms themselves can be depended upon to provide
`
`3
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`.. 2 -
`
`adequate security, neither system can safeguard data if the keys can be learned.
`
`The management of the keys themselves accordingly presents the most difficult
`
`component of good data security system.
`
`SUMMARY OF THE INVENTION
`
`5
`
`It is an object of the invention to securely store private information in a
`
`compact, easily transportable storage device which may be detached from the
`
`computer with which it is used.
`
`It is still another object of the invention to protect such electronically
`
`stored data against unauthorized access when the detachable storage device is
`
`IO
`
`lost or stolen.
`
`It is a further object of the present invention to provide a secure data
`
`storage device which may, at the option of the user, selectively limit access to all
`
`or part of the stored data using one or more passwords.
`
`It is a related object of the invention to securely store access passwords,
`
`15
`
`encryption or decryption keys, or digital signatures, in a tamper-proof substorage
`
`unit interconnected with a data access mechanism which are integral parts of a
`
`20
`
`25
`
`detachable computer memory card.
`
`In a principle aspect, the present invention takes the form of a removable
`
`memory card, preferably implemented in conformity with the PCMCIA interface
`
`standard, which provides the host computer to which it is connected with
`
`additional high-speed storage, the memory card consisting of a data storage unit,
`
`storage-access locking circuitry, and a tamper-proof key information substorage
`
`unit. In accordance with the invention, the locking circuitry is adapted to
`
`prevent access to the data stored on the memory card unless the would-be user
`
`first presents identifying information which is validated by the locking circuitry
`
`with reference to one or more key values stored in the key information
`
`substorage unit.
`
`The removable memory card contemplated by the present invention allows
`
`data stored on the card to be made immediately available to the connected host
`
`30
`
`computer upon proper presentation of a password known only to an authorized
`
`user. Once the password has been validated, the stored data may then be made
`
`available to the host processor in decrypted form.
`
`In accordance with the invention, the key information substorage unit
`
`advantageously takes the form of a "smartcard" integrated circuit capable of
`
`35
`
`storing secret key values which may be used to provide password-protected access
`
`4
`
`
`
`WO 95/16238
`
`PCT!US94/13898
`
`- 3 -
`
`to the data stored on the memory card, or optionally to provide secure storage for
`
`the encryption or decryption keys, or digital signatures, needed to allow the host
`
`computer to access and/or operate a secure information storage or
`
`telecommunications system. In accordance with the invention, access to data,
`
`5
`
`passwords, digital signatures, or other key values stored on the memory card is
`
`limited to those who (1) have physical possession of the memory card and (2)
`
`knowledge of the memory card access password stored in the card's secure
`
`substorage unit.
`
`The smartcard integrated circuit advantageously stores such passwords,
`
`10
`
`public key and secret key values, and/or digital signatures in an Electrically
`
`Erasable Programmable Read Only Memory (EEPROM), and further includes its
`
`own microprocessor containing a stored program to allow reading and writing of
`
`the EEPROM through a serial 1/0 interface. The stored
`
`program within the smartcard IC allows an access password to be programmed
`
`15
`
`into the EEPROM from an external source via the serial interface, but thereafter
`
`prevents that password value from being accessed. For enhanced security, the
`
`smartcard integrated circuit includes means for monitoring voltages and
`
`frequencies to detect abnormal conditions which may indicate an attempt to
`
`tamper with the key storage unit to gain unauthorized access to the stored secret
`
`20
`
`key information.
`
`These and other objects, features and advantages of the present invention
`
`will become more apparent by considering the following detailed description of a
`
`preferred embodiment of the invention, during which frequent reference will be
`
`made to the attached drawings.
`
`25
`
`30
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Figure 1 of the drawings is a block diagram of a secure memory card
`
`which embodies the principles of the invention, the memory card being shown
`
`interconnected with a host computer which is in turn connected to other
`
`computers by telecommunications links.
`
`Figure 2 is a data flow diagram depicting a preferred mechanism for
`
`providing password protection for information stored within a memory card of
`
`type shown in Fig. l.
`
`Figure 3 is a data flow diagram illustrating the use of a secure data card
`
`as show in Fig. 1 to protect the privacy of information being sent between a host
`
`35
`
`computer and a remote computer.
`
`5
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`- 4 -
`
`DESCRIPTION OF THE PREFERRED EMBODIMENT
`
`HARDWARE
`
`As illustrated in Fig. I of the drawings, the preferred embodiment of the
`
`invention takes the form of a personal computer memory card indicated
`
`5
`
`generally at JOO. The memory card JOO is interconnected with a host computer
`
`I IO by means of a hardware and software interface which conforms to the
`
`Personal Computer Memory Card International Association (PCMCIA) standard
`
`which has been widely accepted for use in laptop and notebook computers.
`
`PCMCIA cards are commonly used to provide additional high-speed memory
`
`10
`
`capacity to the connected host computer, or to implement fax and data modems,
`
`network access devices, and hard-disk mass storage devices. Type I PCMCIA
`
`cards have a form factor typically used to provide additional memory for data
`
`and application programs, while the thicker Type 2 cards arc used to add
`
`telecommunications features and Type 3 cards are used for high-capacity hard
`
`15
`
`disk drives that store up to 100 megabytes of data.
`
`The removable character of PCMCJA storage devices can provide better
`
`data security than storage built into the computer itself, because the card may be
`
`detached from the computer and placed in a secure area when not in use.
`
`However, the cards themselves remain subject to possible theft or misuse. The
`
`20
`
`embodiment of the invention shown in Fig. I provides significant additional
`
`security for data and programs stored in a detachable memory card by
`
`incorporating an access-locking mechanism for preventing access to the stored
`
`data by those who are unable to present an authorizing password.
`
`The secure memory card 100 contemplated by the invention is adapted to
`
`25
`
`be connected via its PCMCIA interface to the host computer 110 which may in
`
`turn be connected to other computers by modem, or'.by a network, as illustrated
`
`by the connection of remote computer J 20 via the telecommunications link 130
`
`seen in Fig. I.
`
`The secure memory card 100 stores data in a common memory array 150,
`
`30
`
`preferably implemented with non-volatile flash memory integrated circuits,
`
`enabling the common memory array to store IO megabytes of data in an area
`
`small enough to be included on a credit-card sized Type I PCMCIA card. The
`
`data is stored in random access locations specified by address values supplied via
`
`the PCMCIA's standard 26-bit address bus terminals 161. The address terminals
`
`35
`
`161 provide address signals to an input address bus buffer circuit 163 which
`
`6
`
`
`
`W095/16238
`
`PCTfUS94/13898
`
`- 5 -
`
`drives an internal address bus 165. Data transfers between the common memory
`
`array 150 and the host computer 110 are accomplished via the interface data
`
`terminals 171, a data bus buffer 173, an internal data bus 175, a internal
`
`encyption/decryption unit 177, a gate 178 and an internal data bus 179. Control
`
`5
`
`signals are exchanged between the common memory array 150 and the host
`
`computer via the PCMClA interface control terminals 181 and an internal control
`
`bus 185.
`
`The address terminals 161, data terminals 171 and control terminals 181
`
`seen in Fig. 1 are a simplified representation of the 68 pin PCMCIA standard
`
`10
`
`interface which includes provision for 26 parallel address conductors (AO-A25),
`
`16 parallel data conductors (DO-DIS), and a remaining set of power and control
`
`conductors including power and ground connections and a collection of memory
`
`control signal connections (enable, select, wait, write, detect, etc.). The PCMCIA
`
`standard achieves interchangeability of cards of different functions by
`
`15
`
`establishing standards for the physical card (dimensions and mechanical
`
`tolerances for the card and connectors), the card interface (pinout and signal
`
`definitions), and card software (which specifies the organization of data on the
`
`card and the record formats and protocols by which configuration information
`
`and data is exchanged with the host computer). Complete information which
`
`20
`
`defines the PCMCIA standard is published by and available from the Personal
`
`Computer Memory Card International Association, 1030G East Duane Avenue,
`
`Sunnyvale, CA 94086. The present embodiment of invention conforms to the PC
`
`Card Standard Specification, Release 2.0 I, published in November, 1992.
`
`To implement the PCMClA interface standard, the secure memory card
`
`25
`
`includes a non-volatile attribute memory 190 which stores information enabling
`
`the host computer to automatically identify the particular PCMCIA card as soon
`
`as the card and host are connected, and to automatically establish the appropriate
`
`hardware/software interface using suitable driver software which executes on
`
`the host computer 110.
`
`30
`
`The attribute memory 190 shares the internal address bus 165, data bus
`
`175 and control bus 185 with the common memory array 150. An address decoder
`
`195 monitors the address bus 165 and provides selection signals to the attribute
`
`memory 190 via a attribute memory enable line 197 when addresses within the
`
`address space of attribute memory 190 appear on address bus 165 concurrently
`
`35
`
`with the activation of the Attribute Memory Select signal terminal -REG (not
`
`separately shown in Fig. 1) in the PCMCIA connector interface.
`
`7
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`- 6 -
`
`Similarly. the address decoder 195 selects the common memory array 150
`
`whenever the address on address bus 165 is within the address space of array 150
`
`by energizing an common memory enable line 210 which supplies an enable
`
`signal to the gate 178 in the data pathway to the common memory array 150.
`
`5
`
`Gate 178 prevents the common memory array 150 from exchanging data
`
`with the host 150 via data bus 179 unless an authorization signal is supplied to
`
`the gate 200 via a control line 219 from a card lock logic circuit 220. The card
`
`lock logic circuit 210 is connected to address decoder 195 via the lock enable line
`
`221, permitting card logic 220 to identify addresses which designate memory
`
`10
`
`locations in the common memory array 150 to which access may be denied under
`
`appropriate circumstances. The card lock logic circuit 220 is connected to the
`
`internal data bus 175 which provides a pathway for downloading memory access
`
`control commands from the host computer 110.
`
`A smartcard input/output enable line 198 transmits an enable signal from
`
`15
`
`the address decoder 195 to a Universal Asynchronous Receiver Transmitter
`
`(UART) 230 when information is to be transferred between the host computer
`
`110 and a smartcard integrated circuit 250. The UART 230 is connected to the
`
`internal data bus 175 and operates to translate da.ta received in bit-parallel form
`
`from databus 175 into bit serial form for transfer to the smartcard J.C. via its
`
`20
`
`serial port 255.
`
`The smartcard J.C. includes its own processor 260 and non-volatile
`
`EEPROM memory circuits 251 which operate as a secret key information
`
`substorage system. The processor 260 within the smartcard J.C. 250 is
`
`programmed to store secret key codes within the EEPROM 257, but to thereafter
`
`25
`
`prohibit the stored secret keys from being accessed by any external interrogation.
`
`The smartcard J.C. may be implemented with a number of available devices,
`
`including the ST I 6F48 CMSO MCU-based Safeguarded Smartcard IC, with 8k
`
`EEPROM, available for SGS-Thomson Microelectronics, a member of the SGS(cid:173)
`
`Thomson STl6XYZ family of devices, as specified in the SGS-Thomson Data
`
`30
`
`Book (April, 1993). The STI6F48 includes an 8-bit processor, 288 bytes of RAM
`
`scratchpad storage, an 8k byte EEPROM data memory which forms the secure
`
`substorage unit, and a 16k byte program storage read-only memory for storing
`
`processing routines, including routines for processing and validating key values
`
`supplied to and read from the smartcard LC. via the UART 230.
`
`35
`
`Data transfers and operations, both within the memory card JOO and
`
`between the card JOO and the host computer 110, are controlled by the card lock
`
`8
`
`
`
`W095/16238
`
`PCT/US94/13898
`
`- 7 -
`
`logic circuit 220. When the lock circuit enable line 221 is activated in response to
`
`the detection of an acces s control command address value by address decoder
`
`195, the card lock logic circuit 220 responds to commands and data supplied to
`
`the internal data bus 175 from the host computer 110 via the data conductors 171
`
`5
`
`and the data bus buffers 173. The card lock logic circuit 220, the UART 230 and
`
`the smartcard I.C. 260 operate under the control of a common timing signal
`
`provided by an on-card clock generator circuit seen at 290 i~ Fig. I.
`
`The address space provided by the common memory array 150 is
`
`preferably partitioned into independently accessed regions. Each partition is
`
`IO
`
`specified in a Card Information Structure or "CIS" (to be described) which is
`
`stored in the attribute memory 190, and preferably corresponds to the memory
`
`space provided by one or more integrated circuits making up the array 150 such
`
`that a particular partition may be selected by the address decoder 195 which
`
`activates particular chip enable lines with the common memory enable output
`
`15
`
`210.
`
`The access password itself is stored in the EEPROM 257 within the
`
`smartcard I.C. 250, the password storage operation being accomplished within the
`
`memory card 100 whenever a card lock logic activation address is supplied via
`
`address terminals 161 and the address buffer 163 to the address decoder 195
`
`20
`
`which in turn activates the card logic enable line 221. A password loading
`
`command applied via the data interface terminals 171 from the host computer is
`
`recognized by card lock logic 220 which channels the subsequent data sequence
`
`(the password itself) via the UART 230 and the serial port 255 of the smartcard
`
`LC. 250 for storage at a predetermined location in the EEPROM 257.
`
`25
`
`Once a password has been stored for a particular partition, the card lock
`
`logic circuit 220 has exclusive control over access to that partition. Any attempt
`
`to access that partition (as detected by the address decoder 195) wrn be rejected ,
`
`notifying the device driver software that a valid password must be provided.
`
`The driver software then prompts the user with a request for a valid password
`
`30
`
`which, when entered, is sent via the data buffer 173 for validation. The card
`
`lock logic 220 routes the offered password to the smartcard LC. with a request
`
`that it be compared with the password stored in the EEPROM 257. If the
`
`passwords match, the smartcard J.C. so notifies the card lock logic 220 which in
`
`turn notifies the device driver software executing in the host that the partition
`
`35
`
`has been successful ly unlocked . Thereafter, when addresses within the unlocked
`
`partition are detected b y the address decoder 195, the card lock logic will
`
`9
`
`
`
`W095/16238
`
`PCT/US94/13898
`
`- 8 -
`
`activate the ga cc 178 to permit data transfers between that partition and the data
`
`terminals 17 l.
`
`To provide additional security, the data transferred over the 16-bi t data
`
`bus between the data bus buff er 17 3 and the gate 17 8 is processed by the
`
`5
`
`encryption-decryption unit 177 which preferrably emplements a symmetrical key
`
`algorithm, such as DES, based on a key value which stored in and fetched from
`the EEPROM 275 in the smartcard J.C. 250. The unit 250 encrypts data from the
`
`data bus buffer 173 prior to storing the data in the common memory array 150,
`
`and decrypts the data back into its original form when it is retrieved from the
`
`10
`
`common memory array 150. This additional encryption mechanism protects data
`
`stored in the common memory array even if that data is successfully read from
`
`the flash memory chips making up the array 150. As discussed in more detail
`
`later, the secure key storage mechanism provided by the memory card may also
`
`be used to protect sensitive data being manipulated by mechanisms external to
`
`15
`
`the memory ca rd 100.
`
`All of the operative circuitry making up the memory card JOO, with the
`
`exception of the attribute memory 190, the common memory array 150, and the
`
`smartcard LC. 250, is preferrably implemented by means of a single, monolithic
`
`application specific integrated circuit (ASIC) as indicated within the dashed line
`
`20
`
`rectangle 290 in Fig. I. By integrating this circuitry in a monolithic integrated
`
`circuit, security against invasive attempts to ascertain built-in unlock codes (to
`
`be discussed) or to bypass or disable security functions, is substantially improved.
`
`SOFTWARE
`
`25
`
`specifies the nature of the memory card 100 and the format used for the
`
`As previously noted, the attribute memory 190 stores information which
`
`information stored on the card. The attribute memory 190 holds a Card
`
`Information Structure ("CIS") which is organized in a "Metaformat" defined in
`
`Section 5 of the PCMCIA PC Card Standard, Release 2.01, for handling numerous
`
`different data recording formats. The CIS is organized as hierarchy of layers
`
`30
`
`and takes the form of a chain (linked-list) of data blocks called "tuples" which
`
`begin at address 0 of the attribute memory 190.
`
`The PCMCIA standard also establishes standards for the operation of host
`
`processor operating system software which can be used to simplify the design of
`
`specific device drivers which provide access to the memory card. The standard
`
`35
`
`"Socket Services" and "Card Services" card interface software, when implemented
`
`10
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`- 9 -
`
`on a given host computer, provides a Card Services interface with "Client Device
`
`Drivers," significantly simplifying the design of device drivers by providing
`
`much of the functionality required for communicaton with socketed PCMCJA
`
`cards. For host computers which are not provided with standard PCMCIA Card
`
`5
`
`Services and Socket Services functions, the device driver directly interrogates the
`
`CIS structures in the attribute memory using standard link-list processing
`
`techniques, and provide direct software support for the bulk memory functions
`
`which would otherwise be supported by the PCMCIA Card Services interface.
`
`Whether utilizing available Card Services routines or directly addressing
`
`10
`
`and manipulating the memory card hardware interface, the device drive itself
`
`may be specified in the DOS CONFIG.SYS file and loaded when the host
`
`processor is initialized, or may take the form of an independently loadable TSR
`
`program. The discussion which follows describes the operation of a Client
`
`Device Driver adapted to operate in conjunction with PCMClA standard Card
`
`15
`
`Services functions and notification mechanisms.
`
`The programming interface to the PCMCIA Card Services software is
`
`defined in Section 3 of the PCMCIA Standard (Release 2.01) which specifies a
`
`variety of services which arc available to Client Device Drivers, as well as
`
`callback mechanisms for notifying Client Device Drivers of status changes. In
`
`20
`
`addition to conventional memory operations provided by Bulk Memory Service
`
`functions, the Card Services software also provides Client Utility functions
`
`which allow client device drivers to access and manipulate the CIS stored in the
`
`memory card's attribute memory 190. Card management routines, either forming
`
`a part of the Client Device Driver or part of a special purpose application
`
`25
`
`program for configuring the memory card according to the users needs, are
`
`executed on the host computer. These card management routines in turn utilize
`
`the functions provided by the PCMCIA Card Services software to implement the
`
`following two special operations which not required for conventional PCMCIA
`
`memory cards:
`
`30
`
`PAR TIT ION LOCK. This opera ti on accepts two parameters from the
`
`user: (I) a password value, typically taking the form of ASCIIZ (null-terminated
`
`string) of keyboarded characters entered by a user in response to a prompt, and
`
`(2) a partition identifier which specifies a portion of the address space provided
`
`by the common memory array 150. At the same time, the fact that a given
`
`35
`
`partition has been locked, together with the an identification of the EEPROM
`
`11
`
`
`
`WO 95/16238
`
`PCT!US94/13898
`
`- I 0 -
`
`memory location of the password (but not its value) are recorded in the CIS entry
`
`for that partition.
`
`The memory card 100 is intitialized as a standard memory card before
`
`being first delivered to the end user, and provides one or more freely accessible
`
`5
`
`storage partitions prior to receiving the first PARTITION LOCK command.
`
`PARTITION UNLOCK.
`
`The storage of a password associated with a
`
`particular password has the effect of locking that password against subsequent
`
`attempts to use the data or programs stored within that partition without first
`
`supplying a valid password.
`
`IO
`
`Whenever a PCMCIA card is newly inserted into the socket of a running
`
`host computer, the Client Device Driver is notified by the Card Services software
`
`(via its CARD_JNSERTION callback function), so that it can process the card's
`
`CIS entries to identify each partition that may be password-protected. Similarly,
`
`when the host computer is first powered up and the Client Device Driver is
`
`15
`
`initialized, the Client Device Driver calls Card Services functions to process the
`
`cards CIS entries to identify each partition that may be locked.
`
`The device driver software then attempts to access each identified
`partition. If the partition is locked (as determined by the mechanism discussed
`
`above), the card lock logic 220 notifies the device driver of the locked condition,
`
`20
`
`allowing the device driver to request a valid password from the user, either at
`
`the time the host computer is being initialized with an already socketed memory
`
`card, or at the time a memory card is first inserted into an already running host
`
`computer.
`
`Other Operatons. To support encryption and decryption systems, systems
`
`25
`
`employing digital signatures, and secure telecommunications access protocols,
`
`examples of which will be discussed below, the card lock logic unit 220 and
`
`UART 230 also provide the capability for storing additional passwords, key
`
`values, access codes and the like in the secure substorage system provided by the
`
`smartcard J.C. 250, or alternatively (but less securely) in the common memory
`
`30
`
`array 150 or in the attribute memory 190.
`
`PASSWORD AND KEY MANAGEMENT
`
`A preferred mechanism for validating the user's password needed to
`
`unlock a particular memory partition is illustrated in Fig. 2 of the drawings.
`
`First, as previously described, the user who desires to protect information stored
`
`12
`
`
`
`WO 95/16238
`
`PCT/US94/13898
`
`- 1 I -
`
`on the card supplies a secret r::issword which is written into the smartcard J.C.
`
`memory as indicated at 301. When an attempt is made to access data protected by
`
`the secret password 30 I, the ASIC 290 implementing the card lock logic unit 220
`
`generates a random number 303 which is supplied to the host computer 110 as
`
`5
`
`indicated at 307. The host computer 110 then prompts the user to enter a
`
`password at 309. The offered password 309 is combined with the random number
`
`303 at 311 and the result is returned at 313 to the ASIC 290. The returned value
`
`is then combined at 317 with a fixed unlock code 319 (built into the ASIC 290) to
`
`produce a final value which is applied to a first input 321 of a comparator 320.
`
`10
`
`At the same time, the random number 303 which was sent to the host is
`
`also sent to the smartcard LC. 250 whose processor 260 is programmed to combine
`
`the random number 303 at 325 with the previously stored secret password 301 to
`
`form a result value at 327. The result value 327 is combined at 328 with a copy
`
`330 of the unlock code 319, and the resulting final value is applied to the second
`
`15
`
`input 322 of the comparator 320. If the final value at input 321 which is created
`
`by the password offered by the user matches the final value at input 322 created
`
`by the password stored within the smart ca rd I.C. 250, the partition associated
`
`with the stored password will be unlocked by sending an activation signal 335 to
`
`a data flow gate 340 connected in the path of a data bus 345 connecting the host
`
`20
`
`computer 350 and the memory card's common memory array 360.
`
`It is important to observe that the data stored in a protected partition
`
`within the memory card 100 is available only to those who possess both the card
`
`and the password. Neither possession of the card without knowledge of the
`
`password, nor knowledge of the password without physical possession of the card,
`
`25
`
`will be sufficient to obtain access to the data.
`
`The combined requirement that the bearer of the card also know the
`..
`password can be used to provide security for data stored or transmitted outside
`
`the memory card, as well as for data stored within the card, as illustrated by the
`
`examples depicted in Fig. 3 of the drawings.
`
`As depicted in Fig. 3, a secure memory card 400 is connected to a host
`
`computer 410 and includes a smartcard integrated circuit 415 which provides a
`
`secure substorage system which stores a password 420, an access code 425, a
`
`private key value 430, and a public key value 435 .
`
`The password 420 is used to verify the identity of the bearer of the
`
`memory card, who is required to enter of a valid password 440 when prompted
`
`by the host computer as previously discussed in conjunction with Fig. 2. Unless a
`
`30
`
`35
`
`13
`
`
`
`W095/16238
`
`PCT/US94/13898
`
`- 12 -
`
`valid password 440 is known to the bearer of the memory card 400, the additional
`
`codes and keys 425, 430 a