Aller au contenu

PRK : Pseudorandom Key

Gestion des clés

PRK : Pseudorandom Key, clé pseudo-aléatoire produite par l'étape d'extraction de HKDF. « Le secret enfin présentable, uniforme et de longueur fixe, qui n'est toujours pas destiné à chiffrer quoi que ce soit », par analogie avec une pâte mère dont on prélève des portions sans jamais la servir telle quelle.

Calcul : Selon la RFC 5869, PRK = HMAC-Hash(sel, IKM). Sa longueur est celle de la sortie de la fonction de hachage, 32 octets avec SHA-256. En l'absence de sel, la RFC prévoit une chaîne de zéros de cette même longueur.

Usage : Le PRK sert de clé à l'étape d'expansion : OKM (Output Keying Material) = HKDF-Expand(PRK, info, L), avec L au plus égal à 255 fois la longueur du haché. Chaque valeur d'info donne une sous-clé indépendante ; le PRK lui-même ne sert ni à chiffrer ni à authentifier.

Raccourci : Lorsque l'IKM est déjà une clé uniforme et forte, la RFC 5869 admet de sauter l'extraction et de l'utiliser directement comme PRK. Le faire avec un secret Diffie-Hellman, qui n'est pas uniforme, n'entre pas dans ce cas.

Secret : Le PRK est aussi sensible que toutes les clés qui en dérivent : qui le connaît recalcule toutes les sous-clés. Il doit être effacé de la mémoire dès les dérivations faites.

Ce qui arrive si on s'en passe

Utiliser le PRK directement pour chiffrer, ou pour plusieurs usages à la fois, supprime la séparation que l'expansion devait apporter : une seule clé sert alors dans les deux sens de communication et pour l'authentification, ce qui ouvre la porte aux attaques croisées et fait qu'une fuite compromet tout. Le laisser traîner en mémoire après usage expose de même toutes les sous-clés. Dériver chaque clé par HKDF-Expand avec une étiquette distincte, puis effacer le PRK, évite les deux écueils.

Explication de la marmotte

Le PRK est une étape intermédiaire dans la fabrication des clés. On part d'un secret brut, on le mélange avec l'outil HKDF, et on obtient une clé bien régulière : c'est le PRK. On ne s'en sert pas directement. On en tire plusieurs clés différentes, une pour chaque usage, en ajoutant chaque fois une étiquette. Comme toutes ces clés viennent de lui, il doit rester secret et être effacé dès qu'on n'en a plus besoin.

Où ce terme est utilisé

← Tout le glossaire