概要
セキュアエレメント(Secure Element、SE)とは、暗号鍵や機密データを安全に保管・処理するために設計された専用の耐タンパー性(tamper-resistant)チップまたはモジュールのことである。
一般的なマイコンやメモリと異なり、セキュアエレメントは物理的な攻撃(プロービング、フォルト注入、電力解析など)に対する強力な防御機能を備えており、Common Criteria(CC)EAL4+ 〜 EAL6+ の高い認定を取得していることが多い。
スマートカード(クレジットカード、SIMカード、交通系ICカード)からモバイル決済、IoT デバイス認証まで幅広い用途で使用される。日常生活で誰もが使っているが、意識することは少ない縁の下の力持ち的な存在である。
歴史・背景
- 1980年代: フランスの Bull 社などがスマートカード(ICカード)向けにセキュアチップを開発。クレジットカードのチップ化(EMV)の基盤となった。
- SIM カード: GSM 規格(1991年)から SIM カードが導入され、携帯通信の認証に SE 相当の技術が使われてきた。
- GlobalPlatform (1999年): マルチアプリケーション対応のスマートカード仕様を標準化する GlobalPlatform が設立され、SE の仕様が統一化された。
- NFC と SE (2000年代後半): Google Wallet(2011年)など NFC を使った決済サービスの登場により、スマートフォンへの SE 搭載が普及した。
- eSIM / iSIM (2010年代): GSMA が eSIM 仕様を策定し、SE 技術が SIM カードの進化にも適用された。
- IoT セキュリティ: AWS IoT、Azure IoT Hub などのクラウドプラットフォームがデバイス認証に SE を推奨するようになり、IoT 向け SE 製品が急増している。
技術仕様
フォームファクター
| 種類 | 説明 | 用途例 |
|---|---|---|
| 独立型 SE チップ | 専用 IC として実装 | IoT モジュール、産業機器 |
| SIM 型 | SIM カードと統合 | 携帯電話、M2M 通信 |
| eSIM / iSIM | SoC に統合または内蔵 | スマートフォン、ウェアラブル |
| microSD 型 | microSD スロットに挿入 | レガシー対応 |
| NFC タグ型 | NFC タグとして実装 | スマートカード、アクセス制御 |
セキュリティ認定レベル(Common Criteria)
EAL1 ─ 機能テスト(最低レベル)
EAL2 ─ 構造的テスト
EAL3 ─ 手法的テスト・チェック
EAL4 ─ 手法的設計・テスト・レビュー ← 多くの SE が取得
EAL5 ─ 半形式的設計・テスト ← 高セキュリティ SE
EAL6 ─ 半形式的設計検証 ← 政府・軍事レベル
EAL7 ─ 形式的設計検証(最高レベル)
主要な SE 製品
| 製品 | メーカー | 用途 |
|---|---|---|
| SE050 / SE051 | NXP | IoT デバイス認証、AWS/Azure 対応 |
| ATECC608B | Microchip | Arduino 等、小規模 IoT |
| SLE97 シリーズ | Infineon | スマートカード、政府系 ID |
| ST33 シリーズ | STMicroelectronics | NFC、決済 |
| Titan M2 | Pixel スマートフォン内蔵 | |
| Secure Enclave | Apple | iPhone 内蔵(Face ID 等) |
動作原理
耐タンパー性の実現手段
SE が物理攻撃に対して強固である理由は、複数の保護層が組み合わされているからである。
┌─────────────────────────────────────┐
│ アクティブシールド(導電メッシュ) │ ← プロービング検知
│ ┌───────────────────────────────┐ │
│ │ メモリ暗号化 │ │ ← データ盗取防止
│ │ ┌─────────────────────────┐ │ │
│ │ │ セキュアプロセッサ │ │ │ ← 実行環境分離
│ │ │ ┌───────────────────┐ │ │ │
│ │ │ │ 鍵・機密データ │ │ │ │ ← 保管対象
│ │ │ └───────────────────┘ │ │ │
│ │ └─────────────────────────┘ │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
保護メカニズム一覧
| 攻撃種別 | 対策手段 |
|---|---|
| プロービング攻撃 | アクティブシールド、難読化レイアウト |
| 電力解析(SPA/DPA) | 電力消費の均一化、ランダム化 |
| 電磁波解析(EMA) | シールド、アルゴリズムのランダム化 |
| フォルト注入 | センサー(電圧・クロック・光) |
| 温度攻撃 | 温度センサー |
| リバースエンジニアリング | フィラー層、金属層の複雑化 |
GlobalPlatform API を使ったアクセス
// Android での SE アクセス例(OMAPI)
import android.se.omapi.*;
SEService seService = new SEService(context, executor, listener);
Reader[] readers = seService.getReaders();
for (Reader reader : readers) {
if (reader.isSecureElementPresent()) {
Session session = reader.openSession();
// AID でアプレットを選択
byte[] aid = new byte[]{(byte)0xA0, 0x00, 0x00, 0x00, 0x01};
Channel channel = session.openLogicalChannel(aid, (byte)0x00);
// APDU コマンドを送信
byte[] getDataCmd = {0x00, (byte)0xCA, 0x00, 0x01, 0x00};
byte[] response = channel.transmit(getDataCmd);
channel.close();
session.close();
}
}
Microchip ATECC608B との I2C 通信例
#include "cryptoauthlib.h"
/* ATECC608B 初期化 */
ATCAIfaceCfg cfg = cfg_ateccx08a_i2c_default;
cfg.atcai2c.address = 0xC0; /* デフォルトアドレス */
atcab_init(&cfg);
/* シリアル番号取得 */
uint8_t serial[9];
atcab_read_serial_number(serial);
/* ECC 署名 */
uint8_t message[32]; /* SHA-256 ハッシュ */
uint8_t signature[64];
atcab_sign(0, message, signature); /* スロット0の鍵で署名 */
/* 署名検証 */
bool is_verified;
atcab_verify_stored(message, signature, 0, &is_verified);
用途・ユースケース
決済・金融
EMV(Europay/Mastercard/Visa)準拠のクレジットカードには必ず SE が搭載されている。Apple Pay、Google Pay などのスマートフォン決済でも SE が鍵管理に使用される。
通信認証(SIM / eSIM)
従来の SIM カードは SE 技術の一形態である。eSIM では SoC に組み込まれた SE が通信キャリアの認証情報を管理する。
IoT デバイス認証
AWS IoT、Azure IoT Hub、Google Cloud IoT Core へのデバイス接続に必要な証明書・秘密鍵を SE に保管する。デバイスが盗まれても SE 内の鍵は取り出せないため、なりすましを防止できる。
交通・アクセス制御
Suica などの交通系 IC カード、入退室管理カードには SE が搭載されており、FeliCa や NFC を介して処理が行われる。
自動車(V2X、OEM 認証)
車載 ECU の認証やサプライチェーン管理に SE が使用されている。OEM は SE を使って正規部品であることを検証する。
実装・開発のポイント
SE の選定基準
┌─────────────────────────────────────┐
│ セキュリティ要件の確認 │
│ ・必要な CC 認定レベルは? │
│ ・対象となる脅威モデルは? │
├─────────────────────────────────────┤
│ インターフェース │
│ ・I2C / SPI / SWP (NFC) ? │
│ ・ISO 7816 (スマートカード) ? │
├─────────────────────────────────────┤
│ 対応クラウドプラットフォーム │
│ ・AWS / Azure / GCP のどれを使う? │
│ ・対応 SDK の有無を確認 │
├─────────────────────────────────────┤
│ 量産コスト │
│ ・単価 vs. セキュリティレベルの │
│ トレードオフを評価 │
└─────────────────────────────────────┘
プロビジョニング(鍵注入)
SE への鍵注入は製造ラインで行われる。セキュアなプロビジョニングサービス(NXP EdgeLock 2GO、Microchip Trust Platform など)を活用することで、クラウドと連携した安全な鍵管理が実現できる。
ライフサイクル管理
SE には「製造」→「初期化」→「運用」→「廃棄」のライフサイクルがあり、各フェーズで許可される操作が異なる。GlobalPlatform の Card Life Cycle がこれを定義している。
他技術との比較
| 技術 | 保護強度 | コスト | 標準化 | 用途 |
|---|---|---|---|---|
| セキュアエレメント | EAL5〜6(最高) | 高 | GlobalPlatform | 決済、通信認証 |
| TPM | EAL4 | 中 | TCG (ISO/IEC 11889) | PC、産業機器 |
| TrustZone | ソフトウェア依存 | 低 | ARM / GlobalPlatform | スマートフォン |
| HSM | EAL4〜7 | 非常に高 | FIPS 140-2 | サーバー、PKI |
| ソフトウェア保護 | 低 | 最低 | なし | 低リスク用途 |
SE はTPMよりも物理的攻撃への耐性が高く、ルートオブトラストとして最も強固な選択肢の一つである。一方でコストが高く、IoT の大量展開には費用対効果の検討が必要である。