سؤال

أتساءل عما إذا كان يمكنني استخدام مفتاح سري مشترك تم إنشاؤه بين عميلين كمفتاح 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). هذا يطلب مشكلة وفكرة سيئة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top