Hi,

 

Mbed TLS is the backend of the Crypto service, so those functions do exist in the Crypto service. You could still use the same Mbed TLS APIs in your driver, but you should build and link against a second copy of Mbed TLS as part of the platform build process, don’t link against the functions in the Crypto partition.

 

Kind regards,

Jamie

 

From: Edward Yang <EdwardYang@mxic.com.cn>
Sent: 16 December 2020 09:15
To: Jamie Fox <Jamie.Fox@arm.com>
Cc: nd <nd@arm.com>; tf-m@lists.trustedfirmware.org; TF-M <tf-m-bounces@lists.trustedfirmware.org>; Julien Su <juliensu@mxic.com.tw>; Aaron Zhu <AaronZhu@mxic.com.cn>
Subject: [TF-M] Discuss how to support secure Flash in TF-M

 


Hi Jamie,

Thank you for your reply.


You are right,the secure Flash can be used to store sensitive information like TLS  private keys,in this application, during TLS handshake,Crypto service depends on secure Flash driver to get these private keys,so the dependency from Crypto to the secure flash needs to be kept.

And you mentioned implementation of  crypto functions  varies depending on the platform(some platforms have hardware crypto module while the others have to depend on software crypto library),  platfrom without HW crypto  module could use AES encrypt/decrypt functions from a software crypto library (e.g. Mbed TLS). As I understand, currently tfm Crypto service  also uses Mbed TLS as the backend software crypto library
by default. I am wondering if secure Flash driver could call  this Mbed TLS  library APIs (such as mbedtls_aes_encrypt()) directly?  
 


Best Regards,
Poppy Wu
吴偏偏

Macronix Microelectronics (Suzhou) Co.,Ltd
旺宏微电子(苏州)有限公司
No. 55, Su Hong Xi Road ,SIP, Suzhou, PRC, 215021
苏州工业园区苏虹西路55
Tel: 86-512-62580888   EXT: 3147
Fax: 86-512-62585399   ZIP: 215021

http://www.mxic.com.cn

Jamie Fox via TF-M <tf-m@lists.trustedfirmware.org>
Sent by: "TF-M" <tf-m-bounces@lists.trustedfirmware.org>

2020/12/16 03:02

Please respond to
Jamie Fox <Jamie.Fox@arm.com>

To

Edward Yang <EdwardYang@mxic.com.cn>

cc

nd <nd@arm.com>, "tf-m@lists.trustedfirmware.org" <tf-m@lists.trustedfirmware.org>

Subject

Re: [TF-M] Discuss how to support secure Flash in TF-M

 





Hi,

 
The trouble with calling the PSA Crypto functions from your secure flash driver is that it will create a circular dependency between the ITS service and the Crypto service. Crypto uses ITS to store its keys, but then the secure flash driver calls the Crypto service again to encrypt the data. These circular dependencies between partitions are forbidden in TF-M.

 
As I understand it, one of the uses of the secure flash is to store crypto keys, so the dependency from Crypto to the secure flash needs to be kept. That means the dependency on the Crypto service in the secure flash driver needs to be avoided. I think ideally the best way to do this would be to use hardware crypto functions available in the platform instead of PSA Crypto APIs inside the flash driver, but if no crypto hardware is available then you could use AES encrypt/decrypt functions from a software crypto library (e.g. Mbed TLS).

 
Hope that helps.

 
Kind regards,

Jamie

 
From:
TF-M <tf-m-bounces@lists.trustedfirmware.org> On Behalf Of Edward Yang via TF-M
Sent:
15 December 2020 10:08
To:
tf-m@lists.trustedfirmware.org
Subject:
[TF-M] Discuss how to support secure Flash in TF-M

 

Dear all
,

I would like to discuss how to add secure Flash support in TF-M.

Firstly, I want to describe the motivation of adding secure Flash support in TF-M.

Currently ARM TF-M provides protected storage service(PS service for short) to implement security protection on external normal storage, however this type external normal storage is still vulnerable to unauthorized physical modifications/erasing and cloning.Macronix and other Flash memory suppliers have developed secure Flash products to enhance the security in external flash devices. Secure Flash enables mutual authentication between itself and host MCU/SoC and only permits the authorised host to perform access, besides, the communication channel between host MCU/SoC and secure Flash is protected by encryption, authentication, data scrambling, and frame sequencing with monotonic counters as shown below, so the secure Flash provides dependable defense against unauthorised access, man-in-the-middle, replay, sniffing and other security threats.

If we port TF-M to a platform which uses secure Flash as external flash,then secure Flash driver should be added to TF-M.However,compared with nomal external flash driver,secure Flash driver needs extra crypto functions(such as calling AES crypto functions to encrypt/decrypt data), if the secure Flash driver is placed in platform folder in TF-M code structure as a backend of ITS service, I don't know whether secure Flash driver is allowed to call Crypto service(such as psa_aead_encrypt(), psa_aead_decrypt() )directly.If not, are there any other solutions to perform crypto operations in secure Flash driver?




Best Regards,
Poppy Wu

Macronix Microelectronics (Suzhou) Co.,Ltd
Tel: 86-512-62580888   EXT: 3147
Fax: 86-512-62585399   ZIP: 215021

http://www.mxic.com.cn

CONFIDENTIALITY NOTE:

This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation.

Macronix International Co., Ltd.

=====================================================================--
TF-M mailing list
TF-M@lists.trustedfirmware.org

https://lists.trustedfirmware.org/mailman/listinfo/tf-m