Brute Force Search Space هو مجموعة الاحتمالات التي يمكن تجربتها تباعاً لتخمين سر. تخيل أنك نسيت كلمة مرور نسختك الاحتياطية المشفرة: كل تخمين احتمال مرشح، وتحتاج إلى معرفة هل فتح النسخة بشكل صحيح. كلما زادت الاحتمالات المتساوية في الترجيح وارتفعت كلفة التحقق منها، صعب البحث عادةً. لكن مع محفظة حقيقية، يجب أولاً تحديد ما الذي نبحث عنه بالضبط.
كلمة مرور النسخة الاحتياطية، والمفتاح الخاص الذي يجيز إنفاق البيتكوين، ومدخلات المولد الذي أنشأ المفتاح، أشياء مختلفة. تختلف الاحتمالات وطرق التحقق منها أيضاً. إذا كان مولد معيب يختار من مجموعة صغيرة من المدخلات، فقد يكون البحث أسهل مما يوحي به طول المفتاح الناتج. عندئذ يستطيع المهاجم تجربة تلك المدخلات المحدودة بدلاً من جميع المفاتيح الممكنة رياضياً. لذلك نحتاج إلى فهم منشأ السر قبل عد الاحتمالات. [1] [3]
لنفترض وجود 16 احتمالاً متساوياً في الترجيح، بينها إجابة صحيحة واحدة فقط. نختبرها بالترتيب من دون تكرار. ننجح مبكراً أحياناً، وقرب النهاية أحياناً أخرى؛ ويكون المتوسط 8.5 احتمالات مختبرة. إذا كان العدد العام هو N، تكتب العلاقة هكذا: E = (N+1)/2. وعند اختبار الاحتمالات بمعدل ثابت يبلغ 2 في الثانية، يصبح متوسط الزمن 4.25 ثانية. الكسر يخص المتوسط، لا عملية بحث منفردة. هذا نموذج توضيحي، وليس زمناً مقاساً لاستعادة محفظة Bitcoin. [1]
تتكرر الكلمات المفضلة والأسماء والأنماط سهلة التذكر أكثر من التركيبات العشوائية. لذلك يستطيع المهاجم البدء بالتخمينات الأرجح. ويخلق المولد المعيب الذي ينتج بعض النتائج أكثر من غيرها مشكلة مشابهة. عندها لا يعود متوسط المثال السابق صالحاً. تصف الإنتروبيا الدنيا فرصة أفضل تخمين أول، لكنها وحدها لا تحدد العمل الكلي للبحث ولا موعداً مضموناً للنجاح. عدد الاحتمالات من دون ترجيح كل منها معلومة ناقصة. [1] [2]
قد لا يكون التحقق من تخمين فورياً. PBKDF2 دالة تشتق مفتاحاً من كلمة مرور ومدخلات أخرى؛ ويزيد تكرار الحساب العمل اللازم لكل تخمين. ومن مدخلاتها salt. يكون عادةً بيانات عامة تميز عمليات الاشتقاق: اختلاف قيم salt يمنع إعادة استخدام جدول النتائج المحسوب مسبقاً نفسه ببساطة. Salt ليس كلمة مرور سرية إضافية، ولا يغني عن مدخل قوي. ولتقدير السرعة، يجب معرفة الدالة المحددة وإعداداتها والعتاد المستخدم. [3]
يحوّل BIP39 كلمات الاستعادة وpassphrase اختيارية، أي كلمة مرور إضافية، إلى seed: قيمة ابتدائية سرية لاشتقاق المفاتيح. يستخدم PBKDF2 مع HMAC-SHA512 بوصفها دالة الحساب الداخلية، وينفذ 2048 تكراراً ليولد seed بطول 512 بت. يتكون معامل salt هنا من النص «mnemonic» متبوعاً بـpassphrase؛ والسر الإضافي يأتي من passphrase نفسها. كل passphrase تنتج seed صالحاً، ولذلك لا يؤكد المجموع الاختباري لكلمات الاستعادة أنك أدخلت passphrase المطلوبة. عند استعادة محفظتك، يمكنك التعرف عليها مثلاً من عنوان معروف، مع استخدام إعدادات اشتقاق المفاتيح الصحيحة. النتيجة الطويلة لا تحول كلمة مرور ضعيفة إلى قوية. [4]
هناك أيضاً طرق رياضية لا تقتصر على التخمين المتتابع. في تشفير المنحنيات الإهليلجية (ECC) يمكن حساب المفتاح العام من المفتاح الخاص؛ أما إيجاد القيمة الخاصة في الاتجاه المعاكس فمهمة صعبة تسمى مسألة اللوغاريتم المتقطع. تصف وثيقة SEC 2 معاملات منحنى secp256k1 المستخدم في Bitcoin. لذلك لا يشمل عد جميع السلاسل ذات 256 بت كل طرق الهجوم الممكنة. يميز NIST SP 800-57 بين طول المفتاح وقوة الحماية، أي الجهد المقدر لكسرها وفق افتراضات محددة. وجود مسار رياضي لا يعني سهولة تطبيقه عملياً. [5] [6]
يمكن لعدة معالجات توزيع المحاولات المستقلة بينها، لكن الفائدة تعتمد أيضاً على الذاكرة وتنظيم الحساب. يقيس hashrate في التعدين حسابات التعدين، وليس سرعة PBKDF2 أو عمليات ECC. وهناك فرق بين تسجيل الدخول إلى موقع وامتلاك نسخة من ملف احتياطي. يستطيع الموقع تقييد الدخول بعد محاولات فاشلة، لكن من يملك نسخة من ملف مشفر يمكنه التحقق من تخميناته دون اتصال على جهازه. حدود تسجيل الدخول في الموقع وحدها لا توقف تلك المحاولات. [3] [6]
من يحصل على seed كاملاً لا يحتاج إلى البحث في مجموعة هائلة من الاحتمالات. وقد تؤدي برمجية خبيثة أو ثغرة في برنامج يتعامل مع المفاتيح إلى النتيجة نفسها. لذلك لا تنتهي الحماية باختيار سر يصعب التنبؤ به؛ بل تشمل تخزينه واستخدامه. عند سماع تقدير لزمن الكسر، اسأل عن الهجوم المفترض، وما يعرفه المهاجم مسبقاً، وكيف قيست السرعة. الرقم الكبير وحده لا يضمن أمن الجهاز، وهذا النموذج لا يعد باستعادة محفظة مفقودة. [6]
للحصول على صورة أوضح، اقرأ هذا المدخل مع Cryptographic Entropy, Entropy Bit, Private Key, Seed Phrase. تشير إلى هذا المدخل أيضًا Entropy Bit, Random Number Generator.