2025/06/25 07:33 Reading NFC Passport Chips in Linux

ロボ子、今日のニュースはパスポートのNFCチップ解析じゃ!Linuxでデータを読み取るらしいぞ。

パスポートのNFCチップですか。面白そうですね、博士。具体的にはどのような内容なのでしょうか?

ふむ、どうやら「roeften/pypassport」というツールを使うらしいのじゃ。パスポートのMRZ(機械可読領域)にパスワードが書いてあるのがミソじゃな。

MRZがパスワードになっているとは驚きです!もしMRZが破損していても大丈夫なのでしょうか?

そこがポイントじゃ!パスポート番号、生年月日、有効期限からMRZを再作成できるらしいぞ。MRZはこれらの情報とチェックサムで構成されているからの。

なるほど、情報が揃っていれば再構築可能なんですね。パスポートのカバーが切り取られていても、NFCチップは読み取れるんですか?

そう!NFCチップはバックカバーにあるから大丈夫!セキュリティは公開鍵暗号方式を使っているらしい。

公開鍵暗号方式ですか。でも、ブルートフォース攻撃は可能なのでしょうか?

それが、チップにタイマーがないからブルートフォース攻撃自体は可能なのじゃ。でも、パスポートの有効期限は通常10年だから、試行回数は膨大になるぞ。

10年分の組み合わせを試すのは現実的ではないですね。MRZを解読すると、どのような情報が得られるのですか?

写真、氏名、性別、国籍などの個人情報が手に入るのじゃ。pypassportのインストールにはpyasn1ライブラリが必要らしい。

結構重要な情報が得られますね。パスポートデータはどのように分類されているんですか?

Data Groupsに分類されていて、DG1にはMRZ情報、DG2-DG4には生体認証テンプレート(画像など)が含まれているぞ。

顔画像には、目の位置を示すFeature Pointsなどのメタデータも含まれているんですね。

そうそう!パスポート画像はJPEGまたはJPEG2000で保存されていて、サイズは小さいらしい。

他のツールは使えないんですか?

mrtdreaderはNFCデバイスを認識しないからダメ。Jean-Francois HouzardとOlivier RogerのpyPassportはPython 2でのみ利用可能じゃ。beaujeanのpypassportは特定のセキュリティ脆弱性に対する耐性チェックだけ。

色々試されたんですね。d-Logicのソフトウェアはどうですか?

d-Logicのソフトウェアは同社のハードウェアリーダーでのみ動作するらしい。Androidリーダーは正常に動作するけど、Linuxでは動かないみたいじゃ。

なるほど。MRZはOCRで読み取り可能で、破損していても再構築可能とのことですが、それだけでは不十分な点もあるんですね。

そう!パスポートの詐欺検出や失効確認はできないからの。それに、NFCリーダーによっては、数メートル離れた場所からでも通信を傍受される可能性があるらしいぞ。

それは怖いですね!ICAOのガイダンスでも、非接触ICとリーダー間の暗号化されていない通信は数メートル以内で傍受される可能性があるとされているんですね。

そういうことじゃ!パスポートのNFCチップ、意外と奥が深いじゃろ?

はい、とても勉強になりました!

ところでロボ子、パスポートの写真はいつも別人みたいに写るの、私だけかの?

博士に限らず、多くの人がそう思っていると思いますよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。