<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/71150/write-ecc-key-or-rsa-key-to-kmu</link><description>In v1.4.0 SDK, AES key can be written into kmu slot, but there is no related function for ECC key and RSA key in crypto/nrf_cc310_mbedcrypto/include/mbedtls/cc3xx_kmu.h file. Does the V1.4.0 SDK support writing ECC key or RSA key to kmu?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 11 May 2022 09:06:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/71150/write-ecc-key-or-rsa-key-to-kmu" /><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/367345?ContentTypeID=1</link><pubDate>Wed, 11 May 2022 09:06:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2f73e819-fea3-4457-98c9-eadb9e5f1566</guid><dc:creator>Achim Kraus</dc:creator><description>&lt;p&gt;So, it&amp;#39;s not about someone may misuse the &amp;quot;keys&amp;quot;, it&amp;#39;s more, that someone gets access to it and misuse it in a larger scale.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/367340?ContentTypeID=1</link><pubDate>Wed, 11 May 2022 08:53:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:76b27b2c-cccd-467a-8d96-21a14f951e7d</guid><dc:creator>kratenko</dc:creator><description>&lt;p&gt;That is the point. I can put aes-keys in the kmu, where I can use them for en-/decryption without ever being able to read the key out myself, so there is no risk of the key ever becoming known. This is not the case for ECC. I will need it in software, so there is no way to have it not readable with this crypto cell. So there will always be a way to extract it, which is what I was trying to avoid. I can only make it hard to do.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/367338?ContentTypeID=1</link><pubDate>Wed, 11 May 2022 08:44:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af597f20-9fff-47d2-95fb-29a79775e138</guid><dc:creator>Achim Kraus</dc:creator><description>&lt;p&gt;I assumed, that you consider the KMU to address that usage of keys by other firmware.&lt;/p&gt;
&lt;p&gt;If so, then the other firmware can not access the symmetric key of the KMU, which is required to use the asymmetric key,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/367332?ContentTypeID=1</link><pubDate>Wed, 11 May 2022 08:29:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c22a6f69-e227-4447-b5c5-6c0c1c0378b9</guid><dc:creator>kratenko</dc:creator><description>&lt;p&gt;The problem is not, that the key is in memory, but that anyone with access to the device, could install firmware on it, that does exactly the same, to extract the private key. Granted, you would need a lot of information about the device, but that is why I see it as security by obscurity.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/367260?ContentTypeID=1</link><pubDate>Tue, 10 May 2022 20:47:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f3084d30-2b88-4a6a-8d61-4e3d13b81588</guid><dc:creator>Achim Kraus</dc:creator><description>&lt;p&gt;Maybe, you can use the &amp;quot;secured&amp;quot; symmetric key to store the asymmetric private key encrypted. That requires to decrypt the asymmetric private key only temporary and the use it for the signature in the handshake and clean it up afterwards. That maybe considered still as a critical window, but it is usually very short.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/366522?ContentTypeID=1</link><pubDate>Thu, 05 May 2022 14:25:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:46872a68-1c7f-4889-b232-e5b4afaf3758</guid><dc:creator>kratenko</dc:creator><description>&lt;p&gt;Thanks for the quick response.&lt;/p&gt;
&lt;p&gt;Yeah, I was afraid, it was a hardware limitation, but good to know for sure. TF-M is not really a thing for us, since we are using our own system with out own secure and non-secure firmware. Would not give us any benefit over doing our own solution, if I understand TF-M correctly.&lt;/p&gt;
&lt;p&gt;I guess we will go for the symmetric key approach, even if that does not prevent anyone with access to the device from extracting the private key - it just makes it more complicated, some form of Security by Obscurity.&lt;/p&gt;
&lt;p&gt;But I guess there is no other way then.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/366509?ContentTypeID=1</link><pubDate>Thu, 05 May 2022 13:54:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d730d5bc-2362-407d-a83e-21fbfb911720</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;With regard to KMU and CryptoCell, the key problem here is that it is not&amp;nbsp;possible&amp;nbsp;to push an asymmetric key from the KMU to CryptoCell directly, and this is a limitation in the HW so that cannot be changed.&lt;/p&gt;
&lt;p&gt;There are other mechanism that can be used to provide the key, though. With TF-M, you have&amp;nbsp;&lt;span&gt;Internal Trusted Storage (ITS) where the keys are protected in secure domain and not accessible to a non-secure application (see demonstration in &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/samples/crypto/persistent_key_usage/README.html"&gt;Crypto: Persistent key storage&lt;/a&gt;). TF-M is still experimental though, and this does not prevent the key against an attacker with physical access that is somehow able to dump the flash content.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Another option is to use a symmetric key in KMU that is pushed to CryptoCell (typically a &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/libraries/others/hw_unique_key.html"&gt;HW unique key&lt;/a&gt;), and derive a key from there. See &lt;a href="https://developer.nordicsemi.com/nRF_Connect_SDK/doc/1.9.1/nrf/samples/keys/hw_unique_key/README.html"&gt;Hardware unique key&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/366473?ContentTypeID=1</link><pubDate>Thu, 05 May 2022 13:07:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c846d978-22a5-45db-b0a7-28328a67ba4a</guid><dc:creator>kratenko</dc:creator><description>&lt;p&gt;Hej Einar,&lt;/p&gt;
&lt;p&gt;I am just trying to do the same thing, so my question is, are there plans to do this in the future?&lt;/p&gt;
&lt;p&gt;We are using DTLS over the Modem, but I need to do it via wired communication as well. I would hate do put my private key in a place where it can be read out. As things stand, it is securely inside the modem&amp;#39;s key store, where it cannot be read. But that does not help me when not using LTE. I would also be fine with having a way to let the modem do it for me; I pass data there, tell it, which key from it&amp;#39;s store to use, and let it return the ciphertext.&lt;/p&gt;
&lt;p&gt;Right now, all I will be able to do, is pass the key to mbedtls myself, which will mean that anyone with physical access to the device will be able to read it out, if they know what they are doing. I don&amp;#39;t want to add an external secure module to our hardware, when we have a cryptocell ready in our main processor.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Write Ecc key or Rsa key to kmu</title><link>https://devzone.nordicsemi.com/thread/292217?ContentTypeID=1</link><pubDate>Mon, 01 Feb 2021 12:53:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b0f61ff-80d2-4d0c-b147-58d94dc45faa</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;The answer is unfortunately &amp;quot;no&amp;quot;. The KMU consists of 128 bit key slots. You can combine more slots in order to store larger keys, so that part is no problem. However, you cannot push ECC or RSA keys to the CryptoCell peripheral, so you would have to make the keys readable in order to use them, making in not so useful in this case.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>