Go تصدر تحديثاً طارئاً يحجب ثمانية مفاتيح لجهة إصدار شهادات بدواعٍ أمنية غير معلنة

أصدر فريق لغة البرمجة Go في العشرين من أكتوبر 2026 الإصدارين 1.27.3 و1.26.10، وهما يجعلان أداة التحقق من الشهادات في اللغة ترفض أي سلسلة شهادات تمر عبر واحد من ثمانية مفاتيح لجهات إصدار وسيطة. ونتيجة لذلك سترفض البرامج المبنية على الإصدار الجديد الاتصال بالمواقع والخدمات التي أُصدرت شهاداتها بموجب هذه المفاتيح. وذكر الفريق أن المفاتيح تعود إلى جهة إصدار شهادات واحدة لم يسمّها، وأنه حجبها بسبب مخاوف أمنية محددة تتعلق بطريقة تشغيلها. وقد تعامل مع الإصلاح عبر مسار URGENT المخصص لأخطر المشكلات، وأوصى بالترقية فوراً.

ما الذي سبق قرار Go؟

قبل يومين، في السابع عشر من أكتوبر، أضافت Mozilla ست شهادات وسيطة صادرة عن الجذر emSign Root TLS CA – G3 التابع لشركة eMudhra إلى قائمة OneCRL التي يعتمدها متصفح Firefox لحجب الشهادات. والبلاغ الداخلي الذي استندت إليه هذه الإضافات مغلق أمام العامة، ولم تكشف Mozilla ولا Go عن الدافع وراء خطوتيهما. كما لم يتأكد حتى الآن ما إذا كانت Chrome أو Apple أو Microsoft قد اتخذت إجراءات مماثلة.

ولا يتضمن التغيير في Go سوى قيم التجزئة SHA-256 للمفاتيح الثمانية. وقد طابق أحد المعلقين على بلاغ المشكلة هذه القيم مع شهادات وسيطة تعود إلى eMudhra عبر البحث في سجلات الشهادات. ووفق هذه المطابقة، ست منها شهادات TLS صادرة عن الجذر نفسه الذي ذكرته Mozilla، واثنتان لتوقيع الشيفرات البرمجية صادرتان عن الجذر emSign Root CS CA – G3. وتشمل شهادات TLS ما هو مخصص للتحقق من النطاق EM DV TLS CA – G3B وG3C، وللتحقق من المؤسسة EM OV TLS CA – G3B وG3C، وللتحقق الموسع EM EV TLS CA – G3B وG3C. أما شهادتا توقيع الشيفرات فهما EM OV CS CA – G3B وG3C. وتنبّه The Hacker News إلى أنها لم تتحقق بشكل مستقل من هذه القيم، وأن سجلات Mozilla لا تسمّي الشهادات الست المضافة صراحة.

كيف يعمل الحجب داخل Go؟

يعمل المرشّح كلما تحقق برنامج مكتوب بلغة Go من سلسلة شهادات. وهو لا يجزّئ الشهادة نفسها بل المفتاح العام فيها، ولذلك يُكتشف كذلك أي نسخة موقّعة تبادلياً من أحد المفاتيح الثمانية، أي المفتاح ذاته موقَّعاً من جذر مختلف. ويُطبَّق المرشّح في أداة التحقق الخاصة بـ Go، وفي مساري macOS وWindows اللذين يوكلان التحقق إلى نظام التشغيل. وعند رفض السلسلة يظهر الخطأ x509: no valid chains built.

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

لماذا يتطلب الحجب إصداراً جديداً؟

تحذّر وثائق Go من أن أداة التحقق فيها لا تجري أي فحص للإبطال، كما أنها لا تقرأ قوائم الحجب التي تستخدمها المتصفحات، مثل CRLSets التي استخدمتها Chrome ضد شهادات مزورة تخص Google هذا الشهر. لذلك لا سبيل لحجب مفتاح إلا بإدراجه في إصدار جديد، وتبقى البرامج على سلوكها القديم إلى أن يُعاد بناؤها. وقد أُعيد بناء مشاريع عدة، منها مشروع indigo التابع لمنصة Bluesky، على الإصدارات الجديدة في العشرين من أكتوبر.

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

من هي eMudhra وما موقفها؟

eMudhra جهة إصدار شهادات هندية تبيع شهاداتها تحت العلامة emSign، وجذراها emSign Root CA – G1 وemSign ECC Root CA – G3 مدرجان في متاجر الجذور لدى Chrome وApple وMozilla. وكانت الشركة قد أبلغت Mozilla مطلع هذا العام بأن جذرها الأحدث للتشفير TLS موقَّع تبادلياً بواسطة emSign Root CA – G1، وبهذا تتصل الشهادات الصادرة تحت الجذر الأحدث بجذر موثوق. وفي سبتمبر أُغلق نقاش عام استمر ستة أسابيع حول طلب الشركة إضافة عشرة جذور جديدة إلى برامج الجذور لدى مصنّعي المتصفحات وأنظمة التشغيل، من بينها emSign Root TLS CA – G3، دون أي اعتراض.

وبحسب سجلات شفافية الشهادات التي راجعتها The Hacker News في العشرين من أكتوبر، فإن الشهادات المسجلة لنطاقات الشركة نفسها، ومنها emsign.com وemudhra.com، ترتبط بشهادات وسيطة أخرى تابعة لها. ولم يتضمن مستودع الشركة أي إشعار بشأن الشهادات الوسيطة حتى ذلك اليوم، ولم تعثر الصحيفة على أي بيان علني منها.

ما الذي يجب على المطورين فعله؟

إصدارات Go 1.25 وما قبلها خارج الدعم ولا تتلقى أي إصلاحات، فالسبيل الوحيد هو الانتقال إلى إصدار مدعوم من صفحة التنزيل. ولا يوجد حل مؤقت في أي مصدر، ولا يمكن تعطيل المرشّح. أما المواقع والخدمات التي تمر شهاداتها عبر المفاتيح الثمانية فعليها الحصول على شهادات من جهة وسيطة مختلفة قبل أن تتمكن عملاء Go المعاد بناؤهم من الاتصال بها.

محمد طاهر
محمد طاهر
المقالات: 2070

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


The reCAPTCHA verification period has expired. Please reload the page.