Public Key Infrastructure Trusting SSL/TLS Oscar Koeroo
[email protected] @okoeroo
1
Particle physics
Gravitational waves
Astro particle physics
Darkmatter
Who am I?
Security (grid middleware) expert, 2003◦ Meerdere EU projecten ◦ Ontwikkeling frameworks (LCMAPS) ◦ Standaardisatie (OGF) ◦ Security trainer voor grid infra (SSC) ◦ Risk Analysis Team (EGI-SVG)
Oscar Koeroo Nikhef Amsterdam PDP & Grid
3
European Grid Infrastructure
Oscar Koeroo Nikhef Amsterdam PDP & Grid
PS
ISR
SPS
SppS
LEP
1959
1971
1976
1981
1989
LHC ⋅⋅⋅ CLIC 2009
2025?
Lake Geneva
CMS
LHCb
ALICE Oscar Koeroo Nikhef Amsterdam PDP & Grid
ATLAS Large Hadron Collider 27 km circumference 5
December 2009
Mass mystery: Higgs particle
7
Mass mystery: Higgs particle 25 proton-proton interaction/bunch-bunch crossing 40,000,000 bunch-bunch crossings/second 10,000,000 seconds/(accelerator) year
10,000,000,000,000,000 proton-proton interactions
needle in a hay stack
1-100 selected Higgs candidates/year! 7
Astronomy & Astrophysics LOFAR large distributed radio telescope AUGER & ARGO Cosmic Ray Observatories
Oscar Koeroo Nikhef Amsterdam PDP & Grid
8
Astronomy & Astrophysics LOFAR large distributed radio telescope AUGER & ARGO Cosmic Ray Observatories
Oscar Koeroo Nikhef Amsterdam PDP & Grid
8
In silico drug discovery
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Fusion
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Fusion Commercial exploitation of fusion energy still needs to solve several outstanding problems
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Public Key Infrastructure
Oscar Koeroo Nikhef Amsterdam PDP & Grid
12
...but first...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
13
Secure Socket Layer (SSL) & Transport Level Security (TLS) Oscar Koeroo Nikhef Amsterdam PDP & Grid
14
SSL/TLS toepassingen IMAPS, SMPTS, POPS, HTTPS, IRC, FTP+SSL, XMPP, LDAP, EAP-TTLS, CalDAV, WebDAV, OpenVPN, BIND, SSLProxy/stunnel, SSL-offloaders Oscar Koeroo Nikhef Amsterdam PDP & Grid
15
SSL/TLS protocol laag
Oscar Koeroo Nikhef Amsterdam PDP & Grid
16
SSL/TLS handshake
Oscar Koeroo Nikhef Amsterdam PDP & Grid
17
Twitter
Oscar Koeroo Nikhef Amsterdam PDP & Grid
18
Wat is een X.509 certificaat? Oscar Koeroo Nikhef Amsterdam PDP & Grid
19
X.509 certificaat
Een file met publieke informatie ◦ .pem, .crt, .cer, .der ◦ .p7b, .p7c ◦ .p12, .pfx
Public key in certificaat Private key hoort er los bij Ondertekent door een Certificate Authority (CA)
Oscar Koeroo Nikhef Amsterdam PDP & Grid
◦ Tenzij self-signed
20
X.509 certificaat
Base64 encoded (PEM format) ◦ RFC 4648
ASN.1 structuur ◦ RFC 6268
X.509 format ◦ ITU-T Recommendations X.509 (1997) ◦ RFC 5280
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Beschrijft gebruik en onderdelen van certificaten in PKI
21
-----BEGIN CERTIFICATE----MIIE5zCCA8+gAwIBAgIRAJ/ndT3uw7uopkVAflpiuhwwDQYJKoZIhvcNAQEFBQAw RDELMAkGA1UEBhMCTkwxDzANBgNVBAoTBlRFUkVOQTEkMCIGA1UEAxMbVEVSRU5B IGVTY2llbmNlIFBlcnNvbmFsIENBMB4XDTExMDcwNDAwMDAwMFoXDTEyMDgwMjIz NTk1OVowgYkxEzARBgoJkiaJk/IsZAEZFgNvcmcxFjAUBgoJkiaJk/IsZAEZFgZ0 ZXJlbmExEzARBgoJkiaJk/IsZAEZFgN0Y3MxCzAJBgNVBAYTAk5MMQ8wDQYDVQQK EwZOaWtoZWYxJzAlBgNVBAMUHk9zY2FyIEtvZXJvbyBva29lcm9vQG5pa2hlZi5u bDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANiGLAEgYYBtV5eqWb+C at7eKfNEv8t22VXcABfOFZomsaR0n8VVvhRf2ibvdqWiU/jU51stIIYrcyfHPfZD Sk+tk/cN8fk3oAUaioJAroUdgUZQuOQgdS+51VwZD4QTb2B+ckJqnFhWEBE+XcQ+ 8H3Mmy76rt3dhk2Qsl/9UQ1k5U0VRUgNG7AkLyksl7yn461LrDzBWhX3Um5yxwld 8bTN7Ncf38HQ9NjNBz/YcKr3cRnJVOxDuxbWeNF5LB0bXx8Hd5IPJJ9E1p10R/Of o69PzkKcte1iBi+Su0C5ca+k2l1mBgcn4Am8tm19IB/sNzPoef3OFR1y9OSntKhq MxECAwEAAaOCAYwwggGIMB8GA1UdIwQYMBaAFMiJc5mnXVEWU0VUfKPCOXzL16qB MB0GA1UdDgQWBBTqabFPobKkf7osP6pV1vYc5eIe4jAOBgNVHQ8BAf8EBAMCBaAw Oscar Koeroo Nikhef Amsterdam PDP & Grid
DAYDVR0TAQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwJgYD VR0gBB8wHTANBgsrBgEEAbIxAQICHTAMBgoqhkiG90wFAgIFMEcGA1UdHwRAMD4w PKA6oDiGNmh0dHA6Ly9jcmwudGNzLnRlcmVuYS5vcmcvVEVSRU5BZVNjaWVuY2VQ
22
Certificaat printen
openssl x509 -text -in mijn_cert.pem
Oscar Koeroo Nikhef Amsterdam PDP & Grid
23
Certificate: Data: Version: 3 (0x2) Serial Number: 9f:e7:75:3d:ee:c3:bb:a8:ba:1c Signature Algorithm: sha1WithRSAEncryption Issuer: C=NL, O=TERENA, CN=TERENA eScience Personal CA Validity Not Before: Jul
4 00:00:00 2011 GMT
Not After : Aug
2 23:59:59 2012 GMT
Subject: DC=org, DC=terena, DC=tcs, C=NL, O=Nikhef, CN=Oscar Koeroo
[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:d8:86:2c:01:20:61:80:6d:57:97:aa:59:bf:82: [...knip...] 33:11
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Authority Key Identifier: keyid:C8:89:73:99:A7:5D:51:16:53:45:54:7C:A3:C2:39:7C:CB:D7:AA:81
24
X509v3 extensions: X509v3 Key Usage: critical Digital Signature, Key Encipherment X509v3 Basic Constraints: critical CA:FALSE X509v3 Extended Key Usage: E-mail Protection, TLS Web Client Authentication X509v3 Certificate Policies: Policy: 1.3.6.1.4.1.6449.1.2.2.29 Policy: 1.2.840.113612.5.2.2.5 X509v3 CRL Distribution Points: Full Name: URI:http://crl.tcs.terena.org/TERENAeSciencePersonalCA.crl Authority Information Access: CA Issuers - URI:http://crt.tcs.terena.org/TERENAeSciencePersonalCA.crt OCSP - URI:http://ocsp.tcs.terena.org X509v3 Subject Alternative Name: email:
[email protected]
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Signature Algorithm: sha1WithRSAEncryption 31:29:63:59:d7:64:eb:63:83:3f:78:cd:60:72:44:4e:dc:c7: a7:ac:84:4f:38:a2:8b:c3:de:21:c2:df:9a:57:93:19:60:f6: 7f:aa:b9:23:b6:f8:82:08:a1:36:9f:f2:92:24:80:ec:ca:3b:
25
X.509 certificaat
Subject Distinguished Name (DN) ◦ DC=org, DC=terena, DC=tcs, C=NL, O=Nikhef, CN=Oscar Koeroo
[email protected]
Issuer DN ◦ C=NL, O=TERENA, CN=TERENA eScience Personal CA
Serial Number ◦ 9f:e7:75:3d:ee:c3:bb:a8:ba:1c
Validity ◦ Not before / Not After (van/tot) in UTC
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Subject Public Key Info ◦ Subject Public Key Info
Signature ◦ Ondertekend door de CA
26
X.509 certificaat extensions
Key Usage (critical) ◦ Standaard: Digital Signature, Key Encipherment ◦ Niet gebruikt: (dataEncipherment, nonRepudiation) ◦ CA specifiek: cRLSign, keyCertSign*
Basic constraints (critical) ◦ CA*: True/False
Extended Key Usage ◦ E-mail Protection, TLS WWW client, TLS WWW server, Signing of executable code, Binding object hash to time, Signing OCSP responses
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Certificate policies ◦ Policy OID: Certification Practice Statement (CPS)
CRL / OCSP endpoint URL(s)
27
X.509 certificaat extensions
X509v3 Subject Alternative Names ◦ Alternative namen voor certificaat eigenaar ◦ Types: email:
[email protected] DNS: host.example.org IP: 127.0.0.1 of ::1 URI: http://host.example.org/3.1.3.3.7/
Oscar Koeroo Nikhef Amsterdam PDP & Grid
28
Certificaten aanmaken
Oscar Koeroo Nikhef Amsterdam PDP & Grid
29
Oscar Koeroo Nikhef Amsterdam PDP & Grid
30
Maak een certificaat
Maak een publieke en geheime sleutel Certificate Signing Request (CSR) ◦ PKCS#10 (format) ◦ Adverteer informatie voor je certificaat Subject naam Publieke sleutel
◦ Sign de CSR met de private key Onderdeel “proof of possession” Oscar Koeroo Nikhef Amsterdam PDP & Grid
Stuur CSR naar de CA ◦ Inclusief “proof of possession” 31
Data signen / ondertekenen
Oscar Koeroo Nikhef Amsterdam PDP & Grid
32
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Certificate Authority (CA)
Oscar Koeroo Nikhef Amsterdam PDP & Grid
34
Contacting the CA
Registration Authority (RA) ◦ Checked binding request met aanvrager personal ID-card / credit card info DNS record of IP informatie ...andere checks...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
CA ontvangt CSR via RA ◦ Creeert nieuw certificaat
Aanvrager ontvangt certificaat 35
CSR uitlezen
Oscar Koeroo Nikhef Amsterdam PDP & Grid
openssl req -in userrequest.pem -text -noout Certificate Request: Data: Version: 0 (0x0) Subject: O=dutchgrid, O=users, O=nikhef, CN=Oscar Koeroo Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (1024 bit) Modulus: 00:a6:8d:80:dc:6a:8f:9d:a7:55:68:17:55:e8:66: 69:45:b0:a7:4a:a2:f6:c9:a9:3f:a4:c2:e3:8f:95: 8b:36:fc:db:73:11:ae:aa:fb Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha1WithRSAEncryption 4d:6c:5a:72:b5:09:2e:15:2a:cc:8a:cb:63:5a:0e:4b:b2:93: c3:e3:d7:df:48:a5:79:c5:3a:8f:b8:7e:b8:d0:66:c3:43:7e: 94:95
36
Certificaat Signing openssl ca \ -config "${CONF_FILE}" -keyfile ca_private.pem -out newcert.pem -in newcert-req.pem -startdate 120222101000Z \ -enddate
120222115000Z
Oscar Koeroo Nikhef Amsterdam PDP & Grid
37
Hardware Security Module
Oscar Koeroo Nikhef Amsterdam PDP & Grid
38
CA heeft het laatste woord
De CA kan de CSR op alle onderdelen overrulen
Opbouw Subject DN volgens patroon ◦ DC=org, DC=terena, DC=tcs, C=NL, O=Nikhef, CN=Oscar Koeroo
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Bepaald hash algoritme ◦ MD5, SHA1, SHA2, (SHA3)
(Uniek) serie nummer per certificaat
39
Root CA vs. Subordinate CA Oscar Koeroo Nikhef Amsterdam PDP & Grid
40
Type CAs en certificaten Root
CA ◦ Intermedia CA Issuing CA End-Entity Certificate
Oscar Koeroo Nikhef Amsterdam PDP & Grid
41
Hiërarchie Root
CA ◦ Intermedia 1 CA - 1 Issuing CA - 1a Issuing CA - 1b
Oscar Koeroo Nikhef Amsterdam PDP & Grid
◦ Intermedia 2 CA Issuing CA - 2a 42
Sub CAs "/C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services" |
|-> File
: AAACertificateServices.pem
|
|-> Depth
: 0
|
|-> Not Before
: 20040101000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 1
|
#
\___| -> "/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/CN=UTN-USERFirst-Client" |
|-> File
: UTNAAAClient.pem
|
|-> Depth
: 1
|
|-> Not Before
: 20040101000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 165470017604460690276855178217067231472
|
#
\___| -> "/C=NL/O=TERENA/CN=TERENA eScience Personal CA"
Oscar Koeroo Nikhef Amsterdam PDP & Grid
|
|-> File
: TERENAeSciencePersonalCA.pem
|
|-> Depth
: 2
|
|-> Not Before
: 20090518000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 124943880517709597336269004402877481672
43
Sub CAs "/C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services" |
|-> File
: AAACertificateServices.pem
|
|-> Depth
: 0
|
|-> Not Before
: 20040101000000Z
|
|-> Not After
: 20281231235959Z
|-> Serial number
: 1
| |
Subject DN: #
DC=org, DC=terena, DC=tcs, \___| -> "/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/CN=UTN-USERFirst-Client" |
|-> File C=NL,
: UTNAAAClient.pem O=Nikhef, CN=Oscar Koeroo
[email protected]
|
|-> Depth
: 1
|
|-> Not Before
: 20040101000000Z
|
C=NL, O=TERENA, CN=TERENA |-> Not After : 20281231235959Z
|
|-> Serial number
: 165470017604460690276855178217067231472
|
#
Issuer DN:
eScience Personal CA
\___| -> "/C=NL/O=TERENA/CN=TERENA eScience Personal CA"
Oscar Koeroo Nikhef Amsterdam PDP & Grid
|
|-> File
: TERENAeSciencePersonalCA.pem
|
|-> Depth
: 2
|
|-> Not Before
: 20090518000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 124943880517709597336269004402877481672
44
Motivaties voor Sub CAs
Root CAs en Sub CAs in distributies ◦ Linux, Windows, OSX, *BSD, embedded ◦ Firefox, Opera, Software update tools ◦ ... van alles ...
CAs wil je kunnen verwijderen bij een compromise ◦ Uit distributies verwijderen ◦ Ad-hoc distributie van Sub CAs
Oscar Koeroo Nikhef Amsterdam PDP & Grid
45
Ad-hoc Sub-CA distributie
Optie: chain doorgeven ◦ End-Entity Certificate (host certificaat) ◦ De Sub CA certificaten tot aan de root ◦ Nooit de root CA Zowel, dan negeren
-cafile/-cacert en -cadir ◦ Verzenden:
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Chain compleet maken en sturen
◦ Ontvangen: Chain van de andere zijde checken 46
Path Length Constraint
Maximaal aantal CAs die mogen volgen pathlen:0 ◦ alleen EECs mogen volgen
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Subject: C=NL, O=TERENA, CN=TERENA eScience Personal CA [...] X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE, pathlen:0 [...] X509v3 Key Usage: critical Digital Signature, Certificate Sign, CRL Sign
47
Sub CAs "/C=GB/ST=Greater Manchester/L=Salford/O=Comodo CA Limited/CN=AAA Certificate Services" |
|-> File
: AAACertificateServices.pem
|
|-> Depth
: 0
|
|-> Not Before
: 20040101000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 1
|
#
\___| -> "/C=US/ST=UT/L=Salt Lake City/O=The USERTRUST Network/CN=UTN-USERFirst-Client" |
|-> File
: UTNAAAClient.pem
|
|-> Depth
: 1
|
|-> Not Before
: 20040101000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 165470017604460690276855178217067231472
|
#
\___| -> "/C=NL/O=TERENA/CN=TERENA eScience Personal CA"
Oscar Koeroo Nikhef Amsterdam PDP & Grid
|
|-> File
: TERENAeSciencePersonalCA.pem
|
|-> Depth
: 2
|
|-> Not Before
: 20090518000000Z
|
|-> Not After
: 20281231235959Z
|
|-> Serial number
: 124943880517709597336269004402877481672
48
Certificate Revocation Lists & Online Certificate Status Protocol
Oscar Koeroo Nikhef Amsterdam PDP & Grid
49
CRLs & OCSP
Oscar Koeroo Nikhef Amsterdam PDP & Grid
50
CRL
Blacklist ◦ Ondertekend door CA
Lijst met serie nummers ◦ Inclusief reden van revocatie ◦ Vaak “unspecified”
Beperkt houdbaar ◦ Orde: ~week tot ~maand
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Onderdeel van RFC5280 51
CRL wget -O terena.crl \ http://crl.tcs.terena.org/TERENAeSciencePersonalCA.crl
openssl crl -noout -text -in terena.crl
Oscar Koeroo Nikhef Amsterdam PDP & Grid
52
Certificate Revocation List (CRL): Version 2 (0x1) Signature Algorithm: sha1WithRSAEncryption Issuer: /C=BM/O=QuoVadis Limited/OU=Issuing Certification Authority/CN=QuoVadis Grid ICA Last Update: Feb 14 10:00:15 2012 GMT Next Update: Feb 17 21:59:00 2012 GMT CRL extensions: X509v3 CRL Number: 2159 Revoked Certificates: Serial Number: 1239 Revocation Date: Jul 10 13:51:52 2009 GMT CRL entry extensions: Invalidity Date: Jul 10 13:51:00 2009 GMT X509v3 CRL Reason Code: Key Compromise Serial Number: 7C24A950A7B9A2E974D2993BC5EB446F9E371BE1 Revocation Date: Jul
Oscar Koeroo Nikhef Amsterdam PDP & Grid
2 21:07:00 2011 GMT
CRL entry extensions: X509v3 CRL Reason Code: Superseded Signature Algorithm: sha1WithRSAEncryption 62:eb:9c:74:96:01:13:22:47:02:d2:8b:d8:e9:21:2c:df:ef: 49:c2:e4:fa:a3:7d:8a:7a:83:2c:f3:60:fd:ed:7a:6d:47:68: c6:15:fb:af:7b:0f:32:4c:8d:3d:4f:ac:29:c0:c3:61:4c:f7:
53
OCSP Client / Server protocol RFC2560 ◦ Online Certificate Status Protocol RFC5019 ◦ Lightweight & High-Volume Environments OCSP service gehost: ◦ bij/door de CA ◦ andere partij (offloading)
Oscar Koeroo Nikhef Amsterdam PDP & Grid
54
OCSP
OCSP Request ◦ Serie nummer certificaat naar OCSP
Oscar Koeroo Nikhef Amsterdam PDP & Grid
OCSP Responder antwoord (signed): ◦ Good, Revoked, Unknown OCSP Response ◦ unspecified, keyCompromise, cACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold, removeFromCRL 55
OCSP RFC5019 Gebruikt HTTP GET, geen POST Encode het Request met base64 in de URL Geen nonce in request sign je request niet Max houdbaarheid is kort
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Cachebaarheid... 56
OCSP stapling OCSP response ‘vastgeniet’ aan de SSL/ TLS handshake ◦ Signed statement van de CA ◦ Website eigenaar helpt de CA met offloading Geen privacy lek via OCSP Responder logs ◦ Normale OCSP logs werden door Fox-IT in de DigiNotar hack gebruikt
Oscar Koeroo Nikhef Amsterdam PDP & Grid
57
Oscar Koeroo Nikhef Amsterdam PDP & Grid
58
Certificaat controleren
Oscar Koeroo Nikhef Amsterdam PDP & Grid
59
Certificaat controleren Kleine verschillen per protocol HTTP over TLS
◦ RFC 2818 (mei 2000) ◦ Kernpunt: “Controleer twee waardes met elkaar die je verwacht” Certificaat informatie met connection string Oscar Koeroo Nikhef Amsterdam PDP & Grid
60
RFC2818: HTTP over TLS
TCP/IP handshake ◦ Onthoudt de URL
SSL/TLS handshake ◦ Ontvang en verifieer certificaat ◦ Lees certificaat Subject Alt Names Match: DNS, URI of ... met URL
◦ Zonder Subject Alt Names met DNS Match: Common Name uit Subject DN met URL Oscar Koeroo Nikhef Amsterdam PDP & Grid
◦ Exception: Match certificaat elementen met externe informatie 61
Connect naar Twitter
Oscar Koeroo Nikhef Amsterdam PDP & Grid
62
Twitter certificaat
Oscar Koeroo Nikhef Amsterdam PDP & Grid
63
CAs in browsers
Oscar Koeroo Nikhef Amsterdam PDP & Grid
64
OCSP & CRL check
Doe een OCSP Request ◦ Bij een “Revoked”, sluit de verbinding af ◦ Een “Unknown” is een grijs gebied
Download de CRL van de CA ◦ Op de lijst, sluit de verbinding af
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Build-in fingerprint blacklist ◦ In (bijv.) browsers
65
Waar letten we op?
Oscar Koeroo Nikhef Amsterdam PDP & Grid
66
Niet de Common Name
Oscar Koeroo Nikhef Amsterdam PDP & Grid
67
Oscar Koeroo Nikhef Amsterdam PDP & Grid
68
Oscar Koeroo Nikhef Amsterdam PDP & Grid
69
Oscar Koeroo Nikhef Amsterdam PDP & Grid
70
Oscar Koeroo Nikhef Amsterdam PDP & Grid
71
Oscar Koeroo Nikhef Amsterdam PDP & Grid
72
Oscar Koeroo Nikhef Amsterdam PDP & Grid
73
Even herhalen... 4
2 3 6
1 Oscar Koeroo Nikhef Amsterdam PDP & Grid
5
74
SSL/TLS & Certificaten Wat je niet/wel moet doen... Oscar Koeroo Nikhef Amsterdam PDP & Grid
75
File permissions
Een private key file is *Private*
Saab:/etc/tls/ okoeroo$ ls -l total 2664 -rw-r--r-1 okoeroo okoeroo -rw-r--r-1 okoeroo okoeroo
58235 Feb 21 00:56 hostcert.pem 7457 Feb 21 00:56 hostkey.pem
Oscar Koeroo Nikhef Amsterdam PDP & Grid
http://i.imgur.com/dImyJ.gif
76
Private key compromise
Oscar Koeroo Nikhef Amsterdam PDP & Grid
77
File permissions
Een private key file is private
Saab:/etc/tls/ okoeroo$ ls -l total 2664 -rw-r--r-1 root root 58235 Feb 21 00:56 hostcert.pem -r-------1 root root 7457 Feb 21 00:56 hostkey.pem
Oscar Koeroo Nikhef Amsterdam PDP & Grid
NginX, Apache, Lighttpd en Cherokee
◦ starten met ‘root’ ◦ Bind op port 80 en/of 443 ◦ lezen keys ◦ Lower permission naar user: ‘www’ 78
Random Number Generator
Private en Public key generatie ◦ Voorspelbaar antwoord? ◦ Herleidbaar antwoord?
“Het foutje in Debian”
Oscar Koeroo Nikhef Amsterdam PDP & Grid
79
SSLCipherSuite & BEAST
NULL ciphers are void
TLS 1.0 server ◦ RC4-SHA:HIGH:!ADH
Oscar Koeroo Nikhef Amsterdam PDP & Grid
TLS 1.1+ server ◦ ECDHE-RSA-AES128-SHA256:AES128GCM-SHA256:RC4:HIGH:!MD5:!aNULL:! EDH
80
Oscar Koeroo Nikhef Amsterdam PDP & Grid
81
Certificate: [..] Issuer: C=TR, ST=ANKARA, L=ANKARA, O=EGO, OU=EGO BILGI ISLEM, CN=*.EGO.GOV.TR Validity Not Before: Dec
6 08:55:15 2012 GMT
Not After : Jun
7 19:43:27 2013 GMT
Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=*.google.com [..] X509v3 extensions: X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication X509v3 Subject Alternative Name: DNS:*.google.com, DNS:*.android.com, DNS:*.appengine.google.com, DNS:*.cloud.google.com, DNS:*.google-analytics.com, DNS:*.google.ca, DNS:*.google.cl, DNS:*.google.co.in, DNS:*.google.co.jp, DNS:*.google.co.uk, DNS:*.google.com.ar, DNS:*.google.com.au, DNS:*.google.com.br, DNS:*.google.com.co, DNS:*.google.com.mx, DNS:*.google.com.tr, DNS:*.google.com.vn, DNS:*.google.de, DNS:*.google.es, DNS:*.google.fr, DNS:*.google.hu, DNS:*.google.it, DNS:*.google.nl, DNS:*.google.pl, DNS:*.google.pt, DNS:*.googleapis.cn, DNS:*.googlecommerce.com, DNS:*.gstatic.com, DNS:*.urchin.com, DNS:*.url.google.com, DNS:*.youtube-nocookie.com, DNS:*.youtube.com, DNS:*.ytimg.com, DNS:android.com, DNS:g.co, DNS:goo.gl, DNS:google-analytics.com, DNS:google.com, Oscar Koeroo DNS:googlecommerce.com, DNS:urchin.com, DNS:youtu.be, DNS:youtube.com
Nikhef Amsterdam PDP & Grid
X509v3 Basic Constraints: critical CA:FALSE [..]
82
TurkTrust
Certificaat ontdekt voor *.google.com gesigned door een TurkTrust certificaat ◦ Ontdekt met Chrome
Oscar Koeroo Nikhef Amsterdam PDP & Grid
83
Certificate: [..] Issuer: CN=T\xC3\x9CRKTRUST Elektronik Sunucu Sertifikas\xC4\xB1 Hizmetleri, C=TR, O=T\xC3\x9CRKTRUST Bilgi \xC4\xB0leti\xC5\x9Fim ve Bili\xC5\x9Fim G\xC3\xBCvenli\xC4\x9Fi Hizmetleri A.\xC5\x9E. (c) Kas\xC4\xB1m 2005 Validity Not Before: Aug
8 07:07:51 2011 GMT
Not After : Jul
6 07:07:51 2021 GMT
Subject: C=TR, ST=ANKARA, L=ANKARA, O=EGO, OU=EGO BILGI ISLEM, CN=*.EGO.GOV.TR [..] X509v3 Key Usage: critical Certificate Sign, CRL Sign [..] X509v3 Basic Constraints: critical CA:TRUE
Oscar Koeroo Nikhef Amsterdam PDP & Grid
84
TurkTrust
24 december 2012 ◦ Certificaat ontdekt voor *.google.com ◦ Onderdeel van een MitM-attack
Heeft een ‘host’ certificate uitgegeven aan een klant met CA:TRUE
Oscar Koeroo Nikhef Amsterdam PDP & Grid
85
TurkTrust
In augustus 2011 ◦ ETSI TS 102 042 audit
Juni 2011 ◦ Test profilen aangemaakt vanuit productie ◦ Extra CA profilen toegevoegd
Oscar Koeroo Nikhef Amsterdam PDP & Grid
8 augustus 2011 ◦ 2x host cert gesigned met CA:True
86
TurkTrust
10 augustus 2011 ◦ Fout met profielen ontdekt ◦ Update in oktober ◦ Re-audit in november
1 van de 2 certificaten revoked ◦ Op aanvraag van de klant
Oscar Koeroo Nikhef Amsterdam PDP & Grid
87
TurkTrust
Voor 6 december ◦ “CA:True”-host gebruikt in een exchange service
Op 6 december ◦ Certificaat + key geëxporteerd naar een Checkpoint firewall
Oscar Koeroo Nikhef Amsterdam PDP & Grid
88
TurkTrust
Checkpoint firewall onbedoeld(?) in “HTTPS inspection mode” ◦ aka MitM-attack as a feature
Oscar Koeroo Nikhef Amsterdam PDP & Grid
http://www.youtube.com/watch?v=1lJBBRsc03A
89
TurkTrust
Op 26 december ◦ Google meld het probleem bij TurkTrust en Mozilla
Mozilla foundation wil een extra audit voor Firefox 18.x uitkomt
Oscar Koeroo Nikhef Amsterdam PDP & Grid
90
TurkTrust...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
http://i.imgur.com/wAuwF.gif
91
Nokia Asha & Lumia series
Oscar Koeroo Nikhef Amsterdam PDP & Grid
92
Nokia Asha & Lumia series
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Picture from ISC SANS
93
Oscar Koeroo Nikhef Amsterdam PDP & Grid
http://www.cs.utexas.edu/~shmat/shmat_ccs12.pdf
94
Analyses: libcurl Reading the SSL code Reading libcurl code Is it RFC2818 compliant?
◦ Do libcurl + SSL code
Oscar Koeroo Nikhef Amsterdam PDP & Grid
95
Analyses: libcurl axTLS GnuTLS OpenSSL NSS PolarSSL CyaSSL QsoSSL Windows schannel Apple’s SSL - iOS/10.8
Oscar Koeroo Nikhef Amsterdam PDP & Grid
96
Analyses: libcurl axTLS - No check GnuTLS - Perfect OpenSSL - Perfect, but different NSS - Perfect PolarSSL - Bad CyaSSL - Bad QsoSSL - Pretty bad Windows schannel - good Apple’s SSL - iOS/10.8 - good
Oscar Koeroo Nikhef Amsterdam PDP & Grid
97
Future analyses
OCSP ◦ CRL fallback? ◦ ...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
802.1x ◦ There is no RFC2818 for this ◦ Missing GUI features ◦ ...
98
Case:
Oscar Koeroo Nikhef Amsterdam PDP & Grid
99
Somewhere in Iran...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
100
Screenshots from Iran...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
101
Oscar Koeroo Nikhef Amsterdam PDP & Grid
102
Screenshots from Iran...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
103
DigiNotar CAs
DigiNotar Cyber CA DigiNotar Extended Validation CA DigiNotar Public CA 2025 DigiNotar Public CA - G2 Koninklijke Notariele Beroepsorganisatie CA Stichting TTP Infos CA DigiNotar PKIoverheid CA overheid & bedrijven
Oscar Koeroo Nikhef Amsterdam PDP & Grid
104
DigiNotar was een CA
Commerciele CA ◦ Een root CA in alle browsers
Private CA ◦ Voor klanten
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Sub CA van de “Staat der Nederlanden Root CA - G2” ◦ DigiD ◦ Belastingdienst ◦ ...
105
Operation Black Tulip
28 augustus 2011 ◦ Ontdekking op een email lijst
29 augustus ◦ *.google.com door DigiNotar B.V.
30 augustus ◦ Fox-IT forensisch onderzoek ◦ Browsers trekken vertrouwen in
Oscar Koeroo Nikhef Amsterdam PDP & Grid
106
30 augustus De Firefox patch
Oscar Koeroo Nikhef Amsterdam PDP & Grid
107
31 augustus Firefox onder druk...
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Effectief een uitzondering voor iedere Sub CA onder de “Staat der Nederlanden Root CA” 108
WebWereld
Oscar Koeroo Nikhef Amsterdam PDP & Grid
109
Geen pathlen constraint
Staat der Nederlanden Root CA ◦ Staat der Nederlanden Overheid CA DigiNotar PKIoverheid CA overheid & bedrijven My Personal Totally Legit Very Nice SubCA Offline Generated Completely Legit Certificate
Oscar Koeroo Nikhef Amsterdam PDP & Grid
110
5 september Publicatie rapport Fox-IT
Rogue certificate creatie ontdekt ◦ ◦ ◦ ◦
19 20 27 29
juli juli juli juli
-
128 certificaten 129 certificaten (21 juli revoked) 75 certificaten revoked *.google.com werd gemaakt
28 juli - OCSP responder laat Iraanse gebruikers zien
Oscar Koeroo Nikhef Amsterdam PDP & Grid
111
DigiNotar OCSP logs
Oscar Koeroo Nikhef Amsterdam PDP & Grid
112
Internet via een proxy
Oscar Koeroo Nikhef Amsterdam PDP & Grid
SSL termineren is een feature ◦ Monitoring tegen bedrijfsgeheimen 113
Setup bij DigiNotar
CAs in een kluis (beton) ◦ Per CA een apart afgesloten rack (staal) ◦ Een rack bevat, o.a. HSM Windows machine
Oscar Koeroo Nikhef Amsterdam PDP & Grid
114
Pr0d@dm1n
Operationele/procedurele air-gap
Monitoring/management netwerk ◦ 1 Windows domain ◦ 1 centrale Windows domain controller ◦ Alle CA terminals verbonden
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Windows Domain Controller ◦ Gehacked/password gebruteforced
115
Wat deed de hacker? HSM-module API leren ◦ XUDA api Certificaten gegenereerd Certificaten aan Iraanse overheid kado gedaan
Oscar Koeroo Nikhef Amsterdam PDP & Grid
◦ ◦ ◦ ◦ ◦
Google Mozilla add-ons login.yahoo.com ... +500
116
Conclusie rapport DigiNotar Cyber CA DigiNotar Extended Validation CA DigiNotar Public CA - G2 DigiNotar Public CA 2025 Koninklijke Notariele Beroepsorganisatie CA Stichting TTP Infos CA
Oscar Koeroo Nikhef Amsterdam PDP & Grid
117
Conclusie rapport
DigiNotar PKIoverheid CA Overheid en Bedrijven
Ministerie van Justitie JEP1 CA
Nederlandse Orde van Advocaten
Orde van Advocaten SubCA Administrative CA
DigiNotar Qualified CA
DigiNotar Root CA
DigiNotar Root CA Administrative Orde van Advocaten SubCA CA System CA DigiNotar Root CA G2 Renault Nissan Nederland CA DigiNotar Root CA System CA SNGCA
DigiNotar Services 1024 CA
TenneT CA 2011
DigiNotar Services CA
EASEE - gas CA
TRIAL DigiNotar PKIoverheid Organisatie TEST CA - G2
TU Delft CA
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Algemene Relatie Services System Hypotrust CA CA - CCVCA MinIenM Autonome Apparaten CA DigiNotar PKIoverheid CA - G2 Organisatie - G2 MinIenM Organisatie CA - G2
118
Black Tulip - update http://www.rijksoverheid.nl/bestanden/documenten-en-publicaties/rapporten/2012/08/13/black-tulip-update/blacktulip-update.pdf
http://tinyurl.com/ blacktulipupdate-pdf Oscar Koeroo Nikhef Amsterdam PDP & Grid
119
Time * Motivation = “DO NOT underestimate the power of the dark side...” Oscar Koeroo Nikhef Amsterdam PDP & Grid
120
Voor het Practicum...
DIY MitM-attack en meer! Oscar Koeroo Nikhef Amsterdam PDP & Grid
121
?
@okoeroo
[email protected]
Oscar Koeroo Nikhef Amsterdam PDP & Grid
Oscar Koeroo, 2012