SlideShare une entreprise Scribd logo
1  sur  92
Autour de SSL/TLS La sécurité par le petit s de https
Les acteurs... ,[object Object],[object Object],[object Object],[object Object],[object Object]
Pourquoi TCP/IP seul n'est pas suffisant ?
Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Pourquoi HTTP seul n'est pas suffisant ? HTTP TCP/IP
Et HTTPS fait quoi de mieux ? ,[object Object],[object Object],[object Object]
Comment s'assurer que le site web est bien celui de ma banque ? ,[object Object],bobbanque.fr
Comment s'assurer que le site web est bien celui de ma banque ? ,[object Object],https://bobbanque.fr
Comment s'assurer que le site web est bien celui de ma banque ? ,[object Object],bobbanque.fr
Confidentialité / Chiffrement Chiffre Déchiffre Encipher/Encrypt Decipher/Decrypt PlainText CipherText En Clair Chiffré En Clair PlainText
Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 TCP/IP HTTPS TLS
Pourquoi tous les sites ne sont pas en HTTPS ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Le maillon faible
TLS : Le protocole n'est pas secret
C'est très simple... TLS - Réutilsation -
Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished
Comment savoir si cela se passe vraiment ainsi ?
Analyser le protocole ,[object Object],[object Object],[object Object]
Wireshark ,[object Object]
 
Connection...  ,[object Object],Avant Après Emetteur Recepteur
Détail de paquet Ipv6
ClientHello ClientHello CA CA CA NULL
ClientHello CA CA CA
Hasard ,[object Object],[object Object],[object Object],[object Object],[object Object]
CipherSuite ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CipherSuite
 
ServerHello ServerHello ClientHello CA CA CA NULL
 
Certificate Certificate CA CA CA CA ClientHello ServerHello
Les Certificats X509 CA
-----BEGIN CERTIFICATE----- MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L 05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0 ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5 u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6 z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw== -----END CERTIFICATE----- gmail.cert Fichier certificat au format PEM PEM Base64 Sauver un fichier certificat
00000000  30 82 03 21 30 82 02 8a  a0 03 02 01 02 02 10 2f  |0..!0........../| 00000010  df bc f6 ae 91 52 6d 0f  9a a3 df 40 34 3e 9a 30  |.....Rm....@4>.0| 00000020  0d 06 09 2a 86 48 86 f7  0d 01 01 05 05 00 30 4c  |...*.H........0L| 00000030  31 0b 30 09 06 03 55 04  06 13 02 5a 41 31 25 30  |1.0...U....ZA1%0| 00000040  23 06 03 55 04 0a 13 1c  54 68 61 77 74 65 20 43  |#..U....Thawte C| 00000050  6f 6e 73 75 6c 74 69 6e  67 20 28 50 74 79 29 20  |onsulting (Pty) | 00000060  4c 74 64 2e 31 16 30 14  06 03 55 04 03 13 0d 54  |Ltd.1.0...U....T| 00000070  68 61 77 74 65 20 53 47  43 20 43 41 30 1e 17 0d  |hawte SGC CA0...| 00000080  30 39 31 32 31 38 30 30  30 30 30 30 5a 17 0d 31  |091218000000Z..1| 00000090  31 31 32 31 38 32 33 35  39 35 39 5a 30 68 31 0b  |11218235959Z0h1.| 000000a0  30 09 06 03 55 04 06 13  02 55 53 31 13 30 11 06  |0...U....US1.0..| 000000b0  03 55 04 08 13 0a 43 61  6c 69 66 6f 72 6e 69 61  |.U....California| 000000c0  31 16 30 14 06 03 55 04  07 14 0d 4d 6f 75 6e 74  |1.0...U....Mount| 000000d0  61 69 6e 20 56 69 65 77  31 13 30 11 06 03 55 04  |ain View1.0...U.| 000000e0  0a 14 0a 47 6f 6f 67 6c  65 20 49 6e 63 31 17 30  |...Google Inc1.0| 000000f0  15 06 03 55 04 03 14 0e  77 77 77 2e 67 6f 6f 67  |...U....www.goog| 00000100  6c 65 2e 63 6f 6d 30 81  9f 30 0d 06 09 2a 86 48  |le.com0..0...*.H| 00000110  86 f7 0d 01 01 01 05 00  03 81 8d 00 30 81 89 02  |............0...| 00000120  81 81 00 e8 f9 86 0f 90  fa 86 d7 df bd 72 26 b6  |.............r&.| 00000130  d7 44 02 83 78 73 d9 02  28 ef 88 45 39 fb 10 e8  |.D..xs..(..E9...| 00000140  7c ae a9 38 d5 75 c6 38  eb 0a 15 07 9b 83 e8 cd  ||..8.u.8........| 00000150  82 d5 e3 f7 15 68 45 a1  0b 19 85 bc e2 ef 84 e7  |.....hE.........| 00000160  dd f2 d7 b8 98 c2 a1 bb  b5 c1 51 df d4 83 02 a7  |..........Q.....| 00000170  3d 06 42 5b e1 22 c3 de  6b 85 5f 1c d6 da 4e 8b  |=.B[.&quot;..k._...N.| 00000180  d3 9b ee b9 67 22 2a 1d  11 ef 79 a4 b3 37 8a f4  |....g&quot;*...y..7..| 00000190  fe 18 fd bc f9 46 23 50  97 f3 ac fc 24 46 2b 5c  |.....F#P....$F+ 000001a0  3b b7 45 02 03 01 00 01  a3 81 e7 30 81 e4 30 0c  |;.E........0..0.| 000001b0  06 03 55 1d 13 01 01 ff  04 02 30 00 30 36 06 03  |..U.......0.06..| 000001c0  55 1d 1f 04 2f 30 2d 30  2b a0 29 a0 27 86 25 68  |U.../0-0+.).'.%h| 000001d0  74 74 70 3a 2f 2f 63 72  6c 2e 74 68 61 77 74 65  |ttp://crl.thawte| 000001e0  2e 63 6f 6d 2f 54 68 61  77 74 65 53 47 43 43 41  |.com/ThawteSGCCA| 000001f0  2e 63 72 6c 30 28 06 03  55 1d 25 04 21 30 1f 06  |.crl0(..U.%.!0..| 00000200  08 2b 06 01 05 05 07 03  01 06 08 2b 06 01 05 05  |.+.........+....| 00000210  07 03 02 06 09 60 86 48  01 86 f8 42 04 01 30 72  |.....`.H...B..0r| 00000220  06 08 2b 06 01 05 05 07  01 01 04 66 30 64 30 22  |..+........f0d0&quot;| 00000230  06 08 2b 06 01 05 05 07  30 01 86 16 68 74 74 70  |..+.....0...http| 00000240  3a 2f 2f 6f 63 73 70 2e  74 68 61 77 74 65 2e 63  |://ocsp.thawte.c| 00000250  6f 6d 30 3e 06 08 2b 06  01 05 05 07 30 02 86 32  |om0>..+.....0..2| 00000260  68 74 74 70 3a 2f 2f 77  77 77 2e 74 68 61 77 74  |http://www.thawt| 00000270  65 2e 63 6f 6d 2f 72 65  70 6f 73 69 74 6f 72 79  |e.com/repository| 00000280  2f 54 68 61 77 74 65 5f  53 47 43 5f 43 41 2e 63  |/Thawte_SGC_CA.c| 00000290  72 74 30 0d 06 09 2a 86  48 86 f7 0d 01 01 05 05  |rt0...*.H.......| 000002a0  00 03 81 81 00 9f 43 cf  5b c4 50 29 b1 bf e2 b0  |......C.[.P)....| 000002b0  9a ff 6a 21 1d 2d 12 c3  2c 4e 5a f9 12 e2 ce b9  |..j!.-..,NZ.....| 000002c0  82 52 2d e7 1d 7e 1a 76  96 90 79 d1 24 52 38 79  |.R-..~.v..y.$R8y| 000002d0  bb 63 8d 80 97 7c 23 20  0f 91 4d 16 b9 ea ee f4  |.c...|# ..M.....| 000002e0  6d 89 ca c6 bd cc 24 68  d6 43 5b ce 2a 58 bf 3c  |m.....$h.C[.*X.<| 000002f0  18 e0 e0 3c 62 cf 96 02  2d 28 47 50 34 e1 27 ba  |...<b...-(GP4.'.| 00000300  cf 99 d1 50 ff 29 25 c0  36 36 15 33 52 70 be 31  |...P.)%.66.3Rp.1| 00000310  8f 9f e8 7f e7 11 0c 8d  bf 84 a0 42 1a 80 89 b0  |...........B....| 00000320  31 58 41 07 5f  |1XA._| 00000325 openssl base64 -d -in gmail.cert | hexdump -C -----BEGIN CERTIFICATE----- MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L 05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0 ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5 u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6 z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw== -----END CERTIFICATE----- ,[object Object],[object Object],[object Object],Base64
Openssl ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
openssl x509 -text -in gmail.cert  Data: Version: 3 (0x2) Serial Number: 2f:df:bc:f6:ae:91:52:6d:0f:9a:a3:df:40:34:3e:9a Signature Algorithm: sha1WithRSAEncryption Issuer: C=ZA, O=Thawte Consulting (Pty) Ltd., CN=Thawte SGC CA Validity Not Before: Dec 18 00:00:00 2009 GMT Not After : Dec 18 23:59:59 2011 GMT Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=www.google.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 CRL Distribution Points:  URI: http://crl.thawte.com/ThawteSGCCA.crl X509v3 Extended Key Usage:  TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto Authority Information Access:  OCSP - URI:http://ocsp.thawte.com CA Issuers - URI:http://www.thawte.com/repository/Thawte_SGC_CA.crt Signature Algorithm: sha1WithRSAEncryption 9f:...07:5f Certificat Texte
Autorité de Certification wget  http://www.thawte.com/repository/Thawte_SGC_CA.crt openssl x509 -inform der -in Thawte_SGC_CA.crt -out Thawte_SGC_CA.crt.pem  openssl verify -CAfile Thawte_SGC_CA.crt.pem -purpose any gmail.cert gmail.cert: OK CA CA
Chaine de confiance *.google-analytics.com Google Internet Authority Equifax Secure Certificate Authority Racine CA intermédiaire CA:TRUE CA:TRUE Serveur Eq Eq GIA Eq. g-a GIA
 
CA CA CA @dns
Echange de clés ... Pas si simple
Matériel cryptographique
Fonctions de Hachage ,[object Object],[object Object],[object Object]
One-Way function simple Extrêmement difficile / long Irreversible
Openssl sha1 -c <who.jpeg Openssl sha1 -c <whodot.jpeg fa:45:5c:49:ac:27:4f:b8:ee:d1:8d:68:b5:4e:d9:94:34:8f:a0:4c 12:d1:ce:26:5e:50:d7:e9:e5:2d:72:95:b9:0b:ac:25:42:93:ee:9c Dispersif
Crypto à clés asymétriques ,[object Object],[object Object],[object Object],[object Object],[object Object],Clé publique Clé privée
signature Chiffrement, échange de clefs Secret Utilisations Texte à signer Texte à signer Secret
openssl genrsa Generating RSA private key, 512 bit long modulus e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBAMBW/JaWqIoqAzouvlsqL4mlt4rc4JfOMfvs+8wUG0CljhFLIRzC 9AyWnEN2dKfNvcO23KRkC/pKOl1ZERDnP80CAwEAAQJBAL5WltoTN7CayNzQGzKu eaK26v6xfFTeCZrsN3YKw7lhI59625lmordLyBVPzfzx0iNWcrTfgm89cJLxbxiG KAECIQDw3K4OW/mDOa4nR3ia8CQ5jcTBPyLzrV7uRvVN/CEiAQIhAMxtnTkSdnoC aVNqmjRX/jZu4v4lH0cIfGE3NhB6tQXNAiAsvfGfPTqWQ8q0BTTEI0O3ZTxdYWsO tO/jd07uE53cAQIhAI+KNAg754a6JLyWsJoqYuxTpf0vkaut0K/uNX8SugLNAiBs ef1pKItH+8rB/FgY9Bz7om344BFVFyOX/vjCl/NQLg== -----END RSA PRIVATE KEY----- openssl rsa -inform pem -text -in rsa.key   Private-Key: (512 bit) modulus: 00:de:5c:69:38:ff:68:9d:44:57:8e:28:f9:b6:b9: 6c:89:5f:f4:47:fb:02:c2:7d:f0:49:c0:47:bb:13: 5a:1a:e9:a1:fc:e0:ce:11:e9:b7:49:29:0f:69:33: 36:96:78:c5:d5:b7:9d:82:da:48:c8:90:c0:2a:6f: c1:21:f5:04:99 publicExponent:  65537 (0x10001) privateExponent: 5e:85:05:ad:56:d4:4f:55:87:aa:44:3c:b1:b1:6c: 33:90:f8:33:c8:bd:49:93:63:1a:d6:83:27:40:78: a2:cb:36:21:6a:74:1a:d7:d6:e7:0a:23:5f:fb:29: 24:32:bd:d8:fb:d1:5f:6a:af:24:be:53:c1:4c:5a: 9b:7a:39:21 prime1: 00:fa:2d:47:3e:86:32:a3:e5:24:0d:ec:3f:bb:e4: 3b:91:7c:40:57:63:6d:96:6b:3c:98:33:27:b7:49: 70:04:25 prime2: 00:e3:89:63:12:56:2d:87:bd:54:e0:75:c7:44:85: 65:45:26:7c:61:46:84:1b:38:b9:08:8f:4f:93:1e: 97:3a:65 exponent1: 7f:f6:02:d7:cf:2a:3d:bc:69:49:99:ca:2b:9f:9c: 7c:58:92:4c:60:75:e0:17:2f:a2:25:a0:2d:d6:a9: 2d:e5 exponent2: 00:d4:be:34:1f:84:eb:f5:2a:95:1d:79:81:e3:13: 46:68:ad:5f:46:24:84:88:5f:34:c2:48:1c:82:d5: eb:57:f1 coefficient: 00:a4:f0:22:13:4a:37:d6:c1:16:d2:8c:36:89:8b: 6e:76:df:cc:78:4a:4d:fd:c1:e6:9f:4b:72:f3:95: 45:f8:33 openssl rsa -inform pem -in rsa.key -pubout  writing RSA key -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAN5caTj/aJ1EV44o+ba5bIlf9Ef7AsJ9 8EnAR7sTWhrpofzgzhHpt0kpD2kzNpZ4xdW3nYLaSMiQwCpvwSH1BJkCAwEAAQ== -----END PUBLIC KEY----- openssl rsa -text -inform pem -in rsa.pub -pubin   Modulus (512 bit): 00:de:5c:69:38:ff:68:9d:44:57:8e:28:f9:b6:b9: 6c:89:5f:f4:47:fb:02:c2:7d:f0:49:c0:47:bb:13: 5a:1a:e9:a1:fc:e0:ce:11:e9:b7:49:29:0f:69:33: 36:96:78:c5:d5:b7:9d:82:da:48:c8:90:c0:2a:6f: c1:21:f5:04:99 Exponent : 65537 (0x10001) e,n d,n ( p,q,e ) RSA
DSA ,[object Object],[object Object]
Diffie Hellman... ,[object Object],[object Object],[object Object]
Handshake CA ClientKeyExchange ServerHelloDone Certificate ClientHello ServerHello CA
 
Pre master secret CA ClientKeyExchange ClientKeyExchange CA @dns NULL
Pre master secret ClientKeyExchange CA CA @dns
Pre-master Secret Master Secret master_secret = PRF(pre_master_secret, &quot;master secret&quot;, ClientHello.random + ServerHello.random) [0..47]; (*) différent pour SSLv3 qui n'utilise pas un HMAC
Master Secret key_block = PRF(SecurityParameters.master_secret, &quot;key expansion&quot;, SecurityParameters.server_random + SecurityParameters.client_random); Key Block
PRF ,[object Object],[object Object],[object Object],TLS < 1.2 PRF P_ MD5  xor P_ SHA1 TLS = 1.2 PRF P_SHA256 PRF : Pseudo-Random Function
P_hash graine graine graine graine (...) (...) A(0) A(1) A(2) A(1) A(2) A(3) A(3) secret Hash :  MD5, SHA1, SHA256... HMAC (hash)
HMAC http://tools.ietf.org/html/rfc2104 texte H(K XOR opad, H(K XOR ipad, text)) Clé K Hash :  MD5, SHA1, SHA256... 0x36.. 0x5c..
 
Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone
Finished Finished @dns
= ? :  @dns
Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished
La réalité trahit la théorie ?
Session Ticket Extension ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished NewSessionTicket
Durée de vie ticket NewSessionTicket Ticket  (opaque) NewSessionTicket
 
= ? :  Finished Finished @dns
Protection Replay-Attack  ,[object Object],[object Object],[object Object],[object Object]
Hanshake Finished ! ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished NewSessionTicket Ticket  (opaque)
 
Crypto Symétrique ,[object Object],[object Object],[object Object]
Flot ou Bloc
Electronic Codebook ECB AES 128  ECB AES 128  ECB Openssl aes-128-ecb -e -in who.bmp -out whoaes.bmp -k password
Cipher Block Chaining CBC AES 128  CBC Openssl aes-128-cbc -e -in who.bmp -out whoaes.bmp -k password
Session struct { ProtocolVersion protocol_version; CipherSuite cipher_suite; CompressionMethod compression_method; opaque master_secret[48]; ClientIdentity client_identity; uint32 timestamp; } StatePlaintext; enum { anonymous(0), certificate_based(1), psk(2) } ClientAuthenticationType; struct { ClientAuthenticationType client_authentication_type; select (ClientAuthenticationType) { case anonymous: struct {}; case certificate_based: ASN.1Cert certificate_list<0..2^24-1>; case psk: opaque psk_identity<0..2^16-1>;  /* from [RFC4279] */ }; } ClientIdentity; connection connection Session 1 Session 2 Réutilisation Renégotiation Reprise connection
Réutilisation ou reprise de session ClientHello ChangeCipherSpec Finished ServerHello ChangeCipherSpec Finished
 
Identification Client ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished CertificateRequest Certificate CertificateVerify
Autres Handshakes ,[object Object],[object Object],[object Object],[object Object]
Ce qu'il faut retenir ,[object Object],[object Object],[object Object],[object Object]
Implémentations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Utilisations ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Le S de ... LDAPS SMTP over TLS  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],&quot; SNMP  over  DTLS  over  UDP &quot; and &quot; SNMP  over  TLS  over  TCP &quot; ( RFC5953 )
 
Taille des clefs ,[object Object],[object Object],[object Object],[object Object]
A chaque couche ses protocoles SSH TLS IPSec WEP WPA 802.1x Cryptographie Quantique PGP/GnuPG S/Mime Application  openssl TCP – UDP -SCTP Session Transport Réseau Liaison Physique Présentation Application
Ipsec vs SSL/TLS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
SSH vs SSL/TLS ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
PGP/GnuPG != S/Mime ,[object Object],[object Object],[object Object],[object Object]
Références Bibliographiques ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bruce Schneier ,[object Object],[object Object]

Contenu connexe

Tendances

Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSFaissoilMkavavo
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisationAmir Souissi
 
Gestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiGestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiAzzeddine Elouadi
 
Alphorm.com Formation CEHV9 I
Alphorm.com Formation CEHV9 IAlphorm.com Formation CEHV9 I
Alphorm.com Formation CEHV9 IAlphorm
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testahmed oumezzine
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Yasmine Lachheb
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...Mohamed Amine Mahmoudi
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'informationFrust Rados
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
mémoire de projet de fin d'études
mémoire de projet de fin d'études mémoire de projet de fin d'études
mémoire de projet de fin d'études MortadhaBouallagui
 
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIR
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIRRapport du Projet de Fin d'année Génie informatique ENSA AGADIR
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIRAHMEDAKHACHKHOUCH
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Ilyas CHAOUA
 
Projet fin d’étude Conception et Mise en place d'un système fleet-tracking
Projet fin d’étude Conception et Mise en place d'un système fleet-trackingProjet fin d’étude Conception et Mise en place d'un système fleet-tracking
Projet fin d’étude Conception et Mise en place d'un système fleet-trackingBorhane Eddine Boulhila
 

Tendances (20)

Rapport tp openssl
Rapport  tp  opensslRapport  tp  openssl
Rapport tp openssl
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Conception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTSConception et Réalisation Application Web Laravel PFE BTS
Conception et Réalisation Application Web Laravel PFE BTS
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
diagramme des cas d'utilisation
diagramme des cas d'utilisationdiagramme des cas d'utilisation
diagramme des cas d'utilisation
 
Gestion des Chercheurs d’Emploi
Gestion des Chercheurs d’EmploiGestion des Chercheurs d’Emploi
Gestion des Chercheurs d’Emploi
 
Alphorm.com Formation CEHV9 I
Alphorm.com Formation CEHV9 IAlphorm.com Formation CEHV9 I
Alphorm.com Formation CEHV9 I
 
réaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de testréaliser une plateforme d’automatisation et de génération des rapports de test
réaliser une plateforme d’automatisation et de génération des rapports de test
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
 
METHODE OCTAVE
METHODE OCTAVE METHODE OCTAVE
METHODE OCTAVE
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...Rapport (Mémoire de Master) de stage PFE pour  l’obtention du Diplôme Nationa...
Rapport (Mémoire de Master) de stage PFE pour l’obtention du Diplôme Nationa...
 
QCM système d'information
QCM système d'informationQCM système d'information
QCM système d'information
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
mémoire de projet de fin d'études
mémoire de projet de fin d'études mémoire de projet de fin d'études
mémoire de projet de fin d'études
 
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIR
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIRRapport du Projet de Fin d'année Génie informatique ENSA AGADIR
Rapport du Projet de Fin d'année Génie informatique ENSA AGADIR
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Projet fin d’étude Conception et Mise en place d'un système fleet-tracking
Projet fin d’étude Conception et Mise en place d'un système fleet-trackingProjet fin d’étude Conception et Mise en place d'un système fleet-tracking
Projet fin d’étude Conception et Mise en place d'un système fleet-tracking
 

Dernier

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEgharebikram98
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 

Dernier (20)

Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIEBONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
BONNES PRATIQUES DE FABRICATION RESUME SIMPLIFIE
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 

SSL/TLS Présentation en Français.

  • 1. Autour de SSL/TLS La sécurité par le petit s de https
  • 2.
  • 3. Pourquoi TCP/IP seul n'est pas suffisant ?
  • 4. Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 Pourquoi HTTP seul n'est pas suffisant ? HTTP TCP/IP
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Confidentialité / Chiffrement Chiffre Déchiffre Encipher/Encrypt Decipher/Decrypt PlainText CipherText En Clair Chiffré En Clair PlainText
  • 10. Mon identifiant: 6719719 Mon code : 6789 Mon identifiant: 6719719 Mon code : 6789 TCP/IP HTTPS TLS
  • 11.
  • 13. TLS : Le protocole n'est pas secret
  • 14. C'est très simple... TLS - Réutilsation -
  • 15. Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished
  • 16. Comment savoir si cela se passe vraiment ainsi ?
  • 17.
  • 18.
  • 19.  
  • 20.
  • 24.
  • 25.
  • 27.  
  • 29.  
  • 30. Certificate Certificate CA CA CA CA ClientHello ServerHello
  • 32. -----BEGIN CERTIFICATE----- MIIDITCCAoqgAwIBAgIQL9+89q6RUm0PmqPfQDQ+mjANBgkqhkiG9w0BAQUFADBM MQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkg THRkLjEWMBQGA1UEAxMNVGhhd3RlIFNHQyBDQTAeFw0wOTEyMTgwMDAwMDBaFw0x MTEyMTgyMzU5NTlaMGgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlh MRYwFAYDVQQHFA1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKFApHb29nbGUgSW5jMRcw FQYDVQQDFA53d3cuZ29vZ2xlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC gYEA6PmGD5D6htffvXImttdEAoN4c9kCKO+IRTn7EOh8rqk41XXGOOsKFQebg+jN gtXj9xVoRaELGYW84u+E593y17iYwqG7tcFR39SDAqc9BkJb4SLD3muFXxzW2k6L 05vuuWciKh0R73mkszeK9P4Y/bz5RiNQl/Os/CRGK1w7t0UCAwEAAaOB5zCB5DAM BgNVHRMBAf8EAjAAMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwudGhhd3Rl LmNvbS9UaGF3dGVTR0NDQS5jcmwwKAYDVR0lBCEwHwYIKwYBBQUHAwEGCCsGAQUF BwMCBglghkgBhvhCBAEwcgYIKwYBBQUHAQEEZjBkMCIGCCsGAQUFBzABhhZodHRw Oi8vb2NzcC50aGF3dGUuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vd3d3LnRoYXd0 ZS5jb20vcmVwb3NpdG9yeS9UaGF3dGVfU0dDX0NBLmNydDANBgkqhkiG9w0BAQUF AAOBgQCfQ89bxFApsb/isJr/aiEdLRLDLE5a+RLizrmCUi3nHX4adpaQedEkUjh5 u2ONgJd8IyAPkU0Wueru9G2Jysa9zCRo1kNbzipYvzwY4OA8Ys+WAi0oR1A04Se6 z5nRUP8pJcA2NhUzUnC+MY+f6H/nEQyNv4SgQhqAibAxWEEHXw== -----END CERTIFICATE----- gmail.cert Fichier certificat au format PEM PEM Base64 Sauver un fichier certificat
  • 33.
  • 34.
  • 35. openssl x509 -text -in gmail.cert Data: Version: 3 (0x2) Serial Number: 2f:df:bc:f6:ae:91:52:6d:0f:9a:a3:df:40:34:3e:9a Signature Algorithm: sha1WithRSAEncryption Issuer: C=ZA, O=Thawte Consulting (Pty) Ltd., CN=Thawte SGC CA Validity Not Before: Dec 18 00:00:00 2009 GMT Not After : Dec 18 23:59:59 2011 GMT Subject: C=US, ST=California, L=Mountain View, O=Google Inc, CN=www.google.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 CRL Distribution Points: URI: http://crl.thawte.com/ThawteSGCCA.crl X509v3 Extended Key Usage: TLS Web Server Authentication, TLS Web Client Authentication, Netscape Server Gated Crypto Authority Information Access: OCSP - URI:http://ocsp.thawte.com CA Issuers - URI:http://www.thawte.com/repository/Thawte_SGC_CA.crt Signature Algorithm: sha1WithRSAEncryption 9f:...07:5f Certificat Texte
  • 36. Autorité de Certification wget http://www.thawte.com/repository/Thawte_SGC_CA.crt openssl x509 -inform der -in Thawte_SGC_CA.crt -out Thawte_SGC_CA.crt.pem openssl verify -CAfile Thawte_SGC_CA.crt.pem -purpose any gmail.cert gmail.cert: OK CA CA
  • 37. Chaine de confiance *.google-analytics.com Google Internet Authority Equifax Secure Certificate Authority Racine CA intermédiaire CA:TRUE CA:TRUE Serveur Eq Eq GIA Eq. g-a GIA
  • 38.  
  • 39. CA CA CA @dns
  • 40. Echange de clés ... Pas si simple
  • 42.
  • 43. One-Way function simple Extrêmement difficile / long Irreversible
  • 44. Openssl sha1 -c <who.jpeg Openssl sha1 -c <whodot.jpeg fa:45:5c:49:ac:27:4f:b8:ee:d1:8d:68:b5:4e:d9:94:34:8f:a0:4c 12:d1:ce:26:5e:50:d7:e9:e5:2d:72:95:b9:0b:ac:25:42:93:ee:9c Dispersif
  • 45.
  • 46. signature Chiffrement, échange de clefs Secret Utilisations Texte à signer Texte à signer Secret
  • 47. openssl genrsa Generating RSA private key, 512 bit long modulus e is 65537 (0x10001) -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBAMBW/JaWqIoqAzouvlsqL4mlt4rc4JfOMfvs+8wUG0CljhFLIRzC 9AyWnEN2dKfNvcO23KRkC/pKOl1ZERDnP80CAwEAAQJBAL5WltoTN7CayNzQGzKu eaK26v6xfFTeCZrsN3YKw7lhI59625lmordLyBVPzfzx0iNWcrTfgm89cJLxbxiG KAECIQDw3K4OW/mDOa4nR3ia8CQ5jcTBPyLzrV7uRvVN/CEiAQIhAMxtnTkSdnoC aVNqmjRX/jZu4v4lH0cIfGE3NhB6tQXNAiAsvfGfPTqWQ8q0BTTEI0O3ZTxdYWsO tO/jd07uE53cAQIhAI+KNAg754a6JLyWsJoqYuxTpf0vkaut0K/uNX8SugLNAiBs ef1pKItH+8rB/FgY9Bz7om344BFVFyOX/vjCl/NQLg== -----END RSA PRIVATE KEY----- openssl rsa -inform pem -text -in rsa.key Private-Key: (512 bit) modulus: 00:de:5c:69:38:ff:68:9d:44:57:8e:28:f9:b6:b9: 6c:89:5f:f4:47:fb:02:c2:7d:f0:49:c0:47:bb:13: 5a:1a:e9:a1:fc:e0:ce:11:e9:b7:49:29:0f:69:33: 36:96:78:c5:d5:b7:9d:82:da:48:c8:90:c0:2a:6f: c1:21:f5:04:99 publicExponent: 65537 (0x10001) privateExponent: 5e:85:05:ad:56:d4:4f:55:87:aa:44:3c:b1:b1:6c: 33:90:f8:33:c8:bd:49:93:63:1a:d6:83:27:40:78: a2:cb:36:21:6a:74:1a:d7:d6:e7:0a:23:5f:fb:29: 24:32:bd:d8:fb:d1:5f:6a:af:24:be:53:c1:4c:5a: 9b:7a:39:21 prime1: 00:fa:2d:47:3e:86:32:a3:e5:24:0d:ec:3f:bb:e4: 3b:91:7c:40:57:63:6d:96:6b:3c:98:33:27:b7:49: 70:04:25 prime2: 00:e3:89:63:12:56:2d:87:bd:54:e0:75:c7:44:85: 65:45:26:7c:61:46:84:1b:38:b9:08:8f:4f:93:1e: 97:3a:65 exponent1: 7f:f6:02:d7:cf:2a:3d:bc:69:49:99:ca:2b:9f:9c: 7c:58:92:4c:60:75:e0:17:2f:a2:25:a0:2d:d6:a9: 2d:e5 exponent2: 00:d4:be:34:1f:84:eb:f5:2a:95:1d:79:81:e3:13: 46:68:ad:5f:46:24:84:88:5f:34:c2:48:1c:82:d5: eb:57:f1 coefficient: 00:a4:f0:22:13:4a:37:d6:c1:16:d2:8c:36:89:8b: 6e:76:df:cc:78:4a:4d:fd:c1:e6:9f:4b:72:f3:95: 45:f8:33 openssl rsa -inform pem -in rsa.key -pubout writing RSA key -----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAN5caTj/aJ1EV44o+ba5bIlf9Ef7AsJ9 8EnAR7sTWhrpofzgzhHpt0kpD2kzNpZ4xdW3nYLaSMiQwCpvwSH1BJkCAwEAAQ== -----END PUBLIC KEY----- openssl rsa -text -inform pem -in rsa.pub -pubin Modulus (512 bit): 00:de:5c:69:38:ff:68:9d:44:57:8e:28:f9:b6:b9: 6c:89:5f:f4:47:fb:02:c2:7d:f0:49:c0:47:bb:13: 5a:1a:e9:a1:fc:e0:ce:11:e9:b7:49:29:0f:69:33: 36:96:78:c5:d5:b7:9d:82:da:48:c8:90:c0:2a:6f: c1:21:f5:04:99 Exponent : 65537 (0x10001) e,n d,n ( p,q,e ) RSA
  • 48.
  • 49.
  • 50. Handshake CA ClientKeyExchange ServerHelloDone Certificate ClientHello ServerHello CA
  • 51.  
  • 52. Pre master secret CA ClientKeyExchange ClientKeyExchange CA @dns NULL
  • 53. Pre master secret ClientKeyExchange CA CA @dns
  • 54. Pre-master Secret Master Secret master_secret = PRF(pre_master_secret, &quot;master secret&quot;, ClientHello.random + ServerHello.random) [0..47]; (*) différent pour SSLv3 qui n'utilise pas un HMAC
  • 55. Master Secret key_block = PRF(SecurityParameters.master_secret, &quot;key expansion&quot;, SecurityParameters.server_random + SecurityParameters.client_random); Key Block
  • 56.
  • 57. P_hash graine graine graine graine (...) (...) A(0) A(1) A(2) A(1) A(2) A(3) A(3) secret Hash : MD5, SHA1, SHA256... HMAC (hash)
  • 58. HMAC http://tools.ietf.org/html/rfc2104 texte H(K XOR opad, H(K XOR ipad, text)) Clé K Hash : MD5, SHA1, SHA256... 0x36.. 0x5c..
  • 59.  
  • 60. Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone
  • 62. = ? : @dns
  • 63. Handshake ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished
  • 64. La réalité trahit la théorie ?
  • 65. Session Ticket Extension ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished NewSessionTicket
  • 66. Durée de vie ticket NewSessionTicket Ticket (opaque) NewSessionTicket
  • 67.  
  • 68. = ? : Finished Finished @dns
  • 69.
  • 70. Hanshake Finished ! ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished NewSessionTicket Ticket (opaque)
  • 71.  
  • 72.
  • 74. Electronic Codebook ECB AES 128 ECB AES 128 ECB Openssl aes-128-ecb -e -in who.bmp -out whoaes.bmp -k password
  • 75. Cipher Block Chaining CBC AES 128 CBC Openssl aes-128-cbc -e -in who.bmp -out whoaes.bmp -k password
  • 76. Session struct { ProtocolVersion protocol_version; CipherSuite cipher_suite; CompressionMethod compression_method; opaque master_secret[48]; ClientIdentity client_identity; uint32 timestamp; } StatePlaintext; enum { anonymous(0), certificate_based(1), psk(2) } ClientAuthenticationType; struct { ClientAuthenticationType client_authentication_type; select (ClientAuthenticationType) { case anonymous: struct {}; case certificate_based: ASN.1Cert certificate_list<0..2^24-1>; case psk: opaque psk_identity<0..2^16-1>; /* from [RFC4279] */ }; } ClientIdentity; connection connection Session 1 Session 2 Réutilisation Renégotiation Reprise connection
  • 77. Réutilisation ou reprise de session ClientHello ChangeCipherSpec Finished ServerHello ChangeCipherSpec Finished
  • 78.  
  • 79. Identification Client ClientHello ClientKeyExchange ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone ChangeCipherSpec Finished CertificateRequest Certificate CertificateVerify
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.  
  • 86.
  • 87. A chaque couche ses protocoles SSH TLS IPSec WEP WPA 802.1x Cryptographie Quantique PGP/GnuPG S/Mime Application openssl TCP – UDP -SCTP Session Transport Réseau Liaison Physique Présentation Application
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.

Notes de l'éditeur

  1. La sécurité informatique est une affaire de confiance et de mathématiques.
  2. Dans cette présentation on utilisera Alice pour identifier le client et Bob pour le serveur. Sous le &apos;s&apos; de https se cache le protocole SSL/TLS Incontournable pour les sites marchands en ligne. ( petite clé du navigateur ) Raison historique de mise en place de SSL dans les navigateurs ( Netscape )
  3. Internet n&apos;appartient à personne, aucune entité ni même gouvernement ne peut garantir que les paquets ne sont pas modifiés ni même qu&apos;ils arrivent à destination Le contenu des données échangées non cryptées est lisible depuis toute capture de trafic Le trafic peut transiter n&apos;importe où A l&apos;ère d&apos;HADOPI où l&apos;on identifie les usagers par leur adresse IP, il y a un hic.
  4. HTTP fait circuler le contenu des pages et des requêtes en clair : il est très facile de reconstituer un contenu web en lisant les trames HTTP repose sur TCP directement et TCP sur IP. Aucun de ces protocoles ne garantie la confidentialité et l&apos;authenticité des différentes parties.
  5. la communication s&apos;effectue avec le bon intervenant. Identification / Authentification C&apos;est bien google qui est derrière gmail.com, sinon vous venez de donner votre mot de passe à un autre site. la confidentialité est respectée Le mail que vous venez d&apos;envoyer contenait le montant de votre salaire ( exhorbitant ), aujourd&apos;hui il est en première page d&apos;un magazine. Le contenu des informations n&apos;est pas altéré, l&apos;intégrité est respectée. La fin du contrat qui contenait une clause de non concurrence a purement été supprimée
  6. Vérifiez que le site est sécurisé... AVANT d&apos;effectuer des actes qui nécessitent la confidentialité : AVANT de saisir vos identifiant AVANT de saisir votre numéro de carte bleue AVANT de fournir votre adresse courriel AVANT d&apos;envoyer un mail contenant des informations personnelles
  7. Le chiffrement permet de conserver un contenu secret même si son contenu chiffré est visible publiquement. Le chiffrement assure la confidentialité. Il existe deux types de chiffrements, symétrique à clé secrète ou asymétrique à clé publique. En bon français il faut utiliser chiffrer et non crypter ( parce que décrypter c&apos;est déchiffrer sans connaître la clé ) Il ne faut en aucun cas utiliser le terme encodage pour le chiffrement puisque l&apos;encodage n&apos;utilise pas de secret ( ex encodage ASCII/UTF-8 ).
  8. La surcouche TLS est fournie par des librairies partagées du système ou bien directement par le programme lui même. La façon dont TLS est utilisé est entièrement à la responsabilité des programmes ( Navigateur d&apos;un côté, Serveur de l&apos;autre ).
  9. Si https est si bien que ce que tu es en train de me vendre, dudulle, alors pourquoi tous les serveurs du monde ne sont pas en https ? Les certificats : une rente qui a permis à M. Shuttleworth de se payer un voyage à 20 Milliions de dollars dans l&apos;espace...
  10. blinder la porte de devant en laissant ouverte la porte de derrière Avoir un coffre fort dernier cri et laisser la clé dessus Avoir un mot de passe extra fort mais laisser un papier sous le clavier Sur un site en https Cliquer sur le bouton qui permet de continuer la navigation « Acceptez vous le certificat... »
  11. Sécurité par l&apos;obscurité Une tentation est de fournir de la sécurité en cachant la façon dont la sécurité est fournie C&apos;est MAL : Cf Bruce Schneier L&apos;inverse et de fournir en détail la façon dont la sécurité est fournie et assurée Les protocoles de sécurités disposant de normes accessibles et d&apos;implémentations libres doivent être intrinsèquement surs. Cependant il n&apos;est pas possible de fournir de la sécurité sans qu&apos;une partie reste secrète : la clé.
  12. TLS fonctionne en deux phases : Le Handshake / « poignée de main »: vérification des intervenants et échange d&apos;un secret partagé. Le trafic : chiffrer les données en se basant sur le secret partagé. Plus tard une nouvelle connection peut réutiliser le secret partagé en utilisant un handshake écourté.
  13. Comme on le voit le handshake nécessite l&apos;échange de plusieurs messages. Le détail suit...
  14. Analyser le trafic : Capturer le trafic durant l&apos;ouverture du navigateur et le chargement de la page de login Afficher le trafic d&apos;une manière compréhensible Demander à un professionnel de me convaincre Consulter un oracle La sécurité repose sur la confiance : Confiance au logiciel Confiance au matériel Confiance aux hébergeurs Confiance aux « Autorités compétentes » Là où il n&apos;y pas de confiance, alors il faut utiliser des protocoles qui assurent cette confiance
  15. Pourquoi ne pas lancer wireshark en tant que root et utiliser ses capacités de capture ? C&apos;est beaucoup moins risqué de ne lancer que tcpdump en tant que root. Tcpdump -i eth0 -s0 -w eth0capture.pcap Il faut impérativement capturer l&apos;intégralité du traffic ( -s0 tout le contenu de la trame ethernet ). Par défaut la taille est réduite Wireshark eth0capture.pcap
  16. Dans les préférences il est possible de rajouter au protocole SSL la définition des clés privés utilisées afin de déchiffrer le traffic. Pourquoi n&apos;a t&apos;on pas déchiffré le trafic avec google ? Parce que l&apos;on n&apos; a (heureusement) pas la clé privé du serveur de mail de google. On ne peut déchiffrer du trafic que des serveurs dont on a la clé, et encore ( Diffie Helman &amp; Perfect Forward Secrecy ).
  17. On peut voir successivement les requètes dns pour obtenir l&apos;adresse Ip(v6) de google le 3-ways handshake TCP ( SYN,SYN-ACK-ACK) poutr se connecter au port https de gmail Et finalement... une requète de handshake TLS : ClientHello qui circule dans la connection TCP établie précedemment.
  18. Indique les capacités du client / navigateur Contenu ProtocolVersion TLS v1 (0301) ... Random SessionID : length = 0 =&gt; aucune session. CipherSuite(s) 34 possiblités CompressionMethod : method null aucune compression.
  19. Alice / le navigateur créé une valeur aléatoire avec une date et l&apos;envoi avec la liste de ces ciphersuites. Une ciphersuite est une liste de choix d&apos;algorithmes de cryptographie. Nous verrons bientôt en détail ce qu&apos;est une ciphersuite. Remarque : Le serveur possède une paire de clés asymétriques et un certificat contenant sa clé publique et prouvant son identité. Le client possède au moins un certificat de CA qui est l&apos;autorité de certification à laquelle il accorde sa confiance.
  20. Le client et le serveur conservent les informations crées et échangés. Une fois le client hello reçu c&apos;est au serveur de choisir la ciphersuite parmi ce qu&apos;il supporte et ce qu&apos;il considère le plus approprié dans les propositions du client. Si aucune des ciphersuites ne lui plait la communication s&apos;arrête ici sur erreur. De façon générale le serveur ( par exemple un server apache ou tomcat ) choisit la ciphersuite la plus sûre.
  21. Générer un nombre vraiment aléatoire n&apos;est pas une tâche aisée pour un ordinateur qui par définition fonctionne de façon totalement déterministe. Souvent un système conserve des événements externes qui lui permettent de construire un minimum de hasard, puis il se sert de ce hasard comme « seed » graine pour nourrir des générateurs pseudo aléatoires. L&apos;entropie est la quantité de hasard nécessaire, et la crypto en demande beaucoup. Voir la différence entre /dev/random et /dev/urandom Lorsque le hasard n&apos;est pas hasardeux, alors il peut se deviner, et la sécurité est compromise quelque soit la qualité des algorithmes de crypto utilisés.
  22. Une ciphersuite est une liste de choix d&apos;algorithmes de cryptographie. Chacun de ces algorithme a une tâche particulière. La tâche principale est l&apos;échange sécurisé d&apos;un secret partagé, mais ce n&apos;est pas la seule. Identification / Authentification : Signature / Certificat Confidentialité : Echange confidentiel de clés symétriques + Chiffrement Intégrité : Résumé chiffré, Empreinte numérique , fonction de hachage Tout est là : DH : Diffie Hellman DSS : Digital Signature Standard AES_256_CBC : Advanced Encryption Standard 256bits Cipher Block Chaining. RSA : Rivest Shamir Adleman fonctionne à la fois pour l&apos;authentification et pour l&apos;échange de clés SHA : Secure Hash Algorithm Intégrité (analogie cadenas/scellés) : on peut vérifie que le contenu n&apos;a pas été altéré
  23. La combinaison possible des algorithmes est définie par la norme. Tous les algorithmes existant ne sont pas disponibles. Certaines CipherSuites sont obsolètes et/ou déconseillées, par exemple les suites pour l&apos;export ne sont plus utilisées tout comme celles avec des clés trop faibles. À chaque nouvelle version de TLS des ciphersuites sont ajoutées. Export : Les protocoles de cryptographie à clés fortes on longtemps été restreints pour l&apos;export hors des Etats Unis. Plusieurs méthodes ont été mises en place pour néanmoins fournir une sécurité accrue hors USA. Depuis Janvier 2000 les USA ont levé les limitations à l&apos;export. XXX_EXPORT Certains pays ont néanmoins des restrictions locales ( la russie par exemple ).
  24. Oh çà ressemble beaucoup au ClientHello ! Mais il n&apos;y a qu&apos;une ciphersuite... Indique les choix du serveur Contenu ProtocolVersion TLS v1 (0301) ... Random SessionID : vide ! ( Elle sera fournie ultèrieurement TLS sous forme encryptée ) CipherSuite choisie CompressionMethod : method null aucune compression.
  25. Après avoir reçu le ClientHello qui indique entre autres au serveur les envies du client en matière de ciphersuite, le serveur transmet son choix au client, il y joint un nombre au hasard. Selon les versions de TLS et ses extensions il peut aussi fournir l&apos;identificateur de session à ce moment là. Ce n&apos;est pas le cas ici... nous verrons pourquoi plus tard.
  26. Le serveur envoie son certificat.
  27. Le certificat est envoyé en clair. Il n&apos;y a aucune raison de protéger le certificat car il est public. Un certificat X509 ne contient pas de donnée secrète. Le certificat est signé par un CA. Remarque: Jusqu&apos;ici tous le échanges ont été fait en clair, rien de ce qui été échangé jusqu&apos;alors n&apos;est secret... Hors sujet ... : On appelle parfois abusivement certificat client un fichier qui contient aussi des clé privées ( par exemple pour votre télédéclaration ), en fait ce fichier contient effectivement un certificat mais aussi des informations privées, ce fichier ne doit en aucun cas être fournis tel quel à quiconque, mais juste installé dans le navigateur.
  28. Mais que contient vraiment un certificat ? Le certificat électronique est un contenu numérique qui permet de relier des informations entre elles. Par exemple ils valident que tel nom de société correspond bien à tel site web. Ce certificat a été émis par une autorité de certification et contient la preuve cryptographique de cette émission.
  29. Sous ce navigateur on peut exporter le certificat du serveur, pour par exemple vérifier des informations. Voici le contenu du certificat lorsqu&apos;on l&apos;affiche en texte... quelques remarques : il ne contient que des caractères imprimables il commence par BEGIN et termine par END. Son contenu même sous forme textuelle est illisible C&apos;est normal en fait un certificat est un contenu numérique encodé en DER qui est illisible, ici il est présenté en PEM avec un encodage Base64. Cette encodage permet de copier aisément le contenu d&apos;un certificat dans un fichier texte et en particulier dans un mail.
  30. Hexdump -C affiche les octets du fichier sous forme hexadécimale et leur décodage en ASCII. Openssl base64 permet d&apos;encoder ou de décoder du base64.
  31. Openssl vient avec un grand nombre d&apos;outils pour chaque usage. X509 en est un. DER = sous ensemble BER avec une seule façon d&apos;encoder une syntaxe. Encodage : Type Longueur Valeur Openssl asn1parse -in file Les Certificats sont encodés en DER un avantage de DER est d&apos;être compact, un autre est de pouvoir décoder tout ce qu&apos;on est en mesure de décoder même si l&apos;on ne comprends pas certains types qui restent alors opaques. Savoir si l&apos;on doit accepter de ne pas comprendre des parties ou si l&apos;on doit tout comprendre est spécifié dans les rfc.
  32. Un tiers de confiance, l&apos;autorité de certification, ( ie une société ) appose son tampon sur les requêtes de certificats provenant des sociétés après avoir vérifié que les informations de leur requête sont justes. Un certificat n&apos;a de valeur que si les utilisateurs font confiance à l&apos;autorité de certification qui l&apos;a émise (ISSUER). Les navigateurs font tous confiance à une longue série d&apos;autorités reconnues. Openssl verify permet de vérifier qu&apos;un certificat est bon signé par un CA dont on a le certificat. Remarque: ici la vérification ne prouve rien puisque qu&apos;on obtient le certificat de l&apos;autorité par une simple requète http ce qui ne garanti en rien sa validité.
  33. L&apos;idée majeure est de faire confiance à une entité qui assure que l&apos;on peut faire confiance à une autre pour une activité particulière. Si l&apos;activité particulière de l&apos;autre c&apos;est aussi d&apos;assurer la confiance, alors la chaine peut s&apos;étendre. Si l&apos;activité particulière de l&apos;autre n&apos;est pas d&apos;assurer la confiance, alors nous n&apos;avons aucune raison de poursuivre la chaine.
  34. OCSP protocole de vérification en ligne de certificat Rfc2560 But : confirmer que le certificat n&apos;est pas révoqué ou forgé.
  35. Maintenant le client a vérifié le certificat. C&apos;est à l&apos;application cliente de vérifié la validité du contenu du certificat. En particulier ici c&apos;est le CN= www.google.com qui sera vérifié, on regarde si l&apos;adresse IP distante est bien celle obtenue en résolvant l&apos;adresse dns www.google.com . C&apos;est une vérification importante mais elle n&apos;est pas bullet proof puisqu&apos;internet ne garanti pas que quelqu&apos;un d&apos;autre se soit mis en chemin.
  36. Le problème est le suivant : Comment échanger un secret entre le client et le serveur alors que n&apos;importe qui peut voir et écouter le trafic...
  37. De jolis icône pour représenter la cryptographie symétrique à clé secrète ( clé rouge ) la cryptographie asymétrique à clé publique ( clé jaune = publique, marron = privée ) les nombres aléatoires ( dés ) les fonctions de hachage ( hachoir ! ).
  38. Les fonctions de hachage sont des fonctions qui ont comme propriété: de toujours renvoyer la même valeur lorsqu&apos;elle sont appliquée sur les données ( une fonction quoi :- ) ) de retourner un nombre de taille fixe quelle que soit la valeur. Cependant si deux résultats sont identiques il n&apos;est pas garanti que la valeur de départ soit la même. Vu la taille relativement grande de la valeur de hash il est cependant statistiquement rare de trouver de telles collisions. Les hash cryptographiques diffèrent des hash utilisé pour les bases de données en ce qu&apos;il doit être très difficile de trouver une valeur dont ont connait le hash.
  39. Si cette propriété n&apos;est pas respectée, ce hash ne sert à rien, il est alors facile de construite de toutes pièces des données qui seront vérifiés par le hash. La notion d&apos;extrèmement difficile est elle même difficile à prouver, les mathématiques portant sur les espaces NP-Complets tentent d&apos;y apporter une réponse. En pratique cela veut dire grosso-modo que l&apos;ensemble des ordinateurs du monde entier regroupés pendant de très nombreuses années ne parviendraient pas à trouver une solution en tenant compte de la loi de moore ( sauf avec beaucoup de chance ou de bugs en tenant compte de la loi de murphy ). C&apos;est un pari...
  40. Si on modifie ne serait-ce que très lègerement les données à hacher, le résultat est très différent...
  41. La crypto à clé publique n&apos;a pas vocation à remplacer la crypto symétrique. Elle est vraiment beaucoup lente et elle met en oeuvre des mathématiques complexes. Cependant la crypto à clé asymétriques permet d&apos;échanger des secrets entre deux parties, ce que ne permet pas la crypto à clé secrète qui nécéssite une partie tierce (ex : kerberos).
  42. Toute la force de la crypto à clé publique est ici. Lorsque que l&apos;on chiffre avec la clé publique d&apos;une personne, seul le possesseur de la clé privée associée peut déchiffer. Toute autre clé donnera un résultat incompréhensible. Il en va de même lorsqu&apos;on utilise la clé privé, alors il n&apos;y a que la clé publique qui puisse déchiffrer. Il n&apos;est pas conseillé de chiffrer trop de données avec sa clé privé, cela l&apos;expose à la cryptanalyse. En général on chiffre le résultat d&apos;un hash sur les données d&apos;origines.
  43. c&apos;est des math ! Basé sur l&apos;exponentiation modulaire. Openssl propose des outils pour générer les clés RSA, pour en extraire la partie publique et pour les formater sous diverses formes.
  44. Pas plus de détail que cela
  45. Pas mieux...
  46. Après cette longue digression sur la cryptographie à clé publique, nous voici près à aborder l&apos;échange de clé par le client...
  47. Le message ClientKeyExchange n&apos;est pas chiffré (ici on voit son type en clair et non un &apos;Encrypted Message&apos; mais -heureusement- son contenu l&apos;est.
  48. C&apos;est donc le client qui génère la partie réellement secrète. Pour la génération le client fait appelle à ses libraires de génération de nombre aléatoire. Il est impératif que cette valeur ne puisse pas être devinée, et donc il faut qu&apos;elle soit effectivement aléatoire. Et pour qu&apos;elle reste secrète elle la chiffre avec l&apos;algorithme d&apos;échange de clés négocié en utilisant la clé publique fournie dans le certificat du serveur.
  49. Le serveur utilise sa clé privée pour extraire le morceau de clé qu&apos;on appelle pre-master-secret Voilà, maintenant le serveur et le client partagent une valeur secrète que nul autre qu&apos;eux ne connait.
  50. Cette valeur n&apos;est pas utilisée directement mais elle est hachée avec les random clients et serveurs afin de fournir un master secret.
  51. Ce master secret n&apos;est pas utilisé directement non plus mais étendu pour avoir assez de matériel cryptographique pour tous les messages. Les IV (Initial Vectors) sont des valeurs nécessaires aux algorithmes symétriques par bloc en mode chaîné que nous verrons bientôt.
  52. La version extraite de la RFC... pour le plaisir
  53. Pour le plaisir... un transparent qui m&apos;a demandé beaucoup de temps et que nous passerons en ... moins de 5 secondes... Vous pourrez le relire à tête reposée... sans garantie d&apos;exactitude...
  54. Encore un acte de bravoure ... cadeau pour les cours ...
  55. Il s&apos;agit d&apos;un message de Handshake chiffré, donc il n&apos;est pas possible d&apos;en voir le contenu sans le master secret ( ou la clé privé du serveur dans le cas RSA )... Tout ce qui suit un ChangeCipherSpec est chiffré... Croyez moi sur parole pour son contenu...
  56. On approche de la fin du handshake. Il reste encore au client et au serveru à s&apos;assurer que les messages échangés n&apos;ont pas été altéré en cours de route. Le Finished est réellement la validation de l&apos;ensebmle du hanshake.
  57. Le client a utilisé un HMAC sur l&apos;ensemble des messages de hanshake émis ou reçus. Ceci sert à vérifier l&apos;intégrité de tout le processus de handshake jusqu&apos;alors. Ce HMAC est le fameux PRF vu précédemment avec le master secret comme clé et le texte « client » comme seed. Le contenu du message Finished est chiffré avec la clé symétrique de client vers serveur comme tous les messages émis par le client après son envoi d&apos;un ChangeCipherSpec.
  58. Le serveur a procédé au même calcul de son côté. Si les résultats concordent alors le handshake n&apos;a pas été altéré.
  59. Bon on devrait arriver à la fin du hanshake... si tout va bien voici les paquets que l&apos;on doit recevoir ....
  60. Mais ... C&apos;est quoi ce paquet Encrypted Handshake avant ChangeCipherSpec ? Ne devait-on pas recevoir directement ChangeCipherSpec ? Oui... 1- Mais c&apos;était sans compter une extension du protocole TLS qui s&apos;appelle ... 2- C&apos;est un bug de wireshark qui ne reconnaît le nouveau handshake type 4.
  61. Rfc5077 Cela permet au serveur d&apos;éviter à avoir à conserver les informations de session client
  62. Le serveur envoi le Ticket de Session, il n&apos;est pas chiffré, donc peut être réutilisé par n&apos;importe qui à condition que celui soit à me de connaître le master secret... Le contenu du ticket de session est en fait un moyen pour le serveur de ne pas stocker chez lui toutes les informations de session du client. Il fait confiance à une clé secrète qu&apos;il utilise et utilise donc le client comme une base de donnée chiffrée et distribuée. Cela dépasse le cadre de cette présentation...
  63. Derrière un ChangeCipherSpec il est normal que tout le trafic soit chiffré. Donc le Finished l&apos;est.
  64. Et voilà c&apos;était le dernier message de handshake ! Le client effectue la même vérification que le serveur précédemment. Le PRF utilise « server » comme seed.
  65. La partie « handshake » est terminée, chacune des partie est à même de chiffrer le trafic avec des clés symétriques. Mais comment fonctionne la crypto symétrique ?
  66. RC4 est un algorithme à flot, il génère une séquence ( infinie ) de bits qui peuvent être combinés avec des XOR sur le flot de donnée à chiffrer. Les algorithmes à bloc ne savent chiffrer que des blocks de taille fixe. Il est donc nécessaire pour les utuiliser de compléter le message pour qu&apos;il soit de d&apos;une taille d&apos;une mutliple des blocs. Pour chiffrer un flot de donnée ils nécessitent d&apos;être combinés avec un mode de chiffrement. Jusqu&apos;à présent TLS utilise exclusivement CBC bien qu&apos;il existe d&apos;autres modes ECB, CBF, OFB ...
  67. Pour des raisons évidentes ce mode n&apos;est pas utilisé par TLS. En effet les même blocs en entrée fournissent les même blocs chiffrés en sortie.
  68. En injectant le résultat chiffré du tour précedent avec un XOR sur le bloc suivant avant chiffrage on introduit suffisamment de modifications pour qu&apos;il ne soit plus possible de reconnaître le message d&apos;origine.
  69. La réutilisation d&apos;une session et son partage pour plusieurs connections https est un grand classique. En effet les navigateurs ont l&apos;habitude d&apos;ouvrir de multiple connections simultanées vers un serveur pour lire en parallèles les différents sous-contenus d&apos;une page ( principalement les images ). Réutiliser une session une fois le master secret connu permet d&apos;éviter à avoir à faire un handshake complet et d&apos;éviter d&apos;utiliser la cryptographie à clé publique qui est très lente. La réutilisation et la renégotiation ont généré de nombreuses vulnérabilité qui ont été fixé par de nouvelles versions de TLS.
  70. Ce qu&apos;il faut voir : Il n&apos;y a pas d&apos;échange de clé ni de certificats. Tout réside dans le Finished qui ne fonctionne que si le serveur et le client partagent le même master secret. Cependant les clés finales sont différentes étant donné que les random client et serveur sont différents et que le PRF est réutilisé à partir du master secret pour les générer.
  71. Ici on Utilise le Session Ticket pour réutiliser la connection, le SessionID peut être créé par le client.
  72. C&apos;est dans ce cas préçis que le client doit disposer d&apos;un certificat et aussi de la clé privée correspondante. Classiquement en https, tls est utilisé pour n&apos;identifier que le serveur par son certificat L&apos;identification du client n&apos;est pas la même que celle du serveur elle requiert un échange particulier. Elle est optionnelle et nécessite que le client dispose d&apos;une clé privée associée à son certificat. Il se peut même qu&apos;aucun des deux ne soient identifiés ( diffie hellman ) tout en assurant la confidentialité mais c&apos;est un cas particulier
  73. Ensemble de bibliothèques conçues pour supporter le développement multi-plates-formes d&apos;applications clientes et serveurs sécurisées. Il supporte les certificats SSLv2 et v4, TLS, PKCS #5, #7, #11, #12, S/MIME, X.509 v3 et d&apos;autres standards de sécurité. objdump -T /usr/lib/libnss3.so.1d
  74. Pour assurer la meilleure sécurité possible le protocole de sécurisation doit être le plus proche possible de la fonction qu&apos;il sécurise. C&apos;est pourquoi selon la fonction, tous les protocoles de sécurités ne sont pas égaux. Par exemple on privilégie souvent IpSec sur TLS pour les réseaux privés virtuels et Ipsec n&apos;assure pas les services rendus par https... Ce que partagent les membre de la famille De façon générale la « cryptographie » Les algorithmes de chiffrement Les mécanismes généraux de signature et de résumés chiffrés (digest) Parfois ils utilisent la même librairie de crypto (openssh utilise la librairie libcrypt de openssl )