الخلاصة

  • يحدد DigestAlgorithmIdentifier داخل MacData استخدام PBMAC1 ويحمل معاملات اشتقاق المفتاح وMAC معاً.
  • يمثل PBKDF2 مع HMAC-SHA-256، وkeyLength الصريح، وبايتات كلمة المرور UTF-8 المباشرة خط الأساس.
  • تحدد RFCs البنية والتحقق، لكنها لا تثبت دعماً شاملاً أو اعتماد منتج أو ملاءمة أمنية لكل نموذج تهديد.

حدّ السلامة في PFX هو MAC المحسوب على محتوى authSafe. في وضع PBMAC1، تحدد المعاملات المتداخلة في DigestAlgorithmIdentifier داخل MacData، على نحو منفصل، دالة اشتقاق المفتاح المعتمدة على كلمة المرور ومخطط مصادقة الرسالة. لذلك يجب التعامل مع هذه المعاملات بوصفها مدخلات أمنية، لا استنتاجها من الحقول القديمة.

يتجاهل RFC 9879 حقلي macSalt وiterations القديمين في MacData عند معالجة PBMAC1. ومع ذلك، يُنصح الكتّاب بترميز قيم غير فارغة وغير صفرية كي تجتاز الملفات الفحوص الأولية لدى بعض البرمجيات التي تتحقق من البنية القديمة قبل قراءة المعرّف. ولا يجعل ذلك الحقلين مدخلين فعليين لـ PBMAC1. فاستعمالهما كملح أو عدد تكرارات معتمد سيؤدي إلى اشتقاق مختلف.

يجب أن تدعم البرمجيات PBKDF2 باستخدام HMAC-SHA-256. وينبغي أن تتضمن معاملات PBKDF2 قيمة keyLength صريحة؛ ولا يجوز قبول غيابها أو اختراع قيمة ضمنية لها. تُحوّل كلمة المرور مباشرة إلى بايتات UTF-8، من دون محرف صفري نهائي أو BOM. وتختلف هذه القاعدة عن تمثيل كلمة المرور التقليدي في PKCS #12، لذلك لا يصح استخدام الترميز القديم عند الانتقال إلى PBMAC1.

اختيار KDF واختيار MAC مستقلان. يجب التحقق من معرّفات الخوارزميات ومعاملاتها وأطوال المفاتيح. لا يُنصح بـ HMAC-SHA-1، وتُحظر في PBMAC1 خوارزميات الملخص التي يبلغ خرجها 160 بت أو أقل. كما يُستحسن رفض مفتاح مشتق أقصر من 20 بايتًا. هذه ضوابط امتثال، وليست وعداً بأن كلمة المرور الضعيفة أصبحت قوية، ولا تمنح سرية؛ فالموضوع هو حماية السلامة.

scrypt خيار اختياري. وعند قبوله يجب التحقق من معاملاته ومن كلفته من حيث الذاكرة والحساب والتوازي والحدود الزمنية. لا تحدد RFC كلفة مناسبة لكل بيئة أو نموذج تهديد، كما لا تثبت أن البرمجيات المنشورة التي تتعامل مع PKCS #12 تدعم PBMAC1.

يجب تنسيق الانتقال بين منتجي الملفات وقارئيها. ينشئ المنتج معاملات PBMAC1 المتداخلة، وقيمة keyLength صريحة، وبايتات UTF-8 المباشرة، وخيارات خوارزمية مسموحة. ويمكنه إبقاء الحقول القديمة غير الفارغة لأغراض التوافق فقط، لا بوصفها مدخلات أمنية لـ PBMAC1. أما القارئ فيتحقق قبل الاشتقاق، ويرفض القيم الناقصة أو الضعيفة أو ذات الكلفة غير المحدودة. وينبغي أن يكون قبول البنية القديمة محدوداً ومرصوداً ومقترناً بمعيار واضح لإيقافه.

المصادر