Thread (33 messages) 33 messages, 8 authors, 2022-09-21

RE: [EXT] Re: [RFC PATCH HBK: 0/8] HW BOUND KEY as TRUSTED KEY

flat view

From: Pankaj Gupta <pankaj.gupta@nxp.com>
Date: 2022-09-07 07:23:00
Also in: keyrings, linux-crypto, linux-integrity, lkml

-----Original Message-----
From: Michael Walle <redacted>
Sent: Tuesday, September 6, 2022 12:43 PM
To: Pankaj Gupta <pankaj.gupta@nxp.com>
Cc: jarkko@kernel.org; a.fatoum@pengutronix.de; Jason@zx2c4.com;
jejb@linux.ibm.com; zohar@linux.ibm.com; dhowells@redhat.com;
sumit.garg@linaro.org; david@sigma-star.at; john.ernberg@actia.se;
jmorris@namei.org; serge@hallyn.com; herbert@gondor.apana.org.au;
davem@davemloft.net; j.luebbe@pengutronix.de; ebiggers@kernel.org;
richard@nod.at; keyrings@vger.kernel.org; linux-crypto@vger.kernel.org;
linux-integrity@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
security-module@vger.kernel.org; Sahil Malhotra
[off-list ref]; Kshitiz Varshney [off-list ref];
Horia Geanta [off-list ref]; Varun Sethi [off-list ref]
Subject: [EXT] Re: [RFC PATCH HBK: 0/8] HW BOUND KEY as TRUSTED KEY

Caution: EXT Email

Hi,

Am 2022-09-06 08:51, schrieb Pankaj Gupta:
quoted
Hardware Bound key(HBK), is never acessible as plain key outside of
the hardware boundary. Thus, it is un-usable, even if somehow fetched
from kernel memory. It ensures run-time security.

This patchset adds generic support for classing the Hardware Bound
Key, based on:

- Newly added flag-'is_hbk', added to the tfm.

  Consumer of the kernel crypto api, after allocating
  the transformation, sets this flag based on the basis
  of the type of key consumer has.

- This helps to influence the core processing logic
  for the encapsulated algorithm.

- This flag is set by the consumer after allocating
  the tfm and before calling the function crypto_xxx_setkey().

First implementation is based on CAAM.

NXP built CAAM IP is the Cryptographic Acceleration and Assurance
Module.
This is contain by the i.MX and QorIQ SoCs by NXP.

CAAM is a suitable backend (source) for kernel trusted keys.
This backend source can be used for run-time security as well by
generating the hardware bound key.

Along with plain key, the CAAM generates black key. A black key is an
encrypted key, which can only be decrypted inside CAAM. Hence, CAAM's
black key can only be used by CAAM. Thus it is declared as a hardware
bound key.
What is the difference to the current trusted keys with CAAM?
When I tested the patch series back then, I wasn't able to import a sealed
key on another board with the same SoC.
Currently, keys that are part of trusted key-ring, contains plain key.

With this patch-set, these key will become Hw Bound Key, which is not a plain key anymore.
After this patch-set, if somehow the HB-key is retrieved from the keyring, the retrieved key  would be un-usable without hw.
 
-michael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help