4. The Extended Master Secret (Le secret maître étendu)
4. The Extended Master Secret (Le secret maître étendu)
Lorsque l'extension de secret maître étendu est négociée dans un handshake complet, le master_secret est calculé comme suit :
master_secret = PRF(pre_master_secret, "extended master secret",
session_hash)
[0..47];
Le calcul du secret maître étendu diffère de celui décrit dans la [RFC5246] sur les points suivants :
-
L'étiquette "extended master secret" est utilisée à la place de "master secret".
-
Le
session_hashest utilisé à la place deClientHello.randometServerHello.random.
Le session_hash dépend d'un journal de handshake qui inclut ClientHello.random et ServerHello.random, en plus des suites de chiffrement, des informations d'échange de clés et des certificats (le cas échéant) du client et du serveur. Par conséquent, le secret maître étendu dépend du choix de tous ces paramètres de session.
Cette conception reflète la recommandation selon laquelle les clés doivent être liées aux contextes de sécurité qui les calculent [SP800-108]. La technique consistant à mélanger un hachage des messages d'échange de clés dans la dérivation de clé maîtresse est déjà utilisée dans d'autres protocoles bien connus tels que Secure Shell (SSH) [RFC4251].
Les clients et les serveurs NE DEVRAIENT PAS accepter les handshakes qui n'utilisent pas le secret maître étendu, en particulier s'ils s'appuient sur des fonctionnalités telles que l'authentification composée qui tombent dans les cas vulnérables décrits dans la Section 6.1.