Sommaire |
Secure Socket Layer (SSL), est un protocole de sécurisation des échanges sur Internet, développé à l'origine par Netscape (SSL version 2 et SSL version 3). Il a été renommé en Transport Layer Security (TLS) par l'IETF suite au rachat du brevet de Netscape par l'IETF en 2001. Le groupe de travail correspondant à l'IETF a permis la création de la RFC 2246.
Par abus de langage, on parle de SSL pour désigner indifféremment SSL ou TLS.
Site officiel d'OpenSSL : http://www.openssl.org/
OpenSSL Win32 : http://www.slproweb.com/products/Win32OpenSSL.html
Le premier texte formel définissant le protocole TLS est la RFC 2246 publiée par l'IETF en 1999.
D'autres textes ont suivi sur ce protocole :
RFC 2712 : Addition de la suite Kerberos à TLS ;
RFC 2817 : Passage à TLS lors d'une session HTTP 1.1 ;
RFC 2818 : HTTP sur TLS ;
RFC 3268 : Utilisation du système de chiffrement AES pour TLS.
Bonnes pratiques à connaitre pour déployer le SSL :
https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.0.pdf
http://fr.wikipedia.org/wiki/SSL
Il est possible avec Openssl Win32 (dans cet exemple) de détecter quelle version de SSL est acceptée par le serveur web.
La syntaxe est :
C:\OpenSSL\bin> openssl s_client -connect www.google.fr:443
Par défaut, la meilleure cryptologie est utilisée. On peut restreindre seulement au SSL V2 :
C:\OpenSSL\bin> openssl s_client -connect www.google.fr:443 -ssl2
Voici un retour classique (ici avec l'option -ssl2) :
CONNECTED(00000003) depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com verify error:num=27:certificate not trusted verify return:1 depth=0 /C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com verify error:num=21:unable to verify the first certificate verify return:1 --- Server certificate -----BEGIN CERTIFICATE----- MIIDYzCCAsygAwIBAgIQWSaJTZRfGpHbrsApKEWi9jANBgkqhkiG9w0BAQUFADCB zjELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJ Q2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhh d3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl cnZlckB0aGF3dGUuY29tMB4XDTA3MDMyODE4NTAyNloXDTA4MDMyNzE4NTAyNlow aDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDU1v dW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBJbmMxFzAVBgNVBAMTDnd3dy5n b29nbGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDldmN5H2BtU+km ydqOtjdisovdkI/X5uW92zX4vXJQlgZINYpmtCu4wRwxrYkNCQIDpf+ctJdTX+RS i5E7W4rF+IHPvfQNhnIhNE5MHfbMUb/uF+eLX6P3RJiK3XNuZrcYGxXqCb7FNfD3 ZF47B+UfDnTIDCB9X5/26VQwSr20UQIDAQABo4GmMIGjMB0GA1UdJQQWMBQGCCsG AQUFBwMBBggrBgEFBQcDAjBABgNVHR8EOTA3MDWgM6Axhi9odHRwOi8vY3JsLnRo YXd0ZS5jb20vVGhhd3RlUHJlbWl1bVNlcnZlckNBLmNybDAyBggrBgEFBQcBAQQm MCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnRoYXd0ZS5jb20wDAYDVR0TAQH/ BAIwADANBgkqhkiG9w0BAQUFAAOBgQBlB3d5KbT+YvM8wfcQ0zgSMWd5uZodgrYY 2ZiB4zn38OCaH0y1PbnkLMId/34S+Fpg6699GULMbSTHKFhd1TFJU3cORK2CqoOS kIRCWjDnYRzC8EjDDQuUFmRiXz8ayl+Q7XdGimBDaQwBnNalcgYZ/fMpz36/PDPw mh565d4nWg== -----END CERTIFICATE----- subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com issuer=/C=ZA/ST=Western Cape/L=Cape Town/O=Thawte Consulting cc/OU=Certification Services Division/CN=Thawte Premium Server CA/emailAddress=premium-server@thawte.com --- No client certificate CA names sent --- Ciphers common between both SSL endpoints: RC4-MD5 EXP-RC4-MD5 RC2-CBC-MD5 EXP-RC2-CBC-MD5 DES-CBC-MD5 DES-CBC3-MD5 --- SSL handshake has read 1004 bytes and written 239 bytes --- New, SSLv2, Cipher is DES-CBC3-MD5 Server public key is 1024 bit Compression: NONE Expansion: NONE SSL-Session: Protocol : SSLv2 Cipher : DES-CBC3-MD5 Session-ID: 7B7EEB30C0C0F1B3E9BDC790F9EE7778 Session-ID-ctx: Master-Key: EE0E6C9D9F6242D8B00ACA84C6509DDA240320D6BCECE888 Key-Arg : 4D690E1671768C73 Krb5 Principal: None Start Time: 1184506414 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate) --- closed