عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

إن عكس واختراق محركات الأقراص الخارجية ذاتية التشفير هي هوايتي القديمة. في الماضي، أتيحت لي الفرصة للتدرب على نماذج مثل Zalman VE-400، وZalman ZM-SHE500، وZalman ZM-VE500. مؤخرًا، أحضر لي أحد الزملاء معرضًا آخر: Patriot (Aigo) SK8671، والذي تم تصميمه وفقًا لتصميم نموذجي - مؤشر LCD ولوحة مفاتيح لإدخال رمز PIN. وهذا ما خرج منه…

1. .ведение
2. هندسة الأجهزة
– 2.1. اللوحة الرئيسية
– 2.2. لوحة مؤشر LCD
– 2.3. لوحة المفاتيح
– 2.4. النظر إلى الأسلاك
3. تسلسل خطوات الهجوم
– 3.1. أخذ تفريغ البيانات من محرك أقراص فلاش SPI
– 3.2. استنشاق الاتصالات

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء


1. .ведение

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء
Корпус

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء
حزم

يتم الوصول إلى البيانات المخزنة على القرص، والتي يفترض أنها مشفرة، بعد إدخال رمز PIN. بعض الملاحظات التمهيدية حول هذا الجهاز:

  • لتغيير رمز PIN، يجب عليك الضغط على F1 قبل إلغاء القفل؛
  • يجب أن يتكون رمز PIN من 6 إلى 9 أرقام؛
  • بعد 15 محاولة غير صحيحة، يتم مسح القرص.

2. هندسة الأجهزة

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

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

2.1. اللوحة الرئيسية

اللوحة الرئيسية بسيطة للغاية:

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

أبرز أجزائه (انظر من الأعلى إلى الأسفل):

  • موصل لمؤشر LCD (CN1)؛
  • مكبر الصوت (SP1)؛
  • بي إم 25 إل دي 010 (تخصيص) محرك أقراص فلاش SPI (U2)؛
  • وحدة تحكم جميكرون JMS539 (تخصيص) لـ USB-SATA (U1)؛
  • موصل USB 3 (J1).

يقوم محرك الأقراص المحمول SPI بتخزين البرنامج الثابت لـ JMS539 وبعض الإعدادات.

2.2. لوحة مؤشر LCD

لا يوجد شيء رائع على لوحة LCD.

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء
عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

فقط:

  • مؤشر LCD من أصل غير معروف (ربما مع مجموعة خطوط صينية)؛ مع التحكم المتسلسل
  • موصل الشريط للوحة المفاتيح.

2.3. لوحة المفاتيح

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

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

هنا، على الجانب الخلفي، نرى موصل الشريط، بالإضافة إلى متحكم Cypress CY8C21434 PSoC 1 (فيما يلي سنسميه ببساطة PSoC)

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

يستخدم CY8C21434 مجموعة التعليمات M8C (انظر الوثائق). في [صفحة المنتج]( (http://www.cypress.com/part/cy8c21434-24ltxi) يشار إلى أنه يدعم التقنية كابسينس (الحل من Cypress، للوحات المفاتيح السعوية). هنا يمكنك رؤية الموصل ذي الخمسة أسنان الذي قمت بلحامه - وهذا هو الأسلوب القياسي لتوصيل مبرمج خارجي عبر واجهة ISSP.

2.4. النظر إلى الأسلاك

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

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

تفسيرات لهذا المخطط المرسوم على الركبة:

  • تم وصف PSoC في المواصفات الفنية؛
  • الموصل التالي، الذي على اليمين، هو واجهة ISSP، والتي، بإرادة القدر، تتوافق مع ما هو مكتوب عنها على الإنترنت؛
  • الموصل الموجود في أقصى اليمين هو الطرف الطرفي لموصل الشريط بلوحة المفاتيح؛
  • المستطيل الأسود عبارة عن رسم لموصل CN1، المصمم لتوصيل اللوحة الرئيسية بلوحة LCD. يتم توصيل P11 وP13 وP4 بمنافذ PSoC 11 و13 و4 على لوحة LCD.

3. تسلسل خطوات الهجوم

الآن بعد أن عرفنا المكونات التي يتكون منها محرك الأقراص هذا، نحتاج إلى: 1) التأكد من أن وظيفة التشفير الأساسية موجودة بالفعل؛ 2) اكتشف كيفية إنشاء/حفظ مفاتيح التشفير؛ 3) ابحث عن المكان الذي سيتم فيه التحقق من رمز PIN بالضبط.

للقيام بذلك قمت بالخطوات التالية:

  • أخذ تفريغ البيانات من محرك أقراص فلاش SPI؛
  • حاولت تفريغ البيانات من محرك أقراص فلاش PSoC؛
  • التحقق من أن الاتصال بين Cypress PSoC وJMS539 يحتوي بالفعل على ضغطات مفاتيح؛
  • لقد تأكدت من أنه عند تغيير كلمة المرور، لا يتم الكتابة فوق أي شيء في محرك أقراص فلاش SPI؛
  • كان كسولًا جدًا بحيث لم يتمكن من عكس البرنامج الثابت 8051 من JMS539.

3.1. أخذ تفريغ البيانات من محرك أقراص فلاش SPI

هذا الإجراء بسيط للغاية:

  • قم بتوصيل المجسات بأرجل محرك الأقراص المحمول: CLK وMOSI وMISO و(اختياري) EN؛
  • اتصالات "الشم" مع المتشمم باستخدام محلل منطقي (استخدمت Saleae المنطق برو 16);
  • فك تشفير بروتوكول SPI وتصدير النتائج إلى ملف CSV؛
  • الاستفادة decode_spi.rbلتحليل النتائج والحصول على تفريغ.

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

$ decode_spi.rb boot_spi1.csv dump
0.039776 : WRITE DISABLE
0.039777 : JEDEC READ ID
0.039784 : ID 0x7f 0x9d 0x21
---------------------
0.039788 : READ @ 0x0
0x12,0x42,0x00,0xd3,0x22,0x00,
[...]
$ ls --size --block-size=1 dump
49152 dump
$ sha1sum dump
3d9db0dde7b4aadd2b7705a46b5d04e1a1f3b125 dump

بعد أن قمت بتفريغ محرك أقراص فلاش SPI، توصلت إلى استنتاج مفاده أن مهمته الوحيدة هي تخزين البرامج الثابتة لجهاز التحكم JMicron، المدمج في وحدة التحكم الدقيقة 8051. لسوء الحظ، تبين أن تفريغ محرك أقراص فلاش SPI عديم الفائدة:

  • عند تغيير رمز PIN، يظل تفريغ محرك الأقراص المحمول كما هو؛
  • بعد مرحلة التهيئة، لا يتمكن الجهاز من الوصول إلى محرك الأقراص المحمول SPI.

3.2. استنشاق الاتصالات

هذه إحدى الطرق للعثور على الشريحة المسؤولة عن فحص الاتصالات للوقت/المحتوى محل الاهتمام. كما نعلم بالفعل، فإن وحدة التحكم USB-SATA متصلة بشاشة Cypress PSoC LCD عبر الموصل CN1 وشريطين. ولذلك، نقوم بتوصيل المجسات إلى الأرجل الثلاثة المقابلة:

  • P4، الإدخال/الإخراج العام؛
  • P11، I2C سكل؛
  • P13، I2C SDA.

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

ثم نقوم بتشغيل محلل منطق Saleae وندخل على لوحة المفاتيح: "123456~". ونتيجة لذلك، نرى الرسم البياني التالي.

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

يمكننا أن نرى عليه ثلاث قنوات لتبادل البيانات:

  • هناك عدة رشقات نارية قصيرة على القناة P4؛
  • على P11 وP13 - تبادل البيانات بشكل مستمر تقريبا.

عند تكبير الارتفاع الأول على القناة P4 (المستطيل الأزرق في الشكل السابق)، نرى ما يلي:

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

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

ومع ذلك، فإن أحدث تدفق صوتي لـ P4 مختلف قليلاً: فهو صوت "رقم التعريف الشخصي غير الصالح"!

بالعودة إلى الرسم البياني لضغطات المفاتيح، وتكبير الرسم البياني للتدفق الصوتي الأخير (انظر المستطيل الأزرق مرة أخرى)، نحصل على:

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

هنا نرى إشارات رتيبة على P11. لذا يبدو أن هذه هي إشارة الساعة. وP13 عبارة عن بيانات. لاحظ كيف يتغير النمط بعد انتهاء الصفارة. سيكون من المثير للاهتمام أن نرى ما يحدث هنا.

البروتوكولات التي تعمل بسلكين هي عادةً SPI أو I2C، وتنص المواصفات الفنية على Cypress على أن هذه الأطراف تتوافق مع I2C، وهو ما نراه صحيحًا في حالتنا:

عكس واختراق محرك الأقراص الصلبة الخارجي Aigo ذاتي التشفير. الجزء الأول: التشريح إلى أجزاء

تقوم مجموعة شرائح USB-SATA باستمرار باستقصاء PSoC لقراءة حالة المفتاح، والتي تكون افتراضيًا "0". وبعد ذلك، عند الضغط على المفتاح "1"، يتغير إلى "1". يختلف الإرسال النهائي مباشرة بعد الضغط على "~" إذا تم إدخال رمز PIN خاطئ. ومع ذلك، في هذه اللحظة لم أتحقق مما يتم نقله بالفعل هناك. لكنني أظن أنه من غير المرجح أن يكون هذا مفتاح تشفير. على أي حال، راجع القسم التالي لفهم كيفية إزالة البرامج الثابتة الداخلية لـ PSoC.

المصدر: www.habr.com

إضافة تعليق