在 Linux 中读取 NFC 护照芯片

主要观点:为无聊且非恶意原因,想用 Linux 读取护照 NFC 芯片中的数据,最终选定roeften 的 pypassport,可读取包括生物识别信息在内的所有护照信息。
关键信息:

  • 护照 NFC 芯片受密码保护,密码在护照内页的“机器可读区”(MRZ),取消的护照 MRZ 部分缺失。
  • 可通过 Python 代码生成 MRZ 作为 NFC 芯片密码,计算方式有特定规则。
  • 取消的护照虽剪去封面,但 NFC 芯片仍在背面可验证真实性。
  • 密码破解需考虑护照有效期、出生日期等, brute-force 密码虽可能但价值不大,因为能获取的信息从看护照本身就能得到。
  • 安装时需安装pyasn1,通过特定 Python 代码可读取护照数据,结构较复杂,包含不同数据组。
  • 可保存护照图像,图像编码有 JPEG 和 JPEG2000,大小仅 19KB。
  • 尝试了多个工具如[mrtdreader]、[Jean-Francois Houzard 和 Olivier Roger 的 pyPassport]、[beaujean 的 pyPassport]、[d-Logic]、[Android 阅读器],部分不适用或仅满足特定需求。
    重要细节:
  • 不同工具的使用情况及问题,如[mrtdreader]因 NFC Tools 未更新找不到设备,[Jean-Francois Houzard 和 Olivier Roger 的 pyPassport]仅适用于 Python 2,[beaujean 的 pyPassport]仅检查护照安全性,[d-Logic]仅适用于其硬件阅读器,[Android 阅读器]在 Android 上可用但不在 Linux 上运行。
  • 护照数据中的各种信息,如不同数据组的内容、生物识别信息中的“特征点”“姿势角度”等含义。
  • 关于读取护照信息的利弊,虽无法检测欺诈护照或加密异常,但能快速获取旅行证件中的信息。
阅读 15
0 条评论