Smart card providing data mapping for multiple applications and related methods
Summary by NHIP
Smart card data mapping
The integrated circuit communicates with a host device via a transceiver while performing multiple smart card applications. It generates an initial look-up table using a default descriptor and creates a new table with different data allocations upon detecting system events like threshold metric exceedances or unauthorized communication attempts.
Claim Score by NHIP
Abstract
An integrated circuit for a smart card in accordance with an exemplary embodiment includes a transceiver and a processor for communicating with a host device via the transceiver and performing a plurality of smart card applications. Moreover, the processor may cooperate with the host device to perform an enumeration based upon at least one default descriptor, and generate a look-up table for allocating data to respective smart card applications based upon the enumeration. Furthermore, the processor may also detect a system event and, responsive to the system event, cooperate with the host device to perform a new enumeration based upon at least one alternate descriptor and generate a new look-up table based thereon.

Term
Term ended
Expired 19 April 2025, 1.4 years ago.
- Priority and filed
- Granted
- Expired
- Today
38 claims: 4 independent, 34 dependent
- 1An integrated circuit for a smart card comprising:a transceiver;and a processor for communicating with a host device via said transceiver and performing a plurality of smart card applications, said processor for cooperating with the host device to perform an enumeration based upon at least one default descriptor, generating an initial look-up table for allocating data to respective smart card applications based upon the enumeration, and detecting a system event and, responsive to the system event, cooperating with the host device to perform a new enumeration based upon at least one alternate descriptor and generating a new look-up table based thereon having a different allocation of data to respective smart card applications than the initial look-up table.
- 11A smart card comprising:a smart card body;and an integrated circuit carried by said smart card body and comprising a transceiver, and a processor for communicating with a host device via said transceiver and performing a plurality of smart card applications, said processor for cooperating with the host device to perform an enumeration based upon at least one default descriptor, generating a an initial look-up table for allocating data to respective smart card applications based upon the enumeration, and detecting a system event and, responsive to the system event, cooperating with the host device to perform a new enumeration based upon at least one alternate descriptor and generating a new look-up table based thereon having a different allocation of data to respective smart card applications than the initial look-up table.
- 21A smart card system comprising:a host device;a smart card adapter connected to said host device;and a smart card to be read by said smart card adapter and comprising a smart card body and an integrated circuit carried by said smart card body, said integrated circuit comprising a transceiver, and a processor for communicating with a host device via said transceiver and performing a plurality of smart card applications, said processor for cooperating with the host device to perform an enumeration based upon at least one default descriptor, generating an initial look-up table for allocating data to respective smart card applications based upon the enumeration, and detecting a system event and, responsive to the system event, cooperating with the host device to perform a new enumeration based upon at least one alternate descriptor and generating a new look-up table based thereon having a different allocation of data to respective smart card a applications than the initial look-up table.
- 31Broadest claimClaim Score 58, broad(NHIP)A method for operating a smart card for performing a plurality of smart card applications, the method comprising:performing an enumeration of the smart card in cooperation with a host device based upon at least one default descriptor;generating an initial look-up table for allocating data to respective smart card applications based upon the enumeration;and detecting a system event and, responsive to the system event, performing a new enumeration in cooperation with the host device based upon at least one alternate descriptor and generating a new look-up table based thereon having a different allocation of data to respective smart card applications than the initial look-up table.
Independent claims4
62 paragraphs in 5 sections, as filed
FIELD OF THE INVENTION
0001The present invention relates to the field of information processing and storage, and, more particularly, to smart cards and related methods.
BACKGROUND OF THE INVENTION
0002Smart cards are becoming increasingly more popular for security and personal identification applications. For example, smart cards are currently used for storing sensitive data such as medical records, banking information, etc. In perhaps their most common form, smart cards have a card body which resembles a credit card in size, shape, and thickness, and they may even be made out of similar materials, such as plastic. Yet, rather than simply having a magnetic stripe to store sensitive information (e.g., account numbers, user identification, etc.) as standard credit cards do, smart cards generally include an integrated circuit (IC). The IC not only includes a non-volatile memory for storing such sensitive information, but it may also include a microprocessor for processing this information and communicating with a host device via a card reader, for example. Accordingly, not only can smart cards store more information than magnetic stripe cards, but they also have much greater functionality.
0003Various protocols have emerged to standardize the operation and communications of devices such as smart cards. One of the earliest of these was developed by the International Organization for Standardization (ISO) and is known as the ISO 7816-X protocol. In particular, this protocol is set forth in ISO documents ISO 7816-1 (Physical Characteristics), ISO 7816-2 (Dimensions and Locations of Contacts), ISO 7816-3 (Electronic Signals and Transmission Protocols), ISO 7816-10 (Electronic Signals and Answer to Reset for Synchronous Cards), and ISO 7816-12 (USB Interface), for example, all of which are hereby incorporated herein in their entirety by reference.
0004Furthermore, in response to the increasing popularity of the universal serial bus (USB) architecture, increasing numbers of smart cards continue to be developed which operate in accordance with the USB protocol. This protocol is set forth in the Universal Serial Bus Specification, Revision 2.0, Apr. 27, 2000, published by USB Implementers Forum, Inc., which is hereby incorporated herein in its entirety by reference. The USB architecture is particularly advantageous in that it provides a standard “plug and play” interface for devices external to a computer, for example. That is, external peripheral devices can be relatively quickly and easily installed and removed from a host device, such as a computer, without having to open or power down the computer.
0005In accordance with the USB Specification, the host device operates as the master of the system bus, and all of the USB devices connected to the system bus operate as slave devices. A USB system bus includes two data lines D+ and D−, over which differential serial data signals are transmitted. Moreover, the USB system bus also includes a power line V<sub>BUS </sub>which may be used to provide an operating voltage from the host device to USB devices without their own source of power, as well as a ground line.
0006Accordingly, upon connection to the system bus, a USB smart card will receive power from the power line V<sub>BUS </sub>which will cause its processor to initialize and announce its presence so that the host device will recognize the device. This is done by connecting a predetermined voltage (e.g., 3.3 V) as an attachment signal to one or both of the data lines D+, D− via a respective pull-up resistor depending upon the data transfer speed at which the smart card is to operate. In particular, the USB Specification defines three data transfer rates, namely low speed (1.5 Mb/s), full speed (12 Mb/s), and high speed (480 Mb/s).
0007Generally speaking, once the USB smart card is recognized by the host device, the smart card will send information identifying itself and its capabilities to the host device when prompted. This information is incorporated within various descriptors, namely device descriptors, configuration descriptors, interface descriptors, endpoint descriptors, and (optionally) string descriptors. Further information on USB descriptors may be found in the USB Specification. The host device will interpret this data using an appropriate driver and then inform the smart card what configurations and system resources it will be allotted during the current session. The smart card uses this information to enumerate itself for use in the system.
0008One particularly advantageous approach for managing pull-up connections to the differential data lines is disclosed in U.S. Application Ser. No. 2002/0066791 to Leydier et al., assigned to the assignee of the present application, and which is hereby incorporated herein in its entirety by reference. In particular, this application is directed to a smart card which has an IC with voltage conditioning circuitry and a pull-up resistor. The smart card, when inserted in a smart card adapter coupled to a host device, is capable of signaling the host device over a bus using the integrated pull-up resistor selectively coupled to a voltage output of the voltage conditioning circuitry and a first output of the smart card.
0009The voltage conditioning circuitry output is selectively coupled to the first output through the resistor responsive to the device being powered by the bus (but not transmitting). This tends to pull up the first output to the voltage level of the voltage source, which makes the smart card capable of being properly detected by the host device upon the bus being driven by a host. Selectively disconnecting the pull-up resistor while the smart card is transmitting or receiving results in a more balanced differential output signal. Since the pull-up resistor and voltage conditioning circuitry supplying the proper voltage to the pull-up resistor are an integrated part of the IC, no separate contact is required to supply voltage to the resistor. This permits the smart card to be compatible with the contact configuration of certain existing smart cards, and eliminates the need for the pull-up resistor or voltage conditioning circuitry to be included in the smart card adapter.
0010Moreover, the device may also be detached from the system bus for other reasons. For example, the device may be detached to perform a re-enumeration, to conserve power, to reduce communications overhead processing by the host device, or when the V<sub>BUS </sub>power supply is not within the range specified by the USB Specification.
0011Because of the enhanced functionality afforded by the USB Specification and the significant computing power which may be included in USB smart card integrated circuits, it is possible not only to support multiple applications with a smart card, but also multiple configurations, such as endpoint configurations, for example. An example of a USB device which supports two different endpoint configurations is disclosed in U.S. Pat. No. 6,122,676 to Brief et al. In particular, this patent is directed to a USB device which includes two mappings for relating a received token to an endpoint pipe. A host controller selects which of the two mappings the USB device will use during initialization or enumeration, and the host controller can also cause the USB device to change between the two configurations during operation.
0012While the above USB smart card devices provide improved operational flexibility, greater flexibility may be required in certain applications to achieve desired bandwidth utilization or even security against attacks to the USB system, for example.
SUMMARY OF THE INVENTION
0013In view of the foregoing background, it is therefore an object of the present invention to provide an integrated circuit, such as for a smart card, which supports multiple smart card applications and related methods.
0014This and other objects, features, and advantages in accordance with the present invention are provided by an integrated circuit for a smart card which may include a transceiver and a processor for communicating with a host device via the transceiver and performing a plurality of smart card applications. Moreover, the processor may be for cooperating with the host device to perform an enumeration based upon at least one default descriptor, and generating a look-up table for allocating data to respective smart card applications based upon the enumeration. Furthermore, the processor may also detect a system event and, responsive to the system event, cooperate with the host device to perform a new enumeration based upon at least one alternate descriptor and generate a new look-up table based thereon.
0015More particularly, the processor may detect certain system events which may make the current or default settings established based upon the at least one default descriptor undesirable, and in response change to an alternate descriptor and re-enumerate based thereon to change these settings. Further, as these settings are changed between enumerations, the way in which the integrated circuit and host device exchange data for use with the various smart card applications will likely change as well. As such, generation of a new look-up table with each successive enumeration provides a relatively quick and efficient way to allocate data to the appropriate application. In a USB implementation, for example, each of the plurality of applications will have one or more endpoints associated therewith, and the look-up tables may advantageously be used for allocating data to respective application endpoints.
0016By way of example, the system event may be a system utilization metric exceeding a threshold. For example, numerous devices could be connected to the host device which consume large amounts of system bus bandwidth. In such case, the system utilization metric may indicate that bus utilization is above a threshold, which would prompt the processor to re-enumerate using one or more alternate descriptors that would allow it to more efficiently utilize the limited bandwidth.
0017Another example of a system event may be the occurrence of attempted unauthorized communications. That is, if the processor perceives an attack on the system by an unauthorized user or eavesdropper, it may re-enumerate using a more secure or limited configuration to reduce the likelihood of being compromised by such an attack.
0018It should be noted that traditional ISO smart cards will go “mute” under such circumstances. However, current smart card designs generally have fairly robust CPUs, more memory, improved anti-tamper mechanisms, etc., as well as some additional (and previously unseen) evasion possibilities. Also, USB allows VSR enumeration/re-enumeration, multiple communication pipelines, USB on-the-go, etc. As the world expands for today's smart cards, so to does their ability to act and react to perceived attacks, while still keeping their propriety architectures secure.
0019Furthermore, the at least one alternate descriptor may be at least one device descriptor, configuration descriptor, interface descriptor, and/or endpoint descriptor, for example. The integrated circuit may further include at least one memory connected to the processor for storing the look-up tables. As noted above, the processor may operate in a USB mode, in which case the transceiver may be a USB transceiver.
0020A smart card in accordance with the invention may include a smart card body and an integrated circuit, such as the one described briefly above, carried by the smart card body. Such a smart card may also be included within a smart card system further including a host device and a smart card adapter connected to the host device for reading the smart card.
0021A method aspect of the invention is for operating a smart card for performing a plurality of smart card applications. The method may include performing an enumeration of the smart card in cooperation with a host device based upon at least one default descriptor, and generating a look-up table for allocating data to respective smart card applications based upon the enumeration. Moreover, the method may also include detecting a system event and, responsive to the system event, performing a new enumeration in cooperation with the host device based upon at least one alternate descriptor and generating a new look-up table based thereon.
BRIEF DESCRIPTION OF THE DRAWINGS
0022<figref idref="DRAWINGS">FIG. 1</figref> is a schematic block diagram of a smart card system in accordance with the present invention.
0023<figref idref="DRAWINGS">FIG. 2</figref> is schematic block diagram illustrating the smart card integrated circuit of <figref idref="DRAWINGS">FIG. 1</figref> in greater detail.
0024<figref idref="DRAWINGS">FIGS. 3 and 4</figref> are flow diagrams illustrating methods for operating a smart card in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
0025The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout, and prime notation is used to indicate similar elements in alternate embodiments.
0026Referring initially to <figref idref="DRAWINGS">FIG. 1</figref>, a smart card system <b>20</b> in accordance with the present invention illustratively includes a host device <b>21</b> having a communications port <b>22</b>, a smart card adapter or adapter <b>23</b> connected to the communications port, and a smart card <b>24</b> to be read by the smart card adapter. Generally speaking, the host device <b>21</b> will be a computer of some type, which could be a personal computer (PC), laptop, etc., for example.
0027Of course, smart card systems take many forms, so the host device <b>21</b> could be any number of computing devices capable of interfacing with a smart card, such as a cable or satellite television receiver/decoder, an automated teller machine (ATM) or other banking machine, a point-of-sale (POS) device (e.g., a cash register), etc., depending upon the given application. Another example would be a personal data assistant (PDA) or other USB device that is ordinarily a slave to a USB bus master (i.e., host), but when used in a USB on-the-go (OTG) mode can itself act as a limited USB bus master.
0028In the case of an ISO 7816 type smart card system, the port <b>22</b> may be a serial communications port connected to the internal system bus of the host device <b>21</b> (not shown). In the case of a USB type smart card system, the port <b>22</b> will be a USB port which is also connected to the internal system bus of the host device <b>21</b>, as will be appreciated by those of skill in the art. The smart card system <b>20</b> may advantageously be implemented as an ISO 7816 type system, a USB system, or a dual mode system which operates in both modes, for example, similar to the system described in U.S. Pat. No. 6,439,464 to Fruhauf et al., assigned to the assignee of the present invention, and which is hereby incorporated herein in its entirety by reference. Of course, other suitable smart card formats may also be used, as will be appreciated by those of skill in the art.
0029The smart card adapter <b>23</b> is of a type compatible with the particular operational protocol being implemented in the system <b>20</b> (e.g., an ISO 7816 type card reader, a USB type card reader, etc.). Of course, multiple readers <b>23</b> may be used, as well as multi-purpose readers which read more than one type of smart card or multi-mode smart cards. In addition, the card reader <b>23</b> can be remotely located with respect to the host device <b>21</b>, but it need not be. That is, in some embodiments the card reader <b>23</b> can be incorporated within the host device <b>21</b> or carried by a housing thereof, as will be appreciated by those of skill in the art. Additionally, in some embodiments the smart card adapter <b>23</b> may be incorporated into a smart card integrated circuit chip (see below), reducing the “reader” to little more that a “pass through” connector.
0030The smart card <b>24</b> illustratively includes a card body <b>25</b> and an integrated circuit (IC) <b>26</b> carried by the card body. Further, the smart card also illustratively includes contacts <b>27</b> for providing an electrical connection between the smart card adapter <b>23</b> and the IC <b>26</b>. Of course, it will be appreciated that in some embodiments the smart card <b>24</b> may be wireless and thus not require the contacts <b>27</b>. In such event, an antenna may be used instead of the contacts <b>27</b>, for example. Yet, for clarity of explanation, the present application will refer particularly to the examples of ISO 7816 and USB type smart cards, each of which uses a respective connector configuration defined by the various protocol documents noted above. Thus, the use of physical contacts <b>27</b> on the card body <b>25</b> (and corresponding contacts at the card reader <b>23</b>) will be assumed for purposes of the present discussion.
0031It should be noted that the smart card body <b>25</b> may be made of various types of materials and take various shapes. Perhaps the most common material used for smart cards is plastic, but other suitable materials may also be used. Moreover, smart cards are also generally rectangular in shape and thin enough to fit in a wallet, similar to a credit card, but again, other shapes and thicknesses may be used. The IC <b>26</b> may be encased within the card body <b>25</b>, as illustratively shown, or it may be recessed therein but still exposed. Other mounting configurations are possible, as will be appreciated by those of skill in the art, which are anticipated by the present invention. It should also be noted that the smart card <b>24</b> may be incorporated or built into another device as a token or identification circuit therefor, for example.
0032More particularly, the IC <b>26</b> illustratively includes a transceiver <b>30</b> which is connected to the contacts <b>27</b> and sends/receives signals to/from the host device <b>21</b> via the smart card adapter <b>23</b>, as will be appreciated by those of skill in the art. The transceiver <b>30</b> is controlled by a processor <b>31</b> which also performs the various smart card operations, as will be discussed further below. Furthermore, buffer circuitry <b>32</b> is included within the IC <b>26</b> for buffering signals transmitted between the IC and the host device <b>21</b>. One particularly advantageous buffer configuration which may be used in accordance with the present invention is disclosed in co-pending U.S. patent application entitled SMART CARD WITH SELECTIVELY ALLOCATABLE DATA BUFFERS AND ASSOCIATED METHODS, Ser. No. 10/828,948, the entirety of which is hereby incorporated by reference.
0033An exemplary USB embodiment of the IC <b>26</b>′ is illustratively shown in <figref idref="DRAWINGS">FIG. 2</figref>. As noted above, a USB device announces its presence to a host device by providing an attachment signal on one or both of the differential signal lines D+, D− of the system bus. In the illustrated embodiment, the IC <b>26</b>′ includes data terminals <b>34</b>′, <b>35</b>′ which are connected via the contacts <b>27</b> to the differential signal lines D+, D− of the system bus, respectively.
0034Moreover, the IC <b>26</b>′ also illustratively includes random access memory (RAM) <b>33</b><i>a</i>′, and non-volatile memory <b>33</b><i>b</i>′ (e.g., electrically erasable programmable read only memories (EEPROMs), etc.). The RAM <b>33</b><i>a</i>′ may be used for temporarily storing data to be processed, for example, and may also be used for storing look-up tables for allocating data to respective smart card applications, as will be discussed further below. The non-volatile memory <b>33</b><i>b</i>′ may be used for storing permanent and/or semi-permanent information which needs to be retained by the IC <b>26</b>′ when not connected to (and powered by) the smart card adapter <b>23</b> (e.g., device descriptors, configuration descriptors, interface descriptors, endpoint descriptors, string descriptors, supported USB requests, etc.).
0035The IC <b>26</b>′ further includes power terminals <b>36</b>′, <b>37</b>′ for connection to the V<sub>BUS </sub>and ground lines of the system bus, respectively. Moreover, the IC <b>26</b>′ also illustratively includes voltage conditioning circuitry <b>38</b>′ connected to the V<sub>BUS </sub>and ground lines for providing the appropriate voltage level (e.g., 3.3 V) at the data terminals <b>34</b>′, <b>35</b>′ as an attachment signal for recognition of the smart card <b>24</b> by the host device <b>21</b>.
0036In particular, when the IC <b>26</b>′ is to operate in a low speed USB mode, the processor <b>31</b>′ causes the attachment signal to be provided to the D− terminal <b>35</b>′ via a pull-up resistor <b>39</b>′ by controlling a switch <b>40</b>′. Similarly, when the IC <b>26</b>′ is to operate in a full speed mode, the attachment signal is applied to the D+ terminal <b>34</b>′ via a pull-up resistor <b>41</b>′ by controlling a switch <b>42</b>′. Attachment for high-speed operation initially involves application of an attachment signal to the D+ terminal <b>34</b>′ via a pull-up resistor <b>41</b>′ as well (for more details on high speed attachment, see Section 7.1 of the USB Specification). One particularly advantageous approach for implementing the voltage conditioning circuitry <b>38</b>′ and switching circuitry <b>40</b>′, <b>42</b>′ may be found in the above-described application of Leydier et al., although other suitable circuitry may also be used.
0037In accordance with the present invention, the card memory <b>33</b> not only stores default descriptors for enumerating the smart card <b>24</b>, as noted above, but it also stores alternate descriptors that may advantageously be used instead of one or more of the default descriptors for enumerating the smart card. More particularly, the use of the default and alternate descriptors for enumeration of the processor <b>31</b>′ will now be described with reference to the flow diagrams of <figref idref="DRAWINGS">FIGS. 3 and 4</figref>. Beginning at Block <b>50</b>, upon first being connected to the smart card adapter <b>23</b>, the processor <b>31</b>′ receives its operating voltage from the V<sub>BUS </sub>terminal <b>36</b>′, which causes it to begin initializing. (It should be noted that the smart card <b>24</b> could be (or be included within) a self-powered device which need not receive power from the V<sub>BUS </sub>terminal <b>36</b>′ to begin such initialization in some embodiments.)
0038More particularly, following the detection and stabilization of its operating voltage, the processor <b>31</b>′ commences and completes its power-on-reset (POR) sequences, as will be appreciated by those of skill in the art. The default device descriptor(s) for the smart card <b>24</b> which resides in the memory <b>33</b>′ is then retrieved and loaded in the appropriate registers, etc. for communication to the host device <b>21</b>.
0039The processor <b>31</b>′ makes its presence known on the system bus by connecting the appropriate pull-up resistor <b>39</b>′, <b>41</b>′ to the D− and/or D+ terminals <b>34</b>′, <b>35</b>′, respectively, as described above, (and via appropriate signaling protocols, in the case of high speed operation, for example) at Block <b>51</b>. This is also referred to as “attaching” to the system bus. Generally speaking, the presence of the newly attached smart card <b>24</b> is observed by the upstream smart card adapter <b>23</b>, and this information is relayed to the host device <b>21</b>. Once the host device <b>21</b> has queried the smart card <b>24</b> for its device descriptor, an appropriate USB driver is loaded at the host device for communicating with the smart card. The USB driver will then query the smart card <b>24</b> for its remaining descriptors (e.g., configuration, interface, device, and/or string descriptors).
0040Once the USB host has received the descriptors, it processes these descriptors and, depending in large part upon the bandwidth/processing requirements of other devices connected to the system bus, determines what resources to allocate to the smart card <b>24</b>. The host device <b>21</b> then transmits this allocation information to the smart card <b>24</b>, and the processor <b>31</b>′ enumerates itself for use in the system <b>20</b> based thereon. By way of example, such allocation information may include bandwidth allocations for the supported endpoints, allowed data transmission speed, etc.
0041Moreover, it should be noted that the IC <b>26</b>′ may in some embodiments advantageously be used for performing a plurality of smart card applications. Indeed, the USB Specification provides for multiple applications in a given USB device, for example, and the ever-increasing computing power available on smart cards is allowing smart cards to take advantage of this functionality. In fact, the processor <b>31</b>′ may have its own an embedded operating system capable of managing multiple concurrent (and embedded) applications (e.g., Java applets). These embedded applications may work in cooperation with the host-side applications (e.g., user log-in and authentication applications, Internet-based banking applications, digital rights management applications for audio/video transfer, etc.). Of course, numerous other applications may be used in accordance with the present invention, as will be appreciated by those skilled in the art.
0042Yet, without the ability to quickly and accurately allocate data to respective applications, the implementation of numerous smart card applications can become unmanageable. As such, the processor <b>31</b>′ may advantageously generate a look-up table as part of (or after) its enumeration for allocating data to respective smart card applications supported by the processor. More particularly, in the USB environment, the various supported applications have respective endpoints associated therewith. Each endpoint is essentially a direct pipeline to one or more functions of a given applications. For example, a given application will typically have a control endpoint for communicating control requests for the application. It may also have an interrupt endpoint for interrupt requests, as well as one or more bulk and/or isochronous endpoints for data transfer.
0043Accordingly, in the exemplary USB implementation, the processor <b>31</b>′ may optionally generate a look-up table, based upon PC application (and driver) information, which allocates data received from the host device <b>21</b>′, for example, to the appropriate endpoint established during enumeration for that data, at Block <b>53</b>. As such, by generating the look-up table and using it for managing for data allocation, the processor <b>31</b>′ advantageously allows substantially simultaneous access to multiple and unrelated smart card resources.
0044In accordance with another advantageous aspect of the invention, the processor <b>31</b>′ detects one or more system events which indicate that re-enumeration based upon one or more of the alternate descriptors is appropriate, at Block <b>54</b>. By way of example, the system event may be a system utilization metric exceeding a threshold, at Block <b>60</b>′. For example, a suitably crafted USB driver may not only collect the default descriptors from the processor <b>31</b>′, but it may also collect relevant information regarding the nature of the other USB devices which are currently being managed by the host device <b>21</b>.
0045Based upon this information, the driver may then relay the appropriate information back to the processor <b>31</b>′, which may include an embedded application that uses this information to determine whether some other configuration is more desirable. In particular, this determination may be based upon factors such as the types of PC-based applications requesting resources of the smart card <b>24</b> and their likely bus bandwidth requirements, as well as the number and types of other USB devices connected to the system bus and their bus bandwidth allocations, for example.
0046If the system event has occurred and the processor <b>31</b>′ determines that another configuration is appropriate, the processor will then “detach” itself from the bus by opening the appropriate switch <b>39</b>′, <b>41</b>′, at Block <b>55</b>, so that the attachment signal(s) will no longer be provided and its presence will cease to be recognized by the host device <b>21</b>. Furthermore, the processor <b>31</b>′ may then generate a new look-up table based upon the results of the new enumeration, at Block <b>56</b>. That is, because various settings of the smart card <b>24</b> may change from one enumeration to the next, the processor <b>31</b>′ advantageously generates new look-up tables for data allocation as required to account for the reallocation of endpoints, etc.
0047It should be noted that the look-up table(s) content is established by the USB smart card processor <b>31</b>′ (i.e., there is no control by the host device) based upon decisions it has made. These decisions are influenced by information it has received from the “smart” USB driver (i.e., information about bus utilization, etc., as it is loaded into the kernel) and/or an application (i.e., software) running on the host device <b>21</b>, which uses the smart card resources of the USB smart card device. Therefore, the look-up table(s) is preferably prepared before enumeration, and more particularly before assertion (i.e., attachment of the USB speed detect pull-up resistors to the D+/D− signal lines).
0048Later, the device may selectively “detach” (due to a “system event”), change its descriptors and look-up table mappings, reattach and renumerate. That is, the processor <b>31</b>′ reattaches itself to the system bus by providing the attachment signals(s), as noted above (Block <b>57</b>), and then proceeds to cooperate with the host device <b>21</b> as described above to perform a new enumeration, but this time using one or more of the alternate descriptors, at Block <b>58</b>, thus concluding the illustrated method (Block <b>59</b>). Indeed, with the new enumeration sequence, the processor <b>31</b>′ may identify itself such that it will more appropriately match the particular USB environment and requirements of the PC-based (or other) applications operating in the system <b>20</b> which may soon use its resources, or better utilize available bus bandwidth, for example. It should be noted that a combination of the default and alternate descriptors may be used during successive or new enumerations, i.e., not all of the default descriptors need be changed.
0049Another example of a system event which may trigger a new enumeration is the occurrence of attempted unauthorized communications, at Block <b>61</b>′, such as would be the case when someone attempts to eavesdrop or hack into the system <b>20</b>. In particular, observation, tampering, or attacking entities generally rely upon known functionalities and modes of operation of the object of their attack. The target of such activities is very often monolithic in the manner in which it will behave, making it easier for the observer or attacker to figure out what is going on inside the target.
0050However, since the smart card <b>24</b> in accordance with the invention can advantageously change its attributes and how it behaves and appears using alternate descriptors, this will make it much more difficult for a would-be hacker to compromise the security of the smart card <b>24</b>. That is, the ability to adjust descriptors and endpoint support, in conjunction with the ability to detach and re-attach, makes it possible for the smart card <b>24</b> to still perform its intended duties, but in a manner which is less predictable to a would-be hacker or eavesdropper. The ability of a would-be hacker to isolate the smart card <b>24</b> as a target by its USB address can be guarded against by effectively changing this address using alternate descriptors. Moreover, if particular endpoints and/or transfer modes are being used to isolate the smart card <b>24</b> as a target, the processor <b>31</b>′ can modify the signature patterns which make it “visible” using alternate descriptors, as will be appreciated by those of skill in the art.
0051Moreover, because the processor <b>31</b>′ will continue to receive its operating voltage (i.e., V<sub>BUS</sub>) during the selective removal of the attachment signals, as noted above, the processor <b>31</b>′ may monitor communications with the host devices <b>21</b> (i.e., between the host device and other devices connected to the system bus) in a “mute” mode during removal of the attachment signal, for example, if desired. As such, the processor <b>31</b>′ may keep the smart card <b>24</b> in the mute mode until the perceived attack is no longer present, and then initiate the re-attachment and new enumeration. Of course, in some embodiments the driver may disable the downstream port associated with the smart card adapter <b>23</b> to which the smart card <b>24</b> is attached, which would prevent operation in the mute mode.
0052Other exemplary system events which may cause the processor <b>31</b>′ to detach from the system bus and perform a new enumeration may include the availability of support for multi-application services, a requirement or availability to change between data transmission speeds (i.e., between low, full, and high speeds), and/or the need to perform a more “sophisticated” power-up or power-down sequence, as will be appreciated by those skilled in the art. Other system events will also be appreciated by those of skill in the art and are contemplated by the present invention.
0053It should be noted that in some embodiments the IC <b>26</b>′ may also include a mechanism for overwriting those portions of the registers, etc., which store the information about supported endpoints, alternate settings, configurations, and interfaces, as described above. Similarly, it may also be desirable in some embodiments to include a mechanism by which the processor <b>31</b>′ may overwrite the contents of the registers, etc., which store the device descriptor of the smart card <b>24</b>. Moreover, the way in which the smart card <b>24</b> announces its presence to the host device <b>21</b> may vary depending upon the particular protocol or implementation used, as will be appreciated by those skilled in the art.
0054It should also be noted that after each enumeration of a USB device a PC driver is loaded in memory. The PC driver is selected based upon a serial number ID and product ID sent during the enumeration phase. The PC driver can also be available for a class of devices. In this case, the USB device sends the type of class IDs that are compatible during the enumeration, and the class driver is automatically loaded. Thus, in accordance with the invention, if the USB device during the enumeration indicates a special driver and the driver is not present, the device can re-numerate with another driver, vendor ID, or class ID until it finds the correct driver. It could also download, for example, a new Java application. It may then need to load a new PC class, driver, etc. This process could also be used for security reasons. A USB device could jump from one PC driver to another one, and it thus becomes difficult to “spy” on its communication at the PC kernel level, as will be appreciated by those skilled in the art.
0055Various advantages of the present invention will be apparent to those skilled in the art from the foregoing discussion. For example, multiple host-based applications may be supported and run simultaneously on the same bus, and each with different characteristic bus utilization requirements. The present invention also promotes increased utilization of available USB smart card device resources, as well as the capability to handle relatively high speed bus bandwidth applications, such as real-time bi-directional data streaming and processing and digital rights management, for example. Further, the present invention provides continued support not only for more traditional, low-speed bus bandwidth applications, but also for high-speed bus bandwidth applications such as those noted above.
0056The various features and advantages of the present invention will be further appreciated with reference to a brief discussion of some of the peculiarities and challenges unique to smart cards. In contrast to typical ISO, USB, etc., devices, smart cards (i.e., smart card ICs) are very secure (i.e., mechanically, physically, electrically, and programmatically). Moreover, smart card ICs have exceptionally few physical pathways between their die and the outside world.
0057Generally speaking, the flow of data into and out of the “core” of a smart card IC is very carefully managed by a USB Device Core (UDC), well-defined buffering, and through the use of an isolation mechanism (which may be thought of as a highly secure semiconductor (i.e., silicon) firewall). As such, the use of buffering for external communications (i.e., ISO, USB) is necessarily kept outside of this firewall for security reasons. Moreover, the internal CPU of a smart card IC has numerous security mechanisms built into its core to provide the highest possible security between resident applications (e.g., Java applets) and the embedded resources (e.g., RAM, ROM, NVRAM, mathematical mechanisms, encrypted data, particular CPU instructions and functionalities, etc.).
0058Not only do smart cards have a number of features to prevent observation and tampering from the outside world typically not found in other types of ISO, USB, etc. devices, they also embody well-tuned cores. These cores are generally capable of performing lengthy and complex cryptographic algorithms which can produce in minute fractions of a second results which would take typical computer systems many magnitudes more time, from minutes to hours, to even weeks or months.
0059Furthermore, smart card ICs are subject to many constraints that other ISO, USB, etc. devices (and also many other ICs) are not. For example, physical size is often a key limiting factor which effects cost, available RAM, etc. Other such constraints include minimal external connectivity requirements, electrical/power constraints, etc. Another important concern of smart cards is the timeliness and completeness with which requested data is generated.
0060It is in view of the foregoing constraints imposed on smart card ICs (i.e., the silicon firewall, the highly secure CPU core, the exclusive control of the CPU and OS over all else, the specialized internal machinery, the exhaustive memory protection schema, the various anti-spy, anti-tamper, anti-attack mechanisms, etc.) that the features of the invention can be fully appreciated. That is, all of the above constraints impose a significant burden upon smart card IC design, and this burden may be substantially reduced in accordance with the teachings of the present invention, as will be appreciated by those skilled in the art. It should be further noted that, as used herein, “application” is intended to be broadly construed. For example, an application may be a process by which a specified resource is utilized. It may also refer to an operative piece/configuration of software that performs a specific task or set of tasks. As such, “applications” may run on a host device on top of the kernel and associated USB infrastructure (i.e., a custom application for viewing on-line financial information, to view a movie, listen to downloadable music, authenticate logging into a computer, etc.). In addition, applications can also take the form of embedded software programs which run under the robust embedded OS of the smart card. As with PC-based applications, embedded applications may be run concurrent with each other, and vie for various resources and services provided by the smart card and its OS.
0061Additional features of the invention may be found in co-pending applications entitled SMART CARD WITH SELF-RECONFIGURATION FEATURES AND RELATED METHODS; Ser. No. 10/829,007; SMART CARD WITH SELECTIVELY ALLOCATABLE DATA BUFFERS AND ASSOCIATED METHODS, Ser. No. 10/828,948(52041); and SMART CARD WITH SELF-DETACHMENT FEATURES AND RELATED METHODS, Ser. No. 10/829,008(52042), the entire disclosures of which are hereby incorporated herein by reference.
0062Many modifications and other embodiments of the invention will come to the mind of one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is understood that the invention is not to be limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.
Contents5
3 sheets
Sheet 1 Sheet 2 Sheet 3
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8566934B2 | Cited by | United States of America | Applicant |
| US9875354B1 | Cited by | United States of America | Applicant |
| US8869273B2 | Cited by | United States of America | Applicant |
| US8264257B2 | Cited by | United States of America | Search report |
| US10678913B2 | Cited by | United States of America | Applicant |
| US8442586B2 | Cited by | United States of America | Search report |
| US2011001558A1 | Cited by | United States of America | Pre-grant |
| US2009280865A1 | Cited by | United States of America | Pre-grant |
| WO0016255A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0223357A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2001056513A1 | Cites | United States of America | Applicant |
| US2002066791A1 | Cites | United States of America | Applicant |
| US2005240704A1 | Cites | United States of America | Search report |
| US2005251596A1 | Cites | United States of America | Search report |
| US6006303A | Cites | United States of America | Applicant |
| US6122676A | Cites | United States of America | Applicant |
| US6157966A | Cites | United States of America | Applicant |
| US6157975A | Cites | United States of America | Applicant |
| US6402026B1 | Cites | United States of America | Applicant |
| US6439464B1 | Cites | United States of America | Applicant |
| US6463537B1 | Cites | United States of America | Applicant |
| US6523081B1 | Cites | United States of America | Applicant |
| US6547150B1 | Cites | United States of America | Applicant |
| Information Technology-Identification Cards-Integrated Circuit(s) cards with Contacts, part 12: USB Interface and Operating Procedures, ISO/IEC 2002, pp. 1-19. | Non-patent | – | Third party observation |
| Anderson, Universal Serial Bus System and Architecture, Chapter 3: The Big Picture, 1997, pp.45-46. | Non-patent | – | Third party observation |
| Garney et al., USB Hardware and Software, Chapter 11: USB Device Framework, 1998, pp. 305-310. | Non-patent | – | Third party observation |
| Information Technology-Identification Cards-Integrated Circuit(s) cards with Contacts, part 12: USB Interface and Operating Procedures, ISO/IEC 2002, pp. 1-19. | Non-patent | – | Applicant |
| Anderson, Universal Serial Bus System and Architecture, Chapter 3: The Big Picture, 1997, pp.45-46. | Non-patent | – | Applicant |
| Garney et al., USB Hardware and Software, Chapter 11: USB Device Framework, 1998, pp. 305-310. | Non-patent | – | Applicant |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2005236491A1 | United States of America | A1 | |
| US7328849B2This record | United States of America | B2 |
44 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Terminal Disclaimer FiledDIST | DIST | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| New or Additional Drawing FiledC614 | C614 | |
| Application Is Now CompleteCOMP | COMP | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Fee paymentFPAY | FPAY | |
| Certificate of correctionCC | CC | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 07328849
- Application
- 10828747
Titles
- English
- Smart card providing data mapping for multiple applications and related methods
Patent term adjustment
- A delay
- +363 daysthe office missed an examination deadline
- Net adjustment
- 363 days
Classification
- CPC, 4
- G07F7/1008
- G06Q20/341
- G06Q20/3552
- G06Q20/35765
- IPC, 2
- G06K19 06
- G07F7 10