امن وحماية المعلومات

شرح ثغرة كولدكارد بيتكوين: الإنتروبيا، كيفية توليد المفاتيح، ولماذا تهم البتات

تمكن مهاجمون من سحب عملات البيتكوين من محافظ رقمية كان يُعتقد أنها آمنة تمامًا ولا يمكن الوصول إليها.

هذه العملات كانت مخزنة على أجهزة “كولدكارد” (Coldcard) — وهي محافظ أجهزة من الشركة المصنعة الكندية “كوينكايت” (Coinkite)، وهي من النوع الذي لا يتصل بالإنترنت أبدًا. لا روابط تصيدية، ولا برمجيات خبيثة، ولا أجهزة مسروقة. كل ما فعله المهاجمون هو اكتشاف المفاتيح الخاصة بطريقة ذكية.

كيف تمت السرقة؟

قامت شركة “جالاكسي ريسيرش” بتتبع سرقة أكثر من 1,596 بيتكوين عبر ثلاث موجات مؤكدة، مع وجود موجة رابعة مشتبه بها قد ترفع الإجمالي إلى حوالي 2,055 بيتكوين — أي ما يعادل 130 مليون دولار تقريبًا بأسعار اليوم. إحدى عمليات السحب نقلت 70 مليون دولار في 41 دقيقة فقط. وتقول كوينكايت إن 15 مهاجمًا منفصلاً على الأقل شاركوا في العملية.

نشرت الشركة تقريرًا تقنيًا في 1 أغسطس يشرح ما حدث. هذا التقرير صريح بشكل غير معتاد، والخلاصة هي أن المحفظة كانت تعتمد على أرقام عشوائية معيوبة لمدة ثماني سنوات دون أن يلاحظ أحد ذلك.

الصفر لا يزال شيئًا

في عام 2021، نقلت كوينكايت نظام التشفير في كولدكارد إلى مكتبة “libsecp256k1″، وهي نفس المكتبة التي يستخدمها بروتوكول البيتكوين الأساسي. قرار سليم، لكن المشكلة ظهرت في طريقة الدمج.

أعاد هذا التحديث توجيه توليد الأرقام السرية بعيدًا عن شريحة العشوائية الخاصة بالجهاز، ونقلها إلى برنامج احتياطي صغير يسمى “ياسمارانغ” (Yasmarang) — وهو خوارزمية بسيطة توجد عادة في الأجهزة التي لا تحتوي على شريحة عشوائية إطلاقًا.

المشكلة أن كولدكارد لديه شريحة عشوائية حقيقية، لكن الجهاز توقف عن استخدامها دون علم أحد.

السبب في غاية الدقة: كان هناك سطر في الكود المصدري يستخدم شرطًا تقنيًا يتحقق مما إذا كان الإعداد موجودًا، وليس ما إذا كان مفعّلاً أم لا. ولأن الإعداد كان موجودًا بقيمة صفر (وتعني “معطّل”)، اعتبر الفحص أن كل شيء يعمل بشكل صحيح.

قالت كوينكايت: “معظم العشوائية في كولدكارد كانت تأتي من مولد أرقام شبه عشوائي لم أكن أعلم بوجوده في الكود المصدري”. هذا النوع من المولدات ينتج أرقامًا تبدو عشوائية لكنها في الحقيقة تتبع وصفة ثابتة عندما تعرف نقطة البداية.

على أجهزة Mk2 وMk3 التي تعمل بالإصدارات من 4.0.1 إلى 4.1.9، كانت نقطة البداية هي الرقم التسلسلي للجهاز وساعته الداخلية. وتقدر كوينكايت أن مساحة البحث الناتجة تبلغ حوالي 40 بت. أما الأجهزة الأحدث فقد أضافت القليل من العشوائية الإضافية، لترفع التقدير إلى حوالي 72 بت.

وهذه الأرقام أقل بكثير من 128 بت المطلوبة للأمان الكامل.

وهذا الفرق أكبر مما يبدو. 40 بت تعني حوالي تريليون احتمال — وهو رقم يمكن لجهاز كمبيوتر عادي التعامل معه. لكن 128 بت تعني أكثر من عدد الذرات في الكون المرئي، وهذا ما يصعب اختراقه.

ليست “ضعيفة” بل “قابلة للتوقع”

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

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

ما هي العشوائية الحقيقية؟

العشوائية هي قياس ما لا يعرفه المهاجم عن مفتاحك السري. كل بت عشوائي يعني مضاعفة عدد الاحتمالات التي يجب على المهاجم تجربتها.

محفظة البيتكوين هي في الأساس رقم كبير سري. هذا الرقم ينتج عنوانًا عامًا يمكن للآخرين إرسال البيتكوين إليه، لكن لا يمكن العكس — أي لا يمكنك معرفة الرقم السري من العنوان.

لذلك يعتمد أمان أي محفظة على سؤال واحد: كم عدد الأرقام التي يجب على المهاجم تجربتها؟

  • إذا تم توليد الرقم بـ128 بت من العشوائية، الإجابة هي “مستحيل عمليًا”.
  • إذا تم توليده بـ40 بت فقط، الإجابة هي “أعطني بعض الوقت”.

العشوائية الحقيقية تأتي من مصادر فيزيائية مثل الاضطرابات الكهربائية أو التغيرات الحرارية في الدوائر الإلكترونية. هذه كانت وظيفة الشريحة الخاصة في كولدكارد، لكن إعداد البناء هو ما أوقفها.

نقاش حاد حول النرد

عندما اكتشف المستخدمون المشكلة، لجأ كثير منهم إلى حل بسيط: استخدام النرد اليدوي لتوليد العشوائية. حتى أن كوينكايت تبيع كيسًا من النرد الصغير لتسهيل هذه العملية، وتؤكد أن المفاتيح المولدة بـ50 رمية نرد على الأقل ليست معرضة للخطر.

في 31 يوليو، نشر المطور الأساسي للبيتكوين “لوك داشجر” تحذيرًا يقول فيه إن النرد العادي ليس دقيقًا من الناحية الأمنية، ونصح بشراء نرد مخصص للكازينو إذا كان لا بد من استخدام هذه الطريقة.

انقسمت الآراء على تويتر. البعض سخر من الفكرة، بينما قام المطور “جاستن شارب” بحسابات دقيقة أظهرت أن النرد غير المتوازن لا يخفض العشوائية إلا بكمية صغيرة جدًا — حوالي 4 بت فقط من أصل 256، وهذا فرق بسيط لا يشكل خطرًا حقيقيًا.

في المقابل، خسر مستخدمو كولدكارد 88 بتًا من العشوائية بسبب هذه الثغرة — وهذا فرق هائل.

النقطة الأهم من نصيحة داشجر هي عدم الاعتماد على مصدر واحد للعشوائية. فمشكلة كولدكارد لم تكن أن العشوائية كانت غير متوازنة قليلاً، بل أن مكونًا أساسيًا توقف عن العمل بصمت دون أن يكتشف أحد ذلك.

ماذا يجب أن تفعل؟

إذا قمت بتوليد مفاتيح على جهاز كولدكارد متأثر بالثغرة دون استخدام النرد اليدوي أو عبارة مرور قوية، فإن مفاتيحك معرضة للخطر.

الخطوات المطلوبة:

  • حدّث البرنامج الثابت للجهاز فورًا
  • قم بتوليد مفاتيح جديدة تمامًا
  • تحقق من البصمة الرقمية للتأكد من صحة المفاتيح الجديدة
  • أرسل مبلغًا صغيرًا للتجربة
  • انقل جميع أموالك إلى المحفظة الجديدة

إذا صدّرت مفاتيحك إلى تطبيق آخر، فالضعف ينتقل معها. نقل المفتاح المعيب إلى محفظة مختلفة لا يحل المشكلة.

الدرس الأهم من هذه الحادثة ليس أن محافظ الأجهزة غير آمنة أو أن النرد فكرة سيئة، بل أن “العشوائية” تحتاج إلى التحقق المستمر. الكود المصدري لكولدكارد كان متاحًا للجميع طوال الوقت، لكن ثماني سنوات من المراجعات فحصت الشيفرة الصحيحة دون أن يتحقق أحد مما إذا كانت تعمل فعلاً.

الأسئلة الشائعة

س: هل كل محافظ كولدكارد معرضة للخطر؟
ج: لا. الثغرة تؤثر على أجهزة Mk2 وMk3 التي تعمل بإصدارات البرنامج الثابت من 4.0.1 إلى 4.1.9. الأجهزة الأحدث لديها مستوى أعلى من الأمان، والمفاتيح المولدة باستخدام 50 رمية نرد على الأقل أو عبارة مرور قوية تعتبر آمنة.

س: هل يمكن إصلاح المفاتيح المتضررة بدلاً من استبدالها؟
ج: لا. تحديث البرنامج الثابت يوقف الثغرة لكنه لا يصلح المفاتيح الموجودة. يجب توليد مفاتيح جديدة بالكامل ونقل جميع الأموال إلى المحفظة الجديدة.

س: كيف أتأكد من أن أموالي آمنة الآن؟
ج: قم بتحديث البرنامج الثابت لجهازك، ثم تحقق من إصدار البرنامج لديك، وإذا كنت مشكوكًا في صحة مفاتيحك، قم بتوليد محفظة جديدة باستخدام النرد اليدوي أو مصدر عشوائية موثوق، وانقل أموالك إليها فورًا.

مغامر التشفير

مبتكر ومستكشف في مجال التشفير، يتميز بروح المغامرة في استكشاف الفرص الجديدة وتقديم تحليلات مبتكرة.
زر الذهاب إلى الأعلى