System and method for generating and managing a key package

The embodiment herein provides a method for securely transmitting a firmware update image to a device using a key management system. The key management subsystem includes a cellular modem. The method includes (i) configuring a SIM of the cellular modem to update a public key of a server using a key manager module of the Subscriber Identity Module (SIM), (ii) enabling the SIM to receive an encrypted key package from the server, using the cellular modem, (iii) processing the encrypted firmware update image that has to be transmitted to the device using the SIM and (iv) transmitting the decrypted key package to the device to enable implementation of the decrypted key package into the device using the SIM.

BACKGROUND

Technical Field

The embodiments herein generally relate to a secure communication of one or more keys, and, more particularly, to a system and method for securely sharing one or more keys between a server and a device using a cellular modem with a Subscriber Identity Module (SIM).

Description of the Related Art

The Internet of Things (IoT) devices are all unique and uniquely identified. The IoT device has to respond with at least one of signature, a private key or a symmetric key. The injection of the key in the IoT device may be performed on the Central Processing Unit (CPU). The injection of the key in the IoT device is protected by One Time Programmable memory (OTP). The sharing of symmetric key may lead to possible theft while being shared with the device. The private key is typically generated by the processor of the device which may also lead to possible theft as like the symmetric key. Further, the private key generation may also be subjected to manipulation unless the CPU random number generation is secure. Generally, the device is connected with a key server to retrieve keys over a secure link and is shared with the device over an un-secure link. It is hard for an IoT vendor to use a contract manufacturer and to provide a guarantee to the customers regarding the security of the keys. This requires a higher level and/or alternate keys to be used during provisioning which replaces the factory keys. In general, higher level keys or alternate keys are not stored in the OTP and are, therefore, subject to theft. Also, if the OTP keys in the factory are compromised, it may lead to a breach in security of any future key updates since all new keys are encrypted with existing keys. Existing systems use Perfect forward secrecy (e.g. ECDHE) but that is not always available for protocols that are used for loading keys. Sometimes, the keys need to be injected using a serial link. Transport layer security (TLS) does have options for ECDHE, but it may not be available in an operational setup environment. Storing a large number of keys in the OTP is extremely difficult as the capacity of OTP to store keys is limited. There is a lack of portability of the secure element between CPUs and operating systems. Each secure element needs to be verified for each OS-CPU-manufacturing facility. Any breach in verification may lead to issues.

Legacy devices with no or weak cryptographic (decryption and signature verification) keys are currently shipped and the new IoT devices have security issues related to the absence of keys, reuse of keys, or use of weak cryptographic keys. Moreover, these devices, even when upgraded over the network, may not be sent keys in a cryptographically secure manner as they lack a device-specific unique symmetric key or a private key. Hence, any payload sent over the network can, at some point, be decrypted by a listening third party. The only way to safely deploy these keys is via physical means like a USB flash drive, one per device. Many loT devices have ports available to inject keys. When keys are burnt into the Hardware (HW) and if they get compromised, there is no way to fix it easily.

A cellular Subscriber Identity Module (SIM) is a well-known cryptography service providing an element that performs encryption, decryption, Signing and signature verification. The SIM is tamper resistant and provides a root of trust and other security functions for cellular modems. The secure functions include at least storing private and public keys. The SIM additionally stores information on payment and configurations. SIM may load and run the approved applications which may access, store and use approved keys of devices or the SIM. The SIM may communicate with external devices securely and it may facilitate the access to and from a main application processor of the device. Further, the SIM is a tamper-proof piece of hardware and it is issued by cellular service providers and mobile virtual network operators (MVNO). Each country has laws regarding the protection of the keys in the SIM. The SIM security is well understood. SIM's may also be extended by adding applets. SIMs are independent of the loT platform. Hence, a SIM is a provably secure element.

Accordingly, there remains a need for a system and method for securely transmitting one or more keys between servers and devices using a SIM.

SUMMARY

In view of the foregoing, an embodiment herein provides a system for securely transmitting one or more keys to a device. The system includes a cellular modem that is communicatively connected with the device. The cellular modem includes a Subscriber Identity Module (SIM). The SIM includes a key manager module that is adapted to (i) configure the SIM to update a public key of a server, (ii) enable the SIM to receive an encrypted key package from the server, (iii) process the encrypted key package that has to be transmitted to the device and (iv) transmit the decrypted key package to the device to enable implementation of the decrypted key package into the device. The processing of the encrypted key package includes decrypting the encrypted key package associated with the device with at least one of a private key of the SIM and verifying the key package using the public key of the SIM.

The encrypted key package is generated using the server by (a) generating a key package by processing one or more keys associated with the device, (b) signing the key package with a private key of the server and (c) encrypting the key package with a public key of the SIM to obtain the encrypted key package. The encrypted key package includes one or more keys that are specific to the device, and at least one of (a) metadata associated with the one or more keys, (b) one or more counters associated with the one or more keys, (c) a firmware update data associated with the device or (d) a date and a time when the one or more keys are created. The one or more keys are obtained from a key server.

In some embodiments, the key manager module is adapted to configure the SIM with an operational symmetric SIM key that is shared with the server when the key package is encrypted with the operational symmetric SIM key.

In some embodiments, the key manager module decrypts the encrypted key package associated with the device using the operational symmetric SIM key of the server.

In some embodiments, the key manager module is adapted to enable multi-stage decryption process by partially decrypting the encrypted key package and providing an encryption key to the device to fully decrypt the partially decrypted key package.

In some embodiments, the key manager module is configured to enable the SIM to communicate with the server and the device for receiving and transmitting messages.

In some embodiments, the server includes a manufacturing server or an operation server.

In another aspect, a system for securely transmitting one or more keys to a server. The system includes a cellular modem that is communicatively connected with the device. The cellular modem includes a Subscriber Identity Module (SIM). The SIM includes a key manager module that is adapted to (i) configure the SIM to update a public key of a server, (ii) enable the SIM to receive an encrypted key package from the device, (iii) sign the key package with a private key of the SIM and (iv) encrypt the key package with a public key of the server to obtain the encrypted key package and (v) transmit the encrypted key package to the server to store the encrypted key package The device generates the key package by processing one or more keys associated with the device. The encrypted key package includes the one or more keys that are specific to the device, and at least one of metadata associated with the one or more keys, one or more counters associated with the one or more keys, or a date and a time when the one or more keys are created.

In some embodiments, the key manager module is adapted to encrypt the key package with an operational symmetric SIM key that is shared with the server.

In some embodiments, the server decrypts the encrypted key package using the operational symmetric SIM key.

In some embodiments, the key manager module is adapted to enable multi-stage encryption process by receiving a partially encrypted key package and an encryption key from the device to fully encrypt the partially encrypted key package.

In some embodiments, the key manager module is configured to enable the SIM to communicate with the server and the device for receiving and transmitting messages.

In some embodiments, the server includes a manufacturing server or an operation server.

In yet another aspect, a method for securely transmitting a firmware update image to a device using a key management system includes (i) configuring the SIM to update a public key of a server using a key manager module of the Subscriber Identity Module (SIM), (ii) enabling the SIM to receive an encrypted key package from the server, using the cellular modem, (iii) processing the encrypted firmware update image that has to be transmitted to the device using the SIM and (iv) transmitting the decrypted key package to the device to enable implementation of the decrypted key package into the device using the SIM. The processing of the encrypted key package includes decrypting the encrypted key package associated with the device with at least one of a private key of the SIM or the public key of the SIM. The encrypted key package is generated by (a) generating a key package by processing a firmware update image associated with the device using the server, (b) signing the key package with a private key of the manufacturing server, (c) encrypting the key package with a public key of the SIM to obtain the encrypted key package. The firmware update image is obtained from a manufacturing server. The encrypted key package includes the firmware update image that is specific to the device, and at least one of (a) metadata associated with the firmware update image, (b) one or more counters associated with the firmware update image, (c) a firmware update data associated with the device or (d) a date and a time when the firmware update image is created.

The system encrypts public keys for the device when no public key is available in the device. The system may adapt to the device which has no cryptographically secure key system. If a device has a SIM card, then the system may encrypt the key package with existing public keys of the SIM. The SIM card may decrypt the key package for the device without the manufacturer having access to the decrypted keys in transit from a key source. When the device has a proprietary format key package or similar key package that the system generates, the system may perform a required action such as storing keys, or incrementing counters to prevent replay attacks and adding a date/time to prevent replay attacks, using the key manager.

The SIM enables the secure connection between the server and the device. The key manager on the SIM may decrypt the key package and return it to the Operating System (OS) of the device. The key packages may have monotonically incrementing counters, date and time stamps, and new symmetric keys to prevent replay attacks. If applications on the main device processor (not the modem) are tightly integrated with the SIM using Cryptographic Services Application programming interface (API) or a similar abstraction, the entire key package may be stored in the SIM and not sent to the device for key deployment. The device without a SIM or an internet connection may be connected with the SIM of the cellular modem using a physical network for obtaining a new firmware and a key using the cellular modem. The SIM may perform all cryptographical operations at a required speed.

The system improves the security on the communication between the device and the server with the SIM by (i) implementing the communication between the device and the server using the private and/or public key of the server and the device that is stored in the SIM, (ii) generating a public-private key pair during manufacturing to pair the device and the SIM if the device does not have the One Time Programmable memory (OTP). Manufacturing keys may be replaced in the field using operational keys, and the operational keys may be strengthened using an elliptic curve Diffie-Hellman key exchange (ECDHE), whereby the public-private key pairs are ephemerally created and cannot be compromised even if the original public-private key pairs are compromised.

In the accompanying drawings, a number is employed to represent an item over which the number is positioned or an item to which the number is adjacent.

DETAILED DESCRIPTION OF THE DRAWINGS

As mentioned, there remains a need for a system and method for transmitting one or more keys between servers and devices using the cellular modem comprising of the SIM. The embodiments herein achieve this by providing a key management system that communicates with one or more servers and one or more IOT devices for secure communication of a key package. Referring now to the drawings, and more particularly toFIGS. 1 through 9, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments.

FIG. 1illustrates a system view of a system for securely transmitting one or more keys to a device or a server according to an embodiment herein. The system includes a server102, a key management system106, a device108, a network112and a key server114. The server102is communicatively connected to the device108through the network112. The key management system106is communicatively connected to the device108. The key server114is communicatively connected to the key management system106. The key management system106includes a cellular modem comprising a Subscriber Identity Module (SIM) and a key manager module. The server102obtains a public key of the Subscriber Identity Module (SIM) and a symmetrical key of the SIM from the key server114. In some embodiments, the server102includes at least one of a manufacturing server or an operational server. The private key and/or a public key of the server102, a private key and/or the public key of the Subscriber Identity Module (SIM) and the symmetrical key of the SIM may be obtained by the key server114using cellular operators. In an embodiment, the system securely transmits one or more keys to the device108from the server102. The key management system106configures the SIM with the public key of the server102and enables the SIM to receive an encrypted key package from the server102. The encrypted key package may be generated by the server102. The server102generates a key package by processing one or more keys associated with the device108. The one or more keys may be obtained from the key server114. The server102signs the key packages with a private key of the server102. The server102includes a server key manager104that encrypts the key package using the public key of the SIM to obtain the encrypted key package. The encrypted key packages include one or more keys associated with the device108. In an embodiment, the encrypted key packages include at least one of (a) metadata associated with the one or more keys, (b) one or more counters associated with the one or more keys, (c) a firmware update data associated with the device108and (d) a date and a time when the one or more keys are created. The key management system106processes the encrypted key package that has to be transmitted to the device108. The processing of the encrypted key package includes decrypting the encrypted key package associated with the device108with at least one of the private key of the SIM or the public key of the SIM. The key management system106transmits the decrypted key package to the device108to enable implementation of the decrypted key package into the device108. In some embodiments, the key management system106is adapted to configure the SIM with an operational symmetric SIM key that is shared with the server102when the key package is encrypted with the operational symmetric SIM key. The key management system106decrypts the encrypted key package associated with the device108using the operational symmetric SIM key of the server102. The key management system106is adapted to enable multi-stage decryption process by partially decrypting the encrypted key package and providing an encryption key to the device108to decrypt the partially decrypted key package. The key management system106is configured to enable the SIM to communicate with the server102and the device108for receiving and transmitting messages.

In some embodiments, the system securely transmits one or more keys to the server102from the device108. The key management system106configures the SIM to update a public key of the server102and enables the SIM to receive a key package from the device108. The device108generates the key package by processing one or more keys associated with the device108. The key management system106signs the key package with a private key of the SIM. The key management system106encrypts the key package with a public key of the server102to obtain the encrypted key package. The encrypted key package includes the one or more keys that are specific to the device108and at least one of metadata associated with the one or more keys, a plurality of counters associated with the one or more keys, or a date and a time when the one or more keys are created. The key management system106transmits the encrypted key package to the server102to store the encrypted key package. The key management system106is adapted to encrypt the key package with an operational symmetric SIM key that is shared with the server102. The server102decrypts the encrypted key package using the operational symmetric SIM key. The key management system106is adapted to enable multi-stage encryption process by receiving a partially encrypted key package and an encryption key from the device108to encrypt the partially encrypted key package. The key management system106is configured to enable the SIM to communicate with the server102and the device108for transmitting and receiving messages. The secured communication between the server102and the device108is enabled using a secure protocol like TLS or by adding counters and timestamps, digital signatures, etc.

FIG. 2illustrates a system ofFIG. 1for transmitting one or more keys to the device108from the server102using the key management system106according to an embodiment herein. The key management system106is connected with the device108using the network112or any physical network. The key management system106includes a SIM202and a key manager module204. The key manager module204obtains a public key of the server102. In some embodiments, the key manager module obtains the public key of the server102from the key server114. The key manager module204configures the SIM202to update the public key of the server102and enables the SIM202to receive an encrypted key package from the server102. The encrypted key package is generated by the server102. The server102generates a key package by processing one or more keys associated with the device108. The one or more keys are obtained from the key server114. The server102signs the generated key package with a private key of the server102and encrypts the key package with a public key of the SIM202to generate an encrypted key package.

The key manager module204processes the encrypted key package that has to be transmitted to the device108once received from the server102. The processing of the encrypted key package includes decrypting of the received encrypted key package associated with the device108using at least one a private key or a public key of the SIM202. The key manager module204transmits decrypted key package to the device108to enable the device108to implement the decrypted key package into the device108. In some embodiments, the key manager module204enables the multi-stage decryption process by partially decrypting the encrypted key package. The key manager module204provides an encryption key to the device108to decrypt the partially decrypted key package. In some embodiments, the key management system106enables multi-passes to establish the keys for key exchange. The key management system106uses Diffie Hellman and Elliptical curve Diffie Hellman algorithms for key exchange.

FIG. 3illustrates a system ofFIG. 1for transmitting one or more keys to the server102from the device108using the key management system106according to an embodiment herein. The key management system106includes the SIM202and the key manager module204. The key manager module204obtains a private key and a public key of the SIM202and the server102. In some embodiments, the key manager module obtains a public key of the server102from the key server114. The key manager module204configures the SIM202to update the public key of the server102and enables the SIM202to receive a key package from the device108. The device108generates a key package by processing one or more keys associated with the device108. The one or more keys may be obtained from the key server114. The key manager module204signs the generated key package with a private key of the SIM202and encrypts the key package with the public key of the server102to generate an encrypted key package. The key manager module204transmits to encrypted key package to the server102to store the encrypted key package. In some embodiments, the key manager module configures the SIM202to update an operational symmetric SIM key when the key package is encrypted with the operational symmetric SIM key. The operational symmetric SIM key is used to decrypt the encrypted key package. In some embodiments, the operational symmetric SIM key may be shared the server102by the key server114.

In some embodiments, the key manager module204enables a multi-stage encryption process by partially encrypting the key package. The key manager module provides an encryption key to the server102to decrypt the partially encrypted key package. In some embodiments, the key manager module204enables the SIM202to provide communication between the server102and the device108.

FIG. 4illustrates an exploded view of the server key manager104ofFIG. 1according to an embodiment herein. The server key manager104includes a first database402, a first keys obtaining module404, a first key package processing module406, a first key package signing module408, a first key package communicating module410and a first key package updating module412. The first keys obtaining module404obtains one or more keys associated with the device and a public key of the SIM202from the key server114. The first package processing module406processes the one or more keys associated with the device to generate a key package. The generated key package is signed with a private key of the server102using the first key package signing module408. The first key package processing module406encrypts the key package with the public key of the SIM202. The encrypted key package is communicated with the device108through the SIM202using the first key package communicating module410. The first key package update module412updates and stores the encrypted key package in the first database402.

FIG. 5illustrates an exploded view of the device key manager110ofFIG. 1according to an embodiment herein. The device key manager110includes a second database502, a second keys obtaining module504, a second key package processing module506, a second key package signing module508, a second key package communicating module510and a second key package updating module512. The second keys obtaining module504obtains one or more keys associated with the device and a public key of the server102from the key server114. The second package processing module506process the one or more keys associated with the device108to generate a key package. The generated key package is signed with a private key of the SIM202using the second key package signing module508. The second package processing module506encrypts the key package with the public key of the server102. The encrypted key package is communicated to the device108through the SIM202using the second key package communicating module510. The second key package update module512updates and stores the encrypted key package in the second database502.

FIG. 6is a flow diagram that illustrates a method of securely booting a device (e.g. the device108) using a Subscriber Identity Module (SIM)202according to an embodiment herein. The secure booting of the device108is very specific to a CPU of the device. Typically, each device108has its unique booting versions. At step602, a first set of boot codes (e.g. pre-bootloader codes) are verified to determine whether the first set of boot codes are ready only (ROM) or not. In some embodiments, the verification is performed by un-mapping a physical address of the pre-bootloader code to a fault when there is an attempt to load those pages or adding a logic on the board to prevent write to those memory locations. At step604, a secure boot loader code is verified by communicating the pre-bootloader code with a SIM. If the verification fails, then the processor resets. Else, at step606, the secure bootloader code is loaded into Random Access Memory (RAM). The above steps are repeated for remaining boot codes for verification. This process is a slightly slower process for the SIM to validate all the boot firmware. At step608, the device108starts the verified boot firmware and executes it in the device108.

FIG. 7is a flow diagram illustrating a method for securely transmitting a firmware update image to the device108using the system ofFIG. 1according to an embodiment herein. At step702, the SIM202is configured to update a public key of the server102. At step704, a key package is generated by processing a firmware update image associated with the device, using the server102. The firmware update image is obtained from a manufacturing server. At step706, the key package is signed with a private key of the manufacturing server, using the server102. At step708, the key package is encrypted with a public key of the SIM to obtain an encrypted key package, using the server102. In some embodiments, the encrypted key package includes the firmware update image that are specific to the device, and at least one of (a) metadata associated with the firmware update image, (b) a plurality of counters associated with the firmware update image, (c) a firmware update data associated with the device108or (d) a date and a time when the firmware update image is created. At step710, the SIM is enabled to receive an encrypted key package from the server102using the cellular modem. At step712, the encrypted firmware update image is processed that has to be transmitted to the device108using the SIM. The processing of the encrypted key package comprises decrypting the encrypted key package associated with the device108with at least one of a private key of the SIM or a public key of the SIM. At step714, the decrypted key package is transmitted to the device108to enable implementation of the decrypted key package into the device108using the SIM202.

FIG. 8illustrates an exploded view of the communication device having a memory802having a set of computer instructions, a bus804, a display806, a speaker808, and a processor810capable of processing a set of instructions to perform any one or more of the methodologies herein, according to an embodiment herein. The processor810may also enable digital content to be consumed in the form of a video for output via one or more displays806or audio for output via speaker and/or earphones808. The processor810may also carry out the methods described herein and in accordance with the embodiments herein.

Digital content may also be stored in the memory802for future processing or consumption. The memory802may also store program specific information and/or service information (PSI/SI), including information about digital content (e.g. the detected information bits) available in the future or stored from the past. A user of the personal communication device may view this stored information on display806and select an item of for viewing, listening, or other uses via input, which may take the form of a keypad, scroll, or another input device (s) or combinations thereof. When digital content is selected, the processor810may pass information. The content and PSI/SI may be passed among functions within the personal communication device using the bus804.

The techniques provided by the embodiments herein may be implemented on an integrated circuit chip (not shown). The chip design is created in a graphical computer programming language, and stored in a computer storage medium (such as a disk, tape, physical hard drive, or virtual hard drive such as in a storage access network). If the designer does not fabricate chips or the photolithographic masks used to fabricate chips, the designer transmits the resulting design by physical means (e.g. by providing a copy of the storage medium storing the design) or electronically (e.g. through the Internet) to such entities, directly or indirectly.

The stored design is then converted into the appropriate format (e.g. GDSII) for the fabrication of photolithographic masks, which typically include multiple copies of the chip design in question that are to be formed on a wafer. The photolithographic masks are utilized to define areas of the wafer (and/or the layers thereon) to be etched or otherwise processed.

A representative hardware environment for practicing the embodiments herein is depicted inFIG. 9. This schematic drawing illustrates a hardware configuration of an information handling/computer system in accordance with the embodiments herein. The system includes at least one processor or central processing unit (CPU)10. The CPUs10are interconnected via system bus12to various devices such as a random access memory (RAM)14, read-only memory (ROM)16, and an input/output (I/O) adapter18. The I/O adapter18can connect to peripheral devices, such as disk units11and tape drives13, or other program storage devices that are readable by the system. The system can read the inventive instructions on the program storage devices and follow these instructions to execute the methodology of the embodiments herein.

The system further includes a user interface adapter19that connects a keyboard15, mouse17, speaker24, microphone22, and/or other user interface devices such as a touch screen device (not shown) or a remote control to a bus12to gather user input. Additionally, a communication adapter20connects the bus12to a data processing network25, and a display adapter21connects the bus12to a display device23which may be embodied as an output device such as a monitor, printer, or transmitter.