Armadillo-IoT ゲートウェイ G4
セキュリティガイド


目次

1. セキュリティ機能の概要
2. 本書について
2.1. 本書の目的
2.2. 本書の構成
2.3. 表記について
2.3.1. フォント
2.3.2. コマンド入力例
2.3.3. アイコン
3. セキュリティの考え方
3.1. セキュリティの費用対効果
3.2. Armadiilo-IoT ゲートウェイ G4 のセキュリティ領域
3.3. Armadillo-IoT ゲートウェイ G4 で実現できるセキュリティ機能と効果
3.4. モデルユースケース
3.4.1. ネットワーク機器
3.4.2. クラウドサービスへの接続機器
3.4.3. 決済処理が可能な機器
4. 鍵の保護
4.1. EdgeLock SE050 を利用したキーストレージ
4.1.1. EdgeLock SE05x Plug & Trust Middleware
4.1.2. EdgeLock SE050 を有効にする
4.1.3. Plug & Trust Middleware のインストール
4.1.4. Plug & Trust Middleware を活用する
4.1.4.1. EdgeLock SE050 の保存された鍵を利用する
4.1.4.2. ユーザーが生成した鍵を保存して利用する
4.1.5. 補足説明
4.1.5.1. 事前書き込みされた鍵と X.509 証明書
4.1.5.2. リファレンスキー
4.1.5.3. se05x-tools
5. セキュアブート
5.1. セキュアブートとチェーンオブトラスト
5.2. HAB とは
5.3. 署名環境を構築する
5.3.1. 署名環境について
5.3.2. ATDE を準備する
5.3.3. 署名ツール (CST) を準備する
5.3.4. アップデートファイル作成ツール (mkswu) を準備する
5.3.5. Armadillo Base OS イメージの取得
5.3.6. 署名環境のディレクトリツリー構成
5.3.7. 署名鍵を生成する
5.3.7.1. 署名鍵の生成
5.3.7.2. 生成された署名鍵の確認
5.3.7.3. 鍵のハッシュ値の確認
5.4. セキュアブート機能の選択
5.5. セキュアブートのセットアップ
5.5.1. uboot-imx のセキュアブートの実装仕様
5.5.2. セットアップの流れ
5.5.3. 署名済みブートローダーの作成
5.5.4. 署名済み Linux カーネルイメージの作成
5.5.5. ルートファイルシステムのビルド
5.5.6. セキュアブートセットアップ用 SD boot ディスクの作成
5.6. 暗号化セキュアブートのセットアップ
5.6.1. uboot-imx の暗号化セキュアブートの実装仕様
5.6.2. セットアップの流れ
5.6.3. 署名済みの暗号化ブートローダーの作成
5.6.4. 暗号化 Linux カーネルイメージの生成
5.6.5. 暗号化セキュアブート対応 swu の作成
5.6.6. ルートファイルシステムのビルド
5.6.7. セキュアブートセットアップ用 SD boot ディスクの作成
5.7. ストレージの暗号化のセットアップ
5.7.1. 実装仕様の概要
5.7.2. セットアップの流れ
5.7.3. 署名済みブートローダーの作成
5.7.4. 署名済み Linux カーネルイメージの作成
5.7.5. セキュアブート対応 swu の作成
5.7.6. ルートファイルシステムのビルド
5.7.7. セキュアブートセットアップ用 SD boot ディスクの作成
5.8. Armadillo-IoT ゲートウェイ G4 上の作業
5.8.1. Armadillo-IoT ゲートウェイ G4 の準備
5.8.2. SRK ハッシュの書き込み
5.8.3. close 処理
5.8.4. ファームウェアの書き込みをはじめる
5.8.5. 作業が中断した場合
5.9. 動作確認
5.9.1. ストレージ暗号化の確認
5.9.2. セキュアブートの確認
5.10. セットアップ完了後のアップデートの運用について
5.11. 補足情報
5.11.1. secureboot.conf の設定方法
5.11.2. 署名済みイメージと展開先
5.11.3. セキュアブートのフロー
5.11.4. ビルドのプロセスフロー
5.11.5. ファームウェアアップデートのフロー
5.11.6. SRK の無効化と切り替え
5.11.6.1. SRK の無効化 (revocation)
5.11.6.2. SRK の切り替え
6. ソフトウェア実行環境の保護
6.1. OP-TEE
6.1.1. Arm TrustZone と TEE の活用
6.1.2. OP-TEE とは
6.2. OP-TEE の構成
6.2.1. Armadillo Base OS への組み込み
6.3. OP-TEE を利用する前に
6.3.1. 鍵の更新
6.4. CAAM を活用した TEE を構築する
6.4.1. ビルドの流れ
6.4.2. ビルド環境を構築する
6.4.3. ブートローダーを再ビルドする
6.4.4. imx-optee-client をビルドする
6.4.5. アプリケーションをビルドする
6.4.6. imx-optee-test をビルドする
6.4.7. ビルド結果の確認と結果の収集
6.4.8. OP-TEE を組み込む
6.5. パフォーマンスを測定する
6.6. Edgelogck SE050 を活用した TEE を構築する
6.6.1. OP-TEE 向け plug-and-trust ライブラリ
6.6.2. ビルドの流れ
6.6.3. ビルド環境を構築する
6.6.4. OP-TEE 向け plug-and-trust をビルドする
6.6.5. imx-optee-os のコンフィグの修正
6.6.6. uboot-imx の修正
6.6.7. imx-optee-os の imx-i2c ドライバの修正
6.6.8. ビルドとターゲットボードへの組み込み
6.6.9. xtest の制限
6.7. imx-optee-os 技術情報
6.7.1. ソフトウェア全体像
6.7.2. フロー
6.7.3. メモリマップ
7. 市場出荷に向けてデバッグ機能を閉じる
7.1. JTAG を無効化する
7.2. SD boot を無効化する
7.3. BOOT_CFG_LOCK について
7.4. u-boot プロンプトを無効にする
8. 悪意のある攻撃者への対策
8.1. KASLR
8.1.1. KASLRの有効化
8.1.2. KASLRの有効化確認