Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eMRTD Checklist, issues and feature requests #1117

Open
13 of 19 tasks
aveao opened this issue Dec 17, 2020 · 9 comments
Open
13 of 19 tasks

eMRTD Checklist, issues and feature requests #1117

aveao opened this issue Dec 17, 2020 · 9 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@aveao
Copy link
Contributor

aveao commented Dec 17, 2020

This issue is intended to be a meta progress tracker and discussion space for the hf emrtd commands.

Checklist

  • ISO 14a/14b support
  • Non-BAC passport support
  • BAC passport support
  • hf emrtd dump
  • hf emrtd info that displays basic info (perhaps just based on EF_DG1)
  • hf emrtd dump dumping more detailed data from the files by parsing them, such as extracting the JPG and the cert file
  • Dumping EF_CardAccess when doing hf emrtd dump, as suggested by doegox
  • Automatically changing document number to uppercase and checking for length of DOB/Expiry, as suggested by doegox
  • hf emrtd info that displays extended info (EF_DG11, EF_DG12)
  • Ability to view info from a dump folder, as suggested by doegox
  • Ability to provide full MRZ line as option, as alternative to doc_nr/birth_date/exp_date (only on passports/TD3)
  • File hash checks based on EF_SOD
  • Ability to hf emrtd dump to a different folder, as suggested by doegox
  • hf emrtd info that displays a GUI with extended info (EF_DG1, EF_DG2, EF_DG5, EF_DG11, EF_DG12)
  • PACE support
  • Bruteforce support (might be interesting to look at bruteforcing CAN when we add PACE support)
  • Various vulnerability checks as suggested by doegox
  • Cert info display
  • Cert verification as suggested by iceman

Test results

Working

  • Turkey IDs (14a)
  • Turkey ePassports (14a, 14b)
  • Sweden ePassports (14b)
  • Denmark ePassports (2020, 14b)
  • Lithuania ePassports (14a)
  • United States ePassports (14a)
  • Pre-Brexit United Kingdom ePassports (14a)
  • Canada ePassports (14a)
  • Ukraine ePassports (14a)
  • Serbia ePassports (14a)
  • Belgium ePassports (14b)
  • old Belgium ePassports without BAC (14a)
  • Greek ePassports
  • Russian ePassports (14b)
  • Dutch ePassports (14a)
  • Slovenia ePassports (14a)
  • Taiwan ePassports (14a)

Not working

  • Phillipines ePassports (14b) -> Can't read, external auth results in [!!] APDU: Small APDU response. Len=0. ReadID android can read it, says BAC and AA are available, uses BAC.
  • Old Denmark ePassports -> Does not detect (coupling issue?)
  • German Personalausweis -> PACE-only.
  • German Aufenthaltstitel -> PACE-only even on those issued around ~2015, even though it has the chip inside symbol.

To try

  • Italian IDs -> They have the chip inside symbol and have a CAN on them, would be interesting to try reading them.
  • Post-brexit United Kingdom ePassports ("British Passport")
@aveao
Copy link
Contributor Author

aveao commented Dec 17, 2020

Whoops, accidentally picked the wrong option that added the wrong labels and assignees, please feel free to correct those.

@iceman1001 iceman1001 added enhancement New feature or request help wanted Extra attention is needed and removed Release labels Dec 17, 2020
@aveao aveao mentioned this issue Dec 18, 2020
@doegox
Copy link
Contributor

doegox commented Dec 18, 2020

Notes to ppl testing this feature

About passports not working at first sight:

  • tag antenna can be at different places: front cover, back cover, second page with ID (page is thick), last page (page is thick)
  • some passports require to be opened to unshield the antenna
  • old passports don't have a tag, your passport must have this logo on the cover:

image

@nickthegreek
Copy link

Greek passports work as well. Awesome work!

How easy would it be to implement emulation of a dumped passport? We have this client for example who want us to test some passport scanning app and obviously they're not going to ship real passports via mail. So using proxamrk to emulate a real one would be a great feature.

@doegox
Copy link
Contributor

doegox commented Jan 8, 2021

Just to keep track of it, there is an interesting bit of code here to be able to parse the PKCS#7 certificate with mbedtls
qemu/skiboot@9e7a4b3

@iceman1001
Copy link
Collaborator

Pushed a fix for 14b, which influences emrtd cmds, I tested on my passport and it works.

@zachary822

This comment has been minimized.

@team-orangeBlue
Copy link
Contributor

I've checked 14a Russian passports (random ID, 0008-20). Works well

@zhiyan114
Copy link

zhiyan114 commented Apr 8, 2024

Confirmed China's ePassport system worked, though, it doesn't automatically generate a .jpg of the facial image from DG2.
Reading from the passport can be a bit tricky, probably because of the antenna design.

@iceman1001
Copy link
Collaborator

I guess the image is because the pm3 client tries to show both facial image and signature image.

And we only have one image object in the client for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

7 participants