Difference between revisions of "Belgian ePassport"

From YobiWiki
Jump to navigation Jump to search
m
Line 1: Line 1:
 
Back to [[Belgian eGov]]
 
Back to [[Belgian eGov]]
 
==Belgian ePassports==
 
==Belgian ePassports==
  +
See also the general [[ePassport]] page
 
===Characteristics===
 
===Characteristics===
 
* [https://www.checkdoc.be/CheckDoc/index.jsp?currenPage=checkdocument.jsp&choice=checkSecurity&iconDB=02&specific_document=1115&checksecurity_level=2&id_menu=0012 Current versions demo]
 
* [https://www.checkdoc.be/CheckDoc/index.jsp?currenPage=checkdocument.jsp&choice=checkSecurity&iconDB=02&specific_document=1115&checksecurity_level=2&id_menu=0012 Current versions demo]
Line 32: Line 33:
 
* http://www.theregister.co.uk/2007/06/10/belgian_epassport_flaws/
 
* http://www.theregister.co.uk/2007/06/10/belgian_epassport_flaws/
 
* http://www.dice.ucl.ac.be/crypto/passport/index.html
 
* http://www.dice.ucl.ac.be/crypto/passport/index.html
 
==RFID-enabled Passports==
 
===ICAO standards===
 
* [http://www.icao.int/mrtd/download/technical.cfm ICAO MRTD]
 
* [http://www.hasbrouck.org/documents/ICAO9303-pt1-vol1.pdf ICAO9303-pt1-vol1.pdf]
 
** [http://74.125.77.132/search?q=cache:jCSYw4YD9OIJ:www.hasbrouck.org/documents/ICAO9303-pt1-vol1.pdf html]
 
* [http://www.hasbrouck.org/documents/ICAO9303-pt1-vol2.pdf ICAO9303-pt1-vol2.pdf]
 
** [http://74.125.77.132/search?q=cache:dbnXg_0wfxkJ:hasbrouck.org/documents/ICAO9303-pt1-vol2.pdf html]
 
* [http://www.hasbrouck.org/documents/ICAO9303-pt3.pdf ICAO9303-pt3.pdf]
 
** [http://74.125.77.132/search?q=cache:vWDRlnA6feQJ:www.hasbrouck.org/documents/ICAO9303-pt3.pdf html]
 
* [http://www2.icao.int/en/MRTD/Downloads/Supplements%20to%20Doc%209303/Supplement%20to%20ICAO%20Doc%209303%20-%20Release%207.pdf Supplement to ICAO Doc 9303 - Release_7]
 
* [http://www.europeanbiometrics.info/images/resources/22_965_file.pdf LDS 1.7]
 
* Others:
 
** [http://www.bsi.bund.de/english/publications/techguidelines/tr03110/TR-03110_v200.pdf Advanced Security Mechanisms for Machine Readable Travel Documents] by BSI
 
===Certificates===
 
* CSCA certificate (Country Signing CA certificate)
 
**is typically valid for their period of intended use + period of validity of the issued passports + 3 months (e.g. 5+10+0.25) and renewed after their period of intended use (e.g. 5 years).
 
**is used to verify the DS certificate
 
* DS certificate (Document Signer certificate)
 
** is typically valid for the period of validity of the passport itself + 3 months and renewed after their period of intended use (3 months). (e.g. 10+0.25)
 
** is used to verify the integrity of the EF_DG* files of the passport through their hashes signed in EF_SOD
 
** is optionally present in the EF_SOD file of the passport (mandated by US-VISIT & by EU I think)
 
* SOD (Document Security Object)
 
** RFC3369 CMS Signed Data Structure, signed by the Document Signer (DS).
 
** Carries the hashed LDS Data Groups.
 
** Stored in the MRTD’s chip.
 
** MAY carry the Document Signer Certificate
 
* AA (Active Authentication) keys
 
** private key stored in the chip
 
** public key available in EF_DG15, whom hash key is signed in SOD by DS
 
 
As per epassport2008 there are several certificates for the full EAC solution:
 
Element File name
 
CSCA certificate - name NN_CSCA.der (.der, .cer)
 
DS certificate NN_DS (.der, .cer) preferably included in the ePassport chip
 
CVCA certificate NN_CVCA.cvcert (minimal validity at least 2 month)
 
CVCA private key under PKCS#8 format NN_CVCA.pkcs8
 
DV certificate NN_DVCA.cvcert (effective date like CVCA certificate)
 
IS certificate NN_IS.cvcert (effective date like CVCA certificate)
 
IS private key under PKCS#8 format NN_IS.pkcs8
 
===CSCA certificates===
 
* see http://jmrtd.org/csca.shtml
 
* [http://www2.icao.int/en/MRTD/Pages/icaoPKD.aspx ICAO PKD]
 
* [https://pkddownloadsg.icao.int/ICAO/pkdLDIFDownload.jsp ICAO PKD LDIF download]
 
Stupid script to see what are the country certificates there (there are also CRLs):
 
<source lang=bash>
 
#!/bin/bash
 
 
rm xx*
 
csplit pkd.000033.ldif '%userCertif%' '/^userCertif/' '{*}'
 
for i in xx*; do
 
cat $i |sed '1s/^.*:://;/:/,/qwerty/d' |openssl base64 -d|openssl x509 -inform der -out $i.pem -outform pem
 
cat $i |sed '1s/^.*:://;/:/,/qwerty/d' |openssl base64 -d|openssl x509 -inform der -text -noout > $i.txt
 
test $? -eq 0 && rm $i
 
done
 
</source>
 
===Verifying a passport===
 
Example to verify a French passport:
 
# Get France CSCA certificate: hum you should get country certificates from a trusted source ;-)
 
wget -O - http://jmrtd.org/csca/fr.cer |openssl x509 -inform der -outform pem -out fr.PEM
 
# EF_SOD certificate should have been extracted by RFIDIOt, if not:
 
tail -c+5 EF_SOD.BIN | openssl pkcs7 -inform DER -outform PEM -out EF_SOD.PEM
 
# Verify DS certificate stored in the passport with country CSCA certificate:
 
openssl pkcs7 -in EF_SOD.PEM -print_certs -outform PEM |openssl verify -CAfile fr.PEM
 
# you should get back a OK:
 
stdin: OK
 
# Verify SOD is well signed by DS, how?
 
 
# Verify files hashes are those signed in SOD
 
 
# Active authentication, verify the passport owns the private key of cert in DG15, how?
 
 
Moreover to be perfect, we should also check CSCA and DS against CRLs supposedly available at ICAO PKD.
 
====Active Authentication====
 
from http://www.aph.gov.au/Senate/committee/legcon_ctte/estimates/add_0506/ag/qon_91att_2.pdf
 
<br>A4.2. Active Authentication Mechanism
 
<br>Active Authentication is performed using the ISO7816 INTERAL AUTHENTICATE command. The input is a nonce (RND.IFD) that MUST be 8 bytes. The ICC computes a signature, when an integer factorization based mechanism is used, according to ISO9796-2 Digital Signature scheme 1 ([R17], ISO/IEC 9796-2, Information Technology – Security Techniques – Digital Signature Schemes giving message recovery – Part 2: Integer factorisation based mechanisms, 2002.).
 
<br>M MUST consist of M1 and M2, where M1 MUST be a nonce of length c – 4 bits and M2 is RND.IFD.
 
<br>The trailer option 1 MUST be used in case of SHA-1, if not SHA-1 then option 2 MUST be used.
 
<br>The result of the signature computation MUST be signature 3 without the non-recoverable message part M2.
 
<br>In more detail, IFD (inspection system) and ICC (MRTD’s chip) perform the following steps:
 
<br>1) The IFD generates a nonce RND.IFD and sends it to the ICC using the INTERNAL AUTHENTICATE command.
 
<br>2) The ICC performs the following operations:
 
<br>a) Create the header.
 
<br>b) Generate M1.
 
<br>c) Calculate h(M)
 
<br>d) Create the trailer
 
<br>e) Calculate the message representative F.
 
<br>f) Compute the signature 3 and send the response to the IFD.
 
<br>3) The IFD verifies the response on the send INTERNAL AUTHENTICATE command and checks if the ICC returned the correct value.
 
 
===Security of the ePassport infrastructure===
 
* [http://rowlandwatkins.com/past/2008/8/8/on_exploiting_epassport_vulnerabilities/ On Exploiting ePassport Vulnerabilities] (about PKI)
 
* [http://www.dexlab.nl/ So what’s the issue with ePassport security?]
 
* [http://www.cs.auckland.ac.nz/~pgut001/pubs/pass_faq.html Hello, my name is ...]
 
* [https://www.os3.nl/2008-2009/epassport_eng E-passport security]
 
* [http://www.cs.ru.nl/E.Poll/papers/nluug.pdf Fingerprinting passports] via their non-standard error codes
 
====US Passport Card====
 
Don't mix US Passport Book (ICAO) with the [http://travel.state.gov/passport/ppt_card/ppt_card_3926.html US Passport Card] (see also [http://en.wikipedia.org/wiki/Passport_card wikipedia]), valid when entering the United States from Canada, Mexico, the Caribbean and Bermuda at land border crossings
 
or sea ports-of-entry and [http://www.theregister.co.uk/2009/02/02/low_cost_rfid_cloner/ skimmed much more easily].
 
[http://travel.state.gov/passport/ppt_card/ppt_card_3921.html Won’t this chip violate Americans’ privacy?]
 
<i>There will be no personal information written on the electronic chip itself. The chip will have only a unique number pointing to a stored record contained in secure government databases.[...] In addition, to mitigate any possibility that the card could be tracked, it will be issued with a protective sleeve that will prevent the card from being read when not in use.</i>
 
 
===Tools===
 
====[http://openmrtd.org/ OpenMRTD]====
 
library
 
====[http://jmrtd.org/ JMRTD]====
 
Java host API & Javacard applet to build your own epassport infrastructure
 
====RFIDIOt====
 
See [[RFID#RFIDIOt]]
 
 
====[http://www.dexlab.nl/ eCL0WN]====
 
Applet for Nokia NFC phone
 
====[http://freeworld.thc.org/thc-epassport/ vonJeek emulator]====
 
 
==Misc==
 
* [http://www.smartcardfocus.com/shop/ilp/se~37/p/index.shtml Protective sleeves & wallets] shielding RFID stuff like ePassports
 

Revision as of 00:40, 4 February 2009

Back to Belgian eGov

Belgian ePassports

See also the general ePassport page

Characteristics

  • Current versions demo
  • Uses Opentrust PKI (former IDX-PKI from idealx)
  • Price:
    • 30€ droit de chancellerie
    • taxes communales (Ixelles=26€, Leuven=11€?,...)
    • 41€ frais de confection
    • Much more expensive if urgent or 64 pages (~250€)
  • maker? at least not Zetes (contradictory info here)
    Mais nous ne fabriquons pas le passeport belge, c’est vrai. C’est un contrat qui a été attribué avant que nous ne soyons actifs sur ce segment. S’il y a un appel d’offres, j’imagine que nous y répondrons.

chip

  • ATR 3B 8E 80 01 80 91 E1 31 C0 64 77 E3 03 00 83 82 90 00 6C
  • ATR 3B 8E 80 01 80 91 91 31 C0 64 77 E3 03 00 83 82 90 00 1C (as mentioned in pcsc-lite smartcard_list.txt)
  • ATR 3B 88 80 01 00 00 01 07 01 72 90 00 EC (on a recent passport 01/2009 EH431xxx)
  • Belgium is one rare country to also include the owner handwritten signature, in EF_DG7
  • Non-compliances?
    • Requires option 0x0C whenever you select the application or a file (important for non-BAC passports), usually other passports implement 7816-4 a bit better and accept the standard select_file but apparently Belgium just implemented the example of LDS just as it was presented, no more)
    • non-BAC passports have a bug in EF_DG11, in full name of holder (tag 5F0E): null length followed by "A0 06 02 01 01"
    • newer passports have a bug in EF_DG12, using tag 5F85 instead of 5F55 for the document issuance timestamp (5F85 is in LDS1.7, 5F55 is in ISO standard)
    • newest passports (with polycarbonate transparent sheet) don't have the bug anymore in EF_DG12, skipping simply document issuance timestamp
  • Reading the DS certificate in EF_SOD (output truncated):
openssl pkcs7 -text -print_certs -in EF_SOD.PEM
Authority:
       Issuer: C=BE, O=Kingdom of Belgium, OU=Federal Public Service Foreign Affairs Belgium, CN=CSCAPKI_BE
       Subject: C=BE, O=Kingdom of Belgium, OU=Federal Public Service Foreign Affairs Belgium, CN=DSPKI_BE
       X509v3 extensions:
           X509v3 Authority Key Identifier:.
               keyid:00:84:19:14:B2:CE:7E:0A:DE:3A:26:F9:FD:DD:1F:F4:01:42:A8:0E

Security of Belgian ePassports