Method for operating an integrated circuit card for suspension and resume operations and corresponding integrated circuit card
The method enhances security and robustness in integrated circuit card operations by encrypting and securely storing status data using key derivation functions and algorithms, addressing the lack of security in existing standards.
Patent Information
- Application Number
- PCT/IB2025/050911
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-12
- Filing Date
- 2025-01-28
- Publication Date
- 2025-08-21
AI Technical Summary
Existing standards for suspend and resume operations in integrated circuit cards, such as UICC, do not provide adequate security and robustness measures during power interruptions, risking information leakage and security breaches.
A method involving generating a resume token, partitioning status data into memory blocks, deriving encryption keys, and encrypting data using key derivation functions and algorithms like AES, ensuring secure storage and retrieval in a non-volatile memory area.
Ensures data confidentiality and integrity during suspension and resumption, preventing hacking attacks by providing reliable encryption and integrity checks, while reducing computational load through caching mechanisms.
Smart Images

Figure IB2025050911_21082025_PF_FP_ABST
Abstract
Description
[0001] "Method for operating an integrated circuit card for suspension and resume operations and corresponding integrated circuit card"
[0002] Technical Field
[0003] Embodiments of the present disclosure relate to a method for performing suspend and resume operations in an integrated circuit card.
[0004] Background
[0005] Secure elements are known, which are secure operating systems in a tamper-resistant processor chip or secure component, i.e. devices that perform operations that require a high level of security and prevent information leakage, and may be used, for example, to store and process sensitive data, such as cryptographic keys, personal identification data, payment data, etc. A secure element may be a standalone device, such as a USB token or a smart card reader, or may be embedded in a host terminal or device, such as a mobile phone, a wearable device, or a smart card, i.e. integrated circuit card, e.g. a universal integrated circuit card (UICC) .
[0006] Then, in the context of battery-powered devices or terminals, which are employed, for instance, in ToT devices, optimizing energy usage to extend the battery life as much as possible represents a crucial challenge. There are different strategies to reduce the energy consumption, such as turning the device on and off periodically, or turning the device on only at certain times and keeping it in a low-power mode for the rest of the time.
[0007] By way of example, low power mode, such as PSM (Power Saving Mode) in LTE and ToT, in devices which operates as terminal with respect to the integrated circuit card, may be either an idle mode or a deep sleep mode, deep sleep mode usually following after an interval idle mode. A device, e.g. an loT device may enter idle mode, after performing its main operations and functions, i.e. a state in which the device substantially does not perform its main operation and functions, however it may receive commands, thus already consuming less when it is fully connected. Then, in deep sleep mode, the device stays registered to the network, but it does not send or receive any data. In this case, the energy consumption is minimal, but the device cannot be contacted from outside until it wakes up, after a given time interval, and resumes data transmission.
[0008] When entering such modes, the operating of an integrated circuit card, e.g. UICC (Universal Integrated Circuit Card) , in the device or terminal may need to be suspended and resumed during its operation. This because usually in such circumstances the power to the e.g. UICC is interrupted. Thus, the integrated circuit card may be suspended when the corresponding terminal, or host device enters a low-power mode, when the integrated circuit card is detached from the host device, when the integrated circuit card is switched to another application, or also when the terminal is switched off. An integrated circuit card may be resumed when the host device exits the low-power mode, when the integrated circuit card is reattached to the host device, when the integrated circuit card is switched back to the previous application, or also when the terminal, e.g. loT device or mobile user equipment, is switched on.
[0009] When an integrated circuit card is suspended and resumed, it is important to save the status of the integrated circuit card. The status of the integrated circuit card includes information about the current status and configuration data of the integrated circuit card, such as the active applications, the session keys, the security parameters , the user preferences , etc . In other words , the status includes all the data that is needed to restore the integrated circuit card to the same condition, as i f there was no power interruption .
[0010] A suspend function is used to store the internal status of the integrated circuit card so that the power supply to the integrated circuit card can be switched of f , and to subsequently restore the integrated circuit card status , as for instance indicated in the ETS I speci fication 102 221 "Smart Cards ; UICC-Terminal interface ; Physi cal and l ogi cal characteri sti cs" .
[0011] For example , as per ETS I 102 221 speci fication, the integrated circuit card status includes :
[0012] • status of selected applications on each logical channel ;
[0013] • security context related to PIN veri fication status for each application;
[0014] • selected EE (Elementary File ) , record pointer and tag pointer for each logical channel ;
[0015] • status of toolkit applications .
[0016] Saving the state of the integrated circuit card allows the integrated circuit card to resume its operation from where it left of f before being suspended, without losing any data or compromising any security .
[0017] To ensure that the device resume in the same condition as i f the operating of the integrated circuit card was not suspended, the ETS I TS 102 221 standard speci fies that the status of the integrated circuit card must be saved and stored within a non-volatile memory (NVM) .
[0018] The ETS I TS 102 221 standard defines two commands for suspending and resuming an integrated circuit card : Suspend and Resume . The Suspend command instructs the integrated circuit card to suspend its operation and return a response indicating whether the suspension was success ful or not . The Resume command instructs the integrated circuit card to resume its operation and return a response indicating whether the resumption was success ful or not . The standard also provides a functional description of the Suspend and Resume commands and speci fies how to handle errors that may occur during their execution .
[0019] However, the standard does not provide any measures to ensure the security and the robustness of the integrated circuit card during suspension and resumption .
[0020] Summary
[0021] On the basis of the foregoing description, the need is felt for solutions which overcome one or more of the previously outlined drawbacks .
[0022] According to one or more embodiments , such an obj ect is achieved through methods having the features speci fically set forth in the claims that follow .
[0023] The claims are an integral part of the technical teaching of the disclosure provided herein .
[0024] As mentioned previously, various embodiments of the present disclosure relate a method for operating an integrated circuit card, in particular a UICC, wherein upon receiving a suspend command to store an integrated circuit card status data in a storage area of said integrated circuit card, said method comprises : generating a resume token at said integrated circuit card;
[0025] - performing said storing an integrated circuit card status data in a storage area of said integrated circuit card;
[0026] - returning response data containing said resume token; characteri zed in that said method further comprises performing at the integrated circuit card the steps of : - partitioning said integrated circuit card status data in a volatile memory of said integrated circuit card in memory blocks with respect to said storing in said storage area obtaining a set of status data memory blocks to be stored in said storage area ;
[0027] - deriving a first encryption key by means of a given key derivation function receiving as input a master key and said resume token, and producing as output said first encryption key;
[0028] - encrypting each status data memory block in said set of status data memory blocks using the first encryption key, in particular the first encryption key being received as input by an encryption algorithm, obtaining a corresponding encrypted status data memory block; said storing integrated circuit card status data in a storage area of said integrated circuit card comprising storing said each encrypted status data memory block .
[0029] In embodiments , the method further comprises the steps of :
[0030] - calculating a message authentication code for each status data memory block, said message authentication code being a hash value obtained by means of a hashing function;
[0031] - appending said message authentication code to the encrypted status data memory block, obtaining a status data packet .
[0032] In embodiments , the method further comprises the steps of :
[0033] - providing a second encryption key, in particular as a static encryption key;
[0034] - storing said second encryption key in the storage area ; the step of calculating a message authentication code comprises calculating such message authentication code by means of a keyed hashing function, the second encryption key being received as input by said keyed hashing function .
[0035] In embodiments , the encrypting integrated circuit card status data of said integrated circuit card comprises previously checking whether in the integrated circuit card the obtained message authentication code is present in a previously stored status data packet , and, in the negative , encrypting the status data memory block .
[0036] In embodiments , the response comprises also a timestamp being indicative of the duration of the suspend operation .
[0037] Furthermore , various embodiments of the present disclosure relate to a method for operating an integrated circuit card, in particular a UICC, suspended with the suspension of any of the embodiments , wherein upon receiving at the integrated circuit card a resume command containing the resume token; accessing one or more encrypted status data packets in the storage area ;
[0038] - resuming the status of the integrated circuit card restoring its status of the integrated circuit card that was previously stored to non-volatile memory of the integrated circuit card;
[0039] - returning a response signal to the terminal ; characteri zed in that said method further comprises performing at the integrated circuit card the steps of :
[0040] - accessing the master key in the storage area ;
[0041] - deriving the first encryption key by means of a given key derivation function, a master key, and the resume token, said key derivation function receiving as input the master key and the resume token, and producing as output the first encryption key;
[0042] - decrypting said one or more encrypted status data memory blocks , preferably included in respective one or more status data packets , using the first encryption key ; using said one or more status data packets to perform said resuming the status of the integrated circuit card .
[0043] In embodiments , such method further comprises the steps of :
[0044] - calculating a message authentication code for each data memory block using a hashing function; checking whether the computed message authentication code corresponds to the message authentication code stored in the status data packet . retrieving the second encryption key in the storage area ; and wherein said hashing function is a keyed hashing function receiving as inputs the status data memory block and the second encryption key .
[0045] In embodiments , such method further comprises receiving said suspend command to store an integrated circuit card status data in a storage area of said integrated circuit card from a terminal operating said integrated circuit card, and returning to the terminal response data containing said resume token and receiving from said terminal operating the integrated circuit card said resume command containing the resume token .
[0046] In embodiments , said suspend command and resume command operate according to the ETS I 102 221 speci fication .
[0047] Furthermore , various embodiments of the present disclosure relate to an integrated circuit card, the integrated circuit card being configured to implement the method according to the solution here described .
[0048] In embodiments , the storage area is obtained in a non-volatile memory .
[0049] Brief description of the figures Embodiments of the present disclosure will now be described with reference to the annexed drawings , which are provided purely by way of non-limiting example and in which :
[0050] - Figure 1 shows a lattice diagram of a suspend method according to an embodiment of the present solution;
[0051] - Figure 2 shows a lattice diagram of a resume method according to an embodiment of the present solution;
[0052] - Figure 3 shows a schematic representation of a key derivation function according to an embodiment of the present solution;
[0053] - Figure 4 shows a schematic representation of an encrypted status data memory block according to an embodiment of the present solution;
[0054] - Figure 5 shows a schematic representation of a system comprising an integrated circuit card .
[0055] Detailed description
[0056] In the following description, numerous speci fic details are given to provide a thorough understanding of embodiments . The embodiments can be practiced without one or several speci fic details , or with other methods , components , materials , etc . In other instances , well- known structures , materials , or operations are not shown or described in detail to avoid obscuring aspects of the embodiments .
[0057] Reference throughout this speci fication to "one embodiment" or "an embodiment" means that a particular feature , structure , or characteristic described in connection with the embodiment is included in at least one embodiment . Thus , the appearances of the phrases " in one embodiment" or " in an embodiment" in various places throughout this speci fication are not necessarily all referring to the same embodiment . Furthermore , the particular features , structures , or characteristics may be combined in any suitable manner in one or more embodiments .
[0058] The headings provided herein are for convenience only and do not interpret the scope or meaning of the embodiments .
[0059] The solution here described provides a solution for protecting the status of the integrated circuit card during suspension and resumption . In particular, the solution here described provide how to store and retrieve the status of the integrated circuit card in a memory area that is dedicated for this purpose and that is separate from the main memory of the integrated circuit card, and how to apply a speci fic protection to such dedicated memory area and to the data exchange to / from the dedicated memory area, such as encryption, authentication and / or integrity checking mechanisms . Moreover, the solution provides to veri fy the integrity and authenticity of the status of the integrated circuit card and of the data exchange when resuming the operation of the integrated circuit card and, accordingly, to restore the status of the integrated circuit card based on the stored status when resuming the operation of the integrated circuit card .
[0060] These issues are critical for ensuring that no information is leaked or tampered with during suspension and resumption of a integrated circuit card and that no security breach occurs as a result of these operations .
[0061] To this regard, in Figure 5 is disclosed an exemplary system implementing the solution here described, comprising a terminal or device 10 , e . g . a loT device or a mobile phone , i . e . user equipment , which comprises a universal integrated circuit card (UICC ) 20 . The universal integrated circuit card (UICC ) 20 comprises a dedicated storage area 30 , a processor 31 , and a volatile memory 32. The device 10 is electrically coupled to the UICC 20, in such a way that the device 10 and the UICC 20 can exchange data. Accordingly, within the UICC 20, the processor 31 is connected to the storage area 30 and the volatile memory 32, in order to allow the exchange of data. In various embodiments, the device 10 may be, for instance a mobile device, although other devices or machines, for instance for Internet or Things are possible. In various embodiments, the UICC 20 may be, for instance, a subscriber identity module (SIM) card. In various embodiments, the storage area 30 may be a non-volatile memory (NVM) . In various embodiments, the volatile memory 32 may be a static random-access memory (SRAM) .
[0062] Then, in Figure 1 a lattice diagram representing a method 100 for operating an integrated circuit card, in particular a universal integrated circuit card (UICC) , to perform a suspend is illustrated.
[0063] In a first step 101, the device 10 sends to the UICC 20 a suspend command 901, indicating that the UICC 20 is required to enter suspension and that, accordingly, the power to the UICC 20 is being shut down. According to the ETSI TS 102 221 specifications, when a UICC, such as the UICC 20, receives the suspend command 901, it stores the complete UICC status to a non-volatile memory. The UICC status includes all data that is required to resume the UICC in the exact same condition, so that it is equivalent as if the power supply was not removed. For example, this includes status of selected applications on each logical channel, security context related to PIN verification status for each application, selected EF, record pointer and tag pointer for each logical channel, and status of toolkit applications.
[0064] Upon the reception of a suspend command 901 from the device 10, in a step 102 the UICC 20 generates a random Resume token T of 8 bytes and stores it in its non-volatile memory 30 as speci f ied by the ETS I TS 102 221 speci fications . The UICC 20 also indicates in the resume token T the maximum time duration for which it can be suspended, using a value between the minimum and the maximum proposed by the device 10 and speci fied in the suspend command 901 .
[0065] Successively, in a step 103 the UICC 20 computes a first encryption key KI using a key derivation function KDF, a master key MK and the resume token T .
[0066] In particular, as illustrated in Figure 3 , which is a block diagram describing a key derivation function process 300 , the key derivation function block, indicated by KDF, receives at input the master key MK and as input keying material the resume token T , and produces as output the first key KI . The key derivation function KDF may implement a cryptographic algorithm such as , for instance , PBKDF2 ( Password-Based Key Derivation Function 2 ) , HKDF (HMAC-based Extract-and- Expand Key Derivation Function) , bcrypt , or scrypt . Once the computation of the first encryption key KI is completed, the UICC 20 stores it in its volatile memory 32 , as it will be used for performing subsequent steps of the suspend method 100 .
[0067] Optionally, in a step 104 a second encryption key K2 may be provided e . g . , by a user or a key generation system, which the UICC 20 may use e . g . , may retrieve such second encryption key K2 , which preferably is a static key, which remains constant and it is stored in a secure area of the storage area 30 . As it will be better explained in the following, this step 104 is optional and may be present or not according to the speci fic embodiment of the present solution considered .
[0068] Once the provision of the second encryption key K2 is completed, in a step 105 the UICC 20 stores the second encryption key K2 in the non-volatile memory 30 , as it will be used for performing steps of the resume method 200 , which is expected to be evoked after a complete and success ful execution of the suspend method 100 . Similar to the previous step 104 , this step 105 is optional and may be present or not according to the speci fic embodiment of the present solution considered .
[0069] In a step 106 , the UICC 20 selects the status data required to be saved in the non-volatile memory 30 . In particular, such status data is residing in the system memory 32 and may be arranged in a plurality of status data memory blocks S of variable si ze . For example , multiple status data memory blocks S may be present due to the fact that such status data may be saved in multiple , non-continuous memory ranges in the system memory 32 .
[0070] Subsequently, in a step 107 a message authentication code (MAC ) C is computed for a given suspend data memory block . As better detailed in Figure 4 , which is a block diagram describing a procedure of preparation of a status data packet Z comprising an encrypted status data memory block SX and a message authentication code C, such calculation of the message authentication code is performed by means of a hashing function HF such as , for instance , SHA1 , SHA256 , SHA384 , SHA512 , or MD5 . Optionally, the hashing function HF may be a keyed hashing function HF such as , for instance , the HMAC (Hash-based Message Authentication Code ) , which receives as input the status data memory block and the second encryption key K2 , and produces as output a corresponding encrypted message authentication code C . Such keyed hashing function HF may employ several hashing functions such as , for instance , SHA1 , SHA256 , SHA384 , SHA512 , or MD5 .
[0071] It is noted that such arranging in a plurality of status data memory blocks S of variable size, i.e. partitioning, or dividing, in particular logical partitioning or dividing, 106 in memory blocks the UICC status data in a volatile memory 32 of the integrated circuit card 20 obtaining one or more status data memory blocks S to be stored in said storage area 30, i.e. NVM memory 30 in variant embodiments may take place before, e.g. before the first encryption key KI calculation 103 or before the random Resume token generation. This of course applies to the MAC computing 107, which follows the partitioning 106 in memory blocks.
[0072] As mentioned, said partitioning, or dividing, may be substantially a logical operation, performed on the volatile memory data blocks, e.g., associating memory blocks in the volatile memory 32 to the respective storage sub-areas in the storage area in the non-volatile memory 30. This association preferably is performed defining the NVM storage sub-area first and then performing such partition of the status data S in the volatile memory 32.
[0073] By way of example, the identification of each memory block, e.g., its size and content, may be predefined and embedded in the definition, e.g. by documentation and / or by coding) of the memory areas in which the UICC status data are to be stored. Of course, in variant embodiments, the partitioning of the status data S in the volatile memory 32 can be performed first, and the NVM storage sub-area after such partitioning. In other words, the RAM memory areas that contain the UICC status data, are predefined and peculiar to the operating system. Once identified, their total occupation is measured and an equal safe NVM area is reserved, preferably once in the life of the UICC. During the Suspend procedure, the status information is stored in that safe NVM area.
[0074] In a step 108, the UICC 20 checks whether the obtained message authentication code C is present in a previous stored status, if any, and, in the negative, encrypts the status data memory block S. In particular, the encryption algorithm EF used for encrypting the status data memory blocks could be, for instance, AES (Advanced Encryption Standard) , RSA (Rivest-Shamir- Adleman) , or Triple DES (Data Encryption Standard) . The first encryption key KI, which is stored in the UICC RAM 32 at the aforementioned step 103, is used as input key for encrypting the status data memory block S, thus obtaining an encrypted status data memory block SX .
[0075] Thus, if data exhibits repetitive blocks, the solution here described considers using a cache to store previously ciphered memory blocks by simply using the MAC. When encountering a memory block already present in the NVM, i.e. the MAC is already present, the method and system here described reuses it directly instead of reencrypting the memory block and rewriting it in the NVM area. This can significantly reduce the computational load of the compression algorithm and reduce the time used for NVM writing too. The second encryption key K2 value may be used also for such caching mechanism: to recognize if a block is already present, its MAC is calculated and encrypted with the second encryption key K2, e.g. with AES. In case the second encryption key K2 is not available, e.g. step 104 is not present, the MAC may remain a hash of the corresponding data or also CRC (Cyclic Redundancy Check) , i.e. keyless algorithms, can be calculated and the calculated value is compared with the MAC values already calculated in previous suspend / resume sessions, i.e. encrypted MAC values. As mentioned, if it is already present, the block is not saved (NVM writes are avoided) . Consequently, the suspend operation will be speed up.
[0076] At this point, as the encrypted status data memory block SX is obtained, the message authentication code C is appended to the encrypted status data memory block SX in order to form a status data packet Z , and then, in a step 109 , the resulting memory block is stored in the non-volatile memory 30 .
[0077] Finally, in a step 110 the UICC 20 returns a response package R containing the resume token T . The response package may contain also the total duration of the suspend phase .
[0078] The present solution further comprises a complementary resume method 200 , which is meant to be executed after a suspend operation 100 has been performed in order to restore correctly the functionality of a device and, in particular, its network status .
[0079] In Figure 2 a lattice diagram representing a method 200 for resuming a device comprising a universal integrated circuit card (UICC ) is illustrated .
[0080] In a first step 201 , the terminal , or device 10 sends to the UICC 20 a resume command 902 . According to the ETS I TS 102 221 speci fications , along with the resume command 902 , the UICC 20 receives the resume token T , which is subsequently compared with a resume token saved in the non-volati le memory . In case the two resume tokens T match, the UICC proceeds to a step 202 .
[0081] Upon the reception of a resume command 902 , in a step 202 the UICC 20 securely recovers from the nonvolatile memory 30 the master key MK, which is stored during a suspend operation 100 as described in the foregoing .
[0082] Successively, in a step 203 the UICC derives the first encryption key KI using the key derivation function KDF, the master key MK retrieved in step 202 , and the resume token T retrieved in step 201 . Once the computation of the first encryption key KI is completed, the UICC 20 stores it in its RAM, as it will be used for performing subsequent steps of the resume method 200 .
[0083] Optionally, in a step 204 the UICC 20 retrieves from the non-volatile memory 30 the second encryption key K2 . As anticipated in the foregoing, this step 204 may be present or not according to the speci fic embodiment of the present solution considering . In particular, embodiments comprising encrypted message authentication codes C require such step 204 , along with the complementary step 104 in the suspend method 100 .
[0084] Subsequently, in a step 205 the UICC 20 recovers i . e . , accesses , from the non-volatile memory 30 the encrypted UICC status data which, according to the step 105 of the complementary suspend method 100 , is arranged in a plurality of ciphered memory blocks .
[0085] For each ciphered status data memory block SX in the plurality of ciphered data memory blocks , incorporated in the plurality of corresponding status data packets Z , in a step 206 the UICC 20 performs the decryption of such status data memory block SX using the first encryption key KI .
[0086] Accordingly, for each one of the decrypted status data memory blocks S obtained from step 206 , in a step 207 the UICC 20 computes the corresponding message authentication code C2 and veri fies that it corresponds to the message authentication code C stored in the status data packet Z .
[0087] Optionally, it may be required to decrypt the message authentication code C stored in the status data memory block S . In this case , the message authentication code C stored in the status data memory block S is decrypted using the second encryption key K2 .
[0088] Accordingly, i f the calculated message authentication codes C2 for each status data memory block in the plurality of status data memory blocks SX match the message authentication codes Cl stored in the status data memory blocks S , in a step 207 the UICC 20 resumes the whole status in plain . In particular, such step of resuming the status of the UICC 20 comprises restoring the decrypted status data memory blocks S to the exact same position in the UICC system memory 32 they were located before the request of suspension .
[0089] Finally, i f the preceding step 207 is performed success fully i . e . , i f the whole status of the integrated circuit card is resumed correctly, in a step 208 the UICC 20 returns a response signal 903 to the device 10 .
[0090] In particular, such response signal 903 may comprise a success signal or an error signal . In various embodiments , upon the detection that the resume procedure has been executed success fully i . e . , that encrypted each status data memory block SX has been decrypted, and that each corresponding decrypted status data memory block S has a message authentication code corresponding to the appended message authentication code C stored in the status data packet Z , the UICC 20 returns a success in the response signal 903 .
[0091] Conversely, i f at least one mismatch between the calculated message authentication code and the message authentication code C stored in the status data packet Z is detected, the UICC 20 may return an error in the response signal 903 .
[0092] Thus , on the bas is of the description above , the solution described advantageously provides a method, indicated with 100 , for operating an integrated circuit card, in particular a UICC, 20 , wherein upon receiving 101 a suspend command 901 , in particular from an external entity such as an external terminal or device , to store integrated circuit card status data in a storage area 30 of the integrated circuit card 20 , the method comprises generating in a step 102 a resume token T at the integrated circuit card 20 ; performing the storing e . g . , in a step 109 , an integrated circuit card status data in a storage area 30 of the integrated circuit card 20 ; returning e . g . , in a step 110 , response data R containing the resume token T , in particular to such external entity .
[0093] Moreover, such method is characteri zed in that it further comprises performing at the integrated circuit card 20 the steps of partitioning, in a step 106, the integrated circuit card status data in a volatile memory 32 of the integrated circuit card 20 in memory blocks with respect to the storing in the storage area 30 obtaining a set of status data memory blocks S to be stored in the storage area 30 ; deriving in a step 103 a first encryption key KI by means of a given key derivation function KDF receiving as input a master key MK and the resume token T , and producing as output the first encryption key KI ; encrypting in a step 108 each status data memory block S in the set of status data memory blocks S using the first encryption key KI , in particular the first encryption key KI being received as input by an encryption algorithm, obtaining a corresponding encrypted status data memory block SX . In particular, the storing 109 integrated circuit card status data in a storage area 30 of the integrated circuit card 20 comprises storing each encrypted status data memory block SX .
[0094] Accordingly, the method, indicated with 200 , for operating an integrated circuit card, in particular a UICC, 20 , suspended with the method 100 according to the solution here described, performing a resume operation, is provided .
[0095] In particular, such method comprises performing receiving e . g . , in a step 201 , at the integrated circuit card a resume command 902 containing the resume token T , in particular from such external entity; accessing 205 one or more encrypted status data packets Z in the storage area 30; resuming e.g., in a step 207, the status of the integrated circuit card 20 restoring its status of the integrated circuit card that was previously stored to non-volatile memory of the integrated circuit card; returning e.g., in a step 208, a response signal 903.
[0096] Such method is characterized in that it further comprises performing at the integrated circuit card 20 the steps of accessing e.g., in a step 202; the master key MK in the storage area 30; deriving, in a step 203, the first encryption key KI by means of a given key derivation function KDF, a master key MK, and the resume token T, the key derivation function KDF receiving as input the master key MK and the resume token T, and producing as output the first encryption key KI; decrypting e.g., in a step 206, the one or more encrypted status data memory blocks SX, preferably included in respective one or more status data packets Z, using the first encryption key KI; using the one or more status data packets Z to perform the resuming 207 the status of the integrated circuit card 20.
[0097] Furthermore, such method further comprises receiving the suspend command 901 to store an integrated circuit card status data in a storage area 30 of the integrated circuit card 20 from a terminal 10, e.g. loT device or mobile communication terminal embodying the external entity, operating the integrated circuit card 20, and returning e.g., in a step 110, to the terminal 10 response data R containing the resume token and receiving 201 from the terminal 10 operating the integrated circuit card the resume command 902 containing the resume token T.
[0098] Thus, on the basis of the description above, the operation of the solution here described is clear, as its advantages. The solution described determines data confidentiality assurance as it provides , a reliable encryption ( e . g . AES256 , Ascon) to protect sensitive data securely and robustly, thereby preventing any hacking attacks .
[0099] Data integrity assurance is also obtained by using a secure hash function ( e . g . , AES256 CBC ) , in particular for the messaged authentication code (MAC ) to ensure that data has been saved correctly and has not been altered during storage .
[0100] The solution here described ensures that only authori zed users can access the stored data through techniques such as encryption in the non-volatile memory of the card . Encryption keys , in particular the memory block encryption first key, which are not stored in nonvolatile memory, or in general elsewhere , are used for the encryption . The resuming method then obtains the decryption key by using key derivation as well , i . e . does not retrieve key stored in the integrated circuit card non-volatile memory .
[0101] Also , the solution here described provides a reduction of a possible attack window as it gives access to the data only during the resumption time (veri fied token mechanism) , thereby reducing the risk of hacking attacks .
[0102] As already mentioned, the solution here described provides a reliable key management mechanism as the ciphering keys are session keys , and neither the keys nor the resume token is stored in the integrated circuit card .
[0103] Then, the solution further provides performance improvement , by a caching mechanism, when data exhibits repetitive memory block using a cache to store previously encrypted blocks by simply using the MAC .
[0104] Various figures depict circuits and other components with block Figures. These Figures should not be taken to mark the physical boundaries of the corresponding components. As will be appreciated, physical components may be dispersed throughout a SoC.
[0105] While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.
[0106] The solution here described is applicable in M2M (Machine To Machine) and loT (Internet of Things) integrated circuit cards, for instance in products pertaining smart meters, asset trackers, health monitors, security devices, telemetry equipment, safety systems, and other connected smart "things" that, complying with the ETSI specifications, may need powersaving mode and related commands that facilitate power management, in particular according to the suspending and resuming methods here described.
[0107] Integrated circuit cards may be UICC, eUICC (embedded UICC) , iUICC (integrated UICC) or other type of integrated circuit cards which may operate with suspend and resume functions as described in the present description .
Claims
CLAIMS1. Method (100) for operating an integrated circuit card, in particular a UICC, (20) , wherein upon receiving (101) a suspend command (901) to store an integrated circuit card status data in a storage area (30) of the integrated circuit card (20) , the method comprises : generating (102) a resume token (T) at the integrated circuit card (20) ; performing the storing (109) of integrated circuit card status data in a storage area (30) of said integrated circuit card (20) ;- returning (110) response data (R) containing the resume token (T) ; characterized in that said method further comprises performing at the integrated circuit card (20) the steps of :- partitioning (106) the integrated circuit card status data in a volatile memory (32) of said integrated circuit card (20) in memory blocks with respect to said storing in said storage area (30) obtaining a set of status data memory blocks (S) to be stored in said storage area (30) ;- deriving (103) a first encryption key (KI) by means of a given key derivation function (KDF) receiving as input a master key (MK) and said resume token (T) , and producing as output said first encryption key (KI) ;- encrypting (108) each status data memory block (S) in said set of status data memory blocks (S) using the first encryption key (KI) , in particular the first encryption key (KI) being received as input by an encryption algorithm, obtaining a corresponding encrypted status data memory block (SX) ; said storing (109) integrated circuit card status data in a storage area (30) of said integrated circuitcard (20) comprising storing each encrypted status data memory block (SX) .
2. Method (100) according to Claim 1, further comprising the steps of:- calculating (107) a message authentication code (C) for each status data memory block (S) , said message authentication code (C) being a hash value obtained by means of a hashing function (HF) ;- appending (108) said message authentication code (C) to the encrypted status data memory block (SX) , obtaining a status data packet (Z) .
3. Method (100) according to Claim 2, further comprising the steps of:- providing (104) a second encryption key (K2) , in particular as a static encryption key;- storing (105) said second encryption key (K2) in the storage area (30) ; the step of calculating (107) a message authentication code (C) comprises calculating such message authentication code (C) by means of a keyed hashing function (HF) , the second encryption key (K2) being received as input by said keyed hashing function (HF) .
4. Method (100) according to any of Claims 1 to 3, wherein said encrypting (108) integrated circuit card status data (S) of said integrated circuit card (20) comprises previously checking (108) whether in the integrated circuit card (20) the obtained message authentication code (C) is present in a previously stored status data packet (Z) , and, in the negative, encrypting the status data memory block (S) .
5. Method (100) according to any of Claims 1 to 4, wherein the response comprises also a timestamp being indicative of the duration of the suspend operation.
6. Method (200) for operating an integrated circuitcard, in particular a UICC, (20) , suspended by the suspension operation of any of claims 1 to 5, wherein upon receiving (201) at the integrated circuit card a resume command (902) containing the resume token (T) ;- accessing (205) one or more encrypted status data packets (Z) in the storage area (30) ; resuming (207) the status of the integrated circuit card (20) restoring its status of the integrated circuit card that was previously stored to non-volatile memory of the integrated circuit card;- returning (208) a response signal (903) ; characterized in that said method further comprises performing at the integrated circuit card (20) the steps of :- accessing (202) the master key (MK) in the storage area ( 30 ) ;- deriving (203) the first encryption key (KI) by means of a given key derivation function (KDF) , a master key (MK) , and the resume token (T) , said key derivation function (KDF) receiving as input the master key (MK) and the resume token (T) , and producing as output the first encryption key (KI) ;- decrypting (206) said one or more encrypted status data memory blocks (SX) , preferably included in respective one or more status data packets (Z) , using the first encryption key (KI) ; using said one or more status data packets (Z) to perform said resuming (207) the status of the integrated circuit card (20) .
7. Method (200) according to Claim 6, further comprising the steps of:- calculating (207) a message authentication code (C) for each data memory block using a hashing function (HF) ;checking (208) whether the computed message authentication code (C) corresponds to the message authentication code (C) stored in the status data packet (Z) ;- retrieving (204) the second encryption key (K2) in the storage area (30) ; and wherein said hashing function is a keyed hashing function (HF) receiving as inputs the status data memory block (S) and the second encryption key (K2) .
8. Method (100) according to any of the previous claims, comprising receiving the suspend command (901) to store an integrated circuit card status data in a storage area (30) of the integrated circuit card (20) from a terminal (10) or device operating the integrated circuit card (20) , and returning (110) to said terminal (10) response data (R) containing the resume token and receiving (201) from the terminal (10) operating the integrated circuit card the resume command (902) containing the resume token (T) .
9. Method (100) according to any of the previous claims, wherein the suspend command (901) and resume command (902) operate according to the ETSI 102 221 specification.
10. A integrated circuit card, (20) , the integrated circuit card (20) being configured to implement the method (100, 200) according to any of the Claims 1 to 9.
11. The integrated circuit card (20) of Claim 10, wherein the storage area (30) is obtained in a nonvolatile memory.
Citation Information
Patent Citations
Suspending and Resuming a Card Computing Device
US20190377585A1
Devices with removable smart cards
US20210055773A1
Secure Reduced Power Mode
US20220129527A1
Secure element for securely processing digital information
US20230205934A1