Skip to content

Commit

Permalink
Merge pull request #169 from tamasan238/wolfhsm
Browse files Browse the repository at this point in the history
add wolfHSM/src-ja
  • Loading branch information
kojo1 authored Dec 6, 2024
2 parents a23747e + fddf77a commit 9f6560a
Show file tree
Hide file tree
Showing 11 changed files with 1,571 additions and 0 deletions.
32 changes: 32 additions & 0 deletions wolfHSM/mkdocs-ja.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
site_name: wolfHSM Manual
site_url: https://wolfssl.com/
docs_dir: build/html/
site_dir: html/
copyright: Copyright © 2024 wolfSSL Inc.
nav:
- "1. イントロダクション": chapter01.md
- "2. 概要": chapter02.md
- "3. wolfHSMの始め方": chapter03.md
- "4. ライブラリ構造": chapter04.md
- "5. クライアントライブラリ": chapter05.md
- "6. サーバライブラリ": chapter06.md
- "7. カスタマイズ": chapter07.md
- "8. ポーティング": chapter08.md
- "9. APIリファレンス": appendix01.md
theme:
name: null
custom_dir: ../mkdocs-material/material
language: ja
palette:
primary: indigo
accent: indigo
font:
text: roboto
code: roboto mono
icon: "logo.png"
logo: logo.png
favicon: logo.png
feature:
tabs: true
extra_css: [skin.css]
use_directory_urls: false
1 change: 1 addition & 0 deletions wolfHSM/src-ja/appendix01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# wolfHSM APIリファレンス
13 changes: 13 additions & 0 deletions wolfHSM/src-ja/chapter01.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# イントロダクション

このマニュアルは、wolfHSM組込みハードウェアセキュリティモジュールライブラリの技術ガイドとして作成されています。wolfHSMの構築方法と使用開始方法を説明し、構築オプション、機能、移植性の向上、サポートなどの概要を示します。

このドキュメントのPDF版は [こちら](https://www.wolfssl.com/documentation/manuals/wolfhsm/wolfHSM-Manual.pdf) で入手できます。

## wolfHSMを選択する理由

車載HSM(Hardware Security Module)は、暗号鍵と処理のセキュリティを大幅に向上させます。これは、セキュリティの基盤である署名検証と暗号処理を物理的に独立したプロセッサに分離することで実現します。堅牢なセキュリティが求められるECUでは、推奨ではなく必須とされることがよくあります。よって、厳密なテストを行っている暗号化ライブラリwolfSSLを、Aurix Tricore TC3XX などの広く使用されている自動車用HSMでシームレスに動作するようにしました。wolfHSMが依存しているのはwolfCryptのみであり、ほぼすべての環境に移植できます。また、ユーザーフレンドリーなクライアント インターフェイスも提供しており、wolfCrypt APIを直接利用できます。

wolfHSMはECUのセキュリティとパフォーマンスを最大限に高めるべく、ハードウェア暗号化、不揮発性メモリ、各種隔離環境などと組み合わせて使用できるように設計しています。暗号エンジンwolfCryptをInfineon Aurix Tricore TC3XX などのハードウェアHSMに統合することで、SM2、SM3、SM4 などの中国政府義務アルゴリズムも利用できます。さらに、Kyber、LMS、XMSS などの耐量子暗号アルゴリズムを自動車ユーザーが簡単に利用できるようにし、顧客の要件に対応できるようにします。併せて、HSMでハードウェア暗号処理を利用できる場合は、これも利用してパフォーマンスを向上させます。

wolfBootは、ベアメタル環境のための安全かつポータブルなブートローダーソリューションです。最小限の設計と小さなHAL APIを活用した包括的なファームウェア認証および更新メカニズムを提供し、オペレーティングシステムやベアメタルアプリケーションから完全に独立しています。wolfBootは、フラッシュインターフェイスとプリブート環境を効率的に管理、アプリケーションを正確に測定および認証します。また、必要に応じてよりレイヤーの低いハードウェア暗号化も利用します。wolfBootはwolfHSM クライアントを使用し、HSM支援アプリケーションコアのセキュアブートを使用できます。さらに、wolfBootをHSMコア上で実行してHSMサーバーが損傷していないことを確認し、2次的な保護層を提供できます。この設定により、安全なブートシーケンスが保証されNVMサポートに依存するHSMコアのブートプロセスと適切に連携します。
69 changes: 69 additions & 0 deletions wolfHSM/src-ja/chapter02.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# 概要

wolfHSMは、暗号操作・鍵管理・不揮発性ストレージの制御など、HSM操作用の統合APIを提供するソフトウェアフレームワークです。
HSMアプリケーションに関連するコードの移植性を向上させるように設計しており、ベンダー固有のライブラリ呼び出しに縛られることなく、強力なセキュリティ機能を多くのハードウェア上で容易に使用できるようにします。
wolfCrypt APIを直接使用できるため、クライアントアプリケーションが大幅に簡素化されます。ライブラリは、クライアントアプリで追加のロジックを必要とせずに、すべての機密性の高い暗号化操作をリモートプロシージャコールとしてHSMコアに自動的にオフロードします。

当初、主に自動車に搭載されるHSM対応マイクロコントローラを対象としていました。
しかし現在では、自動車に限らずあらゆるユースケースにおいてPKCS11やAUTOSAR SHEなどの標準化されたインターフェイスとプロトコルをサポートできるようにしました。
プラットフォームに将来追加される機能をサポートすることのできる、拡張可能なソリューションです。wolfCrypt以外の外部依存はなく、ほぼすべての実行環境に移植可能です。

## 機能

- ユーザーベースの権限による安全な不揮発性オブジェクトストレージ
- ハードウェアキーをサポートする暗号鍵管理
- 互換性のあるデバイスに対するハードウェア暗号化サポート
- 完全に非同期のクライアントAPI
- 柔軟なコールバックアーキテクチャにより、ライブラリを変更せずにカスタムユースケースを実現
- wolfCrypt APIをクライアントで直接使用し、HSMコアに自動的にオフロード
- 信頼チェーンをサポートするイメージマネージャー
- AUTOSARとの統合
- SHE+との統合
- PKCS11インターフェイスを使用可能
- TPM 2.0インターフェイスを使用可能
- Secure OnBoard Communication (SecOC) モジュール統合を使用可能
- 証明書の処理
- 共通鍵暗号・公開鍵暗号の両方に対応
- 半導体ベンダーによって実装されたアルゴリズムだけでなく、wolfCryptに実装されているすべてのアルゴリズムを提供することで、「暗号アジリティ」をサポート
- FIPS 140-3認証を取得可能

## アーキテクチャ

wolfHSMは、サーバーが信頼できる安全な環境(通常は安全なコプロセッサ上)で実行され、クライアントがライブラリであるクライアントサーバーモデルを採用しています。このアーキテクチャにより、機密性の高い暗号化操作と鍵管理がサーバー内で安全に処理され、クライアントライブラリがサーバーとのレイヤーの低い通信を抽象化します。

- サーバー: wolfHSMのサーバーコンポーネントは、HSMコアで実行されるスタンドアロンアプリケーションです。安全な環境内で暗号化操作、鍵管理、不揮発性ストレージを処理します。サーバーはクライアントからの要求を処理し、結果を返す役割を担います。

- クライアント: wolfHSMのクライアントコンポーネントは、ユーザーアプリケーションにリンクできるライブラリです。サーバーに要求を送信し、応答を受信するためのAPIを提供します。クライアントは、通信の複雑さを抽象化し、アプリケーションがHSMと安全かつ効率的に対話できるようにします。

## ポート

wolfHSM自体には特定のハードウェアと対話するためのコードは含まれておらず、単体では実行できません。 wolfHSMをデバイスで実行するには、サーバ アプリケーションがクライアントと通信して実行できるように、必要なハードウェアドライバーと抽象化レイヤーを使用してライブラリを構成する必要があります。具体的には、次の要素が必要です。

- サーバーアプリケーションの起動とハードウェアの初期化
- サーバーにおけるwolfCrypt構成
- サーバーの不揮発性メモリ構成
- サーバーとクライアントのトランスポート構成
- サーバーとクライアントの接続処理

これらの要件を提供し、サーバーAPIを起動可能なアプリケーションにラップするコードを、wolfHSM「ポート」と呼んでいます。

wolfHSMの公式ポートは、サポートされているさまざまなアーキテクチャ用に提供しています。それぞれのポートには次のものが含まれます。

- スタンドアロンリファレンスサーバーアプリケーション: このアプリケーションは、HSMコアで実行され、すべての安全な操作を処理することを目的としています。すぐに使用できる状態で完全に機能しますが、エンドユーザーがカスタマイズして追加のユースケースをサポートすることもできます。
- クライアントライブラリ: このライブラリは、ユーザーアプリケーションにリンクして、サーバーとの通信を容易にします。

### 対応状況

本章執筆時点において、次のデバイス/環境のポートをサポートしています。

- POSIX ランタイム
- ST Micro SPC58N\*
- Infineon Aurix TC3xx\*
- Infineon Aurix TC4xx\* (近日対応予定)
- Infineon Traveo T2G\* (近日対応予定)
- Renesas RH850\* (近日対応予定)
- NXP S32\* (近日対応予定)

ここに示した環境のほか、いくつかの環境へのポートを現在準備中です。

\* 残念ながら、これらのポートでは、HSMコアに関する情報を取得するためにシリコンベンダーとのNDAが必要です。したがって、これらのプラットフォームのwolfHSMポートは一般には公開しておりません。ご興味がございましたら、[email protected] までお問い合わせください。
Loading

0 comments on commit 9f6560a

Please sign in to comment.