L'utilisation d'une clé pour le chiffrement et HMAC
-
21-09-2019 - |
Question
Je me demande si je peux utiliser une clé secrète partagée établie entre deux clients trop la clé HMAC.
J'ai vu qu'il ya un problème quand il est utilisé comme CBC-MAC, mais je n'ai trouvé aucune preuve qu'il est une mauvaise pratique pour HMAC.
Merci, Vladimir
La solution
Je crois qu'il est actuellement dans la catégorie des « semble probablement OK, mais pourquoi prendre le risque? ».
Les meilleures pratiques est d'avoir chaque côté générer deux nouvelles clés de la clé secrète partagée:
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
Autres conseils
éludé à café. L'une des bonnes façons de le faire est de hachage la clé secrète partagée avec des données supplémentaires.
Par exemple:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
Ceci a l'avantage de ne pas avoir besoin de transférer 2 nonces supplémentaires ainsi que d'être facile à mettre en œuvre.
Je ne voudrais pas utiliser la même clé dans différentes fonctions (+ enc HMAC). Cela est d'avoir des ennuis et une mauvaise idée.