暗号シークレットは信頼できるプラットフォームに保管すべきですが、このとき、ソフトウェアからどれほどシンプルに取り扱えるかということも大切な要素の1つです。
wolfTPMではすべてのTPM 2.0 APIに加え、以下のラッパーAPIも提供しています。
- 鍵生成・読み込み
- RSA暗号化・復号
- ECC署名・検証
- ECDH
- 不揮発性メモリ
- ハッシュ・HACM
- AES
- Sealing・Unsealing
- アテステーション
- PCR Extend・Quote
- セキュアRoot of Trust
wolfTPMでは現在、以下のプラットフォームをサポートしています。
- Raspberry Pi (Linux)
- MMIO (Memory mapped IO)
- STM32 with CubeMX
- Atmel ASF
- Xilinx (Ultrascale+ / Microblaze)
- QNX
- Infineon TriCore (TC2xx/TC3xx)
- Barebox
以下のTPM 2.0モジュールを使用して、正常に動作することを確認しています。
- STM ST33TP* SPI/I2C
- Infineon OPTIGA SLB9670/SLB9672
- Microchip ATTPM20
- Nations Tech Z32H330TC
- Nuvoton NPCT650/NPCT750
弊社では、wolfTPMによるTPM 2.0サポートを使用したwolfPKCS11をご用意しています。
以下に示すようなHSMデバイスに対して、PKCS11に基づくインタフェースのサポートを提供します。
- Infineon TriCore Aurix
- Renesas RH850
- ST SPC58
このほか、TPMではありませんが、以下のデバイスではwolfSSLから直接セキュアエレメントにアクセスできるようポーティングが完了しています。
wolfCryptは、以下のオンチップのセキュアエレメントをサポートしています。
- i.MX6 (QNX), i.MX8 (QNX/Linux), RT1170 FreeRTOSにおけるNXP CAAM (Cryptographic Acceleration and Assurance Module)
- Intel SGX
- ARM TrustZone CryptoCell 310
- MAXQ1065/1080 RNG
- MAX32665 and MAX32666 TPU (Trust Protection Unit)
サポートしているデバイスについてより詳しい情報をお求めでしたら、こちらのページをご覧ください。
wolfCryptでは、PSA (Platform Security Architecture)も利用できます。これには、以下のアルゴリズムを含みます。
- ハッシュ:SHA-1, SHA-224, SHA-256
- AES:AES-ECB, AES-CBC, AES-CTR, AES-GCM, AES-CCM
- ECDH PK callbacks (P-256)
- ECDSA PK callbacks (P-256)
- RNG
この他、弊社では組み込みデバイス向けのセキュアブートローダーwolfBootもご提供しています。HSM (Hardware Security Module)を使用した検証・妥当性確認や、PKCS#11 APIとARM TrustZoneを使用したSecure Vaultへのアクセスが可能です。wolfBootではwolfCryptを使用するため、この記事でご紹介したすべてのTPM及びセキュアエレメントに対応しています。また、wolfTPMと組み合わせてMeasured Bootを構成することも可能です。
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:
https://www.wolfssl.com/keystores-and-secure-elements-supported-by-wolfssl/