در چند ماه اخیر شاهد آن بودیم که بنیاد نرمافزارهای آزاد تمامی تلاش خود را برای جلوگیری از بوت محدود (restricted boot) داشته است. مسئلهای که میتواند یکی از بزرگترین خطرها و صدمهها برای آزادی کاربران؛ نرمافزارهای آزاد و اتخاذ نرمافزارهای آزاد باشد. درواقع تحت این پوشش امنیتی؛ سیستمی که گرفتار بوت محدود است قادر نخواهد بود که سیستمعاملی غیر از سیستمعاملهای تائید شده توسط توزیعکنندگان کامپیوتر را داشته باشد. بوت محدود کنترل سیستم را فوقالعاده دورتر از دستان کاربران قرار میدهد و همین کنترل در دستان افراد به خصوص دیگری قرار میگیرد.
برای احترام به آزادی کاربران و محافظت واقعی از امنیت کاربر؛ سازندگان کامپیوترها یا میبایستی امکان غیرفعال کردن اینچنین بوتهای محدود کنندهای را فراهم آورند و یا یک روش مطمئن برای نصب سیستمعاملهای آزاد و به انتخاب کاربران را مهیا سازند.
معمولا این محدود کنندهها و انحصارگراها بیشتر خودشان به مشکل امنیتی تبدیل میشوند. این افراد ادعا میکنند که درصورتی که نرمافزار تایید نشده توسط آنها بر روی سیستم اجرا شود؛ بستر بدافزارهای بسیاری خواهد بود! بدان معنا که آنها از ما محافظت خواهند کرد اگر و تنها اگر برنامههایی که آنها تایید میکنند قادر به اجرا بر روی سیستم باشند!
ولی اگر کاربری محافظت آنها را نخواهد چه!؟ این ادعای آنها حتی در واقعیت این مسئله که از دست آنها نیز محفوظ خواهیم ماند را رد میکند. ما به هیچ وجه نمیخواهیم که نرمافزارها و برنامههایی را که اجرا میکنیم محدود به برنامههای مورد تایید آنها باشد — کامیپوترهای ما میبایستی برنامههایی را اجرا کنند که تنها مورد تایید خودمان است. حتی ممکن است از برای محافظت سیستممان و اجرای برنامهها به کسانی اعتماد کنیم که به ما در تصمیمگیریهای درست کمک کنند. اما ما هیچوقت نباید که به زور، زندانیِ محدودیتهایی که توسط رقابتهای تکنولوژیک و یا حتی قانون به ما تحمیل میشود باشیم. در حقیقت نرمافزاری که به ما اینگونه محدودیتهایی را تحمیل کند بدافزار است. شرکتهایی همچون مایکروسافت که همواره اینگونه محدودیتهایی را برای کاربران تحمیل میکنند سابقه فاجعهواری را زمانی که مباحث امنیتی مطرح میشود دارند. به همین دلیل است که این ادعای مضحک محافظت از ما کاملا پوچ و فریبکارانه است.
پروانه GPLv3 بنیاد گنو ما را از اینچنین محدودیتهایی مصون نگاه میدارد. زمانی که شما کامپیوتری که نرمافزاری با مجوز GPLv3 دارد را میخرید یا اجاره میکنید؛ مجوز، آزادیِ شما را در استفاده از نسخههای تغییر یافته از این نرمافزار بر روی کامپیوترتان تضمین میکند. در GPLv2 همیشه لازم است که کاربران قادر به انجام اینکار باشند (اینکار را برایش مقدور سازند) ولی یکی از مزیتهای GPLv3 این است که آزادی به هیچ وجه و حتی توسط سخت افزار از کاربر برای استفاده از نرمافزارهای تغییر یافته گرفته نشود. بوت امن چیزی است که توسط استانداردهای UEFI قیاس میشود. اما بحث درباره محور اصلی بر روی قوانینی که مایکروسافت بر روی برنامههای ویندوز ۸ در نظر دارد برقرار است. این قوانین به گونهای هستند که تمامی توزیع کنندگان سخت افزار میبایستی از قوانینی که مایکروسافت برای برنامهها وضع خواهد کرد تبعیت کنند که قسمتهایی از آن به پیاده سازی بوت امن برمیگردد. برای اینکه قوانین وضع کرده مایکروسافت منطقی باشد؛ توزیع کنندگان کامپیوترهای x86 میبایستی این اختیار را به کاربران بدهند که با کلید امنیتی (security key) بتوانند به طور کامل تنظیمات بوت امن را به سلیقه خود تغییر بدهند و درصورت تمایل آن را به طور کامل غیرفعال نیز کنند. در اینصورت بوت امن به خوبی اجرا شده است و تمامی کاربران (اعم از کاربران شخصی – ادارات دولتی – شرکت ها) کنترل کامپیوتر خود را در دست خواهند داشت. ولی در حقیقت تجربه این را نشان داده که مایکروسافت شاید از بدافزارهایی که برای کامپیوترهای ویندوزی نوشته میشود نگران باشد ولی ما که ویندوز را بدافزار میدانیم و میخواهیم آن از سیستممان دور نگاه داریم چه تکلیفی خواهیم داشت!؟ آیا بوت امن این امکان را به ما خواهد داد که ویندوز را از کامپیوترمان دور نگاه داریم!؟ اگر این امکان را بدهد: ما خواهیم توانست که کلید مایکروسافت را از سفتافزار بوت حذف کنیم و کلید خودمان و یا کلید برنامههای آزادی که میخواهیم به آنها اعتماد کنیم را برروی آن نصب کنیم.
پس مشکل چیست؟
در تئوری هیچگونه مشکلی به نظر نمیرسد. در عمل ماجرا بسیار پیچیده است. همانطور که در حال حاضر در پی اجرا شدن است، بوت امن مانع پذیرش نرمافزارهای آزاد میشود. همانگونه که متوجه شدهاید بوت امن با نرمافزارهای آزاد نمیتواند تطبیق داشته باشد. ولی اگر قابلیت غیرفعال کردن کلید ویندوز در سیستمهایی که به صورت پیش فرض محصولات مایکروسافت برروی آن نصب است وجود داشته باشد کاربران قادر خواهند بود با غیر فعال کردن این کلید و نصب کلید مورد نظر خود و با انتخاب خودشان سیستمعامل و برنامههای مورد نظر خود را بر روی سیستم خود نصب کند. با استفاده از بوت امن کاربران جدید نرمافزارهای آزاد یک قدم اضافه برای نصب نرمافزارهای دلخواه خود برخواهند داشت. زیرا کلید نرمافزارهای آزاد همانند ویندوز به صورت پیش فرض بر روی سیستم نصب نخواهد بود و کاربر میبایستی ابتدا کلید ویندوز را غیر فعال و کلید دلخواه خود را نصب کرده و سپس برنامههای آزاد و یا هر برنامه دیگری که میخواهد را بر روی آن نصب کند. این مشکل حتی زمانی ملموستر است که تبلتهایی با پردازنده ARM که از قبل ویندوز ۸ بر روی آن نصب است وجود خواهند داشت. در این صورت به هیچ وجه کاربران قادر به نصب سیستمعامل دیگری بر روی تبلت خود نخواهند بود و میبایستی برای همیشه از ویندوز ۸ مایکروسافت استفاده کنند. زیرا به هیچ وجه نمیتوان بوت به اصطلاح امن آن را غیر فعال کرد و یا تغییر داد. اینجاست که کاربران به هیچ وجه اختیار دستگاههایی را که میخرند و ویندوز مایکروسافت بر روی آن پیش نصب است را ندارند. در این مواقع ادعای بوت امن کاملا نقض میشود زیرا آنها اولین پیش نیاز برای کسب اعتماد کاربران را زیرپا میگذارند. و از آنجایی که مایکروسافت هیچگاه مورد اعتماد نبوده است احتمال اینکه اینگونه محدودیت را علاوه بر بستر ARM بر روی سیستمهای دیگری نیز اجرا کند بسیار زیاد است.
بهترین راه برای تحقق نیافتن این موضوع این است که سیستمهای موجود (به جز سیستمهایی که از قبل سیستمعاملهای آزاد بر روی آنها نصب است) قابلیت این را داشته باشند که سیستمعاملهای آزاد را نیز بتوان به عنوان سیستمعامل پیش فرض و بدون نیاز به غیر فعال سازی بوت امن بر روی کامپیوتر نصب کرد. در هقتههای گذشته شاهد آن بودیم که توزیعهایی مانند اوبونتو و فدورا پیشبردهای متفاوتی برای تحقق اهدافشان در نظر گرفتهاند.
راهکار فدورا
روش پیش فرض فدورا برای توزیع رسمی خود این است که به مایکروسافت خواهد پیوست و به عنوان زیر مجموعه ای از توسعه دهندگان برنامه دارای کلید خواهد بود و با استفاده از آن بوت لودر سازگار با مجوز آنها اجرا خواهد شد. این بوت لودر سازگار؛ Grub 2 را بارگذاری خواهد کرد که تحت مجوز GPLv3 میباشد و وظیفه آن بارگذاری هسته (kernel) سیستمعامل است؛ در این مقوله لینوکس! با توجه به اینکه کلید فدورا توسط مایکروسافت تایید خواهد شد، توسط سفت افزارهای اکثریت دسکتاپها و لپ تاپها موجود قابل استفاده خواهد بود.
همچنین فدورا این گزینه را برای نرمافزارهای تغییر یافته فدورا و سایر سازندگان سیستمعاملهای آزاد توصیه میکند که با پرداخت ۹۹$ به مایکروسافت میتوانند توسط مایکروسافت تایید شده باشند و برنامههایی را که تمایل به اجرا بر روی سفت افزارها دارند قادر به استفاده بر روی برخی از آنها باشد.
فدورا کاربران را وادار به ملحق شدن به مایکروسافت نمیکند. در واقع کاربران خواهند توانست که کلید نرمافزارهای خود را با کمی کار بیشتر و اضافه خودشان ساخته، کلید خود را بر روی سیستم استفاده کنند. برنامه مایکروسافت راهی بوده که فدورا برای توزیع رسمی خود استفاده کرده است. ولی با این وجود ابزارها و پشتیبانیهایی را برای کاربرانی که تمایل دارند از کلیدهای ساخته شده توسط خودشان استفاده کنند فراهم میسازند.
همانگونه که Matthew Garrett در این مورد گفته است ” راههای بسیاری نسبت به راه حل فدورا وجود دارد”. این فرایند آنها به عمد نگرانی برای در خطر افتادن آزادی کاربران را بر میانگیزد! واضح است که تیم فدورا به دنبال راهی است که نه تنها توزیع مبتنی بر Gnu/Linux آنها بلکه تا جایی که امکان دارد برنامهها و کاربران نرمافزارهای آزاد بر روی اینگونه کامپیوترها کارا باشند. همچنین بحثهای آنها متوجه این قضیه بود که شرایط مطلوب را برای توانمندسازی کاربران برای ثبت و اجرای برنامههای تغییر یافته خودشان بدون اینکه شهروند درجه دوم به حساب بیایند فراهم آورد. جای تعجب هم نیست که با وجود دغدغهای که هم اکنون در ذهن آنها وجود دارد؛ به پیشنهادی که توصیه شده و سازگار با GPLv3 نیز میباشد جواب رد بدهند.
متاسفانه در حالی که با برنامه Grub2 و تمامی برنامههای با مجوز GPLv3 مطابق است؛ شاهد دو مشکل جدی در رویکرد برنامههای مایکروسافت هستیم:
۱. کاربرانی که قصد دارند در محیط بوت امن کار کنند؛ برای اجرای نسخه رسمی فدورا میبایستی به مایکروسافت اعتماد کنند. فرمت امضای بوت امن در حال حاضر تنها یک امضای بوت امن را به صورت باینری قبول میکند. بنابراین بوت لودر سازگار فدورا تنها با کلید تایید مایکروسافت قابل اجرا خواهد بود. اگر کاربری کلید بوت مایکروسافت را حذف کند؛ تا زمانی که بوت امن فعال است فدورا دیگر قادر به بوت و اجرا بر روی سیستم نخواهد بود.
۲. بنیاد گنو شدیدا توصیه برای ملحق شدن به توسعه دهندگان مایکروسافت را رد میکند. علاوه بر اینکه پرداخت هزینه ۹۹$ به مایکروسافت مانعی برای بسیاری از افراد است؛ عمل ملحق شدن به این برنامه کاملا ایراد دارد. یکی از ایرادات این لیست تمام نشدنی و شرایط محدودی که در چندین قرارداد متعدد میبایستی امضا شوند عبارت است از “دریافت تبلیغات هدفمند و دریافت ایمیل در دورههای مختلف برای اعضا از سوی مایکروسافت” و نیاز به فراهم آوردن مدرک محضری و کارت اعتباری قابل شناسایی توسط دولت.
راهکار اوبونتو
اوبونتو همچنین نقشه ای را اعلام کرده است که در ابلاغیه “پیامی به لیست پستی توسعه دهندگان اوبونتو” توضیحات کاملی ارائه کرده است. این هدف برنامههای توزیع شده را به سه کانال مختلف هدایت میکند:
۱. ماشینهایی که با گواهی اوبونتو (سیستمهایی با اوبونتو از پیش نصب شده) دارای کلید خاص اوبونتو در سفت افزار که توسط کانونیکال ساخته شده است میباشد. همچنی به وسیله دستورالعمل گواهینامه نیازمند این خواهند بود که کلید مایکروسافت نصب شده باشد.
۲. سی دیهایی اوبونتو که جدا از سخت افزار توزیع میشوند؛ در سیستمهایی که بوت امن فعال است نیازمند آن خواهند بود که کلید مایکروسافت بر روی سفت افزار بوت آنها نصب شده باشد.
۳. نسخه بوت لودر اوبونتو به صورت آنلاین از آرشیو رسمی اوبونتو توزیع میشود توسط کلید خود اوبونتو تایید میشود.
در دو شرایط اول به دلیل نیاز به نصب بودن کلید مایکروسافت؛ مشکلات یکسانی را که در راهکار فدورا بررسی کردیم خواهیم داشت. کاربران مجبورند که برای اجرای نسخه رسمی اوبونتو به مایکروسافت اعتماد کنند! داستان صدور گواهینامه به اوبونتو این مشکل را تشدید میبخشد؛ زیرا در آن زمان هیچ کسی نخواهد توانست که اوبونتوی تایید شده را به فروش رساند مگر اینکه به مایکروسافت اعتماد کامل کرده باشد.
نگرانی که وجود دارد این است که اوبونتو برای اینکه سازگاری آنها با GPLv3 از بین نرود؛ قصد دارند که Grub2 را به خاطر داشتن مجوز GPLv3 حذف کرده و در عوض از برنامهای با لایسنسی که کمتر از GPLv3 از آزادی محافظت میکند استفاده کنند. نگرانی که آنها اظهار داشتهاند این بود که در سیستمهایی که بوت محدود کننده دارند کاربران از گواهی اوبونتو صرف نظر کنند (به دلیل اینکه قابل غیر فعال کردن نیست). برای سازگاری با GPLv3 نیز اوبونتو در نظر دارد که برای تایید و اجرای برنامههای تغییر یافته توسط کاربر؛ کلید خصوصی آن برنامه را منتشر کند تا بتوان بر روی کامپیوترهایی با بوت محدود کننده اجرا کرد.
این نگرانی بی اساس است و برپایه کج فهمی و سوء تفاهم از تعریفات GPLv3 میباشد. ما قادر نخواهیم بود که با هر سناریویی که اوبونتو را به خاطر توسعه دهندگان و تولید کنندگان شخص ثالث که اوبونتو بر روی آنها نصب خواهد بود و وادار به فاش کردن کلیدهای شخصی میشود همراه باشیم. در چنین موقعیتی توزیع کنندگان کامپیوتر — نه کانونیکال و اوبونتو — مسئول فراهم نمودن اطلاعات لازم برای کاربران برای اجرای نسخه تغییر یافته نرمافزار خواهند بود و در اینصورت با مجوزهایی ضعیفتر توسعه دهندگان قادر خواهند بود که هرگونه محدودیتهای جدیدی را برای کاربر بر روی کامپیوترهای آنها ایجاد کنند و در این صورت آزادی آنها به خطر میافتد.
بنیاد نرمافزارهای آزاد برای کمک به حل این مشکلات چه کار میکند؟
بوت امن مشکلات زیادی را برای فراهم آوردن آزادی کاربران؛ ترویج آرمانهای نرمافزارهای آزاد؛ و تشویق به پذیرش نرمافزار رایگان بوجود میآورد. پرداختن به آن نیاز به یک رویکرد چند وجهی دارد. بررسی راهحلهایی که توزیعهای متداول گنو/لینوکس ارائه دادهاند تنها یه جنبه قضیه است. اما بنیاد FSF نیز اقدامات فعال خود را در این راستا خواهد داشت.
به نقل از FSF.org
- ما سعی خواهیم داشت که حمایت عمومی برای بیانهای که فراهم دیدهایم بر علیه بوتهای محدود ایجاد کنیم. بیش از ۳۱,۰۰۰ نفر به همراه ۲۵ شرکت معتبر بیانیه را امضا کردهاند. تعهد به اینکه خود هیچگاه کامپیوترهایی را که امکان نصب نرمافزارهای آزاد را نمیدهند را خریداری نکنند و این توصیه را به دیگران نیز داشته باشند. ما خوشنودیم که اعلام کنیم چندی پیش دبیان گنو/لینوکس را به عنوان حامی رسمی این بیانه اضافه کردیم. پس از آن نیز Trisquel و gNewSense امضای خود را اضافه کردهاند. با توجه به اینکه اقدامات بیشتری برای این آزادی در قبال بوت امن و بوت محدود باید انجام شود؛ ما این قسمت را اساسی ترین قسمت حمایت خطاب میکنیم. اگر شما هم هنوز بیانیه را امضا نکردید؛ لطفا از اینجا انجام دهید.
- ما به شدت در مبارزه برای اقدامات مایکروسافت که قصد تحمیل کردن بوت محدود مخصوصا بر روی معماریهای ARM و گوشیهای هوشمند را دارد؛ خواهیم بود. کاربران میبایستی قادر به اجرای نرمافزارهای آزاد بر روی این دستگاهها باشند. ما به شدت مایکروسافت را زیر نظر خواهیم داشت که دوباره با فریفتن جو عمومی محدودیتها را بر روی سایر سیستمها تحمیل نکند.
- ما با سازندگان و توزیع دهندگان در تعامل خواهیم بود ( و در صورت نیاز از طریق اعمال فشار) تا دستورالعمل کاربران را فوق العاده شفاف و روشن فراهم کنند و کاربران قادر باشند که آن را غیر فعال کنند و کلید تایید شده سیستم را بدون هیچ گونه مشکلی تغییر دهند. همچنین مطمئن خواهیم بود که کاربران بتوانند هرگونه نرمافزاری را به راحتی روی سیستم خود نصب و یا تغییر دهند؛ حتی خودِ سفت افزار را.
- ما صدور مجوز و پیروی از منابع خود را به صورت کامل به توسعه دهندگان نرمافزارهای آزاد ارائه میدهیم تا به آنها کمک کند که با اطمینان از تطابق با GPL و سایر مجوزهایی که برای بوت امن پیاده سازی میشوند؛ باشند.
- ما در حال حاضر شروع به بررسی روشهای هستیم که FSF بتواند با سازندگان به نمایندگی از کل جامعه نرمافزار آزاد به توافق برسد تا سیستمعاملهای آزاد بتوانند با تنظیمات پیش فرض بر روی سیستمهای با بوت امن قابل اجرا باشد.
- ما تلاش خواهیم کرد تا با تعامل با تولیدکنندگانی مانند Lemote وFreedom Included وZaReason وThinkPenguin و Los Alamos Computers و Garlach44 و InaTux برای تولید کامپیوترهایی با توزیعهای کاملا آزاد گنو/لینوکس به صورت از قبل نصب شده به توافق برسیم.
- ما همچنین در تلاش برای جمع آوری اطلاعاتی در خصوص اینکه مشخص شود کدام کامپیوترها و قطعات بیشترین سازگاری را با نرمافزارهای آزاد دارند هستیم؛ از جمله اینکه مردم را آگاه سازیم که کدام کامپیوترها بوت امن را دارند. بسیاری از این اطلاعات از اینجا قابل یافتن است.