Mit einem Schlüssel für die Verschlüsselung und HMAC
-
21-09-2019 - |
Frage
Ich frage mich, ob ich zwischen zwei Kunden als HMAC-Schlüssel festgelegt zu einem gemeinsamen geheimen Schlüssel verwenden kann.
Ich sah, dass es ein Problem ist, wenn es als CBC-MAC verwendet wird, aber ich habe festgestellt, keine Beweise sie schlechte Praxis für HMACs.
Danke, Vladimir
Lösung
Ich glaube, es ist derzeit in der Kategorie „scheint wahrscheinlich OK, aber warum das Risiko eingehen?“.
Aus der Praxis ist jede Seite erzeugt zwei neue Schlüssel aus dem gemeinsamen geheimen Schlüssel haben:
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
Andere Tipps
Als caf zu entzog. Eine der richtigen Art und Weise, dies zu tun ist, um den Shared-Secret-Key mit einigen zusätzlichen Daten Hash.
Beispiel:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
Dies hat den Vorteil, um nicht mehr als 2 zusätzliche Nonces zu übertragen und so einfach zu sein zu implementieren.
ich würde den gleichen Schlüssel in verschiedenen Funktionen (enc + hmac). Das heißt für Probleme und eine schlechte Idee zu fragen.