كيفية التحقق من العميل عند تحديث تقنية Bitcoin الجديدة؟ لقد تم تحديث Bitcoin بتكنولوجيا جديدة. دعنا نلقي نظرة مع المحرر، وآمل أن تكون هذه المقالة مفيدة لك. .
هناك ثلاث خطوات مهمة للتأكد من أن عميل Bitcoin الذي تقوم بتثبيته آمن:
التحقق من مفتاح OpenPGP؛
التحقق من التوقيع؛
التحقق من الوثيقة نفسها؛
يرجى ملاحظة أنه، على سبيل المثال، سأقوم بالتحقق من توقيعي على عميل Bitcoin Knots v0.19.0.1.knots20200104 لنظام التشغيل ppc64le Linux، بينما للتحقق من توقيع شخص آخر أو ملفات أخرى، ستحتاج إلى تغيير سطر الأوامر لاستخدام ذلك بصمة الإصبع أو اسم الملف.
الخطوة 0: تثبيت برنامج التشفير GNU Privacy Guard (GPG)
قبل أن تبدأ، تحتاج إلى التأكد من تثبيت أداة GNU Privacy Guard (GPG)، المطلوبة للتحقق من تشفير الملفات.
إذا كنت تستخدم نظامًا يستند إلى Linux، والذي يتم تثبيته عادةً من خلال بائع نظام التشغيل (مؤخرًا، يتم تثبيت هذا عادةً افتراضيًا)، فيمكنك التحقق من ذلك عن طريق تشغيل gpg –version. إذا لم يكن الأمر كذلك، فحاول تثبيته باستخدام أحد الأوامر التالية (إذا فشل ذلك، انتقل إلى الأمر التالي):
الرابطة بين الحصول على تثبيت gnupg
dnf تثبيت gnupg2
يم تثبيت gnupg2
ظهور app-crypt/gnupg
بكمن -S gnupg
apk إضافة gnupg
إذا لم يحالفك الحظ في استخدام نظام التشغيل Windows أو macOS، فيمكنك تنزيل GnuPG من الموقع الرسمي، لكنني لست على علم بأي طريقة آمنة للتحقق من مثل هذا التنزيل، وبالطبع يقدمون التوقيع، ولكن هنا تكمن المشكلة: لا يمكنك التحقق من هذه التوقيعات حتى تقوم بتثبيت نسخة جيدة!
الخطوة 1: التحقق من مفتاح OpenPGP
يمكن القول إن هذه الخطوة هي الجزء الأكثر صعوبة في عملية التحقق: تحتاج إلى التأكد من أن المفتاح الذي تستخدمه بالفعل هو المفتاح الصحيح الصادر عن شخص تثق به. إذا لم تكن حذرًا، فقد تحصل على مفتاح "Luke Dashjr" المزيف!
يحتوي كل مفتاح OpenPGP على "بصمة"، وهي عبارة عن 40 حرفًا سداسيًا عشريًا (الأرقام من 0 إلى 9 وaF)، مع إظهار مسافات أحيانًا لتسهيل القراءة. ستعرف أن لديك المفتاح الصحيح إذا تأكدت من أن بصمة المفتاح التي تستخدمها تتطابق مع بصمة الموقّع الموثوق به.
احصل على مفتاح أو بصمة
الطريقة الأكثر أمانًا للتحقق من المفتاح هي الاجتماع شخصيًا والتأكد من "بصمة" المفتاح. لا يتذكر أحد تقريبًا بصمة إصبعه الرئيسية، لذلك قد يتعين علينا البحث عنها على الكمبيوتر المحمول أو الهاتف الخاص بنا، وأحيانًا (عادةً في مؤتمر) قد يكون هناك "مُوقع رئيسي"، وهي مجموعة من الأشخاص في المؤتمر يؤكدون الآخرين بصمات الأصابع، سيكون لكل مشارك إما قراءة بصمة إصبعه بصوت عالٍ أو التأكد يدويًا من صحة ما رآه أو سمعه الجميع. إذا شاركت في اجتماع مثل هذا، فهذه طريقة جيدة للتحقق من العديد من المفاتيح في وقت واحد.
إذا لم تكن مهتمًا أو لم تتح لك الفرصة للقاء شخصيًا، فيجب عليك التحقق من المفتاح بشكل مثالي من مصادر متعددة. في بعض الأحيان، تنشر المؤتمرات مقاطع فيديو للعروض التقديمية حيث قد تظهر بصمة المفتاح في الشرائح. بالطبع، نظرًا لوجود تقنيات جديدة مثل "التزييف العميق"، انتبه إلى أنه يمكن التلاعب بالشرائح الموجودة في الفيديو بسهولة.
عادةً ما ينشر المطورون مفاتيحهم أو بصمات أصابعهم على موقعهم الإلكتروني، وربما بطريقة أخرى (على سبيل المثال، مفتاحي أو بصمة إصبعي موجودة على موقع الويب الشخصي الخاص بي، bitcoinknots.org، وbitcoin.org، وGitHub).
إذا قمت بتثبيت نسخة من البرنامج الذي تثق به، فإنها ستحتوي في بعض الأحيان على المفاتيح اللازمة للتحقق من التحديثات (يحتوي Bitcoin Core حاليًا على كود المصدر فقط).
التحقق من بصمة الملف الرئيسي
لعرض بصمة ملف المفتاح، يمكنك استخدام الأمر التالي:
gpg – خيارات الاستيراد للعرض فقط – استيراد – ببصمة الإصبع luke-jr.asc
سيؤدي هذا إلى إخراج الكثير من المعلومات حول الملف الرئيسي، مع المعلومات ذات الصلة في الأعلى:
حانة rsa8192 23-03-2012 [SC] [تنتهي:09-06-2020]
E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F
في هذا المثال، E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F هي بصمة المفتاح الخاصة بي.
ملاحظة: إذا أشار GPG إلى أن المفتاح قد انتهت صلاحيته، فمن المحتمل أن يكون ذلك أمرًا جيدًا! في الخطوة 2، ستقوم بالتحديث إلى الإصدار الأحدث من نفس المفتاح، والذي يؤدي عادةً إلى تمديد تاريخ انتهاء الصلاحية.
استيراد المفاتيح التي تم التحقق منها
بغض النظر عن كيفية التحقق من المفتاح، يجب عليك التأكد من تذكر المفتاح الذي استخدمته حتى تتمكن التحديثات المستقبلية من التحقق من استخدام نفس المفتاح. حتى إذا تخطيت خطوة التحقق الرئيسية (وهي غير آمنة)، فهذا على الأقل سيضمن أن تحديثاتك لها نفس المُوقع.
عندما تكون واثقًا من أن لديك المفتاح الصحيح، يمكنك استيراده بهذه الطريقة (استبدل luke-jr.asc باسم الملف الذي يحتوي على المفتاح المطلوب):
GPG – استيراد < Luke-jr.asc
أو إذا كان لديك بصمات الأصابع فقط، مثل هذا (ضع بصمة المفتاح الذي تريد استخدامه!):
gpg –keyserver hkp://keyserver.ubuntu.com –recv-key E463A93F5F3117EEDE6C7316BD02942421F4889F
الخطوة 2: التحقق من التوقيع
الآن بعد أن عرفت المفتاح الذي يجب استخدامه للتحقق، فإن الخطوة التالية هي التحقق من صحة التوقيع.
قبل متابعة هذه الخطوة، يجب عليك التأكد من أن نسختك من مفتاح التوقيع محدثة. إذا لم تقم بذلك، فقد تتلقى رسالة تفيد بأن المفتاح قد انتهت صلاحيته. تشغيل (باستخدام بصمة الإصبع المطلوبة):
gpg –keyserver hkp://keyserver.ubuntu.com –مفتاح التحديث E463A93F5F3117EEDE6C7316BD02942421F4889F
بعد ذلك، (بالإضافة إلى ملف البرنامج الذي تقوم بفحصه) ستحتاج إلى ملفين: ملف ".assert" الذي يحتوي على قائمة بصمات الملفات وملف ".assert.sig" الذي يحتوي على توقيعات تلك القائمة. وذلك لأن ما نقوم به ليس التوقيع على ملفات البرنامج نفسها، بل أخذ بصمات جميع الملفات ثم التوقيع على تلك القائمة. لذلك، أنت بحاجة إلى كلا الملفين.
تم نشر زوج ملفات "التأكيد" الخاص بـ Bitcoin Core هنا: https://github.com/Bitcoin-Core/gitian.sigs/find/master؛
تم نشر أزواج ملفات "التأكيد" الخاصة بـ Bitcoin Knots هنا: https://github.com/bitconinkots/gitian.sigs/find/Knots
لاحظ أن هناك زوج ملفات منفصلاً لكل موقع. إذا كنت تقوم بالتحقق مما إذا كان عدة أشخاص قد قاموا بالتوقيع على ملفك (وهو ما يجب عليك فعله)، فستحتاج إلى التحقق من كل زوج من الملفات. بالإضافة إلى ذلك، تحتاج إلى التأكد من حصولك على نسخة الملف الذي تريد التحقق منه!
بمجرد العثور على الملف الذي تريده في القائمة، انقر فوق الرابط لفتح الملف في متصفحك، ثم انقر بزر الماوس الأيمن فوق الزر "Raw" أو "تنزيل" وحدد "حفظ الرابط باسم".
بمجرد حصولك على هذين الملفين "التأكيد"، يمكنك التحقق من التوقيع عن طريق تشغيل (اضبط اسم الملف على .assert.sig المحدد)
gpg – التحقق من bitcoin-core-linux-0.19-build.assert.sig
إذا نجحت هذه الخطوة، فستحصل على النتيجة التالية:
gpg: تم التوقيع الأحد 19 يناير 2020 الساعة 03:47:15 صباحًا بالتوقيت العالمي المنسق
gpg: استخدام مفتاح RSA E463A93F5F3117EEDE6C7316BD02942421F4889F
gpg: توقيع جيد من "Luke Dashjr" [النهائي]
لاحظ أن بصمة المفتاح تظهر بالخط العريض. يجب أن تتطابق بصمة الإصبع مع المفتاح الذي قمت بالتحقق منه في الخطوة 1، وإلا فمن الممكن أن يتم توقيعها من قبل شخص آخر! يعد الجزء المتعلق بـ "التوقيع الجيد" مهمًا أيضًا، في حين أن الاسم وعنوان البريد الإلكتروني ليسا كذلك، وكلاهما يمكن أن يكون مزيفًا إذا كانت بصمة الإصبع خاطئة.
بافتراض أن كل شيء سار على ما يرام، فأنت تعلم الآن أن الملف ".assert" مضمون بواسطة وحدة التحكم في المفتاح المذكور، ويمكنك المتابعة للتحقق من أن ملف البرنامج الفعلي الخاص بك هو الملف المدرج في الملف ".assert".
الخطوة 3: التحقق من الملف نفسه
لمصادقة ملف برنامج، يجب أولاً تجزئته تشفيرًا (استخراج بصمة إصبعه بشكل أساسي).
يتم ذلك باستخدام أمر بسيط (احرص على استبدال اسم الملف الفعلي الذي تقوم بالتحقق من صحته!):
لينكس: sha256sum bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
ويندوز: certUtil -hashfile bitcoin-0.19.0.1.knots20200104-win64.zip SHA256
ماك: شاسوم -a 256 bitcoin-0.19.0.1.knots20200104-osx-unsigned.dmg
سيؤدي هذا إلى إخراج شيء مثل هذا:
d370692590c4546ac0de250da91c6c288d9ee5252f1a4b857a5b80c4e3d81149 bitcoin-0.19.0.1.knots20200104-powerpc64le-linux-gnu.tar.gz
هذه هي بصمة محتويات الملف، متبوعة باسم الملف المحدد.
الآن، افتح الملف ".assert" في أي محرر/عارض نص عادي وابحث عن بصمة الإصبع. ينبغي أن يكون في قسم "out_manifest" في الأعلى، إذا وصلت إلى "in_manifest" أو "base_manifests"، فهذا يعني أنك قد ذهبت بعيدًا جدًا.
إذا وجدته في ملف ".assert"، فهذا يعني أنك قد تحققت من أن الملف الذي لديك هو نفس الملف الذي أكد عليه الموقع (ستراه في ملف ".assert" على يمين بصمة اسم الملف الخاص به ، والتي قد تكون هي نفسها التي لديك).
وإذا كان مفقودًا من ملف ".assert"، فقد يعني ذلك أنك تستخدم ملف ".assert" الخاطئ، أو أن ملفك غير متطابق (وفي هذه الحالة سترى بجوار اسم الملف المتوقع إلى آخر بصمة). إذا تم إدراج ملف ولكن له بصمة مختلفة، فيرجى عدم فتح الملف، ولكن احفظه (قد نطلب منك تقديم نسخة) واتصل بفريق أمان المشروع المتأثر.