التشفير المصدق عليه مع البيانات المرتبطة (AEAD)

يُعدّ التشفير المصادَق عليه مع البيانات المرتبطة (AEAD) هو الأكثر شيوعًا لتشفير البيانات وهو مناسب لمعظم الاحتياجات.

تتضمّن AEAD السمات التالية:

  • Secrecy: لا يمكن معرفة أي معلومات عن النص العادي باستثناء طوله.
  • الموثوقية: من المستحيل تغيير النص العادي المشفّر الذي يستند إليه النص المشفّر بدون أن يتم رصد ذلك.
  • التشفير المتماثل: يتم تشفير النص العادي وفك تشفير النص المشفّر باستخدام المفتاح نفسه.
  • التوزيع العشوائي: يتم تشفير البيانات بشكل عشوائي. رسالتان لهما نفس النص العادي تنتجان نصوصًا مشفرة مختلفة. لا يمكن للمهاجمين معرفة النص المشفّر الذي يتوافق مع نص عادي معيّن. إذا أردت تجنُّب ذلك، استخدِم AEAD الحتمية بدلاً من ذلك.

البيانات المرتبطة

يمكن استخدام AEAD لربط النص المشفّر ببيانات مرتبطة محدّدة. لنفترض أنّ لديك قاعدة بيانات تتضمّن الحقلَين user-id وencrypted-medical-history. في هذا السيناريو، يمكن استخدام user-id كبيانات مرتبطة عند تشفير encrypted-medical-history. يمنع ذلك المهاجم من نقل السجلّ الطبي من مستخدم إلى آخر.

البيانات المرتبطة اختيارية. في حال تحديدها، لا ينجح فك التشفير إلا إذا تم تمرير البيانات المرتبطة نفسها إلى كل من طلبات التشفير وفك التشفير.

اختيار نوع المفتاح

على الرغم من أنّنا ننصح باستخدام AES128_GCM لمعظم الاستخدامات، هناك أنواع مختلفة من المفاتيح لتلبية الاحتياجات المختلفة. يوفّر معيار AES128 مستوى أمان 128 بت، بينما يوفّر معيار AES256 مستوى أمان 256 بت.

في ما يلي قيود الأمان البارزة عند اختيار وضع:

  1. الأسئلة الشائعة: كم عدد الرسائل التي يتم تشفيرها باستخدام المفتاح نفسه؟
  2. حجم الرسالة: ما هو حجم الرسائل؟

أنواع المفاتيح المتوافقة:

  • يُعدّ AES-CTR-HMAC (AES128_CTR_HMAC_SHA256 وAES256_CTR_HMAC_SHA256) مع متّجه تهيئة (IV) يبلغ 16 بايت الوضع الأكثر أمانًا مع حدود جيدة.
    • Key-committing.
  • تكون خوارزمية AES-EAX (AES128_EAX وAES256_EAX) أقل تحفظًا وأسرع قليلاً من AES128_CTR_HMAC_SHA256.
    • عدم الالتزام بمفتاح MLGR
  • يُعدّ وضع AES-GCM ‏ (AES128_GCM وAES256_GCM) عادةً أسرع وضع مع فرض قيود صارمة على عدد الرسائل (232) وحجم الرسالة (64 غيغابايت تقريبًا لكل رسالة). عند تجاوز هذه الحدود، يتعطّل معيار AES-GCM بشكل كارثي من خلال تسريب النص العادي وجزء المصادقة من المفتاح الداخلي لمعيار AES-GCM.
    • لا يتّسم معيار AES-GCM بالمتانة [ABN] ولا بإمكانية الالتزام بالمفتاح [GLR]. من الممكن إنشاء نص مشفّر يمكن فك تشفيره باستخدام مفتاحَين مختلفَين. ويمكن أن يؤدي ذلك إلى هجمات عملية [DGRW]. يُرجى مراجعة نموذج التهديد بعناية إذا اختار الخصم المفتاح.
  • تتسم خوارزمية AES-GCM-SIV (AES128_GCM_SIV وAES256_GCM_SIV) [RFC8452] بمقاومتها لإساءة الاستخدام العرضية للرقم الخاص، كما أنّها تقريبًا بنفس أداء خوارزمية AES-GCM. إنّ الحدود القصوى لعدد الرسائل وحجمها في AES-GCM-SIV مع متجهات الإعداد العشوائية أعلى بكثير من حدود AES-GCM. عند تجاوز هذه الحدود، يكون فشل AES-GCM-SIV أقل كارثية: فهو يسرّب فقط أنّ رسالتين متساويتان. يُعدّ AES-GCM-SIV أكثر أمانًا في الاستخدام، ولكنه أقل استخدامًا من الناحية العملية.
    • حدود الأرقام العشوائية غير المتكررة:
      • ‫232 رسالة، حيث يبلغ الحد الأقصى لحجم كل نص عادي 8 غيغابايت
      • ‫248 رسالة، حيث يبلغ حجم كل نص عادي 32 ميغابايت كحد أقصى
      • ‫264 رسالة، حيث يبلغ حجم كل نص عادي 128 كيلوبايت كحد أقصى
    • لاستخدامها في Java، عليك تثبيت Conscrypt.
    • لا يتم استخدام مفتاح الالتزام ADGKLS.
  • يفرض XChaCha20-Poly1305 (XCHACHA20_POLY1305) حدًا أقصى أكبر بكثير على عدد الرسائل وحجمها مقارنةً بـ AES-GCM، ولكن في حال حدوث خطأ (وهو أمر غير محتمل)، يؤدي ذلك أيضًا إلى تسريب مواد المفتاح. لا يتم تسريع الأجهزة، لذا يمكن أن يكون أبطأ من أوضاع AES في الحالات التي يتوفّر فيها تسريع الأجهزة.
    • LGR غير ملتزم بالمفتاح

يمكنك الاطّلاع على مزيد من المعلومات حول تنسيق النقل لنص AEAD المشفّر.

ضمانات الأمان

توفّر عمليات تنفيذ AEAD ما يلي:

  • أمان CCA2
  • قوة مصادقة لا تقل عن 80 بت
  • القدرة على تشفير ما لا يقل عن 232 رسالة بإجمالي 250 بايت. لا يمكن لأي هجوم باستخدام ما يصل إلى 232 من النصوص العادية المحدّدة أو النصوص المشفّرة المحدّدة أن يحقّق احتمال نجاح أكبر من 2-32.

أمثلة على حالات الاستخدام

أريد تشفير البيانات وربط النص المشفّر بسياقه.