Securing external data storage in secure elements integrated on SoCs
By integrating secure elements and secure channels in the system on chip, the key of flash memory password that manages sensitive information on external data storage is solved, and the perfect forward security of sensitive information is achieved.
Patent Information
- Application Number
- CN201980079723.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-08-29
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2039-08-29
AI Technical Summary
In high-end computing systems, external flash memory is insufficient in security and there is a risk of exposing sensitive information, especially when external flash memory is damaged.
By integrating secure elements in the system on chip, a secure channel with secure flash memory is used to manage a key for protecting sensitive information on external data storage. This secure channel is established through matching public and private keys, ensuring secure storage and update of keys.
A perfect forward security for sensitive information is achieved. Even if an attacker corrupts the current version of the key, the key will be automatically updated regularly to prevent it from being exploited in the future and improve the security of the computing system.
Smart Images

Figure CN113168475B_ABST
Abstract
Description
Background Art
[0001] The computing system may include a system on chip (SoC) as the main processing complex and one or more security elements that perform specialized functions related to sensitive information. The security element may include its own internal flash memory for non-volatile storage. In some high-end computing systems, the security element is integrated into the SoC for performance reasons. The integrated security element may use external flash memory for storage, rather than internal flash memory that potentially reduces the performance of the SoC. If the external flash memory is ever damaged, there is a risk of exposing sensitive information by storing sensitive information on a flash memory placed outside the SoC. Summary of the invention
[0002] An integrated security element of a system on chip (SoC) is described, which uses a secure channel with secure flash memory to manage secure cryptographic keys for protecting sensitive information stored on an unsecure external data storage. The term "external data storage" refers to a flash memory or other non-volatile storage that is physically different from the SoC and the security element integrated on the SoC. The external data storage as mentioned in this article, which is sometimes also referred to as a separate component or separate chip, can be accessed by the SoC, but is not integrated on the SoC and is therefore located outside the SoC. A computing system includes an SoC with an integrated security element. The security element performs specialized functions related to sensitive information (e.g., cryptographic keys, network access credentials, security keys, financial data, user data). The security element and other components of the computing system and the SoC store data on the main external flash memory, or in other words, on the external data storage. The computing system includes a second (e.g., smaller) external flash memory assigned to the security element, which stores the security element's anti-replay counter, timestamp information, and flash cryptographic keys. At the time of manufacturing, the security element and the second flash memory are equipped with matching certified public keys and corresponding private keys. Given the certified public key and corresponding private key and a previously agreed-upon protocol such as authenticated Diffie-Hellman, the secure element and the second flash memory establish a secure channel.
[0003] The second flash memory automatically updates the flash cryptographic key periodically or at some other interval in response to a write operation. The security element obtains the updated flash cryptographic key from the second flash memory through a secure channel, or the security element generates the updated flash cryptographic key and provides the updated flash cryptographic key to the second flash memory through a secure channel. The security element automatically encrypts the data stored on the main external flash memory using the regularly updated flash cryptographic key. In this way, even if an attacker damages the current version of the flash cryptographic key, the flash cryptographic key will change regularly and automatically, making the current version unusable in the future, thereby providing what is generally referred to as "perfect forward security" in secure computing.
[0004] In one example, a method for securing sensitive information at an external flash memory of a computing system is described. The method includes: transmitting information through an integrated security element of a system on chip and through a dedicated channel between the integrated security element and a second flash memory of the computing system for determining a shared secret key based on respective copies of a public key and a private key preprogrammed into each of the integrated security element and the second flash memory; securing the dedicated channel based on the shared secret key to provide the integrated security element with exclusive access to a flash cryptographic key stored by the second flash memory; in response to securing the dedicated channel, accessing the flash cryptographic key stored by the second flash memory via the dedicated channel; and encrypting or decrypting sensitive information stored at the external flash memory using the flash cryptographic key.
[0005] In another example, a mobile computing device is described that includes an integrated secure element of a system-on-chip configured to perform the aforementioned method.
[0006] In another example, a system including means for performing the aforementioned method is described.
[0007] In another example, a computer-readable storage medium including instructions that, when executed, configure an integrated secure element of a system-on-chip to perform the aforementioned method is described.
[0008] The details of one or more embodiments are set forth in the accompanying drawings and the following description. Other features and advantages will become apparent from the description and drawings and from the claims. This summary is provided to introduce subject matter that is further described in the detailed description and drawings. Therefore, this summary should not be considered to describe essential features, nor should it be used to limit the scope of the claimed subject matter. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] One or more aspects of securing external data storage for an integrated secure element are described in detail below. The same reference numerals are used in different instances in the specification and drawings to indicate similar elements:
[0010] Figure 1 is a conceptual diagram illustrating an example system for securing external data storage for an integrated secure element.
[0011] Figure 2 is a conceptual diagram illustrating an example system as a computing device for securing external data storage for an integrated secure element.
[0012] Figure 3 is a conceptual diagram illustrating an example system for securing external data storage for an integrated secure element.
[0013] Figure 4 is a conceptual diagram illustrating an example system for securing external data storage for multiple integrated secure elements.
[0014] Figure 5 is a flow diagram illustrating example operations performed by an example system for securing external data storage for an integrated secure element. DETAILED DESCRIPTION
[0015] An integrated secure element of a system on chip (SoC) is described that utilizes a secure channel with secure flash memory to manage cryptographic keys for protecting sensitive information stored on an unsecure external flash memory, i.e., a flash memory located outside the SoC. The combination of secure flash memory, non-secure flash memory, and a secure dedicated channel helps to secure data stored on the non-secure flash memory. The security provided by the combination of components is scalable to secure increased amounts of sensitive information without compromising usability.
[0016] For example, a computing system such as a mobile phone includes a SoC as a main processing complex and an external flash memory. The SoC includes an integrated security element or multiple security elements for performing specialized functions using sensitive information. The sensitive information is stored on the external flash memory along with other information.
[0017] External flash memory is typically "device flash memory" and provides high performance, reliability, and a large amount of storage space. The terms "external flash memory" and "external data storage" are used herein to refer to flash memory or other types of non-volatile data storage that are physically different and separate from the SoC and the security element integrated on the SoC. The external flash memory or other external data storage referred to in this article, which is sometimes also referred to as a separate component or separate chip, can be accessed by the SoC, but is not integrated on the SoC and is therefore located outside the SoC. External flash memory is not secure. In addition to the SoC, other components of the computing system and entities with access rights to the computing system can potentially access sensitive information stored on the external flash memory.
[0018] In order to prevent unauthorized use of sensitive information maintained on external flash memory, the integrated security element protects the security of sensitive information before writing it to the external flash memory. The integrated security element calculates and stores a message authentication code (MAC) associated with the sensitive information and encrypts the sensitive information using a flash cryptographic key before writing it to the external flash memory. Conversely, the integrated security element decrypts the sensitive information after reading it from the external flash memory and verifies the MAC stored when the sensitive information was encrypted. Without the flash cryptographic key, the sensitive information is secure and unavailable.
[0019] The integrated secure element provides what is known in cryptographic circles as "perfect forward security" by automatically changing the flash cryptographic keys. In the event that the flash cryptographic keys are ever compromised, the flash cryptographic keys are automatically updated before each encryption and subsequent data write. By being part of the SoC, the integrated secure element (like other components of the SoC) does not have its own internal data storage. To provide a location for storing the flash cryptographic keys, the computing system includes a smaller secure flash memory with a dedicated communication channel linking the integrated secure element to the secure flash memory.
[0020] The role of secure flash is to supplement the integrated security element to protect sensitive information stored on external flash. In addition, in order to flash cryptographic keys, secure flash can store anti-replay counters, timestamp data, or other security information to prevent replay or other types of attacks. Because secure flash stores flash cryptographic keys and other security information instead of sensitive information stored on external flash, secure flash can be much smaller than external flash; the secure flash can be a fraction of the size of the external flash. With future upgrades to the system, the size of the sensitive information can grow as the size of the external flash increases, but the integrated security element and secure flash do not have to increase proportionally in size accordingly. The secure flash maintains the flash cryptographic keys and, optionally, other security information in a secure environment outside the SoC, and the integrated security element accesses the flash cryptographic keys from the SoC using a dedicated communication channel.
[0021] The integrated security element and secure flash memory use a secure communication protocol such as the Electronic Communication Diffie-Hellman key exchange protocol or "ECDH" to protect the security of the dedicated communication channel. ECDH enables two entities to jointly establish a shared secret key through an otherwise insecure channel. The shared secret key is used to sign communications using symmetric key cryptography. At the time of production or in a pre-distribution, pre-sale or manufacturing environment, matching key information is assigned to the integrated security element and secure flash memory, for example, the same certified public key and unique private key pair are assigned to each of the integrated security element and secure flash memory. Communications conducted over the dedicated communication channel are signed by each generating party. Each non-generating party in the communication verifies the authenticity of the signature on the communication against the expected signature generated using the shared secret key.
[0022] The secure flash memory and the integrated secure element dynamically agree on a shared secret key, thereby enabling secure communication over a dedicated communication channel without maintaining a master secret to generate or protect the flash cryptographic keys. In this way, even if the dedicated communication channel is compromised by an unauthorized eavesdropper or a replay attack, the data (e.g., the flash cryptographic keys) exchanged over the dedicated channel will be protected by implementing a pre-established secure communication protocol.
[0023] The secure flash and the integrated security element are linked; the secure flash automatically generates new flash cryptographic keys regularly, on a set schedule, randomly, periodically, or in response to an event. For example, the secure flash generates a new flash cryptographic key once a day. The secure flash can generate a new flash cryptographic key in response to the integrated security element being about to write. In this way, the computing system utilizes what is often referred to as "perfect forward security" in secure computing to protect sensitive information. The secure flash, non-secure flash, and the integrated security element on the SoC combine to facilitate the expansion and security of sensitive information maintained by the computing system without compromising availability.
[0024] As an example, an integrated security element of a SoC is described that protects the security of external data storage. The SoC stores data on a main external flash memory. A security element is assigned to a second external flash memory. The second flash memory stores a key for a flash cryptographic method. The security element and the second flash memory are each equipped with a matching certified public key and a corresponding private key. Given the public key and the private key and a predetermined password, the security element and the second flash memory establish a secure channel based on a shared secret key. The security element and the second flash memory transmit updates to the key for the flash cryptographic method through a secure channel. The security element performs a special function, which includes: when the key for the flash cryptographic method is periodically updated by the second flash memory, the data stored by the security element on the main external flash memory is automatically encrypted using the key for the flash cryptographic method.
[0025] Figure 1 is a conceptual diagram illustrating an example system 100 having a secure element architecture including secure external data storage. System 100 can be used in a variety of computing environments and computer applications. A mobile phone, tablet device, laptop computer, or any other device with shared external flash memory and a system on chip for processing complexes can use system 100 to maintain and secure sensitive information.
[0026] The system 100 includes a main flash memory 102, an SoC 108, and a secure flash memory 114. The main flash memory 102 stores sensitive information 104. The SoC 108 includes an integrated secure element 110. The secure flash memory 114 includes a key 116 in a flash cryptographic manner. The main flash memory 102 and the SoC 108 communicate via a link 106. The link 106 may be a memory bus that links the SoC 108 and other components of the system 100 to the main flash memory 102. The integrated secure element 110 or other integrated components of the SoC 108 communicate with the main flash memory 102 via the link 106 to access data stored by the main flash memory 102. The integrated secure element 110 directs a read or write command issued by the SoC 108 via the link 106 to cause the main flash memory 102 to read or write sensitive information 104.
[0027] The integrated secure element 110 and the secure flash memory 114 communicate using a direct channel 112. The direct channel 112, while dedicated to the integrated secure element 110, may or may not be secure. Other entities that have access to the SoC 108 or other parts of the system 100 may be able to access the direct channel 112.
[0028] SoC 108 serves as the main processing complex of system 100. In addition to the integrated secure element 110, SoC 108 also includes other components such as processing units (e.g., central processing unit, graphics processing unit, artificial intelligence processing unit, display processor, video processor), communication units (e.g., modems), input / output controllers, sensor hubs, etc.
[0029] The main flash memory 102 can be any non-volatile memory component for storing data, such as any type of electrically erasable programmable read-only memory (EEPROM). Although the main flash memory 102 is primarily described as flash memory, it can be non-flash storage. In the context of a mobile phone, the main flash memory 102 can be a "device flash memory". The main flash memory 102 is shared by the SoC 108 and other components of the system 100 (not shown). Unless the information is securely protected before being written to the main flash memory 102, any entity that can access the system 100 may be able to read or modify the information on the main flash memory 102. As described in more detail below, the main flash memory 102 is configured to store sensitive information 104 that has been encrypted using a key 116 of a flash cryptographic method.
[0030] The integrated security element 110 is any component of the SoC 108 that requires external storage to store sensitive information such as sensitive information 104 to perform functions. The integrated security element 110 can facilitate financial transactions and store the user's personal account information (e.g., account number, credentials, security token, routing number) required to complete the transaction. The integrated security element 110 can perform health monitoring functions (e.g., monitoring physiological conditions) and requires a portion of the main flash memory 102 to record the user's health records. The integrated security element 110 can be an embedded subscriber identity module (eSIM) on the SoC 108, and the integrated security element 110 uses a portion of the main flash memory 102 to store telecommunication-related data associated with the user. In an authentication or security context, the integrated security element 110 can perform authentication functions (e.g., facial authentication, fingerprint authentication, other biometric security authentication), and requires a portion of the main flash memory 102 to save authentication data (e.g., user's biometric fingerprint) during initialization for subsequent use and retrieval during future authentication requests.
[0031] The secure flash memory 114 is a secondary non-volatile memory component of the system 100. The secure flash memory 114 may include any flash-type memory and / or non-flash-type memory configured to securely store data. The secure flash memory 114 is typically smaller in storage capacity relative to the main flash memory 102. The secure flash memory 114 provides sufficient storage (e.g., a portion of the capacity of the main flash memory 102) to store a flash cryptographic key 116 and other information to protect sensitive information 104 written to the main flash memory 102. Unlike data stored on the main flash memory 102, which can be accessed by other entities of the system 100, data maintained by the secure flash memory 114 can only be accessed through the direct channel 112. The system 100 prevents unauthorized access to information stored on the secure flash memory 114 by securing the direct channel 112.
[0032] The integrated security element 110 and the secure flash memory 114 are paired with matching certified keys (e.g., each is equipped with a CA root public key and a corresponding private key). Based on the key, the integrated security element 110 and the secure flash memory 114 establish a secure communication channel for exchanging data. The shared secret key is determined by the integrated security element 110 and the secure flash memory 114. Based on the shared secret key, the integrated security element 110 and the secure flash memory 114 sign, exchange, and verify the communication. The shared secret key configures the direct channel 112 as a secure channel between the integrated security element 110 and the secure flash memory 114, from which the integrated security element 110 has exclusive access to the key 116 of the flash cryptographic method. The integrated security element 110 uses the key 116 of the flash cryptographic method to encrypt or decrypt the sensitive information 104 stored at the main flash memory 102.
[0033] Figure 2 is a conceptual diagram illustrating an example system 200 as a computing device 202 having a secure element architecture including secure external data storage. The computing device 202 is a device for Figure 1 As some non-limiting examples, the computing device 202 may be a mobile phone 202-1 or automotive device, a tablet device 202-2, a laptop computer 202-3, a television / monitor or desktop computer 202-4, a computerized watch 202-5 or other wearable device 202-6, a game controller 202-7, a networked multimedia or voice assistant system 202-8, or an appliance 202-9.
[0034] The computing device 202 includes a computer readable medium 204 including the main flash memory 102 and the secure flash memory 114. The computing device 202 further includes a computer readable medium 204 including a main flash memory 102 and a secure flash memory 114. Figure 1The SoC 108 and the integrated secure element 110 of the rest of the system 100. The computing device 202 also includes one or more communication components 212 and one or more input / output components 214. The SoC 108 also includes one or more processing units 206, one or more communication interfaces 208, and one or more input / output interfaces 210.
[0035] The processing unit 206 of the SoC 108 processes computer-executable instructions to perform operations and execute functions of the computing device 202. The processing unit 206 may include any combination of one or more controllers, microcontrollers, processors, microprocessors, hardware processors, hardware processing units, digital signal processors, graphics processors, graphics processing units, video processors, video processing units, and the like.
[0036] Computer readable medium 204 stores information and processes instructions executed by processing unit 206 to perform operations and perform functions. Computer readable medium 204 is configured to provide computing device 202 with persistent and / or non-persistent storage of executable instructions (e.g., firmware, recovery firmware, software, applications, modules, programs, functions, etc.) and data (e.g., user data, operational data, scan results) to support the execution of executable instructions. Examples of computer readable medium 204 include volatile memory and non-volatile memory, fixed and removable media devices, and any suitable memory device or electronic data storage that maintains executable instructions and supports data. Computer readable medium 204 may include various embodiments of random access memory (RAM), read-only memory (ROM), flash memory, and other types of storage memory in various memory device configurations. Computer readable medium 204 does not include propagation signals. Computer readable medium 204 may be a solid state drive (SSD) or a hard disk drive (HDD). Figure 2 The computer readable medium 204 in the example of includes the main flash memory 102 and the secure flash memory 114 as examples of flash memory of the computer readable medium 204 .
[0037] The communication component 212 enables wired and / or wireless communication of device data between the computing device 202 and other devices, computing systems, and networks. The communication component 212 may include receivers, transmitters, and transceivers for various types of wired and wireless communications. Cellular radios for connecting to base stations of cellular networks and short-range radios configured to connect to access points of wireless local area networks (WLANs) are examples of the communication component 212. The SoC 108 includes a communication interface 208 to handle messaging and protocols associated with communications transmitted and received using the communication component 212.
[0038] The input / output component 214 provides connectivity with the computing device 202. The input / output component 214 may include a user interface device that manages a user interface of the computing device 202, such as a user interface for an operating system. In addition to user interface devices, the input / output component 214 may provide additional connectivity. The input / output component 214 may operate as a presence-sensitive display or touch screen, which includes a display and a presence-sensitive input or touch input component that is operably coupled to the display (and in some cases, physically integrated with the display). The input / output component 214 may include a sensor for obtaining context information, which indicates the physical operating environment of the computing device 202 and / or the characteristics of the computing device 202. Examples of sensors of the input / output component 214 include camera sensors, optical sensors, infrared sensors, radar sensors, movement sensors, temperature sensors, position sensors, proximity sensors, other light sensors, humidity sensors, pressure sensors, etc. In addition to user interface devices 216 and sensors, the input / output component 214 may provide additional connectivity. The input / output component 214 may also include a data interface or data input port for receiving data, including user input, communication data, audio data, video data, image data, etc. The processing unit 206 may customize operations based on input information obtained from the input / output component 214 by the input / output interface 210. Similarly, based on information obtained from the communication component 212 by the communication interface 208, the processing unit 206 customizes operations based on incoming communications or outgoing communications.
[0039] As a working example, the computing device 202 is considered to be a computerized watch 202-5 worn by a user who purchases a product in a store. When the user is waiting in line to pay the cashier of the store, the communication component 212 detects a short-range communication signal from the cash register. The communication interface 208 and the communication component 212 are linked. The processing unit 206 receives information from the communication interface 208 based on the communication signal received by the communication component 212. The integrated security element 110 acts on the information received by the processing unit 206, for example, to complete the payment function with the cash register. The integrated security element 110 uses the key of the flash memory cryptographic method stored at the secure flash memory 114 to decrypt the bank information stored as encrypted data on the main flash memory 102. The integrated security element 110 receives the key of the flash memory cryptographic method from the secure flash memory 114 through a dedicated channel. The security of the dedicated channel is protected according to the secure communication protocol based on the confidential key established during the negotiation between the integrated security element 110 and the secure flash memory 114. The integrated security element 110 uses the decrypted bank information obtained from the main flash memory 102 to automatically process the payment. The integrated secure element 110 can communicate with the input / output interface 210 to support the user interface provided by the input / output component 214. The integrated secure element 110 sends a signal to the input / output component 214 through the processing unit 206, the signal indicating when the payment is completed. In response to the signal indicating when the payment is completed, the input / output component 214 changes the user interface to indicate a successful payment to the user.
[0040] Figure 3 is a conceptual diagram illustrating an example system 300 having a secure element architecture including secure external data storage. The system 300 includes Figure 1 and Figure 2 Components similar to those shown in the systems 100 and 200 illustrated in FIG.
[0041] The system 300 includes a first external memory 302 (referred to as "first memory 302") and two secure external memories, namely, a secure memory 314-1 and a secure memory 314-2. The first memory 302 may be a device memory or a device flash memory similar to the main flash memory 102. Each of the two second memories 314-1 and 314-2 is a secure memory, and each may be a secure flash memory similar to the secure flash memory 114. One or both of the second memories 314-1 and 314-2 may be different types of secure memories.
[0042] The system 300 includes a SoC 308 similar to the SoC 108. The SoC 308 includes a plurality of integrated secure elements 310-1, 310-2, and 310-3. Each of the integrated secure elements 310-1, 310-2, and 310-3 is an example of the integrated secure element 110.
[0043] The first memory 302 and the system on chip 308 are communicatively coupled via a memory bus 306. The other components of the system 300 may access the first memory 302 using the memory bus 306.
[0044] Dedicated channels 312-1 and 312-2 communicatively couple multiple integrated secure elements 310-1, 310-2, and 310-3 to secure memories 314-1 and 314-2. Dedicated channel 312-1 communicatively couples integrated secure elements 310-1 and 310-2 to secure memory 314-1. Dedicated channel 312-2 communicatively couples integrated secure element 310-3 to secure memory 314-2.
[0045] The first memory 302 stores data 304-1, data 304-2, data 304-3, and data 304-4. The integrated security element 310-1 protects the security of data 304-1 by encrypting data 304-1 before the first memory 302 writes data 304-1. Similarly, the integrated security element 310-2 encrypts data 304-2 before writing data 304-2 to the first memory 302. The integrated security element 310-3 manages both data 304-3 and data 304-4. The integrated security element 310-3 encrypts data 304-3 or data 304-4 before the first memory 302 writes data 304-3 or data 304-4.
[0046] The secure memory 314-1 stores a cryptographic key 306-1, and the integrated secure element 310-1 uses the cryptographic key 306-1 at the first memory 302 to encrypt or decrypt the data 304-1. The secure memory 314-1 also stores a cryptographic key 306-2, and the integrated secure element 310-2 uses the cryptographic key 306-2 to encrypt or decrypt the data 304-2. The secure memory 314-2 stores a cryptographic key 306-3, and the integrated secure element 310-3 uses the cryptographic key 306-3 to encrypt or decrypt the data 304-3. The secure memory 314-2 also stores a cryptographic key 306-4. The integrated secure element 310-3 can use the cryptographic key 306-4 to encrypt or decrypt the data 304-4. In other examples, the integrated security element 310-3 uses the same cryptographic key 306-3 used to encrypt or decrypt the data 304-4. The secure memory 314-2 also stores other data 316. Examples of other data include timestamp information (used to determine the life of the cryptographic key), a replay counter for preventing replay attacks, or other information required to protect the security of the dedicated channel 312-2 so that information stored on the secure memory 314-2 can be accessed through the integrated security element 310-3.
[0047] To protect the cryptographic keys 306-1, 306-2, and 306-3, secure memories 314-1 and 314-2 and integrated security elements 310-1, 310-2, and 310-3 protect the dedicated channels 312-1 and 312-2. By establishing a shared secret key to sign communications on the dedicated channels 312-1 and 312-2, secure memories 314-1 and 314-2 and integrated security elements 310-1, 310-2, and 310-3 can verify that the communications are authentic and are not part of a replay attack or other malicious attempt to access the SoC 308 or the data 304-1, 304-2, or 304-3.
[0048] The secure memories 314-1 and 314-2 perform ECDH or other secure communication techniques with the integrated secure elements 310-1, 310-2, and 310-3 using respective copies of the CA public root key and the corresponding private key to agree on the shared keys 304-1, 304-2, and 304-3, which the entities can then use to secure their communications on the dedicated channels 312-1 and 312-2. Each of the secure memories 314-1, 314-2, and the integrated secure elements 310-1 to 310-3 is loaded with respective copies of the CA public root key and the corresponding private key.
[0049] The secure memory 314-1 and the integrated secure element 310-1 use their public and private keys to agree on a shared key 304-1, which the entity then uses to secure its communications on the dedicated channel 312-1. The secure memory 314-1 and the integrated secure element 310-2 use their public and private keys to agree on a different shared key 304-2, which the entity then uses to secure its communications on the dedicated channel 312-1. Even though both the integrated security elements 310-1 and 310-2 communicate with the secure memory 314-1 through the same dedicated channel 312-1, each of the integrated security elements 310-1 and 310-2 uses a different secure channel based on a different shared key 304-1 or 304-2, and therefore, the integrated security elements 310-1 and 310-2 can only access their own cryptographic keys 306-1 and 306-2, but cannot access each other's cryptographic keys 306-1 and 306-2.
[0050] Finally, secure memory 314-2 and integrated secure element 310-3 use the public and private keys to agree on a unique shared key 304-3, which the entities then use to secure their communications over dedicated channel 312-2. When securing dedicated channel 312-2, integrated secure element 310-3 has exclusive access to cryptographic keys 306-3 and 306-4 using a single secure channel.
[0051] Thus, system 300 is an example of a secure element architecture with secure external storage that includes multiple secure channels between multiple integrated secure elements and multiple secure memories. Using the secure element architecture of system 300, integrated secure element 310-1 has exclusive access to cryptographic key 306-1, integrated secure element 310-2 has exclusive access to cryptographic key 306-2, and integrated secure element 310-3 has exclusive access to cryptographic keys 306-3 and 306-4. Utilizing secure and exclusive access to corresponding subsets of cryptographic keys 306-1, 306-2, 306-3 and 306-4, integrated security elements 310-1, 310-2 and 310-3 can independently manage the security of their corresponding data 304-1, 304-2, 304-3 and 304-4, while facilitating the expansion and security of the corresponding data 304-1, 304-2, 304-3 and 304-4 without compromising availability.
[0052] Figure 44 is a conceptual diagram illustrating an example system 400 having a plurality of secure element architectures including secure external data storage. System 400 includes main flash memory 102, SoC 108, and secure flash memory 114 from system 100. SoC 108 includes integrated secure element 110, which in this example includes a secure function component 404. In addition to flashing a cryptographic key 116, secure flash memory 114 also includes an update component 402. In some examples, integrated secure element 110 also includes an update component 402 so that either integrated secure element 110 or secure flash memory 114 can update the cryptographic key. The secure function component 404 and the update component 402 can be implemented as hardware, programmable logic, and / or embedded components.
[0053] The security function component 404 is configured to perform operations on the sensitive information 104 stored at the main flash memory 102. The security function component 404 uses the flash cryptographic key 116 to decrypt the sensitive information 104, and likewise, uses the flash cryptographic key 116 to encrypt the sensitive information 104 when writing the sensitive information 104 to the main flash memory 102. The security function may calculate a MAC before encrypting the sensitive information 104 and store the MAC to verify the sensitive information 104 during subsequent reading and decryption of the sensitive information 104.
[0054] Whether part of the integrated secure element 110 or the secure flash memory 114, the update component 402 is configured to automatically update the flash cryptographic key 116, for example in an effort to promote "perfect forward security". The update component 402 can generate new flash cryptographic keys 116 on a schedule, periodically, randomly, or in response to an event. The security function 404 can cause the integrated secure element to transmit a request for the flash cryptographic key 116 over the dedicated channel 112 or provide the flash cryptographic key 116 when generated by the integrated secure element 110.
[0055] For example, the security function component 404 indicates in the request that the request supports an upcoming encryption and write operation to the sensitive information 104. Based on the indication that the request supports the upcoming write, the update component 402 can generate a new flash cryptographic key to replace the old flash cryptographic key 116 in response to the request, and can send the new flash cryptographic key to the security function component 404. If the security function component 404 indicates in the request that the request is not for an upcoming encryption and write operation to the sensitive information 104, the secure flash 114 responds to the request with the flash cryptographic key 116, and the update component 402 does not generate a new flash cryptographic key. If the update component 402 of the integrated secure element 110 generates a new flash cryptographic key to replace the old flash cryptographic key 116, the update component 402 can send the new flash cryptographic key to the security function component 404 instead of sending the request. Figure 5 is a flow diagram illustrating example operations 500 performed by an example system having a secure element architecture including secure external data storage. Figure 1 Operations 500 are described in the context of system 100 of FIG. Operations 500 may be performed in a different order or with additional operations or fewer operations than those shown.
[0056] In 502, the integrated secure element 110 communicates with the secure flash memory 114 to determine a shared secret key (e.g., key 304-1, key 304-2, key 304-3). The integrated secure element 110 and the secure flash memory 114 exchange information via the dedicated channel 112. Using ECDH or other key exchange protocols, the integrated secure element 110 and the secure flash memory 114 negotiate a shared secret key that enables secure communication via the dedicated channel 112.
[0057] In 504, the integrated secure element 110 uses the shared secret key to secure the dedicated channel 112 to the secure flash memory 114. Using the shared secret key, the integrated secure element 110 and the secure flash memory 114 sign the communication to indicate authenticity.
[0058] In 506, the integrated secure element 110 uses the dedicated channel 112 to access the flash cryptographic key 116 stored by the secure flash 114. The integrated secure element 110 requests the flash cryptographic key 116 from the secure flash 114, and the secure flash 114 returns the flash cryptographic key 116 during communication through the dedicated channel 112, which is secured based on the shared key.
[0059] In 508, the integrated security element 110 uses the flash cryptographic key 116 to decrypt the sensitive information 104 stored at the main flash memory 102 using the flash cryptographic key 116. The sensitive information 104 may include data, such as a cryptographic key, a network access credential, a security key, financial data, or user data. The integrated security element 110 uses the sensitive information 104 to perform a function (e.g., a cryptographic function, a network authentication function, a security function, a financial transaction function), and repeats operations 506 and 508 as needed to use the sensitive information 104 to perform a function.
[0060] In some cases, the integrated secure element 110 modifies the sensitive information 104 or generates new sensitive information. In 510, the integrated secure element performs the function of generating new sensitive information.
[0061] In 512, the integrated secure element 110 accesses an updated version of the flash cryptographic key 116 stored by the secure flash memory 114 using the dedicated channel 112. Before writing new sensitive information to the main flash memory 102, the integrated secure element 110 communicates with the secure flash memory 114 to obtain a new flash cryptographic key to replace the flash cryptographic key 116. The secure flash memory 114 automatically updates the flash cryptographic key 116 before the integrated secure element 110 uses the flash cryptographic key 116 to encrypt data. Alternatively, the integrated secure element 110 updates the flash cryptographic key 116 and provides the updated flash cryptographic key to the secure flash memory 114.
[0062] In 514, the integrated secure element 110 encrypts the new sensitive information 104 using the updated version of the flash cryptographic key 116 before writing the new sensitive information to the main flash memory 102. The integrated secure element calculates a MAC associated with the updated flash cryptographic key 116 and verifies the MAC to confirm the updated flash cryptographic key 116. In 516, the integrated secure element 110 writes the encrypted new sensitive information to the main flash memory 102.
[0063] Example 1: A computing system, comprising: a first flash memory, the first flash memory being configured to store sensitive information that has been encrypted using a flash memory cryptographic key; a second flash memory, the second flash memory being configured to store a flash memory cryptographic key; a system on chip, the system on chip comprising an integrated security element, the integrated security element using the flash memory cryptographic key to cryptographically protect sensitive information stored in the first flash memory; and a secure channel, the secure channel being located between the integrated security element and the second flash memory, the integrated security element having exclusive access to the flash memory cryptographic key from the secure channel.
[0064] Example 2: A computing system according to Example 1, wherein: the integrated security element and the second flash memory each include corresponding public keys and private keys; the integrated security element and the second flash memory are configured to determine a shared secret key based on the public key, and the shared secret key enables communication through a secure channel using an electronic communication Diffie-Hellman key exchange protocol.
[0065] Example 3: The computing system of Example 2, wherein the second flash memory further includes an anti-replay counter or timestamp information for flashing a cryptographic key.
[0066] Example 4: A computing system according to any one of Examples 2 or 3, wherein the sensitive information is first sensitive information, and one or both of the integrated security element and the second flash memory are configured to automatically update the flash memory cryptographic key before the integrated security element uses the flash memory cryptographic key to encrypt the second sensitive information at the first flash memory.
[0067] Example 5: The computing system of any one of Examples 2 to 4, wherein the second flash memory is configured to periodically and automatically update the key of the flash cryptographic mode.
[0068] Example 6: The computing system of any one of Examples 1 to 5, wherein the first flash memory is a shared flash memory, and the computing system further comprises one or more other components that access the shared flash memory and do not access the shared secret key or the secure channel.
[0069] Example 7: A computing system according to any one of Examples 1 to 6, wherein: the key of the flash memory cryptographic mode is the key of the first flash memory cryptographic mode; the sensitive information is the first sensitive information; the integrated security element is the first integrated security element; the secure channel is the first secure channel; the first flash memory is further configured to store second sensitive information that has been encrypted using the key of the second flash memory cryptographic mode; the second flash memory is further configured to store the key of the second flash memory cryptographic mode; the on-chip system includes a second integrated security element, which uses the key of the second flash memory cryptographic mode to encrypt or decrypt the second sensitive information stored in the first flash memory; and the computing system further includes a second secure channel between the second integrated security element and the second flash memory, from which the second integrated security element has exclusive access to the key of the second flash memory cryptographic mode.
[0070] Example 8: A computing system according to any one of Examples 1 to 7, wherein: the key of the flash memory cryptographic mode is the key of the first flash memory cryptographic mode; the sensitive information is the first sensitive information; the second flash memory is further configured to store the key of the second flash memory cryptographic mode; the first flash memory is further configured to store the second sensitive information that has been encrypted using the key of the second flash memory cryptographic mode; the integrated security element is further configured to use the key of the second flash memory cryptographic mode to encrypt or decrypt the second sensitive information stored in the first flash memory; and the secure channel between the integrated security element and the second flash memory provides the integrated security element with exclusive access to the key of the first flash memory cryptographic mode and the key of the second flash memory cryptographic mode.
[0071] Example 9: The computing system of any one of Examples 1 to 8, wherein a storage capacity of the first flash memory is greater than a storage capacity of the second flash memory.
[0072] Example 10: The computing system of any one of Examples 1 to 9, wherein the sensitive information includes at least one of a cryptographic key, a network access credential, a security key, financial data, or user data.
[0073] Example 11: A method for protecting the security of sensitive information in an external flash memory of a computing system, the method comprising: transmitting information by an integrated security element of an on-chip system through a dedicated channel between the integrated security element and a second flash memory of the computing system for determining a shared secret key based on corresponding copies of a public key and a private key preprogrammed into each of the integrated security element and the second flash memory; protecting the security of the dedicated channel based on the shared secret key to provide the integrated security element with exclusive access to a flash cryptographic key stored by the second flash memory; in response to protecting the security of the dedicated channel, accessing the flash cryptographic key stored by the second flash memory via the dedicated channel; and cryptographically protecting sensitive information stored in the external flash memory using the flash cryptographic key.
[0074] Example 12: According to the method of Example 11, wherein the sensitive information is first sensitive information, and the key of the flash memory cryptographic mode is the key of the first flash memory cryptographic mode, the method further includes: before writing the second sensitive information to the external flash memory, obtaining the key of the second flash memory cryptographic mode automatically generated by the second flash memory via a dedicated channel to replace the key of the first flash memory cryptographic mode; and using the key of the second flash memory cryptographic mode to encrypt the second sensitive information before writing the second sensitive information to the external flash memory.
[0075] Example 13: A method according to any one of the aforementioned Examples 11 to 12, wherein encrypting or decrypting sensitive information stored in an external flash memory includes: encrypting the sensitive information using a flash memory cryptographic key; and after encrypting the sensitive information, writing the sensitive information to a first hash.
[0076] Example 14: A method according to any one of the aforementioned Examples 11 to 13, wherein encrypting or decrypting sensitive information stored in an external flash memory comprises: reading the sensitive information from the external flash memory; and after reading the sensitive information from the external flash memory, decrypting the sensitive information using a flash memory cryptographic key.
[0077] Example 15: A method according to any of the preceding Examples 11 to 14, wherein transmitting information used to determine a shared secret key is a facilitation of an electronic communication Diffie-Hellman key exchange protocol.
[0078] Example 16: A method according to any one of the aforementioned Examples 11 to 15, wherein accessing the key of the flash password mode includes: using the key of the flash password mode to obtain other information stored by the second flash memory, the other information including an anti-replay counter or timestamp information for confirming the key of the flash password mode.
[0079] Example 17: A method according to any one of the aforementioned Examples 11 to 16, wherein the key of the flash password mode includes the key of the first flash password mode, and accessing the key of the first flash password mode includes: automatically receiving the updated flash password mode key from a second flash that replaces the key of the first flash password mode.
[0080] Example 18: A method according to any one of the aforementioned Examples 11 to 17, wherein the key of the flash memory cryptographic mode is a key of the first flash memory cryptographic mode, and the method further includes: writing the sensitive information to an external flash memory after encrypting the sensitive information using the key of the first flash memory cryptographic mode; determining the modification of the sensitive information; obtaining a key of a second flash memory cryptographic mode automatically generated by a second flash memory via a dedicated channel to replace the key of the first flash memory cryptographic mode; using the key of the second flash memory cryptographic mode to encrypt the sensitive information after modifying the sensitive information; and replacing the sensitive information encrypted using the key of the first flash memory cryptographic mode on the external flash memory with the modified sensitive information encrypted using the key of the second flash memory cryptographic mode.
[0081] Example 19: A method according to any one of the preceding Examples 11 to 8, wherein protecting the security of the dedicated channel includes: secretly communicating with the second flash memory to prevent another security element of the system on chip that is communicating with the second flash memory from accessing a key of the flash memory cryptographic mode.
[0082] Example 20: The method of any of the preceding examples 11 to 19, wherein the external flash memory is a shared flash memory accessible to other components of the computing system.
[0083] Example 21: The method of any one of the preceding Examples 11 to 20, wherein the dedicated channel between the integrated secure element and the second flash memory comprises an exclusive physical link between the integrated secure element and the second flash memory.
[0084] Example 22: A method according to any one of the preceding Examples 11 to 21, wherein the sensitive information includes at least one of the following: a cryptographic key, a network access credential, a security key, financial data, or user data.
[0085] Example 23: A mobile computing device comprising a system-on-chip having an integrated secure element configured to perform any of the methods of preceding Examples 11 to 22.
[0086] Example 24: A system comprising an apparatus for performing any of the methods described in Examples 11 to 22 above.
[0087] Example 25: A computer-readable storage medium comprising instructions which, when executed, configure an integrated secure element of a system-on-chip to perform any of the methods according to the preceding examples 11 to 22.
[0088] Although various preferred embodiments of the present disclosure have been described in the foregoing description and shown in the accompanying drawings, it should be clearly understood that the present disclosure is not limited thereto but may be embodied in various ways to be practiced within the scope of the following claims. From the foregoing description, it will be apparent that various changes may be made without departing from the spirit and scope of the present disclosure as defined by the following claims.
Claims
1. A method for protecting the security of sensitive information in a flash memory of a computing system, the method comprising: transmitting, by an integrated secure element of the system on chip through a dedicated channel between the integrated secure element and a secure flash memory of the computing system, information for determining a shared secret key to enable secure communication between the integrated secure element and the secure flash memory through the dedicated channel, the information being based on a first copy of a public key and a private key pair preprogrammed into the integrated secure element and a second copy of the public key and the private key pair preprogrammed into the secure flash memory; securing the dedicated channel between the integrated secure element and the secure flash memory based on the shared secret key to establish a secure dedicated channel to provide the integrated secure element with exclusive access to a flash cryptographic key stored by the secure flash memory; responsive to securing the dedicated channel, accessing the flash cryptographic key stored by the secure flash memory via the secure dedicated channel; as well as Sensitive information written to the flash memory of the computing system is cryptographically protected using the flash cryptographic key obtained from the secure flash memory.
2. The method according to claim 1, wherein: The sensitive information is first sensitive information written to the flash memory, and the key of the flash cryptographic mode is a key of the first flash cryptographic mode, and the method further comprises: Before writing the second sensitive information into the flash memory of the computing system, obtaining a second flash cryptographic key to replace the first flash cryptographic key; and Before writing the second sensitive information into the flash memory of the computing system, the second sensitive information is cryptographically protected using a key of the second flash cryptographic method.
3. The method according to claim 2, wherein: Obtaining the key of the second flash password method includes: generating a key for the second flash cryptographic mode before sharing the key for the second flash cryptographic mode with the secure flash memory; or After the secure flash memory generates the key of the second flash cryptographic mode, the key of the second flash cryptographic mode is received.
4. The method according to claim 1, wherein: Protecting the sensitive information written to the flash memory in a password-protected manner includes: Encrypting the sensitive information using the flash cryptographic key; and The encrypted sensitive information is written to the flash memory of the computing system.
5. The method according to claim 1, wherein: Protecting the sensitive information written to the flash memory in a password-protected manner includes: reading the sensitive information from the flash memory of the computing system; and The sensitive information is decrypted and authenticated using the key of the flash cryptographic method.
6. The method according to claim 1, wherein: Transmitting the information for use in determining the shared secret key facilitates the electronic communications Diffie-Hellman key exchange protocol.
7. The method according to claim 1, wherein: Accessing the flash cryptographic key includes using the flash cryptographic key to obtain other security information stored by the secure flash memory, the other security information including an anti-replay counter or timestamp information used to validate the flash cryptographic key.
8. The method according to claim 1, wherein: The key of the flash memory password mode is a key of the first flash memory password mode, and the method further comprises: After encrypting the sensitive information using the key of the first flash cryptographic method, writing the sensitive information into the flash memory; determining a modification to the sensitive information to provide modified sensitive information; Obtaining, via the dedicated channel, a second flash cryptographic key automatically generated by the secure flash memory to replace the first flash cryptographic key; confirming the key of the second flash cryptographic method by calculating a message authentication code; In response to confirming the second flash cryptographic key, encrypting the modified sensitive information using the second flash cryptographic key; and The sensitive information encrypted using the key of the first flash cryptographic mode is replaced on the flash memory with the modified sensitive information encrypted using the key of the second flash cryptographic mode.
9. The method according to claim 1, wherein: Securing the dedicated channel includes communicating secretly with the secure flash memory to prevent another secure element of the system on chip that is communicating with the secure flash memory from accessing the flash cryptographic key.
10. The method according to claim 1, wherein: The flash memory is not integrated into the system on chip and is a shared flash memory accessible to the system on chip and other components of the computing system.
11. The method according to claim 1, wherein: The dedicated channel between the integrated secure element and the secure flash memory comprises an exclusive physical link between the integrated secure element and the secure flash memory.
12. The method according to any one of claims 1 to 11, wherein: The sensitive information includes at least one of the following: cryptographic keys, network access credentials, security keys, financial data, and user data.
13. A mobile computing device comprising an integrated secure element of a system-on-chip configured to perform the method according to any one of claims 1 to 12.
14. A system for securing sensitive information, the system comprising means for performing the method according to any one of claims 1 to 12.
15. A non-volatile computer-readable storage medium comprising instructions which, when executed by an integrated security element of a system on chip, cause the integrated security element to perform the method according to any one of claims 1 to 12.
Citation Information
Patent Citations
System on Chip with Embedded Security Module
US20140223569A1
Processing commands according to authorization
US8332931B1