فحص الوقت: Timejacking vs Bitcoin



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

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

ملحوظة: سيكون هناك مشتقات عديدة لكلمة "الوقت". كثيرًا.

باختصار


لأول مرة ، كتب أليكس بوفرمان عن هجوم Timejacking. يمكنك التعرف على نشرها هنا . ما هو الجوهر: يستغل الهجوم نقاط الضعف في آلية التحقق من الطوابع الزمنية للكتل وعداد الوقت في Bitcoin. يتلاعب المهاجم بواحد من عدادات عقدة الضحية ويخلق كتلة "مسمومة". ستسقط الضحية هذه الكتلة ، وستقبل بقية الشبكة بنجاح ، ويرجى - لقد أثارنا شوكة! تستخدم الشبكة بأكملها سلسلة من الكتل التي تم إنشاؤها بعد "التسمم" ، وتعتبر الضحية سلسلة بديلة ذات إنفاق متكرر (المعروف أيضًا بالإنفاق المزدوج) ، حيث لا تظهر الكتلة "المسمومة" ، لتكون صالحة.

يتم تنفيذ الهجوم على مرحلتين. لجعل الأمر أكثر وضوحًا ، دعنا نتحدث عن كل منها على حدة.

قانون 1. خلق شوكة وعزل الضحية


يحتاج المهاجم إلى إنشاء "APPLE من الخلاف" - الكتلة "المسمومة" التي ستتجاهلها الضحية. بنفس الطريقة ، ستسقط الضحية كتل أخرى ستتم إضافتها بالتسلسل بعد الكتلة "المسمومة".

كيف يخدع ضحية ويجبره على إسقاط الكتلة الصحيحة؟

يحتوي رأس كل كتلة على طابع زمني تفحصه العقدة أثناء التحقق. يجب أن تقع هذه القيمة في نطاق معين ، وسوف نسميها نافذة مؤقتة. يظهر نطاق النافذة الزمنية في الشكل أدناه:


للإطار الزمني حدان:

  • أقل - t دقيقة ، تساوي متوسط ​​الطوابع الزمنية لـ 11 كتلة تسبق الكتلة التي تم التحقق منها
  • العلوي - يساوي قيمة وقت الشبكة t 0 + 2 ساعة

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

كيف يتم اعتبار وقت الشبكة:

  • عند إنشاء اتصال جديد ، تتبادل العقد وقت نظامها
  • تحسب كل عقدة انحراف وقت النظام الخاص بها عن وقت النظام لكل من جيرانها
  • بالنسبة للانحرافات المحسوبة ، يتم تحديد القيمة المتوسطة.
  • وقت النظام الأصلي + انحراف متوسط ​​= وقت الشبكة

فيما يلي مثال لحساب وقت الشبكة:


وبالتالي ، يمكن للمهاجم التلاعب في قيمة وقت شبكة الضحية من خلال ربطه بعدد كاف من الجيران يعلنون عن وقت تأخر النظام. تنخفض قيمة وقت شبكة الضحية - ينخفض ​​الحد الأعلى لنطاق القيم المقبولة للطابع الزمني للكتلة التي تم التحقق منها. ولكن إذا تجاوز انحراف وقت الجار 70 دقيقة ، فلن يؤخذ وقته في الاعتبار عند حساب وقت الشبكة. لذلك ، فإن القيمة القصوى التي يمكن من خلالها تقليل وقت الشبكة للضحية هي 70 دقيقة.


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


لاحظ أنه بفضل بروتوكول NTP ، يمكننا أن نفترض أنه بالنسبة لمعظم العقد ، يكون وقت النظام هو نفسه تقريبًا ، أي أن وقت الشبكة لكل عقدة قريب من وقت النظام.

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


قانون 2. الانفاق المزدوج


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


سيقبل الضحية هذه السلسلة ، لأن الدخيل يختار قيمة الطوابع الزمنية من نافذته الزمنية ، وسوف تتجاهل العقد المتبقية بحق - بعد كل شيء ، فإنهم يبنون بالفعل سلسلتهم من الكتلة "المسمومة" ، والتي تعد أطول من البديل. ونتيجة لذلك ، يعتقد الضحية أنه تلقى رموزًا ويرسل البضائع. والشبكة الرئيسية على يقين من أن الرموز المميزة لم تترك محفظة المهاجم ، ويتلقى البضائع من أجل "شكرا لك" - بعد كل شيء ، لا يمكن أن يخطئ معظمهم. النهائي بطل انتصار الجانب المظلم!

ولكن ليس بهذه البساطة


مأزق رقم 1

تشارك قوة الحوسبة الهائلة في تعدين البيتكوين اليوم. يمكن تقدير احتمالية التوليد الناجح للكتلة "المسمومة" بالصيغة التالية:


اليوم ، إجمالي التجزئة في شبكة Bitcoin يساوي تقريبًا H = 34 ∙ 10 18 تجزئة / ثانية. في هذه الحالة ، باستخدام الجهاز الأكثر إنتاجية من هذه القائمة ، التجزئة المجزأة h = 18 18 10 12 تجزئة / ثانية ، فإن احتمال توليد كتلة "مسمومة" في عام واحد (t = 365 ∙ 24 ∙ 60) هو حوالي 3٪. وإذا أخذنا من هذه الإحصائيات مجموعة تعدين صغيرة نسبيًا تحتوي على 0.3 ٪ من إجمالي التجزئة ، فإن احتمال إنشاء كتلة ناجحة في غضون 3 أيام هو 73 ٪.

مأزق رقم 2

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

من أجل أن تقبل الضحية المعاملة من خلال الإنفاق المزدوج ، يجب تأكيد الكتلة معها بواسطة 6 كتل أخرى (للعميل القياسي). سيتعين على المخالف إنشاء كتل تأكيد بشكل مستقل ، وفي الوقت نفسه من الضروري تلبية 70 دقيقة المذكورة أعلاه. يفكر Boverman في موقف يمتلك فيه المهاجم 10٪ من قوة الشبكة بالكامل. في مثل هذه الحالة ، سوف يستغرق الأمر حوالي 5.5 ساعة لإنشاء 6 كتل بمعدل نجاح 10٪. لمدة 3.3 ساعة ، ينخفض ​​احتمال النجاح إلى 1٪ ، لمدة 140 دقيقة - 0.147٪. وفقًا لهذه التقديرات ، يعد توليد 6 كتل بنجاح في 70 دقيقة أمرًا خياليًا.

مأزق رقم 3

عندما تحسب العقدة وقت الشبكة ، فإنها تأخذ في الاعتبار وقت النظام لأول 200 جوار فقط - ثم لن يتم إعادة حساب الانحراف الوسيط. وهذا يعني أنه يجب تنفيذ الهجوم حتى لا يتجاوز عدد الجيران المرتبطين بالفعل بالضحية 99- وإلا فإن الوقت الذي أعلنه المهاجم لن يكون متوسطًا. سيتم تشغيل هذا العدد من الجيران في غضون 24 ساعة ، وبعد ذلك ستحتاج إلى إعادة تشغيل الضحية - على سبيل المثال ، باستخدام DoS.

النهاية


في الختام ، يمكننا القول أن هجوم "Timejacking" جيد جدًا ، ولكن في الحقائق القاسية أصبح Bitcoin غير قابل للتطبيق. ماذا عن الأنظمة الأخرى التي تستخدم blockchain؟ دعنا نترك هذا السؤال لمزيد من البحث الخاص بك!

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


All Articles