メインコンテンツへスキップ
Diditが750万ドルを調達、本人確認と不正対策のインフラを構築
Didit
ブログ一覧へ
ブログ2026年3月14日

NFC eIDのセキュリティを解き放つ:BACキー導出の理解 (JA)

NFC eIDのセキュリティを確保する暗号プロセスであるBACキー導出について深く掘り下げます。ICAO 9303標準がMRZデータをどのように活用してセッションキーを生成し、機密性の高いIDデータを不正アクセスから保護し、セキュリティを確保するかを学びます。.

By Didit更新日
bac-key-derivation-nfc-eids-security.png

基盤となるセキュリティBAC(Basic Access Control)キー導出は、NFC eIDのセキュアなデータアクセスを支える基盤であり、機密性の高いチップデータへの不正な読み取りを防ぎます。

信頼の源としてのMRZパスポートやIDカードの機械読取可能ゾーン(MRZ)は不可欠です。そのデータ(文書番号、生年月日、有効期限)が暗号キーの生成に使用されます。

暗号プロセスキー導出には、特定のセキュアハッシュアルゴリズム(SHA-1など)とキー導出関数が関与し、MRZデータを暗号化された通信のためのセッションキーに変換します。

ICAO 9303標準BACはICAO 9303によって義務付けられており、電子機械読取可能旅行文書(eMRTD)のグローバルな相互運用性と標準化されたセキュリティメカニズムを保証します。

デジタルIDの世界では、eパスポートや国民IDカードのようなNFC対応の電子ID文書(eID)のセキュリティが最重要です。これらの文書はマイクロチップに機密性の高い個人データを保存しており、この情報を不正アクセスから保護することが重要な課題です。ここで登場するのが、Basic Access Control(BAC)、特にその基本的なプロセスであるBACキー導出です。

BACはeIDの第一線の防御であり、国際民間航空機関(ICAO)がDoc 9303標準で義務付けているセキュリティメカニズムです。これにより、eIDチップと読み取りデバイス間のセキュアな通信チャネルが確立され、認証されたリーダーのみがチップの内容にアクセスできるようになります。BACの有効性の核心には、暗号キーを導出する綿密なプロセスがあり、これについて詳しく見ていきます。

BACキー導出における機械読取可能ゾーン(MRZ)の役割

BACキー導出の旅は、すべてのeIDの構成要素である機械読取可能ゾーン(MRZ)から始まります。これは、ID文書の生体データページの下部に印刷された2行または3行の英数字コードです。一見すると単なるテキストに見えますが、MRZはセキュアな通信プロトコルを開始するために必要な重要な公開情報を保持しています。

具体的には、MRZから次の3つのデータが使用されます。

  1. 文書番号: 旅行文書の一意の識別子。
  2. 生年月日(DOB): 所有者の生年月日をYYMMDD形式で。
  3. 有効期限(DOE): 文書の有効期限をYYMMDD形式で。

これらの3つのデータ要素は、文書自体で公開されているため、正当なリーダーが取得でき、かつ個々の文書ごとに一意のキーセットを生成するのに十分な具体性を持っているため選ばれました。これらの入力に不一致があると、セキュアなチャネルの確立に失敗し、チップのデータを保護します。

暗号プロセス:BACキーの導出方法

BACキー導出のための暗号プロセスは、2つの重要なキー、すなわち対称暗号キー(K_ENC)とメッセージ認証コードキー(K_MAC)を生成するために設計された標準化された手順です。これらのキーは、リーダーとeIDチップ間のその後のすべての通信を暗号化および認証するために使用されます。

導出は、ICAO 9303パート11および関連する暗号標準で定義されているように、いくつかのステップを含みます。

  1. MRZデータの連結: 3つのMRZデータ要素(文書番号、生年月日、有効期限)が最初に処理されます。これらのフィールドに関連付けられたチェックデジットが含まれ、特定の長さに達するために必要に応じてパディングが適用される場合があります(例:文書番号が9桁より短い場合は「<」文字でパディングされます)。

  2. SHA-1によるハッシュ化: 連結およびパディングされたMRZデータは、通常SHA-1(Secure Hash Algorithm 1)であるセキュアハッシュアルゴリズムに入力されます。これにより、K_seedと呼ばれる160ビット(20バイト)のハッシュ値が生成されます。

    例: K_seed = SHA-1(DocumentNumber && DocumentNumberCheckDigit && DateOfBirth && DateOfBirthCheckDigit && DateOfExpiry && DateOfExpiryCheckDigit)

  3. キー導出関数(KDF): K_seedは、キー導出関数を使用してさらに処理され、K_ENCとK_MACが生成されます。これは通常、K_seedを特定の定数(例:「00000001」と「00000002」)とともに暗号関数(CBCモードのTriple DESなど)への入力として使用して、128ビット(16バイト)のキーを生成します。

    例(簡略化): K_ENC = derive_key(K_seed, constant_1) K_MAC = derive_key(K_seed, constant_2)

これらの導出されたキーは一時的なものであり、セッションごとに生成され、リーダーまたはチップに保存されることはありません。これにより前方秘匿性が確保されます。つまり、セッションキーが侵害されたとしても、過去または将来のセッションを復号化するために使用することはできません。

Basic Access Control:通信チャネルの保護

リーダーとeIDチップの両方によってK_ENCとK_MACが正常に導出されると(リーダーが導出されたキーをチップに提示して検証した後)、セキュアなメッセージングチャネルが確立されます。このチャネルは、2つの重要なセキュリティサービスを提供します。

  1. 機密性(暗号化): リーダーとチップ間で交換されるすべてのデータはK_ENCを使用して暗号化されます。これにより、盗聴が防止され、生体認証データ(顔画像、指紋)などの機密情報が不正な第三者によって傍受されることがなくなります。これは個人のプライバシーを保護するために不可欠です。

  2. 完全性と認証(MAC): メッセージはK_MACを使用して認証されます。各メッセージに対してメッセージ認証コード(MAC)が計算され、送信中にデータが改ざんされていないこと、および正当な送信元(チップまたは認証されたリーダー)から発信されたことを保証します。これにより、データ操作やなりすまし攻撃が防止されます。

このセキュアチャネルの確立は、チップ上の機密データ要素にアクセスするための前提条件です。基本アクセス制御プロトコルを正常に完了しない限り、チップは保護された情報を送信することを拒否します。この堅牢なメカニズムがあるため、MRZデータを知らずにNFC対応の電話でeIDをタップしても、機密性の高い個人情報は得られません。

DiditがNFC eIDセキュリティをどのように支援するか

Diditは、NFC eIDのような高度なテクノロジーを扱う際のセキュアな本人確認の複雑さを理解しています。当社のプラットフォームはNFC文書読み取りをサポートしており、標準化されたBACキー導出プロセスを活用して、最高レベルのデータセキュリティと認証を保証します。NFC機能を統合することで、Diditは以下を提供します。

  • 政府レベルの保証: 当社は暗号化されたチップデータを読み取ります。これは、ICAO標準に従ってチップのデジタル署名を検証するため、目視検査のみよりも高いレベルの保証を提供します。
  • 強化された不正検出: BACによって確立されたセキュアチャネルは、チップデータの操作や不正なアクセスが防止されるため、高度な不正行為の検出に役立ちます。
  • 合理化されたコンプライアンス: 当社のソリューションはICAO 9303などの国際標準に準拠しており、企業が本人確認およびアンチマネーロンダリング(AML)に関する厳格な規制要件を満たすのに役立ちます。
  • シームレスなユーザーエクスペリエンス: 基盤となるセキュリティは複雑ですが、Diditのプラットフォームはこの複雑さを抽象化し、エンドユーザーにスムーズで直感的な検証フローを提供し、必要なデータを迅速に取得して検証します。

包括的な本人確認スイートの一部としてNFC文書読み取りを提供することで、Diditは企業が比類のないセキュリティと信頼性で本人確認を行い、ますますデジタル化する世界で信頼を築くことを可能にします。

今すぐ始めませんか?

NFC eID読み取りを含むDiditの高度な本人確認ソリューションが、お客様のセキュリティとコンプライアンスをどのように強化できるかをご覧ください。製品ページで詳細をご覧いただくか、お問い合わせいただき、パーソナライズされたデモをご利用ください。また、デモセンターで当社のテクノロジーを直接体験することもできます。

FAQ

NFC eIDにおけるBACキー導出とは何ですか?

BACキー導出は、NFC eID(eパスポートなど)で使用される暗号プロセスであり、対称暗号化キーと認証キーを生成します。これらのキーは、文書の機械読取可能ゾーン(MRZ)にある特定のデータから導出され、eIDチップとリーダー間のセキュアで暗号化された通信チャネルを確立するために使用され、基本アクセス制御を確保し、機密データを保護します。

MRZがBACキー導出にとって重要なのはなぜですか?

MRZ(機械読取可能ゾーン)は、BACキー導出にとって非常に重要です。なぜなら、キー生成プロセスの入力となる公開されているがユニークなデータ(文書番号、生年月日、有効期限)が含まれているからです。これにより、物理的な文書とそのMRZにアクセスできるリーダーのみが、チップの保護されたコンテンツのロックを解除するための正しいキーを導出できるようになります。

Basic Access Control(BAC)はどのようなセキュリティ上の利点を提供しますか?

Basic Access Control(BAC)は、機密性と完全性という2つの主要なセキュリティ上の利点を提供します。機密性は、導出されたキーを使用した通信チャネルの暗号化によって達成され、盗聴を防止します。完全性は、メッセージ認証コード(MAC)によるメッセージの認証によって保証され、データが送信中に改ざんされていないこと、およびメッセージが正当な送信元から発信されたことを確認します。これにより、eIDチップ上の機密データが不正アクセスから保護されます。

BACキー導出は、現代の攻撃に対してまだ安全ですか?

BACはセキュリティの基本的な層を提供しますが、キー導出と暗号化にSHA-1とTriple DESを使用しているため、PACE(Password Authenticated Connection Establishment)のような新しいプロトコルと比較して、現代の暗号攻撃に対しては堅牢性が低いと考えられています。ICAO 9303は、セキュリティ強化のためにPACEの実装を推奨していますが、BACはNFC eIDセキュリティにおいて広く使用されており、法的にも準拠しています。

本人確認と不正対策のインフラ。

KYC、KYB、取引監視、ウォレットスクリーニングを一つのAPIで。5分で統合できます。

AIにこのページの要約を依頼する
NFC eIDのBACキー導出:セキュアなIDを解き放つ.