MRZ徹底解説:機械読取式ゾーン技術ガイド (JA)
機械読取式ゾーン(MRZ)の技術ガイド:ICAO 9303 TD1、TD2、TD3のレイアウト、チェックデジット、解析の落とし穴、NFCチップとの関係について。.

MRZとは、機械読取式ゾーン(Machine Readable Zone)の略で、パスポート、身分証明書、その他の機械読取式渡航文書に印刷された、固定幅の文字の標準化されたブロックを指します。
これは、光学式文字認識のために選択された身元情報と文書フィールドをエンコードします。チェックデジットは、読み取りまたは転写のエラーを検出するのに役立ちます。これらは、文書が本物であること、信頼できる機関がデータを発行したこと、または提示者が正当な所有者であることを証明するものではありません。
主なポイント
- MRZは単一の普遍的な文字列ではなく、レイアウトのファミリーです。 TD1は3行30文字、TD2は2行36文字、TD3は2行44文字を使用します。
- 位置には意味があります。パーサーは、行の境界、フィールドの幅、フィラー文字、およびその文書に選択されたスキーマを保持する必要があります。
- チェックデジットはエラーを検出するものであり、署名ではありません。 ICAOのモジュラス10計算では、文字値と7、3、1の繰り返し重みを使用します。
- 氏名と日付には推測ではなく方針が必要です。音訳、切り詰め、フィラー、2桁の年は、構文的に有効な解析を意味的に不確実にすることがあります。
- MRZとNFCは異なる信頼機能を提供します。 MRZは光学的に読み取り可能なデータです。認証されたeパスポートチップは、デジタル署名されたデータとオプションの複製防止証拠を提供できます。
MRZとは?
機械読取式ゾーンは、ICAO準拠の機械読取式渡航文書に必須の機械読取領域です。これは、個人がラベル、完全な日付、肖像画、その他の文書詳細を見る視覚検査ゾーン(VIZ)とは別に表示されます。
ICAO Doc 9303は、複数のパートにわたって渡航文書システムを定義しています。パート3には、機械読取式渡航文書に共通の仕様が含まれています。パート4、5、6はそれぞれTD3、TD1、TD2のレイアウトを定義しています。これらのレイアウトはOCR-B文字と意図的に制限された文字セットを使用します。
- 大文字の
AからZ; - 数字の
0から9; - フィラー文字
<。
フィラーは装飾的なものではありません。これは、未使用の固定幅フィールドを埋めたり、指定された場所のスペースやサポートされていない句読点を置き換えたり、氏名の構成要素を区切ったりします。解析前にすべての<を削除すると、フィールドの境界と氏名に関する情報が失われます。
MRZは、選択された文書データを繰り返します。これは、相互運用可能なキャプチャに最適化されており、すべての視覚フィールドや国別スクリプト名を保持するためではありません。
TD1、TD2、TD3形式の比較
最初の解析決定は、文書のレイアウトです。行数と正確な幅が最も強力な初期識別子となります。
| 形式 | 一般的なフォームファクター | MRZの形状 | 総文字数 | 氏名の位置 |
|---|---|---|---|---|
| TD1 | クレジットカードサイズの公用渡航文書または身分証明書 | 3 × 30 | 90 | 3行目 |
| TD2 | 大きめのカードまたは冊子データページ | 2 × 36 | 72 | 1行目 |
| TD3 | 機械読取式パスポートおよびその他のTD3文書 | 2 × 44 | 88 | 1行目 |
PやIのような文書コードだけで形式を推測しないでください。キャプチャは行を省略したり、2つの行を結合したり、スペースを挿入したり、間違った領域からトリミングを返したりすることがあります。フィールドの位置を割り当てる前に、幾何学的形状と許可された文字の両方を検証してください。
TD1:3行30文字
Doc 9303パート5は、TD1サイズの機械読取式公用渡航文書を定義しています。カードがコンパクトであるため、MRZは3行にわたります。
TD1 1行目:文書およびオプションデータ
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–2 | 2 | 文書コード |
| 3–5 | 3 | 発行国または機関 |
| 6–14 | 9 | 文書番号 |
| 15 | 1 | 文書番号チェックデジット |
| 16–30 | 15 | オプションデータ |
文書コードの最初の文字は、パート5のレイアウトではA、C、またはIです。未使用のオプションの位置は<で埋められます。
文書番号が9文字を超える場合、上段の15番目の位置は<です。継続文字は16番目から最大28番目の位置を使用し、その直後の17~29番目の位置に番号のチェックデジットが続き、その数字の後にフィラーが続きます。16~30番目の位置をオプションデータとして扱う前に、この例外を解析してください。
TD1 2行目:所持者の属性と複合チェック
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–6 | 6 | YYMMDD形式の生年月日 |
| 7 | 1 | 生年月日チェックデジット |
| 8 | 1 | 性別:F、M、または< |
| 9–14 | 6 | YYMMDD形式の有効期限 |
| 15 | 1 | 有効期限チェックデジット |
| 16–18 | 3 | 国籍 |
| 19–29 | 11 | オプションデータ |
| 30 | 1 | 複合チェックデジット |
複合デジットは、上段の6~30番目の位置、その後中段の1~7番目、9~15番目、19~29番目の位置をカバーします。3行目の所持者の氏名は含まれません。これらの正確な範囲を順番に連結します。
TD1 3行目:氏名
30文字すべてが氏名を表します。2つのフィラー<<が、主要識別子(通常は姓)と副次識別子を区切ります。各グループ内の構成要素は単一の<で区切られます。
例:
ERIKSSON<<ANNA<MARIA<<<<<<<<<<
これは、主要識別子ERIKSSONと副次識別子ANNA MARIAを表し、その後にパディングが続きます。すべての文化が姓の後に名が続くとは限らないため、発行者の識別子グループを使用してください。
TD2:2行36文字
Doc 9303パート6は、TD2レイアウトを定義しています。
TD2 1行目
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–2 | 2 | 文書コード |
| 3–5 | 3 | 発行国または機関 |
| 6–36 | 31 | 氏名 |
TD1と同様に、文書コードの最初の文字はA、C、またはIです。氏名は、TD1と同じ主要識別子、<<、副次識別子の構造に従いますが、利用可能な長さが異なります。
TD2 2行目
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–9 | 9 | 文書番号 |
| 10 | 1 | 文書番号チェックデジット |
| 11–13 | 3 | 国籍 |
| 14–19 | 6 | 生年月日 |
| 20 | 1 | 生年月日チェックデジット |
| 21 | 1 | 性別 |
| 22–27 | 6 | 有効期限 |
| 28 | 1 | 有効期限チェックデジット |
| 29–35 | 7 | オプションデータ |
| 36 | 1 | 複合チェックデジット |
複合デジットは、1~10番目、14~20番目、22~35番目の位置をカバーします。国籍の11~13番目の位置と性別の21番目の位置は除外されます。この除外は、「ほぼ正しい」実装における一般的なエラーの原因です。
文書番号が9文字を超える場合、1~9番目の位置には主要な9文字が入り、10番目の位置は<となります。残りの文字は29~35番目の位置から始まり、最後の継続文字の後に文書番号チェックデジットが続き、その後にフィラーが続きます。29~35番目の位置をオプションデータとしてのみ解釈する前に、この例外を適用してください。
TD3:2行44文字
Doc 9303パート4は、機械読取式パスポートおよびその他のTD3サイズの文書を定義しています。
TD3 1行目
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–2 | 2 | 文書コード |
| 3–5 | 3 | 発行国または機関 |
| 6–44 | 39 | 氏名 |
機械読取式パスポートの場合、文書コードの最初の文字はPです。2番目の文字は、適用されるパート4の規則に従ってパスポートの種類を識別します。氏名の構成要素は、TD1およびTD2と同じフィラーベースの構造を使用します。
TD3 2行目
| 位置 | 長さ | フィールド |
|---|---|---|
| 1–9 | 9 | パスポート番号 |
| 10 | 1 | パスポート番号チェックデジット |
| 11–13 | 3 | 国籍 |
| 14–19 | 6 | 生年月日 |
| 20 | 1 | 生年月日チェックデジット |
| 21 | 1 | 性別 |
| 22–27 | 6 | 有効期限 |
| 28 | 1 | 有効期限チェックデジット |
| 29–42 | 14 | 個人番号またはオプションデータ |
| 43 | 1 | オプションフィールドチェックデジット |
| 44 | 1 | 複合チェックデジット |
オプションの個人番号フィールドが使用されず<で埋められている場合、パート4では、発行者の選択により、そのチェック位置が0または<であることを許可しています。バリデーターは、入力されたフィールドのチェックを弱めることなく、許可されたバリアントを受け入れるべきです。
最終的な複合デジットは、1~10番目、14~20番目、22~43番目の位置をカバーします。したがって、これらの範囲内の個々のチェックデジットは含まれますが、国籍と性別は除外されます。
MRZチェックデジットの仕組み
ICAOチェックデジットは、決定論的なモジュラス10計算を使用します。
1. 各文字を値に変換する
| 文字 | 値 |
|---|---|
0–9 | 0–9 |
A–Z | 10–35 |
< | 0 |
2. 繰り返し重みを適用する
保護されたフィールドの最初の文字から始めて、値を次の重みで乗算します。
7, 3, 1, 7, 3, 1, ...
3. 合計して剰余を取る
積を合計し、合計を10で割った剰余を計算します。0から9までの剰余がチェックデジットとなります。
サンプルパスポート番号L898902C3の場合:
文字: L 8 9 8 9 0 2 C 3
値: 21 8 9 8 9 0 2 12 3
重み: 7 3 1 7 3 1 7 3 1
積: 147 24 9 56 27 0 14 36 3
合計: 316
316 mod 10 = 6
期待されるチェックデジットは6です。
個々のデジットと複合デジットを検証します。個々のエラーはフィールドレベルの問題を示唆し、複合デジットのみのエラーはオプションデータ、範囲の構築、またはその他の対象文字のエラーを示す可能性があります。
チェックデジットは多くの置換や転置を検出しますが、攻撃者はそれらを再計算することができます。これらはエラー検出を提供しますが、偽造に対する真正性は提供しません。
本番システムを破壊する解析の落とし穴
固定幅構造の損失
各行のトリミング、<の折りたたみ、またはフォーマット検出前の改行の削除は、フィールドをずらします。MRZを分離した後でのみ、外側の空白を正規化し、各行に正確に30、36、または44文字を要求します。
OCR出力を真実として扱う
OCRは一般的にOと0、Iと1、Bと8を混同します。グローバルな置換を適用しないでください。文字は文書番号で有効であり、数字は日付で有効です。フィールドの許可された文字セット、チェックデジット、VIZ、および別のキャプチャを使用して復元をガイドします。元のOCR結果と修正の両方を記録します。
フィラーの早期削除
<は、パディング、区切り文字、未指定の値、またはスキーマによって必要とされる置換を意味することがあります。まず位置を解析します。選択されたフィールド内でのみフィラーを解釈します。
MRZが印刷された名前を保持していると仮定する
MRZは句読点を省略し、国別文字を音訳し、名前を切り詰めて適合させることがあります。<<は識別子グループを区切り、グループ内の<は構成要素を区切ります。元のMRZ名と文書の視覚的または権威ある名を別々に保存し、一方を他方で黙って上書きしないようにします。
利用可能な名前の最後の位置にあるアルファベット文字は、切り詰めの可能性を示します。名前がフィールドを正確に埋め、同じ信号をトリガーすることもあるため、不確実性として扱います。
誤った世紀の推測
MRZの生年月日と有効期限は2桁の年を使用します。チェックデジットは印刷された6桁を検証しますが、世紀を選択しません。文書の種類、有効期限規則、キャプチャ日、所持者の状況、および明示的な方針を使用して完全な日付を解決します。後の規則変更が監査可能であるように、元のYYMMDD値を保持します。
3文字コードを一般的な国ライブラリの検索として扱う
発行機関と国籍は、Doc 9303で指定されたコードセットを使用します。これには、国だけでなく機関や特殊な値も含まれます。厳密なISOのみのマッピングは、有効な文書を拒否したり、発行者を誤って分類したりする可能性があります。パーサーが使用するICAOコードテーブルをバージョン管理し、テストしてください。
発行者のオプションと長い文書番号を無視する
オプションデータは発行者によって定義され、長い文書番号の規則は継続文字とチェックデジットを再配置することがあります。すべてのオプションフィールドに普遍的な意味を割り当てたり、形式固有の証拠なしに文書番号に連結したりしないでください。
失敗したチェックデジットを黙って「修復」する
失敗したデジットは、グレア、トリミング、損傷した行、サポートされていない発行者規則、または操作に起因する可能性があります。元のキャプチャを保持し、失敗したフィールドを特定し、制御された再キャプチャまたはレビューを要求します。黙って修正すると、失敗を理解するために必要な証拠が消去されます。
MRZとNFCチップデータ
MRZとNFCは補完的なものであり、同じチェックの競合するバージョンではありません。
| 特性 | 印刷されたMRZ | 非接触型eパスポートまたはeIDチップ |
|---|---|---|
| キャプチャ | カメラ、スキャナー、または手動転記 | NFC対応リーダー |
| データ | 選択された固定幅の身元情報および文書フィールド | 構造化されたデータグループ、より高品質の肖像画を含む可能性あり |
| エラー制御 | モジュラス10チェックデジット | 認証された場合のデータグループハッシュとデジタル署名 |
| 真正性 | MRZ単独では確立されない | パッシブ認証は、発行機関の署名とデータ整合性を確立できる |
| 複製防止 | なし | アクティブ認証またはチップ認証は、サポートされている場合に証拠を提供する可能性がある |
| 可用性 | 機械読取式渡航文書全体で広範囲 | サポートされている非接触型チップと読み取り可能なデバイスパスを持つ文書のみ |
MRZはチップアクセスにも関与できます。ICAOのeパスポートアクセス制御ガイダンスは、基本アクセス制御が、パスポートデータページから読み取られたデータ(通常はMRZを介して)からアクセスキーを導出すると説明しています。PACEは、新しい文書で遭遇するより強力なアクセス制御プロトコルです。アクセス制御はチップ通信を保護しますが、発行者の署名を認証することとは異なります。
アクセス後、パッシブ認証はデジタル署名をチェックし、検査システムがチップデータが発行機関によって保存され、後で改ざんされていないかを判断できるようにします。オプションのアクティブまたはチップ認証メカニズムは、複製防止の証拠を追加できます。
したがって、堅牢な文書フローは次のようになります。
- MRZをキャプチャし、その構造とチェックデジットを検証する。
- 必要なアクセスデータを使用して保護されたNFCセッションを確立する。
- チップデータグループを読み取る。
- 信頼できる発行者証明書に対してパッシブ認証を実行する。
- 文書がサポートしている場合は、複製防止メカニズムを実行する。
- チップ、MRZ、および目に見える文書データを比較する。
- 申請者が文書にリンクされていることを別途検証する。
チップの署名を検証せずにチップを読み取ることは、それを認証することと同等ではありません。同様に、有効なチップ自体が、現在の申請者がその正当な所有者であることを証明するものではありません。
実装とセキュリティのチェックリスト
MRZパーサーを出荷する前に:
- フィールドをスライスする前に、正確な行の形状からTD1、TD2、またはTD3を検出する。
- 元の画像、元のOCR行、正規化された行、およびパーサーのバージョンを保持する。
- 制御された正規化の後、許可されたMRZ文字セットのみを受け入れる。
- プログラミング言語のインデックスに慎重に変換された、1ベースのICAO位置によって解析する。
- 適用可能なすべてのフィールドデジットと、形式固有の複合デジットを検証する。
- 発行者が許可する空フィールドと長い文書番号のケースをサポートする。
- 元の解釈された日付、コード、名前、およびオプションデータを別々に保持する。
- 切り詰めと世紀の推測を明示的な不確実性として表面化する。
- MRZの結果をVIZまたはチップデータと比較し、不一致を黙って上書きしない。
- MRZ文字列を分析、URL、クラッシュレポート、または通常のログに配置するのを避ける。
- 保持されている機密データを暗号化し、アクセス、保持、および削除ポリシーを適用する。
- 発行者、形式、長い名前、損傷したキャプチャ、およびOCRの混同にわたる実際のサンプルをテストする。
- 行の長さ、フィラー、無効な文字、およびチェックデジットの失敗をファジングする。
- 文書の受け入れポリシーを解析の成功とは別に保持する。
パーサーは、「どのような文字がエンコードされており、チェックデジットは一貫しているか?」という問いに答えます。文書の認証と所持者の検証には、追加の証拠が必要です。
Diditの役割
Diditは、本人確認 (ID Verification) とNFC読み取り (NFC Reading) を別々の文書および本人確認モジュールとして提供しています。公表されている価格はそれぞれ0.15ドルです。ワークフローオーケストレーター (Workflow Orchestrator) は無料とされています。
これらの製品リンクは、このガイドにおける信頼の区別を変更するものではありません。MRZ解析、チップ認証、文書ポリシー、および所有者リンクは依然として別個の結論です。現在のモジュール料金は、料金ページで確認できます。
よくある質問
MRZとは何ですか?
MRZはMachine Readable Zoneの略で、機械読取式渡航文書に印刷された標準化された固定幅の文字領域です。
パスポートのMRZはどこにありますか?
TD3パスポートのデータページでは、通常、データページの下部に、1行あたり44文字の2行ブロックとして配置されています。
TD1、TD2、TD3の違いは何ですか?
これらはICAO文書のサイズとMRZのレイアウトです。TD1は3行30文字、TD2は2行36文字、TD3は2行44文字です。
MRZチェックデジットでパスポートが本物であることを証明できますか?
いいえ。多くの偶発的な読み取りエラーを検出します。これはデジタル署名ではなく、データが変更された後に再計算できます。
MRZはなぜ<文字を使用するのですか?
これは、未使用の位置を埋めたり、必要に応じてスペースやサポートされていない句読点を置き換えたり、氏名の構成要素を区切ったり、特定の文脈で未指定のフィールドを表したりします。
MRZはNFCチップと同じデータですか?
いいえ。一部の身元情報は重複していますが、チップは構造化されたデータグループと暗号セキュリティオブジェクトを保存できます。適切なチップ認証により、署名されたデータが発行機関から提供され、改ざんされていないことを証明できます。
アプリケーションはOCRで修正されたMRZデータを信頼すべきですか?
明示的な証拠がある場合にのみです。修正はフィールドを認識し、チェックデジットまたは別の情報源によってサポートされ、元のOCR結果と一緒に保持されるべきです。未解決の不整合は、再キャプチャまたはレビューを促すべきです。
主要な参考文献
- ICAO Doc 9303シリーズ:機械読取式渡航文書
- ICAO Doc 9303パート3:すべてのMRTDに共通の仕様
- ICAO Doc 9303パート4:機械読取式パスポートおよびその他のTD3サイズMRTD
- ICAO Doc 9303パート5:TD1サイズ機械読取式公用渡航文書
- ICAO Doc 9303パート6:TD2サイズ機械読取式公用渡航文書
- ICAO eパスポート検証ロードマップ:eパスポートチップへのアクセス
- ICAO eパスポート検証ロードマップ:検査システム要件
結論
MRZは、固定された行の長さ、固定された位置、限られた文字セット、予測可能なチェックデジットという制約があるからこそ成功しています。これらの制約は、厳格な解析を要求します。元の構造を維持し、正しいTDレイアウトを選択し、正確な保護された範囲を計算し、氏名、日付、発行者固有のオプションに関する不確実性を保持してください。
そして、証拠が証明する範囲で停止してください。有効なMRZは有用な相互運用可能なデータです。認証されたNFCチップデータは、暗号化された文書の証拠を追加できます。所持者の検証と最終的なビジネス上の決定は、別個のステップとなります。