Method of managing privileges in a tamper-proof device comprising several software containers
11416637 · 2022-08-16
Assignee
Inventors
- Fabien Courtiade (Gemenos, FR)
- Florent Labourie (Gemenos, FR)
- Denis Dubois (Gemenos, FR)
- Syarif Ahmad (Gemenos, FR)
- Jianrong Yang (Gemenos, FR)
- Nopiga Pahala (Gemenos, FR)
- Shier Loon Sharon Yong (Gemenos, FR)
Cpc classification
H04L63/16
ELECTRICITY
H04W12/35
ELECTRICITY
H04W12/04
ELECTRICITY
H04W4/60
ELECTRICITY
International classification
H04W12/30
ELECTRICITY
H04W4/60
ELECTRICITY
Abstract
The invention is a method for managing a tamper-proof device comprising a processor and an operating system able to handle a set of communication protocols with external entities. The operating system accesses a ruling data specifying for each communication protocol of the set whether Card Lock, Card Terminate and Final Application privileges as defined by GlobalPlatform Card Specification (V2.3) are authorized or forbidden. Upon receipt of a command from one of said external entities, the operating system uses the ruling data to deny or to authorize execution of the command based on the communication protocol used to convey the command.
Claims
1. A method for managing a secure element comprising a processor and an operating system configured to handle a set of communication protocols with external entities, wherein the operating system accesses a ruling data specifying for each communication protocol of said set whether Card Lock, Card Terminate and Final Application privileges as defined by GlobalPlatform Card Specification are authorized or forbidden and wherein, upon receipt from one of said external entities of a command whose execution depends on one of said privileges, the operating system identifies which communication protocol of said set of communication protocols has been used to convey the command then uses the identified communication protocol as a discriminator to deny or to authorize said execution of said command based on the ruling data.
2. The method according to claim 1, wherein the operating system uses a transport layer of the identified communication protocol as a discriminator to deny or to authorize execution of said command based on the ruling data.
3. The method according to claim 1, wherein the secure element comprises both a first software container including a security domain compliant with GlobalPlatform Card Specification and a second software container including a Telecom profile compliant with GSMA Remote Provisioning Architecture for embedded UICC Technical Specification (SGP.02).
4. The method according to claim 1, wherein the secure element comprises a registry storing a state set to SECURED, wherein the command is a SET STATUS requesting a change toward CARD_LOCKED state, said SECURED and CARD_LOCKED states and SET STATUS being compliant with GlobalPlatform Card Specification, and wherein the operating system denies execution of the command if the communication protocol used to convey the command is compliant with a transport layer protocol as defined by ETSI ISO7816-3, and wherein the operating system authorizes execution of the command if the communication protocol used to convey the command is compliant with SPI or SWP.
5. The method according to claim 4, wherein the operating system receives, from a source internal to the secure element, a request to change toward CARD_LOCKED state and wherein the operating system denies execution of the request if the source belongs to a software container including a Telecom profile compliant with GSMA Remote Provisioning Architecture for embedded UICC Technical Specification.
6. The method according to claim 1, wherein the set of communication protocols comprises T=0 or T=1 as defined by ETSI ISO7816-3 and at least one of SWP contactless type A, SWP contactless type B, SWP contactless type F, APDU Gate or SPI.
7. The method according to claim 1, wherein the secure element is an embedded secure element, an integrated secure element, a secure enclave, a smart card or a Machine-To-Machine device.
8. A secure element comprising a hardware processor communicatively coupled to an operating system configured to handle a set of communication protocols with external entities, wherein the operating system comprises a ruling data specifying for each communication protocol of said set whether Card Lock, Card Terminate and Final Application privileges as defined by GlobalPlatform Card Specification are authorized or forbidden, and wherein the operating system comprises a supervisor agent configured to, upon receipt from one of said external entities of a command whose execution depends on one of said privileges, identify which communication protocol of said set of communication protocols has been used to convey the command then to use the identified communication protocol as a discriminator to deny or authorize said execution of the command based on the ruling data where said supervisor agent is a software component embedded in said operating system, and both said supervisor agent and said operating system comprise instructions which are executed by the hardware processor of the secure element.
9. The secure element according to claim 8, wherein the supervisor agent is configured to use a transport layer of the identified communication protocol as a discriminator to deny or to authorize execution of said command based on the ruling data.
10. The secure element according to claim 9, wherein the set of communication protocols comprises T=0 or T=1 as defined by ETSI ISO7816-3 and at least one of SWP contactless type A, SWP contactless type B, SWP contactless type F, APDU Gate or SPI.
11. The secure element according to claim 9, wherein the secure element is an embedded secure element, an integrated secure element, a secure enclave, a smart card or a Machine-To-Machine device.
12. The secure element according to claim 9, wherein the secure element is embedded in a host device.
13. The secure element according to claim 12, wherein the host device is a phone, a watch, a pair of glasses, a car, a meter, a drone or a robot.
14. The secure element according to claim 8, wherein the secure element comprises both a first software container including a security domain compliant with GlobalPlatform Card Specification and a second software container including a Telecom profile compliant with GSMA Remote Provisioning Architecture for embedded UICC Technical Specification.
15. The secure element according to claim 8, wherein the secure element comprises a registry storing a state set to SECURED, wherein the command is a SET STATUS requesting a change toward CARD_LOCKED state, said SECURED and CARD_LOCKED states and SET STATUS being compliant with GlobalPlatform Card Specification, and wherein the operating system is configured to deny execution of the command if the communication protocol used to convey the command is compliant with a transport layer protocol as defined by ETSI ISO7816-3, and wherein the operating system is configured to authorize execution of the command if the communication protocol used to convey the command is compliant with SPI or SWP.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Other characteristics and advantages of the present invention will emerge more clearly from a reading of the following description of a number of preferred embodiments of the invention with reference to the corresponding accompanying drawings in which:
(2)
(3)
(4)
(5)
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
(6) The invention may apply to any type of tamper-proof devices or secure elements intended to contain several software containers and able to communicate through at least two protocols. The tamper-proof device may be coupled to any type of host machine. For example the host machine may be a mobile phone, a vehicle, a meter, a slot machine, a TV, a tablet, a laptop, a connected watch, a pair of connected glasses, a meter, a robot, a drone or a computer.
(7) The tamper-proof device may be an embedded secure element (eSE), an integrated secure element (iSE), a secure enclave, a smart card or a Machine-To-Machine device. An integrated secure element is a secure element integrated in a hardware element providing additional functionalities distinct from the features of the secure element. For instance a baseband modem may comprise an iSE. More information related to eSE and iSE may be found in Javacard Platform Classic Edition v3.0.5 and Global Platform Card Specifications v2.3.
(8) The external entities which are intended to send commands (messages) to the software containers may be remote servers, a NFC device, hardware or software components of the hosting machine itself or any computer machine adapted to initiate the sending of a message targeting one of the software container.
(9)
(10) In this example, the tamper-proof device 10 is a secure element welded to a phone (not shown). For instance the tamper-proof device 10 may be a chip embedded in a smartphone. The tamper-proof device 10 comprises a processor 40, a working memory 50, a nonvolatile memory 70 and a communication interface 60.
(11) The working memory 50 may be a RAM and the nonvolatile memory 70 may be a flash memory. The communication interface 60 is designed to convey data according to several communication protocols. For instance, the communication interface 60 may be designed to comply with both ISO7816-3 T=0 protocol, SWP (Single Wire Protocol) and the Serial Peripheral Interface (SPI).
(12) The nonvolatile memory 70 comprises the operating system 12 of the tamper-proof device and two software containers 20 and 30. These software containers are separate and managed by the operating system 12 as isolated entities. In other words, the operating system 12 is able to guarantee that one software container cannot unduly access to data belonging to another software container.
(13) In this example, the operating system 12 is configured to handle both ISO7816-3 T=0, SPI and SWP protocols.
(14) In another example, both the communication interface 60 and the operating system 12 can be configured to handle any combination of at least two protocols among the following: T=1 (or T=0) as defined by ETSI ISO7816-3, SWP contactless type A by ETSI TS 102 613 V.11.0.0—UICC-CLF Interface, SWP contactless type B as defined by ETSI TS 102 613 V.11.0.0—UICC-CLF Interface, SWP contactless type F, SPI and APDU Gate as defined by HCI Extension for the Embedded Secure Element Certification 0.5 and ETSI 102.622 v12.1.0 standard.
(15) The operating system 12 and the communication interface 60 may also be configured to handle a proprietary communication protocol.
(16)
(17) This figure provides a logical view of the tamper-proof device 10 described at
(18) The tamper-proof device 10 comprises a software container 30 which stores a profile related to the issuer of the phone hosting the tamper-proof device 10. The structure of this profile is compliant with GlobalPlatform Card Specification V2.3 standard.
(19) More precisely, the software container 30 comprises a main issuer directory named ISD (for Issuer Security Domain). The ISD contains a set of files storing data related to the profile of the host device hosting the tamper-proof device 10.
(20) The software container 30 may contain several applications providing payment, loyalty, building access or NFC services for example. For instance, the software container 30 of
(21) It is to be noted that the software container 30 does not necessarily contain a profile which is related to the issuer of the host device. It may contain any profile (i.e. set of files) which is related to a non-Telecom actor.
(22) The tamper-proof device 10 comprises a software container 20 which stores data related to Telecom operator subscriptions compliant with GSMA SGP 0.22 RSP Technical Specification V2.1 standard and GSMA Remote Provisioning Architecture for embedded UICC Technical Specification (SGP.02) V3.2.
(23) More precisely, the software container 20 comprises a root directory named ISDR (for Root Issuer Security Domain) and two dependent directories containing distinct profiles: ISDP1 and ISDP2. ISDP1 (for Issuer Security Domain of Profile #1) contains a set of files storing data related to a first Mobile Network Operator (MNO) subscription profile. Similarly, ISDP2 (for Issuer Security Domain of Profile #2) contains a set of files storing data related to a second (MNO) subscription profile.
(24) It is to be noted that ISDP1 and ISDP2 may be related to the same MNO.
(25) The operating system 12 comprises a ruling data 14, a registry 19 and a supervisor agent 18. The registry stores the current GlobalPlatform state (i.e. Life cycle state) of the tamper-proof device 10. For instance, the state can be set to SECURED. The ruling data 14 specifies for each communication protocol managed by the operating system 12 whether Card Lock, Card Terminate and Final Application privileges as defined by GlobalPlatform Card Specification (V2.3 or upper) are authorized or forbidden. Preferably, either these three privileges are all allowed or all forbidden for a protocol.
(26) Assuming that the operating system 12 is designed to handle communications through ISO7816-3, SWP and SPI protocols, Card Lock, Card Terminate and Final Application privileges may be forbidden for ISO7816-3 protocol while they are authorized for SWP and SPI protocols.
(27) The supervisor agent 18 is designed to identify the used protocol when an incoming command (or message) is received and to use the identified protocol as a discriminator to deny or authorize execution of the incoming command. Thus, upon receipt of a command from an external entity, the supervisor agent 18 uses the ruling data 14 to reject or authorize execution of the received command based on the communication protocol used to convey the command. Preferably, the rejection or authorization of the command is based on the transport layer of the communication protocol used to convey the command to the tamper-proof device 10.
(28) In the embodiment of
(29) It is to be noted that in the above-described embodiment, versions of the standard are provided as example only. For instance, the tamper-proof device 10 may comprise a software container 20 which stores data related to Telecom operator subscriptions compliant with GSMA SGP 0.22 RSP Technical Specification V2.0 or V2.2.
(30) In one example, the external entity which sends a message (command) to one of the software containers may be an application located in the Rich OS part of a mobile phone. In this case, the message may be conveyed through APDU Gate protocol.
(31) In another example, the external entity which sends a message (command) to one of the software containers may be an application located in the Trusted Execution Environment (TEE) part of a mobile phone. In this case, the message may be conveyed through SPI protocol.
(32) In another example, the external entity which sends a message (command) to one of the software containers may be an application located in an external NFC (Near Field Communication) reader. In this case, the message may be conveyed through SWP protocol via a NFC controller (CLF).
(33)
(34) The tamper-proof device 10 is similar to the one described at
(35) In this example, the state SECURED is stored in the registry 19. The state is also known as Life Cycle State. The operating system 12 is designed to handle communications through ISO7816-3, SWP and SPI protocols. The ruling data 14 specifies that Card Lock, Card Terminate and Final Application privileges are forbidden for ISO7816-3 protocol and authorized for SWP and SPI protocols. The ISD of the software container 30 (corresponding to the eSE part) has the following GlobalPlatform privileges: Final Application and Card Lock.
(36) The ISDR of the software container 20 (corresponding to the eUICC part) is devoid of Final Application and Card Lock GlobalPlatform privileges.
(37) Both ISD and ISDR are managed by the operating system 12 according to SECURED state.
(38) If a command aiming at installing a new application or creating a Security domain with Final Application privilege is received through ISO7816 protocol, the supervisor agent 18 rejects this command since the ruling data 14 specifies that Final Application privilege is forbidden for ISO7816-3 protocol.
(39) If a SET STATUS command requesting a change to CARD_LOCKED state is received through ISO7816 protocol (from the baseband for instance), the supervisor agent 18 denies execution of the received SET STATUS command since the ruling data 14 specifies that Card Lock privilege is forbidden for ISO7816-3 protocol.
(40) If the operating system 12 receives from a source internal to the tamper-proof device 10 a request to change toward CARD_LOCKED state, then the supervisor agent 18 denies execution of the request if the internal source belongs to the software container 20 which includes a Telecom profile compliant with GSMA Remote Provisioning Architecture for embedded UICC Technical Specification (SGP.02). Similarly, if the operating system 12 receives from a source internal to the tamper-proof device 10 a request to allocate Final Application, Card Lock or Card Terminate privilege to a target belonging to the software container 20, then the supervisor agent 18 denies execution of this request. The internal source may be the OPEN (GlobalPlatform Environment), the Issuer Security Domain or an application for instance.
(41) In another example, if a SET STATUS command requesting a change to CARD_LOCKED state is received through SPI protocol (from the Application Processor of the phone 90 for instance), the supervisor agent 18 authorizes execution of the received SET STATUS command according to the ruling data 14. It is to be noted that additional checks are performed by the operating system 12 before executing the SET STATUS command as specified in GlobalPlatform Card Specification. These additional checks may cause the SET STATUS command not to be executed.
(42)
(43) The received SET STATUS command requesting a change to CARD_LOCKED state (as mentioned at
(44) From this stage, incoming commands conveyed through ISO7816 protocol are processed by the supervisor agent as if the current state is set to SECURED and incoming commands conveyed through SPI or SWP protocols are processed by the supervisor agent 18 as if the current state is set to CARD_LOCKED.
(45) Thus only the ISD (having the Final Application privilege) can be selected in the software container 30 through SPI/SWP channel. All other elements (AMSD, CASD, CRS, APPLET and SSD) which have not the Final Application privilege and which are stored in the software container 30 cannot be targeted by any commands. All security domains and applications of the the software container 20 (corresponding to the eUICC part) are still selectable thanks to the ISO7816 protocol.
(46) Assuming now that the ISD of the software container 30 (corresponding to the eSE part) has the Card Terminate privilege. A further incoming SET STATUS command (sent by the CLF through SWP for instance) aiming at changing the state to TERMINATED is checked and authorized by the supervisor agent 18.
(47) It must be understood, within the scope of the invention, that the above-described embodiments are provided as non-limitative examples. In particular, the features described in the presented embodiments and examples may be combined.
(48) The tamper-proof device 10 may comprise more than two software containers.
(49) The invention allows to control declaration and use of privileges according to the used communication protocol of incoming commands.
(50) The architectures of the tamper-proof device shown at
(51) For example, the ruling data 14 may be stored in the tamper-proof device and outside the operating system 12 itself. In such a case the supervisor agent 18 is adapted to read the ruling data 14 when needed.
(52) The above described communication interface is a physical interface which may work in either contact mode or in contactless mode.
(53) Although describes in the framework of a telecom equipment, the invention also applies to tamper-proof devices whose software containers do not comprise any Telecom profiles.