The Hitchhiker s Guide voor de e-id Peter Strickx E-Idea 2008 13/11/2008 Gent
e-id als bouwsteen 2
eid - Introductie Een nieuwe identiteitskaart met het formaat van een bankkaart en een krachtige chip.
eid Partners 4
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
eid Informatie Visuele identificatie van de eigenaar > Vanuit een visueel oogpunt zal dezelfde informatie zichtbaar zijn als op de huidige identiteitskaart : 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
eid Informatie Elektronische identificatie van de eigenaar > Vanuit een elektronisch oogpunt bevat de chip dezelfde informatie die gedrukt staat op de kaart aangevuld met : 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
eid chip eid, Welcome to the e-world!
Inhoud van de chip PKI Citizen Identity Data Authentication ID ID ADDRESS ADDRESS Digital Signature RRN RRN SIGNATURE SIGNATURE RRN RRN SIGNATURE SIGNATURE RRN, Root CA, CA, RRN = National Register RRN issues a signature on the citizen s picture, identity and address files 9
Technische PKI-specificaties Citizen CA Belgium Root CA Citizen CA > Sleutels en certificaten 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 Auth Sign Crypt 10
Burger certificaten Citizen Qualified certificate (~1000 bytes) Version: 3 (0x2) Serial Number: 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: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 Subject Public Key Info: RSA Public Key: [Modulus (1024 bit): 4b:e5:7e:6e: :86:17, Exponent: 65537 (0x10001)] X509v3 extensions: Certificate Policies: Policy: 2.16.56.1.1.1.2.1 CPS: http://repository.eid.belgium.be Key Usage: critical, Non Repudiation 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: 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] Belgium Root CA Citizen CA Gov CA Citizen Authentication certificate (~980 bytes) Version: 3 (0x2) Serial Number: 10:00:00:00:00:00:0a:5d:9a:91:b1:21:dd:00:a2:7a 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), SN=Dupont, GN=Sophie Nicole/serialNumber=60021404665 Subject Public Key Info: RSA Public Key: [Modulus (1024 bit): cf:ca:7a:77: :5c:c5, Exponent: 65537 (0x10001)] X509v3 extensions: Certificate Policies: Policy: 2.16.56.1.1.1.2.2 CPS: http://repository.eid.belgium.be Key Usage: critical, Digital Signature Authority Key Identifier: [D1:13: 7F:AF:10] CRL Distribution Points: URI:http://crl.eid.belgium.be/eidc0002.crl 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 Signature: [10:ac:04: :e9:04] serialnumber refers to Sophie Dupont s national number. She was born on Valentine s day, 1960 11
Software interfaces Windows Applics (Outlook/IE) MacOS Applics (Safari/Mail) Generic Applics (Windows/Mac//Linux) MS-CSP (Microsoft interface) Tokend (MacOS X interface) PKCS#11 (Certificate & Keys Management) PIN (pin logic library) PC/SC (Generic SC ReaderInterface) Driver (Specific SC Reader Interface) I/O e-id Middleware Native OS 12
eid Functionaliteiten data capture authenticatie elektronische handtekening 13
eid Functionaliteiten DEMO data capture authenticatie elektronische handtekening 14
Data capture eid als middel om op een efficiente manier identiteitsgegevens te transfereren tijdsrovend inefficient foutgevoelig snel efficient exacte copie 15
Data capture 16
Data capture > Applet > SDK Java Library > Java Smart Card I/O API APDU interface 17
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(); } } } 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
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
eid Functionaliteiten data capture authenticatie elektronische handtekening DEMO 21
Authenticatie eid als middel van een sterke elektronische authenticatie physical world on-line world Hi Jan! Hi Peter! 22
Authenticatie Published in The New Yorker July 5, 1993 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
https://mijndossier.rrn.fgov.be 25
https://mijndossier.rrn.fgov.be 26
https://mijndossier.rrn.fgov.be 27
https://mijndossier.rrn.fgov.be 28
Authenticatie (SSL) SSL Web Server Browser Client (1) Validate Server (2) Certificate (3) Challenge to verify Client Identity (6) Decrypt Challenge with Public Key from Authentication Certificate User Identity (4) Encrypt Challenge with eid Private Key (5) Encrypted Challenge with eid Authentication certificate (7) If/When Challenge match access granted 29
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
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
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
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
Authenticatie (Identity Provider) Internet 1) Request eportal User External Firewall 2) Redirect to eportal Login page 5.2) Redirect with SAML Response External Firewall Web Server External Portal 5.1) Redirect with SAML Response (Posting with JavaScript) Application Server 6) Session Creation 3) Login in eportal Authentication page 4.1) Checking Credetials 4.2) Checking Credetials Web Server Federal eportal Application Server LDAP 34
eid Functionaliteiten data capture authenticatie elektronische handtekening 35
Elektronische handtekening eid als middel om elektronische documenten rechtsgeldig te ondertekenen 36
Elektronische handtekening 1. Compose message 3. Generate signature 5. Collect certificate 2. Compute hash 4. Collect signature 6. Send message 1 Alice 6 1 7 Alice 6 hash 3 2 hash 5 4 CRL 3, 4 Alice 2 5 8 Alice Bob Matching triplet? 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
38 Demo Demo
39 Demo Demo
40 Demo 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
eid - Toepassingen The Sky is the Limit
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
Wat kan je al doen met de eid? Locale Overheden - www.bornem.be - www.diepenbeek.be 44
Wat kan je al doen met de eid? Gemeentelijke toepassingen : huwelijk huis kinderen school bibliotheek zwembad container park 45
Wat kan je al doen met de eid? 46
47
Wat kan je al doen met de eid? 48
eid Visie - Uiteindelijk doel : dagelijks gebruik van de eid - Federale ondersteuning : labeling toolkits card readers 49
50
e-id Vision 51
52
53
54
55
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
eid : the sky is the limit! driver s licence healthcare student cards, e- learning, home banking, online opening of accounts, proof of membership SSO, e-commerce 57
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
Meer informatie? > www.eid.belgium.be 59
Q&A 60
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 info@fedict.be www.belgium.be/fedict