# بت لوكر

بت لوكر (بالإنجليزية: Bitlocker)‏ هي ميزة لتشفير كامل القرص مدعومة في نظام التشغيل مايكروسوفت ويندوز منذ إصدار فيستا. صممت هذه الميزة لتقدّم حماية للبيانات عن طريق تشفير السواقات $^{[الإنجليزية]}$ بشكل كامل. افتراضياً، يستخدم بت لوكر خوارزمية معيار التشفير المتقدم مع مفاتيح تشفير بطول 128 أو 256 بت. يدعم بت لوكر وفق ثلاثة أنماط هي العمل غير المرئي ومصادقة المستخدم ومفتاح الممر التسلسلي العام، ويمكن أن يعمل وفق نمط واحد أو أكثر في نفس الوقت.
قالت مايكروسوفت بأنّ بت لوكر لا يحتوي على أي أبواب خلفية، وطالبت مؤسسات حكومية بشكل مباشر أو ضغطت من أجل إضافة باب خلفي. بالإضافة لذلك، كشفت مجموعة من الباحثين عن هجوم يستهدف السواقات المحمية بهذا التطبيق يُسمى بهجوم الإقلاع البارد $^{[الإنجليزية]}$، واقترحوا مجموعة من الحلول لمواجهته.

## نظرة عامة

كان بت لوكر جزءاً من بنية قاعدة الحوسبة الآمنة للجيل القادم، وطوّر في العام 2004م كميزة سُميت «حجر الزاوية» (بالإنجليزية: Cornerstone)‏. إنّ الهدف الأساسي من تصميمه كان حماية المعلومات الموجودة على الجهاز، وبشكل خاص في حالات الفقدان أو السرقة. سمي النظام اختصاراً الإقلاع الآمن (بالإنجليزية: Secure Startup)‏ ثم أضيف إلى ويندوز فيستا قبل إصداره.
في البداية، كان الإصدار الرسومي من بت لوكر في ويندوز فيستا قادراً على تشفير سواقة نظام التشغيل فقط، ولكن، وانطلاقاً من حزمة الدعم الأولى (بالإنجليزية: Service Pack 1)‏ وفي ويندوز سيرفر 2008، أصبح بالإمكان تشفير سواقات أخرى باستعمال الإصدار الرسومي من الميزة، ولكن ضبط بعض الخيارات تطلب استعمال واجهة الأوامر النصية المسماة manage-bde.wsf، مع إمكانية حماية السواقات القابلة للإزالة بإتاحة خاصية الوصول إليها من أجل القراءة فقط.
في الإصدار التالي من بت لوكر في ويندوز 7 وويندوز سيرفر 2008 آر 2 تمّ إضافة خاصية تشفير السواقات القابلة للإزالة إلى بت لوكر، كما تمّ استبدال واجهة الأوامر النصية القديمة بواجهة جديدة سُمّيت manage-bde.
لاحقاً، تضمّن إصدار ويندوز آر تي وويندوز موبايل 6.5 $^{[الإنجليزية]}$ ميزة تشفير الجهاز (بالإنجليزية: Device Encryption)‏ وهي إصدار محدود من بت لوكر يسمح بتشفير كامل النظام. تبدأ عملية التشفير بشكل تلقائي مع تسجيل الدخول بحساب مايكروسوفت ذو صلاحيات إشرافية، ويُخزّن مفتاح الاسترجاع في حساب مايكروسوفت نفسه أو في الدليل، وبالتالي يمكن نظرياً استعادة النظام من أي حاسوب.
مع صدور ويندوز 8 وويندوز سيرفر 2012، أضافت مايكروسوفت إلى بت لوكر محددات تشفير القرص الصلب، وأصبح من الممكن استعمال عمليات التشفير على الأقراص الصلبة المحمولة. لاحقاً، أصبح بالإمكان إدارة بت لوكر باستعمال باورشل. بدءاً من إصدارات ويندوز 8.1، أصبحت عملية تشفير الجهاز مدعومة، ولكن بعكس بت لوكر، فإنّ للعملية متطلباتها الخاصة، مثل أن يتوافق الجهاز مع محددات إنستانت غو $^{[الإنجليزية]}$، وأن تكون السواقات هي سواقات حالة صلبة وأن تكون ذواكر الوصول العشوائي غير قابلة للإزالة وغير ذلك.
يعمل بت لوكر مع ميزة أخرى تُسمّى تأصيل سلامة الرمز (بالإنجليزية: Code Integrity Rooting)‏ للتحقق من سلامة نظام ملفات نظام التشغيل وصحة إقلاعه، بالإضافة لذلك، يعمل بت لوكر مع وحدة المنصة الموثوقة للتحقق من سلامة الإقلاع وملقات النظام قبل أن يقوم بفك تشفير سواقة محمية، وإذا فشلت عملية التحقق السابقة، فإنه لا يسمح بالوصول إلى محتويات السواقة المحمية.

## آلية العمل

بت لوكر هو نظام تشفير لسواقة منطقية، وقد تمتد السواقة $^{[الإنجليزية]}$ على جزء من قرص صلب أو على كامل القرص الصلب أو على أكثر من قرص صلب، يدعم النظام أكثر من نمط للتشفير، ويعمل مع ميزات أخرى، مثل وحدة المنصة الموثوقة، لضمان منع الهجمات التي تستهدف القرص الصلب فيزيائياً أو باستعمال برمجيات خبيثة.

### أنماط التشفير

هناك 3 أنماط يمكن أن تستعمل من قبل بت لوكر لإنجاز عملية التشفير، وهي:
* نمط العمل غير المرئي (بالإنجليزية: Transparent Operation Mode)‏: يعتمد هذا النمط على العتالد الخاص بوحدة المنصة الموثوقة لتقديم خدمة تشفير غير مرئية بالنسبة للمستخدم الذي يقوم بإطلاقها عند تسجيل الدخول إلى نظام التشغيل، يكون مفتاح التشفير مطبوعاً على رقاقة وحدة المنصة الموثوقة، ولا يتم تسليمه إلى برنامج الإقلاع الخاص بنظام التشغيل إلا بعد التحقق من عدم وجود تعديل لملفات الإقلاع الأساسية، إن هذا النمط عرضة لهجوم الإقلاع البارد $^{[الإنجليزية]}$.
* نمط مصادقة المستخدم (بالإنجليزية: User Authentication Mode)‏: في هذا النمط، يجب على المستخدم أن يقوم بإتجاز عملية مصادقة في المرحلة التي تسبق الإقلاع، يمكن أن تكون طلباً لكلمة مرور أو لرقم التعريف الشخصي.
* نمط مفتاح الممر التسلسلي العام (بالإنجليزية: USB Key Mode)‏: وفيه يجب على المستخدم أن يُوصل سواقة وميضية تحتوي مفتاح الإقلاع إلى الناقل التسلسلي العام في الحاسوب. يتطلب هذا النمط دعم نظام الإدخال والإخراج الأساسي الموجود في الجهاز المحمي لعملية القراءة من الممر التسلسلي العام في المرحلة التي تسبق الإقلاع، من الممكن أيضاً استخدام بروتوكول جهاز ربط البطاقة ذات الشريحة $^{[الإنجليزية]}$ للتزود بالمفتاح، ولاستعمال هذه البروتوكول ميزة إضافية هي تشفير المفتاح عند تخزينه، وبالتالي حمايته من السرقة من خلال عملية القراءة البسيطة لمحتويات السواقة الوميضية.
يمكن أن يستخدم بت لوكر واحد أو أكثر من الأنماط السابقة بأحد التوافيق التالية:
* نمط العمل غير المرئي فقط.
* نمط مصادقة المستخدم فقط.
* نمط مفتاح الممر التسلسلي العام فقط.
* نمطا العمل غير المرئي ومصادقة المستخدم معاً.
* نمطا العمل غير المرئي ومفتاح الممر التسلسلي العام.
* أنماط العمل غير المرئي ومصادقة المستخدم ومفتاح الممر التسلسلي العام.

### خوارزمية العمل

لكي ينجح بت لوكر في تشفير سواقة تحتوي على نظام التشغيل، هناك حاجة لسواقتين مهيأتين بنظام ملفات إن تي أف إس على الأقل، واحدة لنظام التشغيل، وعادة ما تكون السواقة (:C)، وهي التي سيتم تشفيرها، والثانية لإقلاع نظام التشغيل، ويجب أن يكون حجمها 100 ميغابايت على الأقل، وتظل غير مشفرة.
بعكس الإصدارات السابقة لويندوز فيستا، أضافت مايكروسوفت آليتين من أجل اقتطاع سواقة جديدة من أخرى موجودة مسبقاً، أولاً، تملك واجهة الأوامر النصية المُسماة ديسك بارت (بالإنجليزية: Diskpart)‏ القدرة على اقتطاع جزء من ححم سواقة موجودة مسبقاً ومهيئة بنظام إن تي إف إس، وثانياً، هناك أداة تسمى أداة إعداد سواقة بت لوكر (بالإنجليزية: BitLocker Drive Preparation Tool)‏، وهي تسمح باقتطاع جزء من سواقة موجودة مسبقاً لخلق مساحة مخصصة لسواقة إقلاع جديدة ليصار إلى نقل ملفات الإقلاع إليها.
بعد إنشاء القسم الخاص بالإقلاع، يجب أن يتم إعداد وحدة المنصة الموثوقة أولاً، في حال الرغبة في استعمال نمط العمل غير المرئي، بعد ذلك يتم اختيار نمط التشفير المناسب وإنجاز إعدادته. يجري تشفير السواقة كمهمة مستمرة في الخلفية، حيث تتم قراءة كل قطاع منطقي ثُمّ تشفيره، ثم، إعادة كتابته مرة أخرى، ويعني ذلك أن العملية قد تستغرق بعض الوقت في حال كان حجم القرص كبيراً. يتم حماية المفاتيح بعد تشفير كامل القرص، أي بعد اعتباره آمناً. يستعمل بت لوكر جهاز منخفض لإنجاز كل عمليات التشفير وفك التشفير، وبذلك يكون التفاعل مع السواقة المشفرة غير مرئي بالنسبة للتطبيقات العاملة على المنصة.
من الممكن استخدام نظام تشفير الملفات مع بت لوكر لتأمين الحماية بعد إقلاع نظام التشغيل، والسبب في ذلك هو عدم إمكانية حماية الملفات من العمليات والمستخدمين ضمن نظام التشغيل إلا باستخدام برمجيات تشفير تعمل داخل النظام نفسه.

## اعتبارات أمنية

بحسب مصادر مايكروسوفت، لا يحتوي بت لوكر على أي أبواب خلفية موجودة أساساً بشكل متعمد. بدون وجود باب خلفي، لا يمكن للسلطات القضائية أن تضمن وصولاً مؤكداً إلى البيانات الموجود على سواقات المستخدمين الذين يستخدمون أنظمة مايكروسوفت. في عام 2006م، أعربت وزارة الداخلية البريطانية عن قلقها لعدم وجود باب خلفي، وحاولت تغيير ذلك من خلال المفاوضات مع مايكروسوفت، لكن نيل فيرغوسون ومتحدثين آخرين من مايكروسوفت أفادوا بأن رغبة كهذه لن تتم إضافتها. أفاد عدد من مهندسي مايكروسوفت بأنهم تعرضوا للضغط من عملاء من مكتب التحقيقات الفيدرالي خلال عدة لقاءات لإضافة باب خلفي، ولكن بدون وجود طلب رسمي بذلك، وقد اقترح مهندسو مايكروسوفت أخيراً على مكتب التحقيقات الفيدرالي البحث عن النسخة من المفتاح الذي يقترحه البرنامج على المستخدمين. على الرغم من أن خوارزمية التشفير المستعملة في بت لوكر هي ملكية عامة، لكن تطبيقها بالإضافة إلى مكونات البرنامج الأخرى هي ملكية خاصة، على أي حال، تُوفّر مايكروسوفت نسخة من الشيفرة المصدرية للشركاء تحت اتفاقية عدم إفصاح.
يُستخدم نمطا العمل غير المرئي ومصادقة المستخدم في بت لوكر العتاد الخاص بوحدة المنصة الموثوقة لتحديد وجود تغيرات غير مُصرح بها لبيئة ما قبل الإقلاع. ويشمل ذلك نظام الإدخال والإخراج الأساسي أو سجل الإقلاع الرئيسي، إذا تمّ تحديد تغيرات غير مُصرح بها، فإنّ بت لوكر يطلب مفتاح الاستعادة الموجود على مفتاح الممر التسلسلي العام، ويقوم باستخدام هذا المفتاح لفك تشفير مفتاح السواقة الرئيسي (بالإنجليزية: Volume Master Key اختصاراً VMK)‏ قبل أن يسمح باستكمال عملية الإقلاع.
في فبراير 2008م، نشرت مجموعة من الباحثين تفاصيل ما سمي بهجوم الإقلاع البارد $^{[الإنجليزية]}$، وهو آلية تسمح بخداع أنظمة تشفير كامل القرص، مثل بت لوكر، التي تعمل في عدة أنظمة، مثل لينكس ماك أو إس بالإضافة لويندوز، وذلك من خلال إنجاز عملية إقلاع نظام التشغيل المحمي انطلاقاً من نظام تشغيل آخر، باستعمال وسط قابل للإزالة، مثل سواقة الناقل التسلسلي العام، ثُمّ تفريغ $^{[الإنجليزية]}$ محتويات ذاكرة ما قبل الإقلاع للحصول على المفاتيح، يعتمد الهجوم على استخلاص البيانات المتبقية في ذاكرة الوصول العشوائي الديناميكية بعد هذه العملية، بشكلٍ عام، تحتفظ هذه الذواكر بالبيانات لعدة دقائق بعد فصل التغذية عنها، ومن الممكن زيادة هذه المدة عن طريق تبريد رقاقات الذواكر، وهي العملية التي منحت هذا الهجوم اسمه، باختصار، لا يمنح استعمال وحدة المنصة الموثوقة وحده أي حماية، لأن المفاتيح تكون موجودة في الذاكرة العشوائية أثناء عمل نظام تشغيل ويندوز، وقد وصفت براءة الاختراع الأميركية رقم 9514789 جهازاً بإمكانه إنجاز هذا النوع من الهجمات. وقد أوصى الباحثون باستعمال كلمة مرور في مرحلة ما قبل الإقلاع وبإيقاف تشغيل الحواسيب، بدلاً من جعلها في وضع الاستعداد في حالة عدم وجودها تحت الإشراف المباشر لأصحابها.
بعد إقلاع جهاز محمي بواسطة بت لوكر، يتم تخزين المفاتيح في الذاكرة حيث تكون عرضة لعائلة من الهجمات التي تعتمد على الوصول الفيزيائي إلى الذاكرة، عبر الوصول المباشر للذاكرة باستعمال منافذ مثل فاير واير أو منفذ الصاعقة.
بدءاً من ويندوز 8 وويندوز سيرفر 2012 أزالت مايكروسوفت موزع إليفنت (بالإنجليزية: Elephant Diffuser)‏ من واجهة بت لوكر بدون التصريح عن السبب، وأظهر بحث لاحق أن إزالة الموزع يسبب «تأثيراً سلبياً لا يمكن إنكاره» على أمن عملية التشفير في بت لوكر ضد الهجمات المُوجّهة. لاحقاً، أشارت مايكروسوفت إلى وجود قضايا مرتبطة بالأداء وعدم توافق مع معايير معالجة المعلومات الفيدرالية (FIPS) لتبرير عملية الإزالة. على أية حال، منذ الإصدار 1511 من ويندوز 10، أضافت مايكروسوفت خوارزمية تشفير متوافقة مع المعايير الفيدرالية.
في 10 نوفمبر 2015م، أطلقت مايكروسوفت تحديثاً أمنياً لمعالجة ثغرة في بت لوكر تسمح بتخطي عملية المصادقة باستعمال مركز خبيث لتوزيع مفاتيح بروتوكول كيربيروس، وذلك إذا امتلك المهاجم وصولاً فيزيائياً إلى الجهاز أو كان الجهاز جزءاً من النطاق وكان بت لوكر يستعمل بدون نمطي مصادقة المستخدم أو مفتاح الممر التسلسلي العام.
في أوكتوبر 2017م، تم التبليغ عن وجود ثغرة روكا $^{[الإنجليزية]}$ في الشيفرة المصدرية للمكتبة المطوّرة من قبل إنفينيون $^{[الإنجليزية]}$، وهي مكتبة برمجيّة واسعة الانتشار تستخدم في المنتجات الأمنية مثل البطاقات الذكية ووحدات المنصة الموثوقة، وتسمح بالاستدلال على المفاتيح الخاصة انطلاقاً من المفاتيح العامة، ويسمح ذلك بتجاوز عملية التشفير التي يقوم بها بت لوكر في حالة استعمال رقاقة لوحدة المنصة الموثوقة تعتمد على المكتبة السابقة. لاحقاً، أطلقت مايكروسوفت تحديثاً للبرمجيات الثابتة لرقاقات إنفينيون لإصلاح الثغرة.