The Hitchhiker’s Guide voor de e-ID Peter Strickx E-Idea 2008 – 13/11/2008 Gent
© fedict 2006. All rights reserved
e-ID als bouwsteen
2 © fedict 2006. All rights reserved
eID - Introductie Een nieuwe identiteitskaart met het formaat van een bankkaart en een krachtige chip.
© fedict 2006. All rights reserved
eID Partners
4 © fedict 2006. All rights reserved
Doelstelling eID project Proof of identity
> Een elektronische identiteitskaart aan de Belgische burgers geven waarmee ze kunnen zich authenticeren tegenover diverse toepassingen en digitale handtekeningen kunnen plaatsen Signature tool
5 © fedict 2006. All rights reserved
eID Informatie > Vanuit een visueel oogpunt zal dezelfde informatie zichtbaar zijn als op de huidige identiteitskaart :
Visuele identificatie van de eigenaar
• • • • • • • • • • • •
naam eerste 2 voornamen eerste letter derde voornaam de nationaliteit geboorteplaats en -datum geslacht uitreikingsplaats begin- en einddatum van de geldigheid kaartnummer foto van de eigenaar handtekening van de eigenaar Rijksregisternummer 6
© fedict 2006. All rights reserved
eID Informatie > Vanuit een elektronisch oogpunt bevat de chip dezelfde informatie die gedrukt staat op de kaart aangevuld met : Elektronische identificatie van de eigenaar
• • • • •
> > > >
adres identiteits- en handtekeningsleutels identiteits- en handtekeningcertificaat Certificate Service Provider beveiligingsinformatie (chipnummer, handtekening van identiteitsgegevens etc...)
(Momenteel) geen encryptiecertificaat (Nog) geen biometrische data Geen elektronische gelddrager (proton) Geen opslag andere data 7
© fedict 2006. All rights reserved
eID – chip eID, Welcome to the e-world !
© fedict 2006. All rights reserved
Inhoud van de chip
PKI
Citizen Identity Data ID ID
ADDRESS ADDRESS
RRN RRN SIGNATURE SIGNATURE
RRN RRN SIGNATURE SIGNATURE
Authentication
Digital Signature
RRN, Root CA, CA,…
RRN = National Register RRN issues a signature on the citizen’s picture, identity and address files
9 © fedict 2006. All rights reserved
Technische PKI-specificaties > Sleutels en certificaten m Belgiu Root CA
Citizen CA
Auth
Citizen CA
Sign
• private en publieke sleutel CA : 2048 bits • private en publieke sleutel burger: 1024 bits • Handtekening via RSA met SHA-1 • alle certificaten zijn conform X.509 v3
Crypt
10 © fedict 2006. All rights reserved
Burger certificaten Citizen Authentication certificate (~980 bytes) Version: 3 (0x2) Serial Number:
Citizen Qualified certificate (~1000 bytes) Version: 3 (0x2) Serial Number:
10:00:00:00:00:00:0a:5d:9a:91:b1:21:dd:00:a2:7a
10:00:00:00:00:00:8d:8a:fa:33:d3:08:f1:7a:35:b2
Signature Algorithm: sha1WithRSAEncryption (1024 bit) Issuer: C=BE, CN=Citizen CA Not valid before: Nov 12 22:40:52 2003 GMT Not valid after: Nov 12 22:40:52 2008 GMT Subject: C=BE, CN=Sophie Dupont (Authentication),
Signature Algorithm: sha1WithRSAEncryption (1024 bit) Issuer: C=BE, CN=Citizen CA Not valid before: Nov 12 22:41:00 2003 GMT Not valid after: Nov 12 22:41:00 2008 GMT Subject: C=BE, CN=Sophie Dupont (Signature),
SN=Dupont, GN=Sophie Nicole/serialNumber=60021404665
SN=Dupont, GN=Sophie Nicole/serialNumber=60021404665
Subject Public Key Info:
Subject Public Key Info:
RSA Public Key: [Modulus (1024 bit): cf:ca:7a:77: … :5c:c5, Exponent: 65537 (0x10001)]
RSA Public Key: [Modulus (1024 bit): 4b:e5:7e:6e: … :86:17, Exponent: 65537 (0x10001)]
X509v3 extensions:
X509v3 extensions:
Certificate Policies:
Certificate Policies:
Policy: 2.16.56.1.1.1.2.2 CPS: http://repository.eid.belgium.be
Policy: 2.16.56.1.1.1.2.1 CPS: http://repository.eid.belgium.be
Key Usage: critical, Non Repudiation
Key Usage: critical, Digital Signature
m Belgiu A Root C
Authority Key Identifier: [D1:13: … 7F:AF:10] CRL Distribution Points:
Authority Key Identifier: [D1:13: … :7F:AF:10] CRL Distribution Points: URI:http://crl.eid.belgium.be/eidc0002.crl
Netscape Cert Type: S/MIME Authority Information Access:
URI:http://crl.eid.belgium.be/eidc0002.crl Citizen CA
CA Issuers - URI:http://certs.eid.belgium.be/belgiumrs.crt OCSP - URI:http://ocsp.eid.belgium.be
Gov CA
Netscape Cert Type: SSL Client, S/MIME Authority Information Access: CA Issuers - URI:http://certs.eid.belgium.be/belgiumrs.crt OCSP - URI:http://ocsp.eid.belgium.be
Qualified certificate statements: [00......F..]
Signature: [74:ae:10: … :e0:91]
Signature: [10:ac:04: … :e9:04]
‘‘serialNumber” refers to Sophie Dupont’s national number. She was born on Valentine’s day, 1960
11 © fedict 2006. All rights reserved
Software interfaces Windows
MacOS
Generic
Applics (Outlook/IE)
Applics (Safari/Mail)
Applics (Windows/Mac//Linux)
MS-CSP
Tokend
PKCS#11
(Microsoft
(MacOS X interface)
(Certificate & Keys
interface)
Management)
PC/SC
PIN
(Generic SC
(pin logic library)
ReaderInterface)
Driver
I/O
(Specific SC Reader Interface)
e-ID Middleware Native OS
12 © fedict 2006. All rights reserved
eID Functionaliteiten
data capture authenticatie elektronische handtekening 13 © fedict 2006. All rights reserved
eID Functionaliteiten
MO E D
data capture authenticatie elektronische handtekening 14 © fedict 2006. All rights reserved
Data capture eID als middel om op een efficiente manier identiteitsgegevens te transfereren
tijdsrovend
snel
inefficient
efficient
foutgevoelig
exacte copie 15
© fedict 2006. All rights reserved
Data capture
16 © fedict 2006. All rights reserved
Data capture > Applet > SDK Java Library > Java Smart Card I/O API APDU interface
17 © fedict 2006. All rights reserved
Data capture (SDK) package be.fedict.eid.sample; import be.belgium.eid.BEID_EIDCard; import be.belgium.eid.BEID_EId; import be.belgium.eid.BEID_ReaderContext; import be.belgium.eid.BEID_ReaderSet; public class BeIDLibSample { public static void main(String[] args) throws Exception { System.load("/usr/local/lib/libbeidlibJava_Wrapper.so"); try { BEID_ReaderSet readerSet = BEID_ReaderSet.instance(); BEID_ReaderContext readerContext = readerSet.getReader(); BEID_EIDCard eidCard = readerContext.getEIDCard(); eidCard.setAllowTestCard(true); BEID_EId eid = eidCard.getID(); String firstName = eid.getFirstName(); System.out.println("first name: " + firstName); } finally { BEID_ReaderSet.releaseSDK(); } } } © fedict 2006. All rights reserved
18
Data capture (APDU) CardTerminals cardTerminals = factory.terminals(); CardTerminal cardTerminal = cardTerminals.list().get(0); Card card = cardTerminal.connect("T=0"); CardChannel cardChannel = card.getBasicChannel(); // select identity file via APDU CommandAPDU selectFileApdu = new CommandAPDU(0x00, 0xA4, 0x08, 0x0C, IDENTITY_FILE_AID); cardChannel.transmit(selectFileApdu); // read the file content via APDU's int offset = 0; byte[] file = new byte[4096]; byte[] data; do { CommandAPDU readBinaryApdu = new CommandAPDU(0x00, 0xB0,offset >> 8, offset & 0xFF, 0xFF); ResponseAPDU responseApdu = cardChannel.transmit(readBinaryApdu); data = responseApdu.getData(); System.arraycopy(data, 0, file, offset, data.length); offset += data.length; } while (0xFF == data.length); card.disconnect(false); 19 © fedict 2006. All rights reserved
Data capture > Voordelen data capture via APDU interface > GEEN middleware nodig > snelheid > perfecte integratie (error handling, eID kaart status) met toepassing > Nadelen data capture via APDU interface > Java 6 installatie op client > geen privacy pop-up (bypass middleware) > sterke afhankelijkheid data layout eID 20 © fedict 2006. All rights reserved
eID Functionaliteiten
data capture O M DE
authenticatie elektronische handtekening 21 © fedict 2006. All rights reserved
Authenticatie eID als middel van een “sterke” elektronische authenticatie
physical world
on-line world
Hi Jan !
Hi Peter !
… 22
© fedict 2006. All rights reserved
Authenticatie
Published in The New Yorker July 5, 1993 © fedict 2006. All rights reserved
23
Authenticatie > client-side SSL > JCA/JCE SunPKCS11 security provider > PKCS11-wrapper > Java Smart Card I/O API APDU Interface > Identity Provider Service (SAML)
24 © fedict 2006. All rights reserved
https://mijndossier.rrn.fgov.be
25 © fedict 2006. All rights reserved
https://mijndossier.rrn.fgov.be
26 © fedict 2006. All rights reserved
https://mijndossier.rrn.fgov.be
27 © fedict 2006. All rights reserved
https://mijndossier.rrn.fgov.be
28 © fedict 2006. All rights reserved
Authenticatie (SSL)
Web Server SSL
Browser Client
(3)
(1)
Validate Server Certificate
(2)
“Challenge” to verify Client Identity
(6)
Decrypt “Challenge” with Public Key from Authentication Certificate User Identity
(5)
(4)
Encrypted “Challenge” with eID Authentication certificate
(7)
If/When “Challenge” match access granted
Encrypt “Challenge” with eID Private Key
29 © fedict 2006. All rights reserved
Authenticatie (SSL) > Voordelen authenticatie via client-side SSL > eenvoudig op te zetten (config. webserver) > Nadelen authenticatie via client-side SSL > error handling op protocol niveau NIET op applicatie (vb ssl_error_handshake_failure_alert) > authenticatie van machine NIET van user (privacy conflict) > SSL session renewal (kaart blijft in kaartlezer – niet nodig voor authenticatie – PIN “caching” ?!) 30 © fedict 2006. All rights reserved
Authenticatie (PKCS11) public class JcePkcs11Sample { public static void main(String[] args) throws IOException,KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableEntryException, InvalidKeyException, SignatureException { // setup configuration file File tmpConfigFile = File.createTempFile("pkcs11-", "conf"); tmpConfigFile.deleteOnExit(); PrintWriter configWriter = new PrintWriter(new FileOutputStream( tmpConfigFile), true); configWriter.println("name=SmartCard"); configWriter.println("library=/usr/local/lib/libbeidpkcs11.so"); // load security provider SunPKCS11 pkcs11Provider = new SunPKCS11(tmpConfigFile.getAbsolutePath()); Security.addProvider(pkcs11Provider); // load key material KeyStore keyStore = KeyStore.getInstance("PKCS11", pkcs11Provider); keyStore.load(null, null); PrivateKeyEntry privateKeyEntry = (PrivateKeyEntry) keyStore.getEntry("Authentication", null); PrivateKey privateKey = privateKeyEntry.getPrivateKey(); X509Certificate certificate = (X509Certificate) privateKeyEntry.getCertificate(); byte[] document = "document to be signed".getBytes(); 31 © fedict 2006. All rights reserved
Authenticatie (PKCS11) // create signature Signature signature = Signature.getInstance("SHA1withRSA"); signature.initSign(privateKey); signature.update(document); byte[] signatureValue = signature.sign(); // verify signature signature = Signature.getInstance("SHA1withRSA"); signature.initVerify(certificate.getPublicKey()); signature.update(document); boolean result = signature.verify(signatureValue); if (false == result) { throw new RuntimeException("Invalid Signature"); } System.out.println("signature OK"); } }
32 © fedict 2006. All rights reserved
Authenticatie (PKCS11) > Voordelen authenticatie via PKCS11 (JCA) > goede integratie met XML security API > Nadelen authenticatie via PKCS11 (JCA) > remote via JCA is moeilijk > geen interactiviteit mbt. Kaart status
33 © fedict 2006. All rights reserved
Authenticatie (Identity Provider) Internet 1) Request 2) Redirect to ePortal Login page
ePortal User
6) Session Creation
5.2) Redirect with SAML Response External Firewall
Web Server External Portal
5.1) Redirect with SAML Response (Posting with JavaScript)
Application Server
External Firewall 3) Login in ePortal Authentication page 4.1) Checking Credetials
Web Server Federal ePortal
Application Server
4.2) Checking Credetials
LDAP
34 © fedict 2006. All rights reserved
eID Functionaliteiten
data capture authenticatie elektronische handtekening 35 © fedict 2006. All rights reserved
Elektronische handtekening eID als middel om elektronische documenten rechtsgeldig te ondertekenen
36 © fedict 2006. All rights reserved
Elektronische handtekening 1. Compose message 2. Compute hash
3. Generate signature 4. Collect signature
6
5. Collect certificate 6. Send message
7
1
hash
1 6
Alic e
Alic e
hash
CRL
2
8
2 5
4
3
3, 4
Alic e
5 Matching triplet?
Alice
Bob
1. Receive message 3. Check CRL/OCSP 5. Fetch public key 7. Compute reference hash 2. Inspect certificate 4. Check certificate 6. Fetch signature 8. Hash, signature, public key match?
37 © fedict 2006. All rights reserved
© fedict 2006. All rights reserved
38 Demo
© fedict 2006. All rights reserved
39 Demo
© fedict 2006. All rights reserved
40 Demo
Elektronische handtekening > XML > XML Dsig > XAdES > PDF > What-you-see-is-what-you-sign > eenvoudig te gebruiken > Adobe lock-in risico > enkel PDF > niet aanbevolen door EC 41 © fedict 2006. All rights reserved
eID - Toepassingen The Sky is the Limit
© fedict 2006. All rights reserved
Wat kan je al doen met de eID ? Federale Overheid - Tax-on-Web - Mijn Dossier (https://mijndossier.rrn.fgov.be) - Dimona - WebDIV (nummerplaat) - SSL VPN (Teleworking) - e-Politie (e-loket voor registratie kleine criminaliteit)
43 © fedict 2006. All rights reserved
Wat kan je al doen met de eID ? Locale Overheden - www.bornem.be - www.diepenbeek.be
44 © fedict 2006. All rights reserved
Wat kan je al doen met de eID ?
Gemeentelijke toepassingen : huwelijk huis kinderen school bibliotheek zwembad container park …
45 © fedict 2006. All rights reserved
Wat kan je al doen met de eID ?
46 © fedict 2006. All rights reserved
47 © fedict 2006. All rights reserved
Wat kan je al doen met de eID ?
48 © fedict 2006. All rights reserved
eID Visie - Uiteindelijk doel : dagelijks gebruik van de eID …
…
- Federale ondersteuning : labeling
toolkits
card readers
49 © fedict 2006. All rights reserved
50 © fedict 2006. All rights reserved
e-ID Vision
51 © fedict 2006. All rights reserved
52 © fedict 2006. All rights reserved
53 © fedict 2006. All rights reserved
54 © fedict 2006. All rights reserved
55 © fedict 2006. All rights reserved
Toekomst eID Korte termijn : 2 verschillende PIN-codes voor authenticatie en digitale handtekening integratie nieuwe RSA-algoritmes internationale data formattering geavanceerde status check structuur voor het gebruik van de vrije ruimte op de chip
Lange termijn : biometrie ? integratie van de SIS kaart digitaal rijbewijs … 56 © fedict 2006. All rights reserved
eID : the sky is the limit ! driver’s licence healthcare
home banking, online opening of accounts, … student cards, elearning, … …
proof of membership
SSO, …
e-commerce 57
© fedict 2006. All rights reserved
e-ID verwante projecten Kids-ID (< 12 jaar) • niet verplicht • kan dienen als reisdocument • Totaal: 1,3 miljoen kaarten • 300.000 kaarten/jaar • Nood-oproepsysteem
Vreemdelingenkaart
• zowel EU als niet-EU • vervangt witte/gele/blauwe kaart • pilootfase: Ukkel, Antwerpen, Tubeke • Totaal: 1 miljoen kaarten 58 © fedict 2006. All rights reserved
Meer informatie ?
> www.eid.belgium.be © fedict 2006. All rights reserved
59
Q&A
60 © fedict 2006. All rights reserved
Th@nk you ! Rue Marie-Thérèse 1/3 Maria-Theresiastraat 1/3 Bruxelles 1000 Brussel Tel. +32 2 212 96 00 Fax +32 2 212 96 99
[email protected] www.belgium.be/fedict
© fedict 2006. All rights reserved