TLS
Principe d'une communication sécurisée entre deux ordinateurs.
Key derivation function
Les protocoles vont avoir besoin de tout un tas de clés différentes. Une pour chaque message à transmettre et pour chaque application nécessitant une transmission. TLS utilise intensivement le principe de dérivation et de renforcement de clés.
TBD donner fonction avec extract et expand.
Pare les attaques :
- man in the middle attack : authentification
- replay attack : un NONCE identifie chaque session
- downgrade attack : refuse les protocoles non sécurisés.
- être sûr de à qui on parle (évite attaque man un the middle)
- échange de la clé maître et du mode de chiffrement
- échange des messages par chiffrement symétrique
Le protocole TLS se place entre la couche TCP et l'application.
Key stretching
Les clés issus du protocole de Diffie-Hellman sont robuste à la prévision mais sont peut aléatoire. On commence donc par une étape de stretching de cette clé pour la rendre plus uniforme.
TBD iv = '' pour uniformiser le mot de passe et avoir une taille donnée.
Key derivation
Ensuite pour chaque message à envoyer, on crée une sous-clé. Pour créer la sous clé on la sale avec $\text{iv} \oplus i$ si on cherche une clé pour envoyer le $i$ème message.
TLS Handshake
La mise en route du protocole, le handshake est très rapide. Initiation d'un communication entre Alice et Bob :
- Alice envoie un message d'authentification
- Bob envoie un message d'authentification
- Alice annonce les protocoles qu'elle peut utiliser pour l'AEAD
- Bob lui répond le protocole qui'il choisit
- Alice envoie sa partie du secret
- bob envoie sa partie du secret
La communication peut ensuite commencer en utilisant une clé dérivée
Avec TLS 1.3, les 6 étapes ci-dessus se font en 1 seul aller/retour. Alice envoie tout ce qui est nécessaire à Bob en une fois et Bob lui répond toutes ses informations en un message.
gestion des clés symétrique
TBD : clés :