#machine-readable #document #electronic #standard #icao #parameters #emrtd

bin+lib icao-9303

ICAO 9303 electronic machine readable travel document (eMRTD) standard implementation

1 unstable release

0.1.0 Oct 11, 2024

#354 in Cryptography

36 downloads per month

MIT license

165KB
4K SLoC

ICAO 9303: Electronic Machine Readable Travel Documents

Implementation of the ICAO 9303 standard for electronic machine readable travel documents (eMRTD) in Rust. This covers the data structure, cryptographic operations, and communication protocols for eMRTDs.

Status

This is a work in progress. The following features are implemented:

  • ASN1 Data structure for eMRTD.
  • Basic APDU communication with eMRTDs.
  • Cryptographic operations for:
    • Secure Messaging
    • Basic Access Control
    • Chip Authentication
    • Data group hashes
  • Proxmark3 USB support for interacting with eMRTDs.

Not implemented yet:

  • MRZ parsing
  • PACE
  • Document signature verification
  • Cetificate chain validation
  • Named parameters for cryptographic operations
  • Chained APDUs and responses

Not planned:

  • Terminal Authentication

References

General:

  • ISO/IEC 7816-4: Integrated Circuit(s) Cards with Contacts.
  • ISO/IEC 14443-3: Proximity Cards.
  • ITU-T X.690: ASN.1 encoding rules.

Cryptography:

  • RFC 5280
  • RFC 5480
  • RFC 5114
  • RFC 5639
  • RFC 5652
  • ANSI X9.42: Public Key Cryptography for the Financial Services Industry: Agreement of Symmetric Keys Using Discrete Logarithm Cryptography.
  • ANSI X9.62: Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA).
  • FIPS 46-3: Data Encryption Standard (DES).
  • BSI TR-03105: Advanced Security Mechanisms for Machine Readable Travel Documents.
  • BSI TR-03110: Biometrics in Machine Readable Travel Documents.
  • BSI TR-03111: Security Mechanisms for Electronic Passports.

CBC mode for block ciphers:

  • ISO/IEC 10116-2006. Information technology – Security techniques – Modes of operation for an n-bit block cipher, 2006.

CMAC mode for block ciphers:

Physical layer:

  • ECMA 340: Near Field Communication Interface and Protocol 1 (NFCIP-1)
  • ECMA 352: Near Field Communication Interface and Protocol 2 (NFCIP-2)
  • ISO/IEC 18000-3: Radio frequency identification for item management — Part 3: Parameters for air interface communications at 13,56 MHz

Dependencies

~7.5MB
~154K SLoC