セキュリティ

セキュアエレメント

鍵を安全に保管する専用チップ。

概要

セキュアエレメント(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 / iSIMSoC に統合または内蔵スマートフォン、ウェアラブル
microSD 型microSD スロットに挿入レガシー対応
NFC タグ型NFC タグとして実装スマートカード、アクセス制御

セキュリティ認定レベル(Common Criteria)

EAL1 ─ 機能テスト(最低レベル)
EAL2 ─ 構造的テスト
EAL3 ─ 手法的テスト・チェック
EAL4 ─ 手法的設計・テスト・レビュー  ← 多くの SE が取得
EAL5 ─ 半形式的設計・テスト         ← 高セキュリティ SE
EAL6 ─ 半形式的設計検証             ← 政府・軍事レベル
EAL7 ─ 形式的設計検証(最高レベル)

主要な SE 製品

製品メーカー用途
SE050 / SE051NXPIoT デバイス認証、AWS/Azure 対応
ATECC608BMicrochipArduino 等、小規模 IoT
SLE97 シリーズInfineonスマートカード、政府系 ID
ST33 シリーズSTMicroelectronicsNFC、決済
Titan M2GooglePixel スマートフォン内蔵
Secure EnclaveAppleiPhone 内蔵(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 が搭載されており、FeliCaNFC を介して処理が行われる。

自動車(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決済、通信認証
TPMEAL4TCG (ISO/IEC 11889)PC、産業機器
TrustZoneソフトウェア依存ARM / GlobalPlatformスマートフォン
HSMEAL4〜7非常に高FIPS 140-2サーバー、PKI
ソフトウェア保護最低なし低リスク用途

SE はTPMよりも物理的攻撃への耐性が高く、ルートオブトラストとして最も強固な選択肢の一つである。一方でコストが高く、IoT の大量展開には費用対効果の検討が必要である。

関連用語

参考リンク