Abstract:
A chip card for communicating with an external device over a logical interface. The chip card has a test module capable of forwarding standardized data units to a standardized data unit handler and also capable of forwarding said standardized data units to other components of the chip card, such as an updated standardized data unit handler, thus allowing the chip card to utilize industry standards adopted after its manufacture.

Description:
The present application is a continuation of application PCT/CH99/00553 filed on Nov. 19, 1999 of which the content is included by reference. 
    
    
     FIELD OF THE INVENTION 
     The present invention concerns a chip card, in particular a chip card that can be adapted after its manufacture and distribution. 
     RELATED ART 
     Chip cards communicate with external devices, for example with a mobile telephone, over a logical interface often called API (Application Protocol Interface). The external device wanting to access a functionality of the chip card sends an order over this API interface. The card that receives an order from the external device can decode it and trigger the corresponding action. 
     Such orders are usually encoded as structured data units, called APDU (Application Packet Data Unit). An APDU consists usually of a header and a body, the header indicating the instruction to be performed and the instruction parameters whilst the body, which is not always present, contains data. This protocol is described among others in the ISO norm ISO/IEC 7816, part 4. Further orders are specified in system specific documents (e.g. GSM 11.11, GSM 11.14). 
     The definition of the API interface and the standardization of the APDU so as to be recognized by chip cards are developed mainly in standardization forums or are proposed by individual firms. For reasons of compatibility between chip cards and devices of different manufacturers, a strong international standardization of the API interface is a desirable aim. 
     The standardization of APDU orders is however a process that often happens more slowly than the technical development of the chip cards. For this reason, conventional chip cards cannot fulfill all the wishes of the users and in particular not all the wishes of the services providers or of the telecommunication network operators. Functionalities of a chip card that can technically already be realized and are even sometimes implemented in the card can often be offered only after the next standardization of the APDU specification. 
     WO9819237 (Schlumberger) describes a chip card with a virtual Java machine in which different applications are stored in an EEPROM. Applications can thus be modified or replaced. The instruction handler is however stored in the ROM, so that no new instructions can be added to the existing set of instructions. 
     It is therefore an aim of this invention to propose a method with which an external device can access the functionalities of a card for which the APDU has been standardized only after the manufacture of the chip card. 
     BRIEF SUMMARY OF THE INVENTION 
     According to the present invention, these aims are achieved in particular through the characteristics of the independent claims. Further advantageous embodiments are moreover described in the dependent claims and in the description. 
     In particular, these aims are achieved in that the functionality made available through the chip card when a data unit is received over the API interface is decoded, interpreted and performed by the application logic in the EEPROM part of the chip card. 
     In this way, the so-called APDU handler in the chip card and which determines the reaction to incoming data units can be modified, for example completed, renewed or replaced, at any moment in order to take into account newly defined, proprietary or non standardized APDU. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
       Hereafter, preferred embodiments of the invention will be described in more detail with the aid of the attached figures, in which: 
         FIG. 1  shows a diagrammatic view of a system with a conventional chip card. 
         FIG. 2  shows a diagrammatic view of an APDU order according to the invention. 
         FIG. 3  shows a diagrammatic view of a system with a chip card according to a first embodiment of the invention. 
         FIG. 4  shows a diagrammatic view of a system with a chip card according to a second embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The following description refers to the special case of a chip card that is used as an identification module in a digital cellular mobile telephone, for example a SIM (Subscriber Identification Module) card or a WIM (Wireless Application protocol Identification Module) card, or WIM/SM (SIM with WIM application) that can be used for example in a GSM (Global System for Mobile Telecommunication), WAP (Wireless Application Protocol) or UMTS mobile telephone. The one skilled in the art will however understand that the present invention can also be applied to other types of chip cards, for example with JAVA (trademark of SUN Microsystems) or with OpenCard cards. 
       FIG. 1  shows diagrammatically an example of a known conventional system. The system comprises a terminal  3  (Mobile Equipment ME) and a conventional SIM or WIM card  5 . An application  1 , for example a browser or an application program, for example a program from a service provider, is executed by data processing means (not represented) in the mobile equipment  3 . The application communicates with the mobile equipment  3  over an API (Application Protocol Interface)  2  that is here not detailed. 
     The mobile equipment  3  communicates with the SIM card  5  over another API interface  4 . The mobile equipment  3  usually takes over the role of master of the communication over this interface whilst the SIM card  5  answers as slave. Protocol variants are however also known (for example according to SIM-Toolkit, i.e. GSM 11.14) in which the SIM card takes over, at least temporarily, the role of master. 
     A step in the API protocol consists in an order being sent to the chip card  5 , in the card executing the order and if necessary in a reply being sent to the mobile equipment  3 . Thus either orders or replies are exchanged over the interface  4 . Data can be contained both in the orders and/or in the replies. 
     These questions and orders are encoded with standardized APDU (Application Protocol Data Unit). Some standardized APDU for ISO chip cards are described in the norm ISO/IEC 7816-4:1995(E). Additional APDU have been defined for SIM cards and for WIM cards in order to expand the functionalities of the API interface  4 . 
       FIG. 2  shows the typical structure of an APDU  20 . The data unit comprises a compulsory header  200  with four bytes and an optional body  201  of variable length. 
     The header contains a first byte (CLA) used to indicate among others which API version the data unit complies with. A second byte (INS) gives the instruction that is to be executed or has just been executed by the chip card  5 . Depending on the instructions, two further parameters P 1  and P 2  can be indicated. If an instruction does not require a parameter P 1  and/or P 2 , this parameter must be set to zero. 
     The optional body  201  contains dada and at least one byte indicating the length of these data and/or the maximal length of the expected reply. 
     The conventional chip card  5  comprises generally a ROM  50 , an EEPROM  51  and a RAM  52 , as well as data processing means (not represented). The ROM nowadays typically has 64 Kbytes and usually includes the operating system, a Java virtual machine (JVM, trademark of SUN Microsystems) and different components F 1 , F 2 , . . . , for example JavaBeans, Applets or programs for making available the card&#39;s different functionalities. Components are also stored in the EEPROM  51 , for example components that have been downloaded as applet after the personalization of the card as well as personal user data, for example a telephone directory, an electronic certificate, etc. The EEPROM can for example comprise 16 or 32 Kbytes. Temporary data are stored in the RAM  52 , for example temporary variables. Applications (applets) can furthermore be stored in the EEPROM. 
     A data unit handler  500 , often called APDU handler, receives the APDU of the mobile equipment  3  received over the API interface  4  and analyses the header  200 , in particular the bytes CLA and INS, in order to forward the order to the appropriate component F 1 , F 2 , . . . that can execute the order. The APDU handler  500  can then receive the reply of this component and send this reply over the API interface  4  to the mobile equipment  3 . 
     The APDU handler  500  is usually implemented in the ROM part  50 . The program is executed by the data processing means when an incoming APDU is detected. It is however also possible to devise the APDU handler as a circuit. A problem with this configuration is that the mobile equipment  3  and the application cannot access new functionalities of the card made available through new components G 1 , G 2 , G 3  in the ROM, EEPROM or RAM, as long as no APDU  20  has been standardized for this functionality. Even when such an APDU has been defined and standardized, chip cards  5  that have already been distributed cannot offer this functionality if they only have a conventional APDU handler  500  unable to recognize this APDU that has been defined later, even if the required component G 1 , G 2 , . . . is contained in the card. For these reasons, new functionalities that would be possible through the continuous and fast development of chip cards can be distributed only slowly. 
       FIG. 3  shows an example of a first embodiment of a chip card  5  according to the invention, for example a SIM or WIM card that can solve these problems. In this embodiment, the chip card has a test module  510  that checks all APDU  20  received over the API interface  4 . If the test module detects that the received APDU was already provided at the time the ROM part  50  was manufactured, it forward this APDU to a conventional APDU handler  500  in the ROM part  50  that makes available the corresponding functionality F 1 , F 2 , . . . as described above. If, on the other hand, the test module detects that the received APDU  20  was not provided at the time the ROM part  50  was manufactured, for example because it was standardized only in a later version of the API interface  4 , it forwards this APDU to a new, modified APDU handler  511  that calls up the component G 1 , G 2 , G 3 , . . . provided for this new APDU in the ROM or EEPROM. 
     The test as to whether the received APDU should be sent to the conventional APDU handler  500  or to a new APDU handler  511  can be performed in various ways. In a first embodiment, the module  510  contains a list of APDU that are to be forwarded to the conventional APDU handler  500  and/or a list of newly defined APDU that are to be directed to the new APDU. This list is preferably located also in the EEPROM and can thus be adapted. In another embodiment, the APDU handler  500  directs the received APDU to the new APDU handler  511  only if it receives an error message from the conventional APDU handler, namely if the conventional APDU handler cannot process this APDU. In another embodiment, the test module  510  can itself determine, on the basis of the CLA or INS bytes, to which APDU handler the received APDU  20  is to be forwarded. In yet another embodiment, newly defined APDU that are to be forwarded to the new APDU handler  511  are specially marked, for example by means of being misused, for example by containing special, impossible or very improbable parameters P 1 , P 2  or data  201 . 
     The new APDU handler  511  is preferably located in the EEPROM  51 . In this manner, it can also be altered after the manufacture of the ROM  50 , in order for example to ensure access to new components G 1 , G 2 , G 3  that have meanwhile been implemented. Preferably, the test module  510  is also located in the EEPROM so that the test conditions can be set after the manufacture of the ROM and/or after the distribution of the chip cards. The test module  510  could however also be located in the ROM  50  or even in the RAM  52 . 
     The new components G 1 , G 2 , G 3 , . . . can be contained in the ROM  50  or in the EEPROM  51 . Further components temporarily stored in the RAM  52  can also be made available. If the chip card  5  can play the role of master of the interface  4  at least temporarily, it can with this mechanism access also components, for example applets, that are made available by the mobile equipment  3 . It is even possible for the APDU handler  501  to access components that are located in an external device connected with the mobile equipment  3 , for example over a contactless interface, for example an infrared, RFID or Bluetooth interface. 
     In a variant embodiment of the invention (not represented), the APDU handler  500  is modified in the ROM part  50  so that it automatically forwards all received APDU that are not known to a new adaptable APDU handler  511  in the EEPROM  51 . This embodiment makes it possible to forgo the test module  510 : that which cannot be processed by the conventional APDU handler  500  is automatically transmitted to the new APDU handler  511 . 
       FIG. 4  shows a further variant embodiment of a chip card according to the invention. The same or similar features are referred to in all figures with the same reference numbers and will not be described again unless this is necessary. In this embodiment, the normal APDU handler usually located in the ROM  50  has been replaced with a modified APDU handler  512  in the EEPROM. In this manner, it can be adapted at any time in order to take into account newly defined APDU. 
     This variant embodiment allows a great flexibility, since new components G 1 , G 2 , G 3  and new APDU can be implemented at any time in the card  5 . 
     In a variant embodiment (not represented) the modified APDU handler is also located in the RAM  52  so that it can easily be modified through the chip card&#39;s operating system or through the application  1 . 
     In this manner, an application  1  can access functionalities of a chip card  5  that were not provided at the time of manufacture of the card and for which no APDU has been standardized, for example functionalities G 1 , G 2 , G 3  . . . that were downloaded as applet over an air interface only after the personalization or even after the distribution of the card. 
     For example, the test module  510  and/or the new APDU handler  511  resp.  512  can be adapted with a message over a mobile radio network, for example with a SMS message, a USSD message a GPRS packet, an IP packet, etc. The test module  510  and/or the APDU handler can also be modified or completed by an application  1 , for example a browser, that has been loaded for example over the air interface or with a data carrier. 
     In a variant embodiment of the invention, each APDU can trigger the execution of several different functions in the chip card  5 . A special APDU defines in which state the card is and which set of functions is to be used in future. This variant allows for all functionalities of the chip card to be replaced by sending a single APDU, by means of incoming APDU being processed by a new APDU handler. In this manner, for example, all parameters and components stored in the EEPROM  51  can temporarily be replaced. Another special APDU can then return the chip card to its normal state.