Secure boot of kernel modules
AssigneeBanco Bilbao Vizcaya Argentaria, S.A.
InventorsJesús DÍAZ VICO, Javier MORENO MOLINA
Life of this patent
Estimating the term…
Abstract
A computer-implemented method for providing a secured updated kernel module of an electronic device, wherein the method comprises the following steps: inserting by a computer a chameleon hash of a kernel module, a kernel module private key of the kernel module and an updated kernel module of the kernel module in a chameleon hash collision function thereby obtaining a collision data, combining by the computer, the updated kernel module with the collision data obtaining thereby a secured updated kernel module. Additionally, it is further described a computer-implemented method for secure updating at least one kernel module of an electronic device, a system comprising a server and an electronic device, computer programs and a computer-readable medium.
Claims11
A computer-implemented method for secure updating at least one secured updated kernel module of an electronic device avoiding the intervention of the kernel developer, wherein the electronic device comprises an operating system and an authenticated kernel structure, the authenticated kernel structure comprising:
- kernel metadata comprising:
- at least one kernel module public key of at least one kernel module, wherein each kernel module public key corresponds to a kernel module private key, being the corresponding kernel module public and private keys of a kernel module pair of keys, and
- a kernel module root hash comprising a root hash of a Merkle tree,
- kernel data comprising:
- kernel body data, and
- at least one kernel module, wherein a kernel module is associated to one kernel module pair of keys,
- kernel metadata signature, and
- kernel body data signature,
- wherein the method comprises:
- the following steps,
- providing by a computer a secured updated kernel module generated according to the following computer-implemented method:
- inserting by a computer a chameleon hash of a kernel module, a kernel module private key of the kernel module and an updated kernel module of the kernel module in a chameleon hash collision function thereby obtaining a collision data, wherein the chameleon hash is a leaf node of the Merkle tree and the collision data is such that when the collision data is combined with the updated kernel module and said combination is hashed using a chameleon hash function (ChamHash), the result is equal to the chameleon hash of the kernel module,
- ii) combining by the computer, the updated kernel module with the collision data obtaining thereby a secured updated kernel module, sending by the computer the secured updated kernel module to the electronic device by;
- inserting exclusively internally by the electronic device, without performing any communication outside said electronic device, the secured updated kernel module, the corresponding kernel module public key and the chameleon hash of the kernel module in a chameleon hash verification function thereby obtaining a test hash,
- if the test hash is different from the chameleon hash of the kernel module, notifying to the operating system of the electronic device that the secure updating of the kernel module is invalid,
- if the test hash is equal to the chameleon hash of the kernel module, notifying to the operating system of the electronic device that the secure updating of the kernel module is valid, and
- installing exclusively internally by the electronic device, without performing any communication outside said electronic device, the secured updated kernel module in the kernel data updating the kernel module.
Dependencies are inferred from the claim text.