Skip to content
Snippets Groups Projects
Commit 95edd780 authored by mazenovi's avatar mazenovi
Browse files

finish ssl

parent 0b84f351
No related branches found
No related tags found
No related merge requests found
content/slides/privacy/images/ssl/TLS-Renegociation.png

124 KiB

...@@ -340,14 +340,18 @@ note: ...@@ -340,14 +340,18 @@ note:
- next update parce que CRL delta - next update parce que CRL delta
## Certificate Revocation List (CRL) extensions ## Revocation reason
* reasonCode * unspecified (0)
0. Unspecified * keyCompromise (1)
1. KeyCompromise * CACompromise (2)
2. CACompromise * affiliationChanged (3)
3. AffiliationChanged * superseded (4)
... * cessationOfOperation (5)
* certificateHold (6)
* removeFromCRL (8)
* privilegeWithdrawn (9)
* AACompromise (10)
#### Online Certificate Status Protocol (OCSP) #### Online Certificate Status Protocol (OCSP)
...@@ -356,9 +360,15 @@ Protocole d’interrogation de validité pour un certificat ...@@ -356,9 +360,15 @@ Protocole d’interrogation de validité pour un certificat
![OCSP](images/ssl/OCSP.png) ![OCSP](images/ssl/OCSP.png)
* si l'OCSP n'est pas disponible pour le certificat firefox accepte le certificat
* s'il est valide
#### Online Certificate Status Protocol (OCSP)
* peu déployé * peu déployé
* si l'OCSP n'est pas disponible pour le certificat firefox accepte le certificat * [Approche par log publique de création révocation](http://confiance-numerique.clermont-universite.fr/Slides/R-Sasse.pdf) [<i class="fa fa-video-camera"></i>](http://webtv.u-clermont1.fr/media-MEDIA150907102804168)
* s'il est valide * [Google's Certificate Transparency project](http://www.certificate-transparency.org/)
## SSL / TLS ## SSL / TLS
...@@ -437,261 +447,128 @@ Le serveur ...@@ -437,261 +447,128 @@ Le serveur
* Les paramètres de chiffrements * Les paramètres de chiffrements
* sont négociés et « jetables » * sont négociés et « jetables »
## Certificats clients
#### 4 sous-protocoles * Un client peut présenter un certificat au serveur
<small> * Le serveur vérifie si le certificat est signé par une CA de confiance
* **Handshake** * Le serveur peut utiliser ces informations pour authentifier l’utilisateur
* authentification mutuelle du client et serveur * Le certificat peut être stocké dans un périphérique (e.g. Yubikey), une carte à puce (e.g. CPS), ...
* négociation des algorithmes de chiffrement et de hachage vérifier avec le CNRS
* échange de la clé symétrique assurant le chiffrement
* **Change Cipher Spec**
* validation de la négociation préalable
* vérifie que deux partis se sont bien accordés quant à la clé maîtresse et aux algorithmes à employer
* **Alert**
* protocole informatif de l'état de la liaison
* **Record**
* protocole d'acheminement des données de la communication
* ce protocole peut encapsuler tout protocole
* le rend ainsi sécurisé
</small>
## Handshake
![SSL/TLS handshake](images/ssl/TLS-Handshake.png "SSL/TLS handshake")
## Handshake - ClientHello
* **ClientHello**
* propose les suites cryptographiques qu'il sait gérer
* pour
* établir les éléments secrets de session
* authentifier les parties
* chiffrer les données applicatives
* protéger les données applicatives en intégrité
<pre><code class="hljs bash" style="font-size: 45px">$ openssl ciphers -v</code></pre> ## [Cypher suite](https://fr.wikipedia.org/wiki/Suite_cryptographique)
* valeur aléatoire **ClientRandom** pour la dérivation des clés Suite cryptographique
* échange de clés
* authentification des parties
* chiffrer les données applicatives
* protéger les données applicatives en intégrité (MAC)
## Handshake - ServerHello **Cipher suites** gérées par un système
* Aucune des propositions du client n'est jugée acceptable <pre><code class="hljs bash" style="font-size: 35px">$ openssl ciphers -v</code></pre>
* message de type **Alert**
* fin de la connexion
* **ServerHello** fait état du choix de la suite cryptographique parmis celles proposées
* première suite cryptographique préférée et proposée par le client
* comportement IIS par défaut
* directive *SSLHonorCipherOrder* pour forcer ce comportement pour apache
* première suite proposée par le client et supportée par défaut
* **Certificate** contient le Certificat du serveur
* **ServerHelloDone** attente de réponse du client
* valeur aléatoire **ServerRandom** pour la dérivation des clés
* Les données échangées par la suite entre le client et le serveur sont chiffrées et authentifiées à l'aide de clés dérivées
* Deuxième phase: authentificaiton du client
* optionnelle
Note:
- [Why does the SSL/TLS handshake have a client and server random?](http://security.stackexchange.com/questions/89383/why-does-the-ssl-tls-handshake-have-a-client-and-server-random)
- master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random)
- Why not just use the pre-master?
- This would mean that the entire key generation routine was based on client generated values
- If a Man-In-The-Middle attacker replayed the handshake, the same pre-master secret would be sent and then used for the connection.
- Having the server generate a random value (ServerHello.random) will mean that the MAC (message authentication code) secret is different if the ClientHello.random is repeated, and therefore the MAC and encryption keys will be different, preventing any replay attack.
## ex: TLS_RSA_WITH_RC4_128_MD5
## Handshake - cypher suite TLS_RSA_WITH_RC4_128_MD5 Se lit
* [RSA](https://fr.wikipedia.org/wiki/Chiffrement_RSA) * [RSA](https://fr.wikipedia.org/wiki/Chiffrement_RSA)
* authentification du serveur * authentification du serveur
* établissement des secrets de session * RC4_128 = algorithme de chiffrement [RC4](https://fr.wikipedia.org/wiki/RC4) avec clé de 128 bits
* quand le client a reçu le certificat du serveur
* génération d'une *pre-master secret* : secret de session
* chiffrer en utilisant la clé publique du certificat
* **ClientKeyExchange** contient l'aléa chiffré que seul le serveur pourra déchiffrer
* la communiation est chiffré de manière symétrique
* RC4_128 algorithme de chiffrement [RC4](https://fr.wikipedia.org/wiki/RC4) avec clé de 128 bits
* pour chiffrer le canal de communication * pour chiffrer le canal de communication
* [MD5](https://fr.wikipedia.org/wiki/MD5) * [MD5](https://fr.wikipedia.org/wiki/MD5)
* protection de l'intégrité du canal de communication via [HMAC MD5](https://fr.wikipedia.org/wiki/Keyed-Hash_Message_Authentication_Code) * protection de l'intégrité du canal de communication via [HMAC MD5](https://fr.wikipedia.org/wiki/Keyed-Hash_Message_Authentication_Code)
Note:
- [Why does the SSL/TLS handshake have a client and server random?](http://security.stackexchange.com/questions/89383/why-does-the-ssl-tls-handshake-have-a-client-and-server-random)
- master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random)
- Why not just use the pre-master?
- This would mean that the entire key generation routine was based on client generated values
- If a Man-In-The-Middle attacker replayed the handshake, the same pre-master secret would be sent and then used for the connection.
- Having the server generate a random value (ServerHello.random) will mean that the MAC (message authentication code) secret is different if the ClientHello.random is repeated, and therefore the MAC and encryption keys will be different, preventing any replay attack.
## Handshake - Finished ## Handshake
* Le client vérifie la chaîne de certification du certificat
* chaîne de certification invalide
* fin de la connexion
* chaîne de certification valide
* le client renvoie le *pre-master sercet* chiffré dans **ClientKeyExchange**
* le **pre-master secret**, le **ClientRandom** et le **ServerRandom** sont connus du client et du serveur
* ces éléments partagés sont alors dérivés pour générer les clés symétriques utilisés par
* RC4 pour la confidentialité du trafic
* HMAC MD5 pour l'intégrité du trafic
* les messages **ChangeCiperSpec** sont échangés pour indiquer l'activation des algorithmes et des clés [Comprendre le SSL/TLS: Partie 4 Handshake Protocol](https://blog.eleven-labs.com/fr/comprendre-le-ssltls-partie-4-handshake-protocol/)
* les messages **finished**
* premiers messages chiffrés
* contiennent un condensat de tous les messages échangés
* intégrité de la négociation
* [déroulement des échanges ssl en détail](https://www.securiteinfo.com/cryptographie/ssl.shtml) <br>
## Suite cryptographique (*[Déroulement des échanges ssl en détail](https://www.securiteinfo.com/cryptographie/ssl.shtml)*)
* https://fr.wikipedia.org/wiki/Suite_cryptographique
![TLS Handshake](images/ssl/TLS-Handshake.png "SSLv2 Handshake")
## Perfect Forward Secrecy (PFS)
* En français : confidentialité persistante #### Négociation de la cipher suite
Si la clé privée du serveur est compromise, qu’en est-il des transactions passées ?
La PFS introduit un ServerKeyExchange
* obligatoire pour la certification A+ (à vérifieir et creuser les catégories de certification).
* on voit passer que c'est du jaune * Tous les serveurs web ne négocient pas les cypher suites de la même façon
* mais ce ne donne pas d'avanatage * IIS prend la première suite cryptographique préférée du serveur et proposée par le client
* la couleur finale est impossible à trouver même en sachant qu'elle utilise du jaune * Apache prend la première suite proposée par le client et supportée par le serveur
* permet une baisse du niveau de sécurité
* *SSLHonorCipherOrder* pour sécuriser
* problème np complet (voir avec Pascal) [SSL / TLS Renegotiation Handshakes MiTM Plaintext Data Injection- medium or low
risk?](https://security.stackexchange.com/questions/63867/ssl-tls-renegotiation-handshakes-mitm-plaintext-data-injection-medium-or-low)
## Vulnérabilité TLS_RSA_WITH_RC4_128_MD5 ## Vulnérabilité TLS_RSA_WITH_RC4_128_MD5
* si la clé privée est récupérée * si la clé privée du serveur est récupérée
* le *pre master secret* est récupérable aussi * le *pre master secret* est récupérable
* on peut obtenir les clés de session * on peut obtenir les clés de session
* toutes les communications sont alors déchiffrables * toutes les communications sont alors déchiffrables
* passées * passées
* futures * futures
## Diffie-Hellman éphémère ## Perfect Forward Secrecy (PFS)
![SSL/TLS handshake HD](images/TLS-Handshake-DH.png "SSL/TLS handshake HD")
## Diffie-Hellman exchange
![Diffie-Hellman exchange](images/diffie-hellman-exchange.png "Diffie-Hellman exchange") *Confidentialité Persistante*
* La clé compromission d'un clé privée n'affecte pas la confidentialité des communications passées
* utilisée uniquement pour signer
* [Problème NP-complet](https://fr.wikipedia.org/wiki/Probl%C3%A8me_NP-complet)
## Diffie-Hellman éphémère
* DHE ou ECDHE ![Diffie-Hellman exchange](images/ssl/diffie-hellman-exchange.png "Diffie-Hellman exchange")
* échange de clé Diffie-Hellman
* éléments secrets éphémères
* ne transitent pas en vérité
* la connaissance de la clé privée n'est d'aucun intérêt
* [PFS (*Perfect Forward Secrecy*)](https://fr.wikipedia.org/wiki/Confidentialit%C3%A9_persistante): la connaissance de la clé privée n'apporte pas d'avantage pour déchiffrer
* Authentification du serveur explicite
* **ServerKeyExchange**
* signature RSA
* paramètres Diffie-Hellman
* aléas (**ClientRandom** ou **ServerRandom**)
<!-- !!!! -->
## Handshake - SSLv2 ## Handshake - SSLv2
![SSLv2 Handshake](images/SSLv2-Handshake.png "SSLv2 Handshake") ![SSLv2 Handshake](images/ssl/SSLv2-Handshake.png "SSLv2 Handshake")
* Il n'y a pas de message **finished** * Il n'y a pas de message **finished**
* **finished** protège l'échange en intégrité * **finished** protège l'échange en intégrité
* corrigé à partir de SSLv3
## Handshake - SSLv2 - MIM ## Handshake - SSLv2 - MIM
![SSLv2 Handshake](images/SSLv2-MIM-Handshake.png "SSLv2 Handshake") ![SSLv2 Handshake](images/ssl/SSLv2-MIM-Handshake.png "SSLv2 Handshake")
Note: Note:
- attaque man in the middle permet de faire baisser la sécurité des méthodes supportés par le client ou le serveur - attaque man in the middle permet de faire baisser la sécurité des méthodes supportés par le client ou le serveur
- pas de déchiffrement à la volée - pas de déchiffrement à la volée
- mais possible avec un peu de temps - mais possible avec un peu de temps
- SSLv2 est aussi vulnérable parce que - SSLv2 est aussi vulnérable parce que
- utilise MD5 dasn toutes ses cyphersuites - utilise MD5 dans toutes ses ciphersuites
- utilise la même clé pour protéger le fulx en intégrité et en confidentialité - utilise la même clé pour protéger le flux en intégrité et en confidentialité
- pas de mécanisme de signalement de fin de connexion - pas de mécanisme de signalement de fin de connexion
- attaques par "troncature" du flux - attaques par "troncature" du flux
- SSLv2 ne doit pas être utilisé - SSLv2 ne doit pas être utilisé --
## Renégociation sécurisée ## Renégociation sécurisée
* en cas de * en cas de
* rafraichaissement des clés * rafraîchissement des clés
* à l'initiative du client ou du serveur
* en cas d'authentification du client * en cas d'authentification du client
* le serveur initie une renégociation * authentification d'une partie protégée
* demande le certificat client (pour un accès à du contenu protéger)
* à l'intiative du client ou du serveur
## Renégociation - TLS
![TLS Renégociation](images/TLS-Renegociation.png "TLS Renégociation")
## Renégociation - TLS - MIM
![TLS Renégociation man in the middle](images/TLS-MIM-Renegociation.png "TLS Renégociation man in the middle")
## Vulnérabilités multiples
* [mai 2015] - [Weak Diffie-Hellman and the Logjam Attack](https://weakdh.org/)
* permet de forcé les connexions TLS à 512-bit export-grade cryptography
* [Freack Attack](https://freakattack.com/) réminiscence
* [octobre 2014] - [Poddle](http://www.dwheeler.com/essays/poodle-sslv3.html)
* [POODLE test](https://www.poodletest.com/)
* [mars 2014] - [Heartbleed](https://fr.wikipedia.org/wiki/Heartbleed)
* lecture de la mémoire du serveur via un heartbeat
* [OpenSSL vulnerabilities](https://www.openssl.org/news/vulnerabilities.html)
* [GnuTLS security](http://www.gnutls.org/security.html)
Note:
- La négociation de la cypher suite browser / server
- Le forçage du choix mininmum est à considérer
## en cas de compromission
* la clé privée est compromise
* elle permet donc déchiffrer ce qui a été chiffré avec la clé publique
* le secret de connexion est donc retrouvable à tous les coups
## Chiffrer pour plusieurs destinataires
On ne veut pas envoyer n messages distincts, ni un message chiffré avec n clés différentes le serveur initie une renégociation
1. On chiffre le message avec un algorithme symétrique et une clé aléatoire
2. On chiffre cette clé n fois pour les n destinataires
3. On envoie le message chiffré symétriquement et la clé partagée chiffrée pour chaque destinataire
Chaque destinataire peut déchiffrer la clé partagée avec sa clé privée et déchiffrer le message [![TLS Renégociation](images/ssl/TLS-Renegociation.png "TLS Renégociation")<!-- .element style="width: 85%" -->](images/ssl/TLS-Renegociation.png)
## Certificats clients ![TLS Renégociation man in the middle](images/ssl/TLS-MIM-Renegociation.png "TLS Renégociation man in the middle")<!-- .element style="width: 75%" -->
<!-- !!!! -->
* Un client peut présenter un certificat au serveur
* Le serveur vérifie si le certificat est signé par une CA de confiance
* Le serveur peut utiliser ces informations pour authentifier l’utilisateur
* Le certificat peut être stocké dans un périphérique (e.g. Yubikey), une carte à puce (e.g. CPS), ...
vérifier avec le CNRS
## Certification Authority Authorization (CAA) ## Certification Authority Authorization (CAA)
...@@ -702,9 +579,11 @@ vérifier avec le CNRS ...@@ -702,9 +579,11 @@ vérifier avec le CNRS
* Le 9 septembre 2017, Comodo s’est fait pincer pour ne pas le respecter : * Le 9 septembre 2017, Comodo s’est fait pincer pour ne pas le respecter :
[Comodo Caught Breaking New CAA Standard One Day After It Went Into Effect](https://www.bleepingcomputer.com/news/security/comodo-caught-breaking-new-caa-standard-one-day-after-it-went-into-effect/) [Comodo Caught Breaking New CAA Standard One Day After It Went Into Effect](https://www.bleepingcomputer.com/news/security/comodo-caught-breaking-new-caa-standard-one-day-after-it-went-into-effect/)
(à vérifier masi c'est le cas ou un domaine est déjà enregistré chez un CA let's encrypt par exmple (il a l'enregsitrement) mais comodo n'en a pas tenu compte)
* Validation par les CA Note:
- cas où un domaine est déjà enregistré chez un CA (let's encrypt)
- et qu'une autre CA lui délivre un certificat
- Comodo n'en a pas tenu compte
## DNS-Based Authentication of Named Entities (DANE) ## DNS-Based Authentication of Named Entities (DANE)
...@@ -713,12 +592,9 @@ vérifier avec le CNRS ...@@ -713,12 +592,9 @@ vérifier avec le CNRS
* Validation par les clients * Validation par les clients
On peut se passer des CA
## HTTPS ## HTTPS
!["Tunnel SSL"](/_/1337/images/ssl-tunnel.png "Tunnel SSL")
* HTTP + SSL/TLS = HTTPS assure * HTTP + SSL/TLS = HTTPS assure
* Confidentialité * Confidentialité
* [Session Hijacking](http://en.wikipedia.org/wiki/Session_hijacking) * [Session Hijacking](http://en.wikipedia.org/wiki/Session_hijacking)
...@@ -727,6 +603,9 @@ On peut se passer des CA ...@@ -727,6 +603,9 @@ On peut se passer des CA
* Intégrité * Intégrité
* Authentification (via les certificats) * Authentification (via les certificats)
## Apache
* __Open SSL__ * __Open SSL__
* mod_ssl * mod_ssl
* __GnuTLS__ * __GnuTLS__
...@@ -735,12 +614,9 @@ On peut se passer des CA ...@@ -735,12 +614,9 @@ On peut se passer des CA
## Que "chiffre" https ## Que "chiffre" https
[!["Tunnel SSL"](images/https.png "Tunnel SSL")<!-- .element width="50%" -->](http://security.stackexchange.com/questions/2914/can-my-company-see-what-https-sites-i-went-to)
* On ne voit pas l'url dans le traffic * On ne voit pas l'url dans le traffic
* mais on voit l'hôte * mais on voit l'ip de l'hôte
* Anonimisation complète via un proxy https ou VPN * Proxy https ou VPN anonimisent complètement le traffic
* obfusquent complètement le traffic
Note: Note:
- Attention les proxy - Attention les proxy
...@@ -750,53 +626,52 @@ Note: ...@@ -750,53 +626,52 @@ Note:
- proxy https = MITM - proxy https = MITM
## Autres vulnérabilités ## Vulnérabilités multiples
* [2015] [Weak Diffie-Hellman and the Logjam Attack](https://weakdh.org/)
* permet de forcé les connexions TLS à 512-bit export-grade cryptography
* [Freack Attack](https://freakattack.com/) réminiscence
* [2014] [Poddle](http://www.dwheeler.com/essays/poodle-sslv3.html)
* [POODLE test](https://www.poodletest.com/)
* [2014] [Heartbleed](https://fr.wikipedia.org/wiki/Heartbleed)
* lecture de la mémoire du serveur via un heartbeat
## Vulnérabilités multiples
* [OpenSSL vulnerabilities](https://www.openssl.org/news/vulnerabilities.html)
* [GnuTLS security](http://www.gnutls.org/security.html)
* [Les attaques SSL / TLS](https://korben.info/les-attaques-ssltls.html)
* [Public Key Infrastructure (PKI)](https://fr.wikipedia.org/wiki/Infrastructure_%C3%A0_cl%C3%A9s_publiques) * [Public Key Infrastructure (PKI)](https://fr.wikipedia.org/wiki/Infrastructure_%C3%A0_cl%C3%A9s_publiques)
* certificats * [Certificate authorities issue SSL certificates to fraudsters](http://news.netcraft.com/archives/2015/10/12/certificate-authorities-issue-hundreds-of-deceptive-ssl-certificates-to-fraudsters.html)
* rarement testés par le navigateur
* [Online Certificate Status Protocol (OCSP)](https://fr.wikipedia.org/wiki/Online_Certificate_Status_Protocol)
* [abandonner côté client en cas de certififcat révoqué](https://wiki.mozilla.org/CA:ImprovingRevocation)
* maintenir un cache de réponse valide côté serveur
* [Approche par log publique de création révocation](http://confiance-numerique.clermont-universite.fr/Slides/R-Sasse.pdf) [<i class="fa fa-video-camera"></i>](http://webtv.u-clermont1.fr/media-MEDIA150907102804168)
* [Google's Certificate Transparency project](http://www.certificate-transparency.org/)
* peut on faire confiance aux certificats valides?
* [Certificate authorities issue SSL certificates to fraudsters](http://news.netcraft.com/archives/2015/10/12/certificate-authorities-issue-hundreds-of-deceptive-ssl-certificates-to-fraudsters.html)
* peut on faire confiance à toutes les PKI?
* celles qui délivrent des certificats systématiquement autorité de certifications
* [cypher suite](https://fr.wikipedia.org/wiki/Suite_cryptographique)
* [New RC4 Encryption Attacks Reduces Plaintext Recovery Time](http://it.slashdot.org/story/15/07/17/019235/new-rc4-encryption-attacks-reduces-plaintext-recovery-time)
* [A freestart collision example for SHA-1](https://sites.google.com/site/itstheshappening/)
* [MD5 vulnerable to collision attacks](https://www.kb.cert.org/vuls/id/836068)
Note: Note:
- Repose sur la confiance dans les autorités de conifance - Repose sur la confiance dans les autorités de confiance
- Honnêteté et sécurité des autorités de certification - Honnêteté et sécurité des autorités de certification
- savoir faire : délivré des certificats certifiant par erreur
- signé par une autorité de confiance, chaine valide - signé par une autorité de confiance, chaine valide
- on calcule le hash avec la clé publique de l'autorité et on la compare au hash du certificat - on calcule le hash avec la clé publique de l'autorité et on la compare au hash du certificat
## <i class="fa fa-gears"></i> Quelques outils ## <i class="fa fa-gears"></i> Tests serveurs
* Obtenir un certificat SSL valide
* [letsencrypt.org](https://letsencrypt.org) entièrement gratuit (à renouveler tous les 90 jours)
* [startssl.com](https://www.startssl.com) 1 domaine + 1 sous domaine gratuits
* [gandi.net](http://gandi.net) 1 domaine ou sous domaine gratuit par non de domaine acheté chez gandi
* Tester un certificat SSL * Tester un certificat SSL
* https://ssldecoder.org/ * [SSL Decoder](https://ssldecoder.org/)
* https://certificatemonitor.org/ * [Certificate Expiry Monitor](https://certificatemonitor.org/)
* Tester une configuration SSL * Tester une configuration SSL
* [Qualys](https://www.ssllabs.com/ssltest/) * [Qualys](https://www.ssllabs.com/ssltest/)
* [Comodo ssl analyzer](https://sslanalyzer.comodoca.com/) * [Comodo ssl analyzer](https://sslanalyzer.comodoca.com/)
* [OpenSSL Decoder](https://raymii.org/s/software/OpenSSL_Decoder.html) avec [son post de blog](https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html) * [OpenSSL Decoder](https://raymii.org/s/software/OpenSSL_Decoder.html)
* Tester son navigateur * [Strong SSL Security On nginx](https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html)
* [SSL Cipher Suite Details of Your Browser](https://cc.dcsec.uni-hannover.de/)
* [How's my SSL?](https://www.howsmyssl.com/)
* [<i class="fa fa-firefox"></i> Toggle Cipher Suites](https://addons.mozilla.org/fr/firefox/addon/toggle-cipher-suites/), [<i class="fa fa-github"></i> Toggle Cipher Suites](https://github.com/dillbyrne/toggle-cipher-suites/releases) ## <i class="fa fa-gears"></i> Tests navigateurs
* [<i class="fa fa-github"></i> Calomel SSL validator](https://addons.mozilla.org/fr/firefox/addon/calomel-ssl-validation/)
* Comprendre son navigateur * [SSL Cipher Suite Details of Your Browser](https://cc.dcsec.uni-hannover.de/)
* [<i class="fa fa-book"></i> Chrome, Firefox et recherches Google : passage en force du HTTPS](http://dareboost.developpez.com/tutoriels/securite-web/https-nouveaute-recherche-google-chrome-firefox/) * [How's my SSL?](https://www.howsmyssl.com/)
* [<i class="fa fa-firefox"></i> Toggle Cipher Suites](https://addons.mozilla.org/fr/firefox/addon/toggle-cipher-suites/)
* [<i class="fa fa-github"></i> Toggle Cipher Suites](https://github.com/dillbyrne/toggle-cipher-suites/releases)
* [<i class="fa fa-github"></i> Calomel SSL validator](https://addons.mozilla.org/fr/firefox/addon/calomel-ssl-validation/)
Note: Note:
- aspect arbitraire de la notation notamment qualys - aspect arbitraire de la notation notamment qualys
...@@ -806,40 +681,47 @@ Note: ...@@ -806,40 +681,47 @@ Note:
## <i class="fa fa-medkit"></i> Se protéger ## <i class="fa fa-medkit"></i> Se protéger
* un service sans **s** est un problème
* pas ftp, mais sftp ou ftps
* pas rsync, mais rsync over sssh
* pas imap, pop3 et smtp, mais imaps, pop3s et smtps
* Seules les implémentations conformes à TLSv1 et supérieures doivent être employées * Seules les implémentations conformes à TLSv1 et supérieures doivent être employées
* Les cyphersuites offrant la PFS doivent être favorisées * Les cyphersuites offrant la PFS doivent être favorisées
* [Anssi - SSL/TLS: état des lieux et recommandations](www.ssi.gouv.fr/.../SSL_TLS_etat_des_lieux_et_recommandations.pdf) * [Anssi - SSL/TLS: état des lieux et recommandations](www.ssi.gouv.fr/.../SSL_TLS_etat_des_lieux_et_recommandations.pdf)
* Apache tips
* [Chiffrement fort SSL/TLS : Mode d'emploi](https://httpd.apache.org/docs/2.4/fr/ssl/ssl_howto.html)
* [Hardening Your Web Server’s SSL Ciphers](https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/)
* [ssllabs.com's own Apache SSL Config Directives](https://community.qualys.com/thread/9652)
* [Apache web server SSL best practices](https://wiki.fysik.dtu.dk/it/SSL_best_practices)
* Nginx tips
* [HTTPS on Nginx: From Zero to A+ (Part 1)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-1/)
* [HTTPS on Nginx: From Zero to A+ (Part 2)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-2-configuration-ciphersuites-and-performance/)
## <i class="fa fa-medkit"></i> Se protéger ## <i class="fa fa-medkit"></i> Se protéger / Apache
* Multi server tips * [Chiffrement fort SSL/TLS : Mode d'emploi](https://httpd.apache.org/docs/2.4/fr/ssl/ssl_howto.html)
* [https://cipherli.st/](https://cipherli.st/) pour une conf sécurisée * [Hardening Your Web Server’s SSL Ciphers](https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/)
* [<i class="fa fa-warning"></i> Modifier tous les vhosts pour nginx!!](http://serverfault.com/questions/641150/nginx-cant-disable-sslv3) * [ssllabs.com's own Apache SSL Config Directives](https://community.qualys.com/thread/9652)
* fixer le [weak Diffie-Hellmani (aka logjam Attack](https://weakdh.org/)) * [Apache web server SSL best practices](https://wiki.fysik.dtu.dk/it/SSL_best_practices)
<pre><code class="hljs bash" style="font-size: 28px"> openssl dhparam -out dhparams.pem 2048 </code></pre>
* suivre les [<i class="fa fa-book"></i> recommandations de l'ANSSI](https://www.ssi.gouv.fr/agence/publication/ssltls-3-ans-plus-tard/) ## <i class="fa fa-medkit"></i> Se protéger / Nginx
<br /> * [HTTPS on Nginx: From Zero to A+ (Part 1)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-1/)
* [HTTPS on Nginx: From Zero to A+ (Part 2)](https://juliansimioni.com/blog/https-on-nginx-from-zero-to-a-plus-part-2-configuration-ciphersuites-and-performance/)
#### dans tous les cas
#### bien regarder la date ... #### <i class="fa fa-medkit"></i> Se protéger / tout serveur
### car valable jusqu'à la prochaine faille!!!<!-- .element class="fragment rollin" --> * [https://cipherli.st/](https://cipherli.st/) pour une conf sécurisée
* [<i class="fa fa-warning"></i> Modifier tous les vhosts pour nginx!!](http://serverfault.com/questions/641150/nginx-cant-disable-sslv3)
Note: * fixer le [weak Diffie-Hellmani (aka logjam Attack](https://weakdh.org/))
- Désactiver tout services non sécurisés <pre><code class="hljs bash" style="font-size: 28px"> openssl dhparam -out dhparams.pem 2048 </code></pre>
- préférer sftp à ftp, ssh à telnet ou rlogin ...
* suivre les [<i class="fa fa-book"></i> recommandations de l'ANSSI](https://www.ssi.gouv.fr/agence/publication/ssltls-3-ans-plus-tard/)
#### A lire
http://www.cypherpunks.to/~peter/T2a_X509_Certs.pdf * [Comprendre SSL/TLS - 1](https://blog.eleven-labs.com/fr/comprendre-ssl-tls-partie-1/)
* [Comprendre SSL/TLS - 2](https://blog.eleven-labs.com/fr/comprendre-ssl-tls-partie-2-chiffrement/)
* [Comprendre SSL/TLS - 3](https://blog.eleven-labs.com/fr/comprendre-le-ssltls-partie-3-certificats/)
* [Comprendre SSL/TLS - 4](https://blog.eleven-labs.com/fr/comprendre-le-ssltls-partie-4-handshake-protocol/)
* [Comprendre SSL/TLS - 5](https://blog.eleven-labs.com/fr/comprendre-ssl-tls-partie-5-record-protocol/)
* [CaenCamp #33 : Infrastructures à clés publiques](https://www.youtube.com/watch?v=9zNAUFtw7Ac) par [Romain Tartiaire](https://romain.blogreen.org/)
* [Chrome, Firefox et recherches Google : passage en force du HTTPS ](http://dareboost.developpez.com/tutoriels/securite-web/https-nouveaute-recherche-google-chrome-firefox/)
* http://www.cypherpunks.to/~peter/T2a_X509_Certs.pdf
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment