Commit 0b84f351 authored by mazenovi's avatar mazenovi
Browse files

enhance ssl

parent ec81a30e
......@@ -318,7 +318,7 @@ Révocation de certificats
* informer la CA
* la CA ajoute le certificat à sa liste de certificats révoqués
* cette liste est signée par la CA
* souvent la clé qui signe les certificats signe les CRL
* Souvent la clé qui signe les certificats signe les CRL
* Quand que le navigateur interroge-t-il les CRL ?
......@@ -336,8 +336,11 @@ Révocation de certificats
* Extensions
* paires clé / valeur
note:
- next update parce que CRL delta
## X.509 liste de révocation (CRL) extensions
## Certificate Revocation List (CRL) extensions
* reasonCode
0. Unspecified
......@@ -347,71 +350,86 @@ Révocation de certificats
...
## Online Certificate Status Protocol (OCSP)
#### Online Certificate Status Protocol (OCSP)
Protocole d’interrogation de validité pour un certificat
* Protocole d’interogation de la validité d’un certificat
* But : palier à la faiblesse de mise à jour des CRL par les clients
* [How can you set Firefox to, or tell if FF is always checking for certificate revocation?](https://support.mozilla.org/fr/questions/994310)
* Interroger le répondeur OCSP pour confirmer la validité de vos certificats
* très peu déployé
![OCSP](images/ssl/OCSP.png)
* peu déployé
* si l'OCSP n'est pas disponible pour le certificat firefox accepte le certificat
* s'il est valide
## SSL / TLS
* Crée un canal de communication **authentifié**, protégé en **confidentialité** et en **intégrité**
* Utilise des certificats X509
* délivrés par des autorités de certification
* Utilise des certificats X.509
* délivrés par des CA
* Utilise un système de chiffrement asymétrique
* pour échanger une clé symétrique
* Protocle initialement pensé pour sécurisé HTTP
* étendu à d'autres services ( SMTP, LDAP, VPN, etc ...)
* pour échanger une clé pour le chiffrement symétrique
* Protocole initialement pensé pour sécurisé HTTP
* étendu à d'autres services (SMTP, LDAP, VPN, ...)
## SSL dans le modèle TCP/IP
## TLS dans le modèle TCP/IP
<div style="text-align: center">
![SSL/TLS in TCP/IP model](images/tcp-ip_model_ssl-tls_protocol.png "SSL/TLS in TCP/IP model")
</div>
![SSL/TLS in TCP/IP model](images/ssl/tcp-ip_model_ssl-tls_protocol.png)
* Couche intermédiaire car indépendante du protocole utilisé
* situé entre Transport et Application du modèle **TCP/IP**
* situé entre Transport et Présentation modèle **OSI**
* utilise la couche session pendant la négociation (cache)
#### Versions SSL (Secure Socket Layer)
## Versions SSL
Secure Socket Layer
* **1.0** par Netscape en 1994, pas de public release
* **2.0** par Netscape en Février 1995, [The SSL Protocol Version 2.0](http://www.frameip.com/rfc/draftxxx.php)
* **3.0** par Netscape en Novembre 1996, [The SSL Protocol Version 3.0](http://www.frameip.com/rfc/draft302.php)
* 1.0 par Netscape en 1994, pas de public release
* 2.0 par Netscape en Février 1995, (trous de sécurité) [The SSL Protocol Version 2.0](http://www.frameip.com/rfc/draftxxx.php)
* 3.0 par Netscape en Novembre 1996, [The SSL Protocol Version 3.0](http://www.frameip.com/rfc/draft302.php)
## Versions TLS
#### Versions TLS (Transport Layer Security)
Transport Layer Security
* TLS 1.0 = SSL 3.1 [IETF](http://www.ietf.org/)
* 1.0 released en janvier 1999, [RFC 2246](http://www.frameip.com/rfc/rfc2246.php)
* 1.1 released en Avril 2006, [RFC 4346](http://www.frameip.com/rfc/rfc3546.php)
* 1.2 released en Août 2008, [RFC 5246](http://www.frameip.com/rfc/rfc4366.php)
* **1.0** released en janvier 1999, [RFC 2246](http://www.frameip.com/rfc/rfc2246.php)
* **TLS 1.0** = SSL 3.1 [IETF](http://www.ietf.org/)
* **1.1** released en Avril 2006, [RFC 4346](http://www.frameip.com/rfc/rfc3546.php)
* **1.2** released en Août 2008, [RFC 5246](http://www.frameip.com/rfc/rfc4366.php)
## Connexion SSL/TLS (exemple : HTTPS)
1.Le serveur
## Connexion SSL/TLS (1)
Le serveur
* Envoie son certificat au client
2.Le client
## Connexion SSL/TLS (2)
Le client
* Reçoit un certificat
* Vérifie sa validité (domaine, date, émetteur, révocation)
* Génère une clé de chiffrement symétrique (secret partagée)
* Chiffre le secret partagée avec la clé publique du serveur
* Envoie la clé chiffrée au serveur (ClientKeyExchange)
3.Le serveur
* Reçoit la clé partagée chiffrée générée par le client
* Déchiffre la clé partagée avec sa clé privée
* Vérifie sa validité (domaine, date, émetteur, révocation?)
* Génère une clé de chiffrement symétrique (**secret partagé**)
* Chiffre le **secret partagé** avec la clé publique du serveur
* Envoie le **secret partagé** chiffré au serveur (ClientKeyExchange)
## Connexion SSL/TLS (3)
Le serveur
* Reçoit le **secret partagé** chiffré généré par le client
* Déchiffre le **secret partagé** avec sa clé privée
La suite de la communication est chiffrée symétriquement
<br>
#### La suite de la communication est chiffrée symétriquement
## Connexion SSL/TLS
## Connexion SSL/TLS (exemple : HTTPS)
Remarques :
* Le client a authentifié le serveur
* mais le serveur n’a aucune information sur le client
* possibilité d'avoir un certificat côté client
......@@ -419,28 +437,29 @@ Remarques :
* Les paramètres de chiffrements
* sont négociés et « jetables »
[slide55] mais reprendre les miens
détaillé les étapes
## 4 sous-protocoles
* [déroulement des échanges ssl](https://www.securiteinfo.com/cryptographie/ssl.shtml)
#### 4 sous-protocoles
<small>
* **Handshake**
* authentification mutuelle du client et serveur
* négociation des algorithmes de chiffrement, de hachage
* échange des clés symétriques qui assurent le chiffrement.
* négociation des algorithmes de chiffrement et de hachage
* échange de la clé symétrique assurant le chiffrement
* **Change Cipher Spec**
* validation de la négociation préalable, vérifie ques deux partis se sont bien accordés quat à la clé maîtresse, aux algorithmes à employer
* 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 autre protocole et le rend ainsi sécurisé
* 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/TLS-Handshake.png "SSL/TLS handshake")<!-- .element: style="float: right" -->
![SSL/TLS handshake](images/ssl/TLS-Handshake.png "SSL/TLS handshake")
## Handshake - ClientHello
......@@ -528,6 +547,7 @@ Note:
* 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)
## Suite cryptographique
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment