في الولايات ، GOSTs هي أيضا على هذا النحو. YubiKey FIPS الضعف القاتل الذي كان يمكن تجنبه



مرحبا ٪ اسم المستخدم ٪!

في 13 يونيو 2019 ، أصدرت شركة Yubico ، وهي شركة مصنعة لأجهزة المصادقة ثنائية العوامل ، إخطارًا أمنيًا يوضح الثغرة الحرجة لبعض أجهزة Yubikey FIPS. دعونا نرى ما هي هذه الثغرة الأمنية وكيف يمكن الوقاية منها.

مقدمة


لدى الولايات أيضًا GOST الخاصة بهم ، تسمى FIPS - Federal Information Processing Standard. الأجهزة والبرامج التي الدولة. الهياكل المطلوبة للامتثال FIPS.

وفقًا للزملاء الذين التقينا بهم في EuroCrypt 2019 ، تعد شهادة FIPS بمثابة جحيم ، حتى لدرجة أن خبراء FIPS يأتون إليك ، ويقومون بتشغيل البرنامج في وضع التصحيح ، وتغيير القيم في الذاكرة ، والتحقق مما إذا كان يقع في المكان المقصود.

على الرغم من ذلك ، فإن الحصول على شهادة وتصبح متوافقًا مع FIPS أمر حقيقي. لذلك ، فإن المنتجات والشركات التي تقدم خدمات للدولة ، هناك عدة مرات أكثر من خدماتنا.

ECDSA


يوجد داخل رمز USB الخاص بـ Yubico تخزين للمفاتيح ومحرك يقوم بتنفيذها ECDSA. أثناء التسجيل ، يتم نقل المفتاح العمومي من الرمز المميز إلى الخادم وتخزينه.

وعند تسجيل الدخول ، يرسل الخادم سلسلة عشوائية إلى العميل ، يقوم بتسجيلها مع معلومات التعريف ، مثل ، على سبيل المثال ، مجال.

باختصار حول كيفية عمل ECDSA أو التوقيع الرقمي على المنحنيات الإهليلجية. تم حذف بعض التفاصيل لسهولة العرض:

  1. نحن نعتبر التجزئة من الرسالة ونترجمها إلى رقم. e=HASH(m).
  2. نقوم بإنشاء رقم عشوائي قوي مشفر k.
  3. احسب النقطة (x،y)=kGحيث G هي النقطة الأساسية لمنحنى تسمى المولد (ثابت)
  4. نحن نحسب r=x mod nحيث n هو ترتيب النقطة الأساسية (ثابت)
  5. نحن نحسب s=k1(e+rd) bmodnحيث د هو المفتاح الخاص
  6. يتكون التوقيع الرقمي من زوج من الأرقام r، s

من الأهمية بمكان أن الرقم k ليس سريًا فقط ، ولكنه مختلف دائمًا. خلاف ذلك ، يصبح من الممكن حساب المفتاح الخاص.

على سبيل المثال ، لدينا توقيعان (r ، s) و (r1 ، s1) ، يتم استلامهما للرسائل المختلفة m و m1 ، ولكن باستخدام نفس السر k. دعنا نحسب المفتاح الخاص.

  • يقوم المهاجم بحساب e و e1.
  • كما ss1=k1(ee1)ثم يمكننا معرفة ك. k= fracee1ss1
  • كما s=k1(e+rd)، ثم يمكننا حساب د. d= fracsker
  • د - مفتاح خاص

إذا كانت الأرقام k مختلفة ، ولكن ليس تمامًا ، فيمكنك أيضًا حساب المفتاح الخاص ، فأنت بحاجة فقط إلى استخدام القوة الغاشمة قليلاً. بالمناسبة ، في عام 2013 ، كتبت بالفعل كيف اخترقت DSA التي تم تنفيذها بطريقة خرقاء في PlayStation وغيرها من المنتجات ، أوصي بشدة بقراءتها.

Yubico


لذلك ، في عدد من منتجات Yubico FIPS ، كان هناك خطأ حيث الأرقام k مباشرة بعد تشغيل الرمز المميز لم تكن عشوائية تمامًا. وكانت هناك فرصة حقيقية لحساب المفتاح الخاص السلكية داخل. لذلك ، استدعوا الأجهزة الضعيفة وأصدروا إخطارًا.

ما الذي يمكن عمله؟


بشكل عام ، تم حل المشكلة منذ فترة طويلة. منذ عام 2013 ، هناك RFC 6979 ، الذي يصف ECDSA الحتمية التي تم الحصول عليها من المعتاد من خلال العديد من التعديلات البسيطة. علاوة على ذلك ، في عام 2014 ، عند تطوير معيار U2F ، كان سبب FPSS بالتحديد هو السبب في وجود مشكلات محتملة في RPS ، حيث تم اقتراح التحول صراحةً إلى ECDSA الحاسم ، ولكن تم رفض العرض. هذا أحد الأسباب التي تجعل FIPS تعني معايير F * cked-up و Insecure و Persnickety.

يمكن أن تستوفي Yubico رسميًا متطلبات FIPS للعشوائية للرقم k ، ولكن يمكنك استخدام الحل البديل ، وتوليد k بشكل قاطع ، ثم XOR مع حقيقة أنها أصدرت RNG (أو عن طريق تشغيل كل شيء عبر KDF). ومع ذلك ، لم يتم ذلك.

ماذا عنا؟


ولدينا نفس الشيء. GOST R 34.10-2012 - في الأساس نفس ECDSA ، فقط مع منحنيات مختلفة. تظل متطلبات إنشاء الرقم k كما هي في ECDSA التقليدية. هل تقوم أي من الشركات المصنّعة للرموز المميزة الخاصة بنا بحل المشكلة الموضحة أعلاه؟ هل تستخدم النسخة الحتمية من ECDSA؟ أنا أشك في ذلك.

إذا كان هناك ممثلون للمطورين الروس ، سيكون من المثير للاهتمام الاستماع إلى رأيهم في هذا الشأن. أو على الأقل أن تضع ذلك في الاعتبار.

شكرا لاهتمامكم

Source: https://habr.com/ru/post/ar456494/


All Articles