باستخدام مفتاح واحد للتشفير و HMAC
-
21-09-2019 - |
سؤال
أتساءل عما إذا كان يمكنني استخدام مفتاح سري مشترك تم إنشاؤه بين عميلين كمفتاح HMAC أيضًا.
رأيت أن هناك مشكلة عند استخدامها كـ CBC-MAC لكنني لم أجد أي دليل على أنها ممارسة سيئة لـ HMACs.
شكرا ، فلاديمير
المحلول
أعتقد أنه موجود حاليًا في فئة "ربما يبدو على ما يرام ، ولكن لماذا تحمل المخاطر؟".
أفضل الممارسات هي جعل كل جانب يولد مفتاحين جديدين من المفتاح السري المشترك:
encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")
نصائح أخرى
كما تلاشى CAF ل. واحدة من الطرق الصحيحة للقيام بذلك هي تجزئة مفتاح السرية المشتركة مع بعض البيانات الإضافية.
علي سبيل المثال:
enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)
هذا له فائدة من عدم الحاجة إلى نقل 2 غير إضافيين بالإضافة إلى أن يكون من السهل تنفيذها.
لن أستخدم نفس المفتاح في وظائف مختلفة (ENC + HMAC). هذا يطلب مشكلة وفكرة سيئة.
لا تنتمي إلى StackOverflow