Salut, je m'appelle Alain Kalombo, je suis un développeur d'application, j'évolue avec le langage c, php.
ça fait un bout de temps que j'essaie de développer une application SSL/TLS, mais la documentation me laisse
un peu perplexe. Je vous envoi ce mél pour chercher de l'aide, si vous recevez ce mél, s'il vous plait je compte sur votre aide.
Premièrement, j'ai un peu de complication au niveau de l'authentification des fragments SSL/TLS, là il y a la fonction d'expansion et la fonction MAC(secret, germe) pour SSL et HMAC(secret, germe) pour TLS. Pour ce qui est de ces deux fonctions, il y a d'autres éléments qui entre en action que je ne comprend pas l'utilisation, je cite :
P_hash(secret, germe) = HMAC_hash(secret, A(1) + germe) + HMAC_hash(secret, A(2) + germe) +
HMAC_hash(secret, A(3) + germe) + ...
où + indique l'enchaînement.
A() est défini comme :
A(0) = germe
A(i) = HMAC_hash(secret, A(i-1))
Aussi, la fonction pseudo aléatoire :
PRF(secret, étiquette, germe) = P_MD5(S1, étiquette + germe) XOR P_SHA-1(S2, étiquette + germe) ;
Ici, il y a la variable étiquette qui intervient, je ne comprend pas son utilité et son utilisation, si vous pouvez m'apporter des précisions, je vous serais reconnaissant.
Et pour finir, j'ai encore quelques lacunes au niveau de la génération des clés :
key_block = PRF(SecurityParameters.master_secret, "key expansion", SecurityParameters.server_random +
SecurityParameters.client_random);
jusqu'à ce que suffisamment de résultat ait été généré. Puis le key_block est partagé comme suit :
client_write_MAC_secret[SecurityParameters.hash_size]
server_write_MAC_secret[SecurityParameters.hash_size]
client_write_key[SecurityParameters.key_material_length]
server_write_key[SecurityParameters.key_material_length]
client_write_IV[SecurityParameters.IV_size]
server_write_IV[SecurityParameters.IV_size]
Là aussi, il y a la variable "key expansion" qui entre en jeu , ma préoccupation est de savoir si "key expansion" a une valeur déjà établie ou sa valeur est déterminée dans l'échange entre l'application client et l'application serveur.
S'il vous plait, je compte sur votre aide, et merci d'avance.
Partager