パスポートのMRZを確認する方法

  1. MRZを見つける. パスポートのデータページ下部(44文字 × 2行)またはIDカードの裏面(30文字 × 3行)にある、等幅の大文字のブロックです。各<は埋め文字であって、誤字ではありません。
  2. 行を入力または貼り付ける. 印刷どおりに、1行ずつ入力します。OCR結果からコピーする場合は<の文字を残してください。小文字や余分なスペースはツールが直します。
  3. 判定を読む. 緑の判定は、すべてのチェックデジットが一致していることを意味します。赤の判定は、どのデジットが合わないか、期待値は何かを一覧にするので、読み違えた文字を見つけられます。
  4. 解読されたフィールドを確認する. 解読された氏名、番号、日付を、印刷されたデータページと照らし合わせます。2つの領域の間に食い違いがあれば、よく確認すべき理由になります。

できること

  • ICAO Doc 9303のすべてのチェックデジットを検証:旅券番号、生年月日、有効期限、任意データ、そして複合チェックデジット
  • 3種類の渡航文書フォーマット(TD3パスポート 2 × 44、TD1 IDカード 3 × 30、TD2文書 2 × 36)に加え、MRV-AおよびMRV-Bビザに対応
  • 文書コード、発行国、姓と名、番号、国籍、性別、日付、任意データを解読
  • OCRの混同(0/O、1/I、8/B、5/S)を指摘し、入れ替えでチェックデジットが一致する場合は修正値を提案
  • すべてのフォーマットの完全なフィールド位置表を表示し、それを定義するICAOのパートへのリンクを掲載
  • すべてブラウザ内で完結:アップロードも保存も通信もなく、再読み込みすれば行は消えます

MRZチェッカーは実際に何を検証するのか

各行を、そのフォーマットについてICAO Doc 9303が定めるフィールドに切り分け、対象の文字からすべてのチェックデジットを再計算し、印刷されているデジットと比較します。パスポート(TD3フォーマット)には5つのチェックデジットがあります。旅券番号、生年月日、有効期限、任意データ、そして2行目の大部分にかかる複合デジットです。IDカード(TD1)には4つ、TD2文書には4つ、ビザ(MRV)には3つあり、ビザには複合デジットがありません。次にツールは、フィールドの内容を解読します。文書コード、発行国、姓と名、国籍、性別、2つの日付です。

そもそもなぜパスポートにチェックデジットがあるのか

この領域はスキャナーで読み取ることを前提としており、スキャナーは間違えるからです。チェックデジットがあれば、読み取りソフトは0がOとして読まれたことや、行が1文字短く切れたことに、データがどこかへ送られる前に気づけます。これは文字列の整合性チェックであって、セキュリティ機能ではありません。誰でもデジットを計算でき、規格はアルゴリズムを公開しています。だからこそ、合格という結果は文書が本物かどうかについて何も語らないのです。

OCRはどの文字を間違えるのか

MRZに使われるOCR-Bフォントは文字同士を区別しやすいよう設計されていますが、それでもスマートフォンのカメラ、反射、ラミネートによって、決まった混同がいくつか生じます。ツールは双方向にそれらを確認します。

印刷よく読まれる文字現れる場所
0(ゼロ)O日付、チェックデジット、旅券番号
1IまたはL日付、チェックデジット
8B日付、番号
5S日付、番号
2Z日付、番号
<(埋め文字)欠落、または«やKとして読まれる氏名と各フィールド後の埋め部分 — 埋め文字が1つ欠けると、後続のフィールドがすべてずれる

数字フィールド内の文字は常に誤りなので、ツールはそれを報告し、似た形の数字を試します。それでチェックデジットが一致すれば、その旨を伝えます。氏名フィールド内の数字も同様に、本来の文字と思われるものとともに指摘します。

2桁の年はどのように日付に変換されるのか

MRZは日付を世紀なしのYYMMDDで保存します。チェッカーは、生年は過去にある(現在の年までの年は20YY、それ以外は19YYと読む)と仮定し、有効期限の年は20YYと読みますが、それが20年以上先になる場合は19YYとします。解読された日付にはその旨の注記が付きます。1926年生まれの人や、数十年前に失効した文書では、この仮定が外れることがあります。各日付の横に元の6文字を表示しているので、ご自身で判断できます。

このツールにわからないこと

写真、ICチップ、ラミネート、透かしは見えないので、文書が本物だとは言えません。3文字コードをすべて知っているわけでもありません。一覧はISO 3166の国々と、ICAOが予約しているコード(ドイツのD、GBRとその他の英国のコード、無国籍者と難民のXXAからXXC、UNO)をカバーしており、未知のコードは注記付きでそのまま表示されます。読むのは文字列であって画像ではないため、パスポートの写真はまずOCRにかける必要があります。そして何も保持しません。行は、ページを開いている間だけブラウザのメモリに存在します。