9.5. Pre-Shared Key Recommendations (Recommandations pour les clés pré-partagées)
9.5. Recommandations pour les clés pré-partagées
Dans les modes PSK et AuthPSK, le PSK DOIT avoir au moins 32 octets d'entropie et DEVRAIT avoir une longueur de Nh octets ou plus. L'utilisation d'un PSK de plus de 32 octets mais de moins de Nh octets est autorisée.
HPKE est spécifié pour utiliser HKDF comme fonction de dérivation de clé. HKDF n'est pas conçu pour ralentir les attaques par dictionnaire (voir [RFC5869]). Ainsi, le mécanisme PSK de HPKE ne convient pas pour une utilisation avec un mot de passe à faible entropie comme PSK : Dans les scénarios où l'adversaire connaît le secret partagé KEM shared_secret et a accès à un oracle qui distingue entre un bon et un mauvais PSK, il peut effectuer des attaques de récupération de PSK. Cet oracle peut être l'opération de déchiffrement sur un texte chiffré HPKE capturé ou tout autre comportement du destinataire qui est observablement différent lors de l'utilisation d'un mauvais PSK. L'adversaire connaît le secret partagé KEM shared_secret s'il connaît toutes les clés privées KEM d'un participant. Dans le mode PSK, c'est trivialement le cas si l'adversaire agit en tant qu'expéditeur.
Pour récupérer un PSK à plus faible entropie, un attaquant dans ce scénario peut trivialement effectuer une attaque par dictionnaire. Étant donné un ensemble S de valeurs PSK possibles, l'attaquant génère un texte chiffré HPKE pour chaque valeur dans S, et soumet les textes chiffrés résultants à l'oracle pour apprendre quel PSK est utilisé par le destinataire. De plus, comme HPKE utilise des schémas AEAD qui ne sont pas key-committing, un attaquant peut monter une attaque par oracle de partitionnement [LGR20] qui peut récupérer le PSK d'un ensemble de S valeurs PSK possibles, avec |S| = m*k, en environ m + log k requêtes à l'oracle en utilisant des textes chiffrés de longueur proportionnelle à k, la longueur maximale du message en blocs. (L'application de l'algorithme multi-collision de [LGR20] nécessite une petite adaptation de l'algorithme où le nonce approprié est calculé pour chaque clé candidate. Cette modification ajoute un appel à HKDF par clé. Le nombre de requêtes d'oracle de partitionnement reste inchangé.) En conséquence, le PSK doit donc être choisi avec une entropie suffisante pour que m + log k soit prohibitif pour les attaquants (par exemple, 2^128). Les spécifications futures peuvent définir de nouveaux algorithmes AEAD qui sont key-committing.