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

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

تتّسم أداة AEAD بالخصائص التالية:

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

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

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

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

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

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

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

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

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

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

مزيد من المعلومات حول تنسيق النقل السلكي للنص المشفر في أداة AEAD

الضمانات الأمنية

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

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

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

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