km
|
04231683c2
|
SE050C2 サポートを元に戻す
ユーザーの要望により、直前の SE050C2 追加変更を元に戻しました。
戻した内容:
- test_scp03_se050.c: SE050C2 チップ選択削除
- se050_scp03_keys.h: SE050C2 キー定義削除
- Makefile: SE050C2 CHIP_ID 削除
現在のサポートチップ:
- SE050C0 (CHIP_ID=0)
- SE050C1 (CHIP_ID=1)
- SE050E2 (CHIP_ID=2)
|
2026-03-26 14:15:28 +09:00 |
|
km
|
dfadaf092c
|
SE050C2 サポート追加とキー管理の明確化
変更内容:
1. SE050C2 のサポート追加
- se050_scp03_keys.h: SE050C2 は SE050C1 と同じキーを使用
- test_scp03_se050.c: SE050C2 チップ選択追加
- Makefile: SE050C2 の CHIP_ID=2, SE050E2=3 に更新
2. キー管理の明確化
- test_scp03_se050.c に詳細コメント追加
- キーは実行時置き換えではなく、コンパイル時選択を明記
- 異なるキーでテストするには再コンパイルが必要と説明
3. 使い方の明確化
make SE050_CHIP=SE050C0 test_se050 # SE050C0 キー
make SE050_CHIP=SE050C1 test_se050 # SE050C1 キー
make SE050_CHIP=SE050C2 test_se050 # SE050C2 キー (SE050C1 と同じ)
make SE050_CHIP=SE050E2 test_se050 # SE050E2 キー
注記:
- 実行時キー置換機能は未実装
- 動的キー切り替えが必要な場合は、se050_session_scp03_set_keys()
を使用して実装可能(現状では各テスト関数でコンパイル時キーを直接使用)
|
2026-03-26 14:13:28 +09:00 |
|
km
|
aff6c301e6
|
Linux メモリ保護機能の実装 (mlock, MADV_DONTDUMP, MADV_WIPEONFORK)
セキュリティ強化のため、Linux 固有のメモリ保護機能を追加:
### 実装した保護機能
1. **mlock()** - スワップ防止
- センシティブなメモリをディスクへのスワップから保護
- 権限不足の場合は警告出力の上継続(フォールバック)
2. **MADV_DONTDUMP** - コアダンプ漏洩防止
- コアダンプ生成時にメモリ内容を除外
- プライベート鍵がダンプに含まれないようにする
3. **MADV_WIPEONFORK** - fork() 子プロセス漏洩防止
- fork() 後の子プロセスからメモリ内容を消去
- 子プロセスへの鍵漏洩を防止
### 変更ファイル
- src/se050_scp03.c - SCP03 コンテキストのメモリ保護
- src/se050_keystore.c - キーストアコンテキストのメモリ保護
### 実装詳細
- Linux 環境でのみ有効(#ifdef __linux__)
- 非 Linux プラットフォームではフォールバック
- mlock 失敗時は警告のみ出力(処理継続)
- madvise 失敗時はエラーログ出力(非致命的)
### 注意事項
- mlock には CAP_IPC_LOCK 権限または RLIMIT_MEMLOCK クォータが必要
- 権限不足の場合でも機能は動作(保護なしで継続)
- 本番環境では適切な権限設定を推奨
|
2026-03-26 11:04:14 +09:00 |
|
km
|
74789be2c3
|
鍵管理の統一と重複削除
- 共通鍵ファイル追加:include/se050_scp03_keys.h, src/se050_scp03_keys.c
- test_scp03_hardware.c: 重複鍵定義削除し共通ファイルを参照
- test_scp03_se050.c: 重複鍵定義削除し共通ファイルを参照
- 鍵値はプレースホルダー (TODO: PDF から正しい値に置き換え)
構造:
se050_scp03_keys.c
├─ SE050C0_ENC/MAC/DEK_KEY
├─ SE050C1_ENC/MAC/DEK_KEY
└─ SE050E2_ENC/MAC/DEK_KEY
|
2026-03-26 10:13:25 +09:00 |
|
km
|
163fad68a7
|
SE050 キー管理シンプル化と不要チップ削除
- ACTIVE_*マクロをシンプル化:チップ選択で ENC/MAC/DEK 全体が選択
- test_scp03_hardware.c: SE050C0 キーに整理
- SE050E0/E1 削除(実在しないため)
- 対応チップ:SE050C0, SE050C1, SE050E2 のみ
変更前:
ACTIVE_ENC_KEY = 条件付きマクロ
変更後:
ENC_KEY = 選択チップのキー
MAC_KEY = 選択チップのキー
DEK_KEY = 選択チップのキー
|
2026-03-26 10:06:34 +09:00 |
|
km
|
daffe82feb
|
SE050 各チップ固有の PlatformSCP03 キー追加
- SE050C0: ENC/MAC/DEK キーセット
- SE050C1: ENC/MAC/DEK キーセット
- SE050E0: ENC/MAC/DEK キーセット
- SE050E1: ENC/MAC/DEK キーセット
- SE050E2: ENC/MAC/DEK キーセット (新規追加)
各チップのキーは ifdef で選択され、ACTIVE_ENC_KEY/MAC_KEY/DEK_KEY マクロで参照可能。
使用例:
make SE050_CHIP=SE050C0 test_se050
make SE050_CHIP=SE050E2 test_se050
|
2026-03-26 09:54:54 +09:00 |
|
km
|
0a97209e8c
|
SE050 ハードウェア接続テスト追加
- test_scp03_se050.c: 実機 SE050 接続テスト
- 対応チップ:SE050C0, SE050C1, SE050E0, SE050E1
- ifdef でチップ選択 (make SE050_CHIP=xxx)
- AN12436 デフォルト PlatformSCP03 キー使用
- 実 I2C HAL による接続/認証フローテスト
使用例:
make SE050_CHIP=SE050C0 test_se050
make SE050_CHIP=SE050E1 test_se050
|
2026-03-26 09:29:39 +09:00 |
|