إغلق الإعلان

وقبل بضعة أيام، أصدرت شركة أبل مائة تحديث iOS 7.0.6، حول الإفراج الذي أبلغناكم به. ربما تفاجأ الكثيرون بإصدار التحديث أيضًا لنظام التشغيل iOS 6 الأقدم (الإصدار 6.1.6) وApple TV (الإصدار 6.0.2). يعد هذا تصحيحًا أمنيًا، لذا لا تستطيع Apple تحمل تكلفة تحديث جزء فقط من أجهزتها. علاوة على ذلك، تؤثر هذه المشكلة أيضًا على نظام التشغيل OS X. ووفقًا للمتحدث الرسمي لشركة Apple، ترودي مولر، سيتم إصدار تحديث لنظام التشغيل OS X في أقرب وقت ممكن.

لماذا هناك الكثير من الضجيج المحيط بهذا التحديث؟ يسمح وجود خلل في كود النظام بتجاوز التحقق من الخادم عند النقل الآمن في الطبقة العلائقية للنموذج المرجعي ISO/OSI. على وجه التحديد، الخطأ هو تنفيذ SSL سيئ في الجزء الذي يتم فيه التحقق من شهادة الخادم. قبل أن أخوض في مزيد من التوضيح، أفضل أن أصف المفاهيم الأساسية.

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

الآن سأصل لفترة وجيزة إلى شهادة الخادم. في الحياة الواقعية، يمكن أن تكون شهادتك، على سبيل المثال، بطاقة هوية. يعتمد كل شيء على التشفير غير المتماثل، حيث يمتلك كل موضوع مفتاحين - خاص وعام. يكمن الجمال كله في حقيقة أنه يمكن تشفير الرسالة بالمفتاح العام وفك تشفيرها بالمفتاح الخاص. وهذا يعني أن مالك المفتاح الخاص فقط يمكنه فك تشفير الرسالة. وفي الوقت نفسه، لا داعي للقلق بشأن نقل المفتاح السري لكلا الطرفين المتصلين. تعتبر الشهادة بعد ذلك المفتاح العام للموضوع مكملاً بمعلوماته وموقعًا من قبل المرجع المصدق. في الجمهورية التشيكية، إحدى هيئات التصديق، على سبيل المثال، هي Česká Pošta. بفضل الشهادة، يمكن لجهاز iPhone التحقق من أنه يتصل بالفعل بالخادم المحدد.

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

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)

{
   OSStatus err;
   …

   if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
       goto fail;
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
       goto fail;
       goto fail;
   if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
       goto fail;
   …

fail:
   SSLFreeBuffer(&signedHashes);
   SSLFreeBuffer(&hashCtx);
   return err;
}

في الحالة الثانية if يمكنك رؤية أمرين أدناه تفشل. وهذا هو حجر العثرة. يؤدي هذا الرمز بعد ذلك إلى تنفيذ الأمر الثاني في المرحلة التي يجب فيها التحقق من الشهادة تفشل. يؤدي هذا إلى تخطي الشرط الثالث if ولن يكون هناك تحقق من الخادم على الإطلاق.

الآثار المترتبة على ذلك هي أن أي شخص لديه معرفة بهذه الثغرة الأمنية يمكنه أن يقدم لجهاز iPhone الخاص بك شهادة مزورة. انت او جهاز iPhone الخاص بك، ستعتقد أنك تتواصل بشكل مشفر، بينما يوجد مهاجم بينك وبين الخادم. يسمى مثل هذا الهجوم رجل في منتصف الهجوم، والذي يُترجم تقريبًا إلى اللغة التشيكية كـ رجل في منتصف الهجوم أو رجل بين. لا يمكن تنفيذ الهجوم باستخدام هذا الخلل المحدد في OS X وiOS إلا إذا كان المهاجم والضحية على نفس الشبكة. لذلك، من الأفضل تجنب شبكات Wi-Fi العامة إذا لم تقم بتحديث نظام iOS الخاص بك. يجب على مستخدمي Mac أن يكونوا حذرين بشأن الشبكات التي يتصلون بها والمواقع التي يزورونها على تلك الشبكات.

لا يمكن تصديق كيف يمكن لمثل هذا الخطأ الفادح أن يصل إلى الإصدارات النهائية من OS X وiOS. ربما كان ذلك بمثابة اختبار غير متناسق للتعليمات البرمجية المكتوبة بشكل سيء. وهذا يعني أن كلا من المبرمج والمختبرين سوف يرتكبون الأخطاء. قد يبدو هذا غير مرجح بالنسبة لشركة Apple، ولذلك تظهر التكهنات بأن هذا الخطأ هو في الواقع باب خلفي، ما يسمى بـ "الباب الخلفي". الباب الخلفي. ليس من قبيل الصدفة أنهم يقولون إن أفضل الأبواب الخلفية تبدو وكأنها أخطاء خفية. ومع ذلك، هذه مجرد نظريات غير مؤكدة، لذلك سنفترض أن شخصًا ما ارتكب خطأً.

إذا لم تكن متأكدًا مما إذا كان نظامك أو متصفحك محصنًا ضد هذا الخطأ، فتفضل بزيارة الصفحة gotofail.com. كما ترون في الصور أدناه، يحتوي Safari 7.0.1 في OS X Mavericks 10.9.1 على خطأ، بينما في Safari في iOS 7.0.6 كل شيء على ما يرام.

مصادر: iMore, رويترز
.