مولد البتات العشوائية الحتمي ذو المنحنيين الإهليلجيين

**ثنائي_EC_DRBG** ( **مولد البتات العشوائية ذو المنحنى الإهليلجي المزدوج** )  هي خوارزمية تم تقديمها كمولد أرقام عشوائية زائفة آمنة تشفيريًا (CSPRNG) باستخدام طرق في تشفير المنحنى الإهليلجي .على الرغم من الانتقادات العلنية الواسعة التي طالته، والتي تضمنت إشارة صريحة إلى احتمال قيام وكالة الأمن القومي بوضع بابًا خلفيًا في أحد التطبيقات الموصى بها، فقد ظل هذا التطبيق لمدة سبع سنوات واحدًا من أربعة مولدات أرقام عشوائية مشفرة آمنة (CSPRNG) موحدة في منشور NIST SP 800-90A الذي نُشر في الأصل حوالي يونيو/حزيران 2006، إلى أن تم سحبه في عام 2014.

## نقطة ضعف: باب خلفي محتمل
كانت الثغرات الأمنية التشفيرية في الخوارزمية معروفة جيدًا وانتقدت علنًا قبل فترة طويلة من أن تصبح جزءًا من معيار رسمي معتمد من قبلالمعهد الامريكي للمعايير الوطنية وISO المنظكة الدوليه للمعايير ، وقبلهما من قبل المعهد الوطني للمعايير والتكنولوجيا (NIST). وكان من بين نقاط الضعف التي تم الكشف عنها علنًا احتمال احتواء الخوارزمية على باب خلفي تشفيري يخدم مصالح من لديهم علم به - وتحديدًا وكالة الأمن القومي التابعة التابعة للحكومة الأمريكية (NSA) - دون غيرهم. في عام 2013، ذكرت *صحيفة نيويورك تايمز* أن الوثائق التي بحوزتهم ولكن لم يتم الكشف عنها للعامة "تبدو وكأنها تؤكد" أن الباب الخلفي كان حقيقيا، وأنه تم إدخاله عمدا من قبل وكالة الأمن القومي كجزء من برنامج فك التشفير الخاص بها في بولران . في ديسمبر 2013، نشرت وكالة رويترز مقالًا إخباريًا زعمت فيه أنه في عام 2004، وقبل أن يعتمد المعهد الوطني للمعايير والتكنولوجيا معيار Dual_EC_DRBG، دفعت وكالة الأمن القومي مبلغ 10 ملايين دولار لشركة RSA Security في صفقة سرية لجعل Dual_EC_DRBG الإعداد الافتراضي في مكتبة التشفير RSA BSAFE. ونتيجة لذلك، أصبحت RSA Security الموزع الأهم للخوارزمية التي يُنظر إليها على أنها غير آمنة. وفي ردها، "نفت بشكل قاطع" شركة RSA تواطؤها مع وكالة الأمن القومي الأمريكية لتبني خوارزمية كانت معروفة بعيوبها، لكنها صرحت أيضًا بأنها "لم تحافظ أبدًا على سرية علاقتها [مع وكالة الأمن القومي]".

قبل وقت ما من أول نشر معروف له في عام 2004، تم الكشف عن وجود باب خلفي محتمل للقيام بعمليات سرقة باستخدام تصميم Dual_EC_DRBG. تميز تصميم Dual_EC_DRBG بخاصية فريدة تجعل من المستحيل نظريًا على أي شخص باستثناء مصممي Dual_EC_DRBG (أي وكالة الأمن القومي الأمريكية) تأكيد وجود هذا الباب الخلفي. وبعد فترة وجيزة من توحيد المعيار، استنتج بروس شناير أن الباب الخلفي الذي وصفه بأنه "واضح إلى حد ما" (بالإضافة إلى عيوب أخرى) سيؤدي إلى عزوف الجميع عن استخدام Dual_EC_DRBG. وكان هذا الباب الخلفي سيمكن وكالة الأمن القومي من فك تشفير اتصالات SSL/TLS على سبيل المثال التي تستخدم Dual_EC_DRBG كمولد أرقام عشوائية مشفر آمن (CSPRNG).

كان أعضاء مجموعة معايير ANSI الذين قُدمت إليهم خوارزمية Dual_EC_DRBG في البداية على علم بالآلية الدقيقة للباب الخلفي المحتمل وكيفية تعطيله  ، لكنهم لم يختاروا تعطيل هذا الباب الخلفي أو الكشف عن هذه المعلومات. ولم يكن مجتمع التشفير العام على دراية بالباب الخلفي المحتمل في البداية، حتى نشر دان شومو ونيلز فيرجسون ، أو حتى تم الكشف عن طلب براءة الاختراع الذي قدمه دانيال آر إل براون وسكوت فانستون من شركة سيرتيكوم في عام 2005 والذي يصف آلية عمل الباب الخلفي.

في سبتمبر 2013، ذكرت *[[نيويورك تايمز|صحيفة نيويورك تايمز]]* أن المذكرات الداخلية لوكالة الأمن القومي التي سربها إدوارد سنودن أشارت إلى أن وكالة الأمن القومي عملت أثناء عملية التوحيد القياسي لتصبح في النهاية المحرر الوحيد لمعيار Dual_EC_DRBG،  وخلصت إلى أن معيار Dual_EC_DRBG يحتوي بالفعل على باب خلفي لوكالة الأمن القومي. وفي معرض رده على ذلك، أكد المعهد الوطني للمعايير والتكنولوجيا أنه "لن يضعف معايير التشفير عمدًا". ولكن، وفقًا لتقرير نشرته صحيفة نيويورك تايمز، كانت وكالة الأمن القومي تنفق مبلغًا قدره 250 مليون دولار سنويًا لإدخال أبواب خلفية في البرامج والأجهزة كجزء من برنامج يُعرف باسم برنامج Bullrun. وقد أوصت لجنة استشارية رئاسية شُكلت لاحقًا للتحقيق في ممارسات وكالة الأمن القومي، من بين توصيات أخرى، بأن "تدعم الحكومة الأمريكية بشكل كامل الجهود الرامية إلى وضع معايير تشفير قوية، وأن تمتنع عن تقويض هذه الجهود" .

في الحادي والعشرين من أبريل عام 2014، قام المعهد الوطني للمعايير والتكنولوجيا بسحب خوارزمية Dual_EC_DRBG من مسودة إرشاداته المتعلقة بمولدات الأرقام العشوائية، ونصح "المستخدمين الحاليين لـ Dual_EC_DRBG بالتحول إلى إحدى الخوارزميات الثلاث المعتمدة المتبقية في أقرب فرصة ممكنة".

## الجدول الزمني لـ Dual_EC_DRBG

## وصف

### ملخص
تعتمد الخوارزمية على عدد صحيح واحد، s، يمثل حالتها. وعند كل طلب لرقم عشوائي جديد، يتم تحديث قيمة هذا العدد الصحيح. ويتم تحديد الحالة في الخطوة k+1 بالعلاقة:

: 
s_{k} = g_P(s_{k-1})


العدد الصحيح العشوائي r الذي يتم إرجاعه هو دالة للحالة الحالية. ويُعبر عن الرقم العشوائي في الخطوة k بالصيغة:

: 
r_k = g_Q(s_{k})


تعتمد الدالة gP(x) على نقطة ثابتة P على المنحنى الإهليجي. وبالمثل، فإن الدالة gQ(x) مشابهة لها تمامًا ولكنها تستخدم نقطة أخرى ثابتة Q. وتظل النقطتان P و Q ثابتتين لتنفيذ معين للخوارزمية.

تتيح الخوارزمية استخدام ثوابت مختلفة، وأطوال إخراج متنوعة، وتخصيصات أخرى. ولغرض التبسيط، سيقتصر الوصف الوارد هنا على استخدام الثوابت المستمدة من المنحنى P-256 (وهو أحد المجموعات الثلاث من الثوابت المتاحة) وسيكون له طول إخراج ثابت. تعمل الخوارزمية حصريًا على حقل نهائي أولي \mathrm{F}_p ( \mathbb{Z}/p\mathbb{Z} ), حيث  هو عدد أولي. الحالة والبذرة والأرقام العشوائية كلها عناصر لهذا المجال. حجم الحقل هو

: p = \mathtt{ffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551}_{16}

منحنى إهليلجي على \mathrm{F}_p يتم اعطاء

: 
y^2= x^3- 3x + b


حيث الثابت  هو

: b = \mathtt{5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b}_{16}


النقاط تقع على المنحنى E(\mathrm{F}_{p}). ويتم اختيار نقطتين من هذه النقاط لتكونا النقطتين الثابتتين P و Q.

: P, Q \in E(\mathrm{F}_p)

إحداثياتهم هي

تُستخدم دالة لاستخراج إحداثيات x، حيث تقوم هذه الدالة بتحويل نقاط المنحنى الإهليجي إلى عناصر تنتمي إلى المجال المحدد.

: X(x,y) = x

يتم اقتطاع الأعداد الصحيحة الناتجة قبل إخراجها

: 
g_P(x) = X(P^x)

: 
g_Q(x) = t(X(Q^x))


الدالتان gP و gQ تقومان برفع النقاط الثابتة إلى قوة. وفي هذا السياق، يعني مصطلح "الرفع إلى قوة" استخدام العملية الخاصة المعرّفة للنقط على المنحنيات الإهليلجي .

: 
s_1 = g_P(\text{seed})


يتم تزويد المولد بعنصر من \mathrm{F}_p

: 
s_{k} = g_P(s_{k-1})

: 
r_k = g_Q(s_{k})


الحالة  والرقم العشوائي

الأرقام العشوائية

: 
r_1, r_2, \ldots


## حماية
الغرض المذكور من تضمين Dual_EC_DRBG في NIST SP 800-90A هو أن أمانه يعتمد على افتراضات الصلابة الحسابية من نظرية الأعداد. يمكن بعد ذلك إثبات تخفيض الأمان الرياضي لإثبات أنه طالما كانت مسائل النظرية العددية صعبة، فإن مولد الأرقام العشوائية نفسه آمن. ومع ذلك، لم ينشر صانعو Dual_EC_DRBG تخفيضًا أمنيًا لـ Dual_EC_DRBG، وقد ثبت بعد فترة وجيزة من نشر مسودة NIST أن Dual_EC_DRBG لم يكن آمنًا بالفعل، لأنه ينتج عددًا كبيرًا جدًا من البتات في كل جولة. ننننن إن إخراج عدد كبير جدًا من البتات (بالإضافة إلى الاختيار الدقيق لنقطتي المنحنى الإهليجي P و Q) هو العامل الذي يجعل الباب الخلفي لوكالة الأمن القومي ممكنًا. ذلك لأنه يسمح للمهاجم بعكس عملية الاقتطاع من خلال تجربة جميع الاحتمالات الممكنة (القوة الغاشمة). ولم يتم معالجة مشكلة الإخراج الكبير للبتات في المعيار النهائي المنشور، مما جعل خوارزمية Dual_EC_DRBG غير آمنة وعرضة للاختراق.

في العديد من المعايير الأخرى، يتم اختيار الثوابت التي من المفترض أن تكون تعسفية من خلال مبدأ *الأرقام "لا شيء في جعبتي"* ، حيث يتم اشتقاقها من باي أو الثوابت الرياضية المماثلة بطريقة تترك مجالًا صغيرًا للتعديل. ومع ذلك، لم يحدد Dual_EC_DRBG كيفية اختيار الثوابت الافتراضية *P* و *Q* ، ربما لأنها تم إنشاؤها بواسطة NSA لتكون من الخلف. نظرًا لأن لجنة المعايير كانت على دراية بإمكانية وجود باب خلفي، فقد تم تضمين طريقة للمنفذ لاختيار *P* و *Q* الآمن الخاص به. ولكن الصياغة الدقيقة في المعيار كانت مُعدة بحيث أن استخدام قيم P و Q المُشتبه في ارتباطهما بالباب الخلفي كان ضروريًا لاجتياز اختبار التحقق من صحة

FIPS 140-2. ونتيجة لذلك، اختار مشروع OpenSSLاوين إس إس إل تنفيذ قيم P و Q تلك، على الرغم من علمهم بالباب الخلفي المحتمل وتفضيلهم إنشاء قيم P و Q آمنة خاصة بهم. وفي وقت لاحق، ذكرت صحيفة نيويورك تايمز أن وكالة الأمن القومي عملت خلال عملية التوحيد القياسي لتصبح في النهاية الجهة الوحيدة المحررة للمعيار.

تم نشر دليل أمان لاحقًا لـ Dual_EC_DRBG بواسطة Daniel RL Brown وKristian Gjøsteen، والذي يوضح أن نقاط المنحنى الإهليلجي المولدة لا يمكن تمييزها عن نقاط المنحنى الإهليلجي العشوائية المنتظمة، وإذا تم إخراج عدد أقل من البتات في اقتطاع الإخراج النهائي، وإذا كانت نقطتا المنحنى الإهليلجي *P* و *Q* مستقلتين، فإن Dual_EC_DRBG آمن. اعتمد الدليل على افتراض أن ثلاث مشكلات كانت صعبة: احقًا، نشر دانيال آر إل براون وكريستيان جيستين دليلًا أمنيًا لخوارزمية Dual_EC_DRBG، أوضحا فيه أن نقاط المنحنى الإهليجي المولدة لا يمكن تمييزها عن نقاط المنحنى الإهليجي العشوائية المنتظمة. وأشارا إلى أن Dual_EC_DRBG ستكون آمنة إذا تم إخراج عدد أقل من البتات في عملية اقتطاع الإخراج النهائي، وإذا كانت نقطتا المنحنى الإهليجي P و Q مستقلتين عن بعضهما البعض. وقد استند هذا الدليل على افتراض صعوبة ثلاث مشكلات:*افتراض ديفي-هيلمان القراري* (والذي يُقبل عمومًا على أنه صعب)، ومشكلتان أحدث وأقل شهرة لا يُقبل عمومًا على أنهما صعبتان: *مشكلة النقطة المقطوعة* ، *ومشكلة اللوغاريتم x* . كانت خوارزمية Dual_EC_DRBG بطيئة للغاية مقارنة بالعديد من مولدات الأرقام العشوائية المشفرة الآمنة (CSPRNGs) البديلة (التي لا تتضمن تخفيضات في مستوى الأمان ). ومع ذلك، يرى دانيال آر إل براون أن هذا التخفيض في الأمان يجعل Dual_EC_DRBG البطيئة بديلاً مقبولًا (بافتراض أن المنفذين يقومون بتعطيل الباب الخلفي الواضح).

يُفترض أن الباب الخلفي الذي زرعته وكالة الأمن القومي يمكّن المهاجم من تحديد الحالة الداخلية لمولد الأرقام العشوائية بمجرد فحص ناتج دورة واحدة (32 بايت). وبناءً على ذلك، يصبح من السهل حساب جميع النواتج المستقبلية للمولد، وذلك حتى يتم تزويد مولد الأرقام العشوائية المشفرة الآمنة (CSPRNG) بمصدر عشوائية خارجي جديد. ويترتب على ذلك، على سبيل المثال، جعل بروتوكول SSL/TLS عرضة للخطر، نظرًا لأن عملية إعداد اتصال TLS تتضمن إرسال رمز تشفير عشوائي يتم إنشاؤه بشكل واضح. ويعتمد الباب الخلفي المزعوم لوكالة الأمن القومي على معرفتهم بقيمة عدد صحيح فردي e بحيث تتحقق المعادلة eQ=P.

تُعد هذه مشكلة صعبة إذا تم تحديد *P* و *Q* مسبقًا، ولكنها أسهل إذا تم اختيار *P* و *Q.*  *e* هو مفتاح سري من المفترض أنه معروف فقط لوكالة الأمن القومي، والباب الخلفي المزعوم هو باب خلفي مخفي غير متماثل . تحتوي تدوينة ماثيو جرين بعنوان *العيوب العديدة في Dual_EC_DRBG*  على شرح مبسط لكيفية عمل الباب الخلفي المزعوم لوكالة الأمن القومي من خلال استخدام مخطط السجل المنفصل المقدم في Crypto 1997.

## التوحيد القياسي والتنفيذ
قدمت وكالة الأمن القومي الأمريكية (NSA) خوارزمية Dual_EC_DRBG للمرة الأولى في معيار ANSI X9.82 DRBG في أوائل العقد الأول من القرن الحادي والعشرين، وقد تضمنت نفس المعلمات التي يُزعم أنها أنشأت الباب الخلفي، وتم نشر Dual_EC_DRBG في مسودة معيار ANSI.

وفقًا لجون كيلسي (الذي تم إدراجه مع إيلين باركر كمؤلف لـ NIST SP 800-90A)،ننننن لقد أثيرت إمكانية وجود باب خلفي مرتبط بالاختيار الدقيق للنقطتين P و Q خلال اجتماع فريق عمل ANSI X9F1 للمعايير والإرشادات الخاصة بالأدوات. وعندما استفسرت كيلسي دون جونسون من شركة سيجناكوم عن مصدر النقطة Q، أجاب جونسون في رسالة بريد إلكتروني بتاريخ 27 أكتوبر 2004 إلى كيلسي بأن وكالة الأمن القومي قد منعت إجراء مناقشة عامة حول توليد نقطة Q بديلة لتلك التي قدمتها وكالة الأمن القومي نفسها.

كان اثنان على الأقل من أعضاء مجموعة معايير وإرشادات أداة ANSI X9F1 التي كتبت ANSI X9.82، Daniel RL Brown وScott Vanstone من Certicom ،  على دراية بالظروف الدقيقة والآلية التي قد يحدث بها الباب الخلفي، حيث قدما طلب براءة اختراع  في يناير 2005 حول كيفية إدخال الباب الخلفي أو منعه في DUAL_EC_DRBG.نننننن إن آلية عمل "باب المصيدة" الموصوفة في براءة الاختراع تتطابق تمامًا مع الآلية التي تم تأكيد وجودها لاحقًا في خوارزمية Dual_EC_DRBG. وفي عام 2014، علّق ماثيو جرين على براءة الاختراع واصفًا إياها بأنها طريقة "سلبية عدوانية" لإهانة وكالة الأمن القومي من خلال الكشف عن الباب الخلفي،  بينما انتقد في الوقت نفسه جميع أعضاء اللجنة لعدم تعطيل هذا الباب الخلفي الذي كانوا على علم واضح بوجوده. وتتضمن قائمة براءة اختراع براون وفانستون شرطين أساسيين لوجود الباب الخلفي:

1) اختيار *Q*

2) اقتطاع صغير في الناتج

وفقًا لجون كيلسي، تمت إضافة الخيار في المعيار لاختيار *Q* عشوائي يمكن التحقق منه كخيار استجابةً للباب الخلفي المشتبه به، على الرغم من أنه بطريقة لا يمكن تحقيق التحقق من صحة FIPS 140-2 إلا باستخدام *Q* المحتمل وجود باب خلفي. تكهن ستيف ماركيز (الذي ساعد في تنفيذ NIST SP 800-90A لـ OpenSSL) بأن هذا المتطلب لاستخدام النقاط المحتملة وجود باب خلفي يمكن أن يكون دليلاً على تواطؤ NIST. ليس من الواضح لماذا لم يحدد المعيار *Q* الافتراضي في المعيار كرقم تم إنشاؤه بشكل يمكن التحقق منه، أو لماذا لم يستخدم المعيار اقتطاعًا أكبر، والذي ذكرت براءة اختراع براون أنه يمكن استخدامه "كإجراء أساسي لمنع هجوم الضمان الرئيسي". كان الاقتطاع الصغير للناتج غير معتاد مقارنة بوحدات توليد الأرقام العشوائية القائمة على المنحنى الإهليجي (EC PRGs) السابقة، والتي ذكر ماثيو جرين أنها كانت تُخرج فقط ما بين نصف إلى ثلثي عدد البتات في دالة الإخراج. وفي عام 2006، أوضح جيستين أن هذا الاقتطاع المنخفض يجعل مولد الأرقام العشوائية قابلاً للتنبؤ وبالتالي غير صالح للاستخدام كمولد أرقام عشوائية مشفر آمن (CSPRNG)، حتى في حال لم يتم اختيار النقطة Q بحيث تحتوي على باب خلفي. وينص المعيار على أن التطبيقات "يجب" أن تستخدم الحد الأقصى الصغير المقدم، لكنه يمنح خيار إخراج مضاعفات أقل من 8 بتات. ويقدم الملحق ج من المعيار حجة ضعيفة مفادها أن إخراج عدد أقل من البتات سيجعل التوزيع الناتج أقل انتظامًا. ويعتمد دليل الأمان الخاص بـ براون لعام 2006 على افتراض أن طول الإخراج (outlen) أصغر بكثير من قيمة الحد الأقصى لطول الإخراج الافتراضي (max_outlen) في المعيار.

ضمّت مجموعة معايير وإرشادات أداة ANSI X9F1، التي ناقشت الباب الخلفي، ثلاثة موظفين من شركة الأمن الشهيرة RSA Security.[1] في عام 2004، نفّذت RSA Security تطبيقًا لـ Dual_EC_DRBG، والذي احتوى على الباب الخلفي لوكالة الأمن القومي (NSA) وهو CSPRNG الافتراضي في RSA BSAFE، وذلك نتيجةً لصفقة سرية بقيمة 10 ملايين دولار مع NSA. في عام 2013، وبعد أن ذكرت صحيفة نيويورك تايمز أن Dual_EC_DRBG احتوى على باب خلفي من NSA، صرّحت RSA Security بأنها لم تكن على علم بأي باب خلفي عند إبرامها الصفقة مع NSA، وطلبت من عملائها تغيير CSPRNG. في الكلمة الرئيسية لمؤتمر RSA لعام 2014، أوضح الرئيس التنفيذي لشركة RSA Security، آرت كوفيلو، أن RSA شهدت انخفاضًا في إيرادات التشفير، وقررت التوقف عن كونها "محركًا" لأبحاث التشفير المستقلة، وبدلًا من ذلك "وضع ثقتها" في المعايير والتوجيهات الصادرة عن منظمات المعايير مثل NIST.

نُشرت المسودة الأولية من وثيقة NIST SP 800-90A، التي تضمنت خوارزمية Dual_EC_DRBG، في ديسمبر 2005. ثم نُشرت النسخة النهائية من NIST SP 800-90A، والتي احتوت أيضًا على Dual_EC_DRBG، في يونيو 2006. وقد فُسرت الوثائق التي سربها إدوارد سنودن على أنها تشير إلى قيام وكالة الأمن القومي الأمريكية باختراق خوارزمية Dual_EC_DRBG. وقد استند الداعمون لهذا الادعاء إلى دور وكالة الأمن القومي خلال عملية التوحيد القياسي، والذي أفضى في النهاية إلى توليها مهمة المحرر الوحيد للمعيار. استشهدت وكالة الأمن القومي بالاستخدام المبكر لـ Dual_EC_DRBG بواسطة شركة RSA Security (الذي ورد لاحقًا أن وكالة الأمن القومي دفعت 10 ملايين دولار أمريكي مقابله سرًا) كحجة لقبول Dual_EC_DRBG في معيار NIST SP 800-90A . استشهدت شركة RSA Security لاحقًا بقبول Dual_EC_DRBG في معيار NIST كسبب لاستخدامها Dual_EC_DRBG.

أشارت ورقة دانيال آر إل براون الصادرة في مارس 2006 حول تقليل الأمان في خوارزمية Dual_EC_DRBG إلى ضرورة إجراء المزيد من اقتطاع الإخراج واختيار النقطة Q بشكل عشوائي، ولكن بشكل عابر في الغالب، ولم تذكر استنتاجاته المستخلصة من براءة الاختراع التي تشير إلى أن هذين العيبين في Dual_EC_DRBG مجتمعين يمكن استغلالهما كباب خلفي. وكتب براون في خاتمة ورقته: "لذلك، ينبغي أخذ مستقبلات ECRNG في الاعتبار، حيث تجعل كفاءتها العالية مناسبة حتى للبيئات ذات الموارد المحدودة." وتجدر الإشارة إلى أن آخرين انتقدوا Dual_EC_DRBG لكونها بطيئة للغاية؛ فقد خلص بروس شناير إلى أنها "بطيئة جدًا لدرجة أن لا أحد سيستخدمها طواعيةً"  ، بينما ذكر ماثيو جرين أن Dual_EC_DRBG "أبطأ بألف مرة" من البدائل . ولم يُعلن على نطاق واسع عن إمكانية وجود باب خلفي في Dual_EC_DRBG خارج اجتماعات المجموعة القياسية الداخلية. ولم يصبح وجود الباب الخلفي معروفاً على نطاق واسع إلا بعد العرض الذي قدمه دان شومو ونيلز فيرجسون في عام 2007. تم تكليف Shumow وFerguson بتنفيذ Dual_EC_DRBG لصالح Microsoft، وعلى الأقل ناقش Furguson الباب الخلفي المحتمل في اجتماع X9 عام 2005. ننننننننن كتب بروس شناير في مقال نُشر في مجلة Wired عام 2007 أن العيوب الموجودة في خوارزمية Dual_EC_DRBG كانت جلية لدرجة أنه من المستبعد أن يستخدمها أحد: "لا فائدة من استخدامها كباب خلفي: فهي مكشوفة وواضحة للغاية. كما أنها غير عملية من الناحية الهندسية: إنها بطيئة جدًا لدرجة أن لا أحد سيختار استخدامها طواعيةً."  ويبدو أن شناير لم يكن على علم بأن شركة RSA Security كانت تستخدم Dual_EC_DRBG كإعداد افتراضي في مكتبة BSAFE منذ عام 2004.

قامت شركة OpenSSL بتضمين جميع معايير NIST SP 800-90A، بما في ذلك Dual_EC_DRBG، استجابةً لطلب أحد العملاء. وكان مطورو OpenSSL على علم بالباب الخلفي المحتمل بسبب العرض التقديمي الذي قدمه شومو وفيرجسون، وكانوا يفضلون استخدام الطريقة المضمنة في المعيار لاختيار قيم P و Q مضمونة بأنها غير مرتبطة بالباب الخلفي. لكنهم أُبلغوا أنه للحصول على شهادة التحقق من صحة FIPS 140-2، سيتعين عليهم استخدام قيم P و Q الافتراضية. وعلى الرغم من سمعتها المشكوك فيها فيما يتعلق بالكمال، اختارت OpenSSL تنفيذ Dual_EC_DRBG، وذلك لعلمهم بأن OpenSSL تسعى إلى أن تكون شاملة وتنفذ العديد من الخوارزميات الأخرى غير الآمنة.

لم يستخدم OpenSSL Dual_EC_DRBG باعتباره CSPRNG الافتراضي، وتم اكتشاف خطأ في عام 2013 جعل تنفيذ OpenSSL لـ Dual_EC_DRBG غير فعال، مما يعني أنه لم يكن بإمكان أي شخص استخدامه.

في ديسمبر 2007، أفاد بروس شناير بأن شركة مايكروسوفت أضافت دعمًا لخوارزمية Dual_EC_DRBG في نظام التشغيل ويندوز فيستا ، على الرغم من أنها لم تكن مُفعلة بشكل افتراضي. وقد حذر شناير آنذاك من الباب الخلفي المحتمل المعروف في هذه الخوارزمية. وفي نظامي التشغيل ويندوز 10 والإصدارات الأحدث، سيتم استبدال استدعاءات Dual_EC_DRBG بصمت باستدعاءات CTR_DRBG التي تعتمد على خوارزمية AES.

في التاسع من سبتمبر عام 2013، وعقب تسريبات إدوارد سنودن وتقرير صحيفة نيويورك تايمز حول الباب الخلفي في خوارزمية Dual_EC_DRBG، أعلن المعهد الوطني للمعايير والتكنولوجيا (NIST) أنه، نظرًا للمخاوف الأمنية التي أثارها المجتمع، سيقوم بإعادة إصدار وثيقة SP 800-90A كمعيار مسودة، وإعادة فتح وثيقتي SP800-90B/C للتعليق العام. ويوصي المعهد الوطني للمعايير والتكنولوجيا الآن "بشدة" بعدم استخدام خوارزمية Dual_EC_DRBG.كما هو محدد في إصدار يناير 2012 من SP 800-90A. كان اكتشاف باب خلفي في أحد معايير NIST بمثابة إحراج كبير للمعهد الوطني للمعايير والتكنولوجيا .

استمرت شركة RSA Security في الاحتفاظ بخوارزمية Dual_EC_DRBG كمولد أرقام عشوائية مشفر آمن (CSPRNG) افتراضي في مكتبة BSAFE حتى بعد أن أصبح مجتمع التشفير الأوسع على علم بالباب الخلفي المحتمل في عام 2007. ومع ذلك، لا يبدو أن هناك إدراكًا عامًا في المجتمع بأن BSAFE تستخدم Dual_EC_DRBG كخيار للمستخدم. ولم تبدأ محاولات العثور على البرامج التي تستخدم Dual_EC_DRBG إلا بعد انتشار المخاوف بشأن الباب الخلفي. وكان BSAFE هو الأبرز الذي تم العثور عليه. بعد الكشف عن الأمر في عام 2013، قدم سام كاري، رئيس قسم تكنولوجيا الأمن في شركة RSA، مبررًا لموقع ارس تكنيكا حول سبب اختيار معيار Dual EC DRBG المعيب في الأصل كإعداد افتراضي بدلاً من مولدات الأرقام العشوائية البديلة. وقد تعرضت الدقة الفنية لهذا البيان لانتقادات واسعة النطاق من قبل خبراء التشفير، بمن فيهم ماثيو جرين ومات بليز. وفي العشرين من ديسمبر عام 2013، أفادت وكالة رويترز بأن شركة RSA قد تلقت دفعة سرية بقيمة 10 ملايين دولار من وكالة الأمن القومي لجعل مولد الأرقام العشوائية Dual_EC_DRBG الإعداد الافتراضي في اثنين من منتجات التشفير الخاصة بها. وفي الثاني والعشرين من ديسمبر عام 2013، نشرت شركة RSA بيانًا على مدونتها الرسمية نفت فيه "بشكل قاطع" وجود أي صفقة سرية مع وكالة الأمن القومي لإدراج "مولد أرقام عشوائية معيب معروف" في مجموعة أدوات BSAFE الخاصة بها.

ننن في أعقاب قصة نيويورك تايمز التي زعمت أن Dual_EC_DRBG يحتوي على باب خلفي، كتب براون (الذي تقدم بطلب للحصول على براءة اختراع الباب الخلفي ونشر تخفيض الأمان) بريدًا إلكترونيًا إلى قائمة بريدية IETF للدفاع عن عملية معيار Dual_EC_DRBG:

## البرامج والأجهزة التي تحتوي على الباب الخلفي المحتمل
غالبًا ما تحصل التطبيقات التي تستخدم خوارزمية Dual_EC_DRBG عليها من خلال مكتبة برمجية. وعلى الأقل، لدى شركات RSA Security (مكتبة BSAFE)، و OpenSSLاوين اس اس ال ، و مايكروسفت ، و سيسكو  مكتبات تتضمن هذه الخوارزمية، لكن مكتبة BSAFE وحدها هي التي تستخدمها كإعداد افتراضي. ووفقًا لمقال رويترز الذي كشف عن صفقة سرية بقيمة 10 ملايين دولار بين RSA Security ووكالة الأمن القومي، كانت BSAFE التابعة لـ RSA Security هي الموزع الأهم لهذه الخوارزمية. كان هناك خلل في تنفيذ OpenSSL لـ Dual_EC_DRBG مما جعله غير قادر على العمل خارج وضع الاختبار، ومن هنا استنتج ستيف ماركيز من OpenSSL أنه لم يستخدم أحد تنفيذ Dual_EC_DRBG الخاص بـ OpenSSL.

ممم يوفر المعهد الوطني للمعايير والتكنولوجيا (NIST) قائمة بالمنتجات التي تم التحقق من صحة تطبيق مولد الأرقام العشوائية المشفرة الآمنة (CSPRNG) الخاص بها وفقًا لمعيار FIPS 140-2  ويتم تحديد منتجات CSPRNG التي تم التحقق من صحتها في حقل الوصف/الملاحظات. وتجدر الإشارة إلى أنه حتى في حال إدراج خوارزمية Dual_EC_DRBG على أنها مُتحقق من صحتها، فقد لا تكون مُفعلة بشكل افتراضي. والعديد من هذه التطبيقات مشتقة من نسخة مُعاد تسميتها من تطبيق مكتبة.

يُعتبر برنامج بلاك بيري مثالًا على الاستخدام غير الافتراضي لخوارزمية Dual_EC_DRBG. فهو يدعم هذه الخوارزمية، لكنها ليست مُفعلة بشكل تلقائي. ومع ذلك، لم تصدر شركة بلاك بيري المحدودة أي تحذير لعملائها الذين ربما استخدموا هذه الخوارزمية، لأنها لا تعتبر الباب الخلفي المحتمل ثغرة أمنية. وينقل جيفري كار رسالة من بلاك بيري نصها: تتوفر خوارزمية Dual EC DRBG لمطوري الطرف الثالث فقط من خلال واجهات برمجة التطبيقات التشفيرية على منصة [Blackberry]. وفي حالة واجهة برمجة التطبيقات التشفيرية هذه، تكون الخوارزمية متاحة إذا أراد مطور خارجي استخدام هذه الوظيفة وقام بتصميم وتطوير نظام يستدعي استخدام واجهة برمجة التطبيقات بشكل صريح. أوضح بروس شناير أنه حتى في حال عدم تفعيل مولد الأرقام العشوائية المشفرة الآمنة (CSPRNG) ذي الباب الخلفي بشكل افتراضي، فإن وجوده كخيار متاح قد يسهل على وكالة الأمن القومي التجسس على الأهداف التي تستخدم سطر أوامر يتم التحكم فيه برمجيًا لاختيار خوارزمية التشفير، أو نظام "التسجيل" كما هو الحال في معظم منتجات مايكروسوفت، مثل ويندوز فيستا

في ديسمبر 2013، نُشر دليل عملي على وجود باب خلفي  يعتمد على استغلال الحالة الداخلية المسربة للتنبؤ بالأرقام العشوائية اللاحقة. وقد أظهر هذا الدليل أن هذا الهجوم ممكن التنفيذ حتى تحدث عملية إعادة تهيئة (إعادة بذر) لاحقة للحالة.

في ديسمبر 2015، أعلنت شركةجونيير للشبكات أن بعض إصدارات البرامج الثابتة لنظام التشغيل ScreenOS الخاص بها استخدمت خوارزمية Dual_EC_DRBG مع نقاط P و Q المشتبه في ارتباطهما بباب خلفي، مما أدى إلى وجود ثغرة أمنية في جدار الحماية الخاص بها. وكان من المفترض في الأصل استخدام نقطة Q اختارتها Juniper، والتي قد تكون أو لا تكون قد أُنشئت بطريقة آمنة يمكن إثباتها. ثم استُخدمت Dual_EC_DRBG لتكوين مولد الأرقام العشوائية ANSI X9.17 PRNG، وهو ما كان من شأنه إخفاء ناتج Dual_EC_DRBG وبالتالي تعطيل الباب الخلفي. ومع ذلك، تسبب وجود "خلل" في الكود في كشف الناتج الخام لـ Dual_EC_DRBG، مما عرّض أمان النظام للخطر. وقد تم استغلال هذا الباب الخلفي لاحقًا من قبل طرف غير معروف قام بتغيير نقطة Q وبعض متجهات الاختبار. كانت مزاعم أن وكالة الأمن القومي لديها إمكانية الوصول المستمر إلى الباب الخلفي من خلال جدران الحماية Juniper قد تم نشرها بالفعل في عام 2013 بواسطة *[[دير شبيغل|مجلة دير شبيغل]]* . الباب الخلفي الخبيث هو مثال على سياسة NOBUS التي تنتهجها وكالة الأمن القومي، والتي تقوم على وجود ثغرات أمنية لا يمكن لأحد استغلالها إلا هم.

## انظر أيضا

* هجوم مولد الأرقام العشوائية
* شركة Crypto AG – وهي شركة سويسرية متخصصة في الاتصالات وأمن المعلومات ، ويُعتقد على نطاق واسع أنها سمحت لوكالات الأمن الغربية (بما في ذلك وكالة الأمن القومي) بإدخال أبواب خلفية في أجهزة التشفير الخاصة بها 

## مراجع

## روابط خارجية

* NIST SP 800-90A – توصية لتوليد أرقام عشوائية باستخدام مولدات بت عشوائية حتمية
* Dual EC DRBG – مجموعة معلومات Dual_EC_DRBG، بقلم دانييل ج. بيرنشتاين وتانيا لانج وروبن نيديرهاجن .
* حول إمكانية الاستغلال العملي لـ Dual EC في تنفيذات TLS – ورقة بحثية رئيسية بقلم ستيفن تشيكواي وآخرون.
* انتشار الهجمات السرقية على أنظمة التشفير القائمة على السجلات المنفصلة - آدم إل. يونج ، موتي يونج (1997)
* نشر طلب براءة اختراع الولايات المتحدة**حول الباب الخلفي Dual_EC_DRBG، وطرق إلغاء الباب الخلفي.
* تعليقات على Dual-EC-DRBG/NIST SP 800-90، مسودة ديسمبر 2005 ورقة كريستيان جوستين الصادرة في مارس 2006 والتي خلصت إلى أن Dual_EC_DRBG يمكن التنبؤ به، وبالتالي فهو غير آمن.
* تحليل أمني لمولد الأرقام العشوائية ذو المنحنى الإهليلجي NIST SP 800-90 تحليل أمني أجراه Daniel RL Brown وKristian Gjøsteen في عام 2007 لـ Dual_EC_DRBG. على الرغم من أن براون كان على الأقل على علم بالباب الخلفي (من براءة اختراعه لعام 2005)، إلا أن الباب الخلفي لم يتم ذكره صراحةً. يُفترض استخدام ثوابت غير خلفية وقطع بت الإخراج أكبر مما يحدده Dual_EC_DRBG.
* حول إمكانية وجود باب خلفي في جهاز NIST SP800-90 Dual Ec Prng عرض دان شومو ونيلز فيرجسون، والذي جعل الباب الخلفي المحتمل معروفًا على نطاق واسع.
* العيوب العديدة في Dual_EC_DRBG – شرح مبسط من ماثيو جرين لكيفية ولماذا يعمل الباب الخلفي.
* بعض الملاحظات الإضافية حول مولدات الأرقام العشوائية التابعة لوكالة الأمن القومي – ماثيو جرين
* عذراً، RSA، أنا فقط لا أصدق ذلك – ملخص وجدول زمني لـ Dual_EC_DRBG والمعرفة العامة.
*   رسالة إلكترونية بتاريخ ديسمبر 2013 كتبها دانييل آر إل براون للدفاع عن Dual_EC_DRBG والعملية القياسية.
* المبارزة حول DUAL_EC_DRBG: عواقب إفساد عملية توحيد معايير التشفير مقالة كوستسيوك ولانداو حول الثقة المستمرة إلى حد كبير من جانب مجتمع التشفير الدولي في NIST على الرغم من Dual EC DRBG.

تصنيف:مولدات أعداد عشوائية
تصنيف:وكالة الأمن القومي
تصنيف:المعهد الوطني للمعايير والتقنية
تصنيف:خوارزميات تعمية استخرج معماها