Журнал LinuxFormat - перейти на главную

LXF162:Что за шту­ка

Материал из Linuxformat
Перейти к: навигация, поиск
1635552.png

SecureBoot. Что за штука…

Ма­янк Шар­ма, в ро­ли ад­во­ка­та дья­во­ла, рас­кры­ва­ет сум­бур­ную пе­ре­дел­ку Microsoft про­цес­са за­груз­ки ва­шей сис­те­мы.

В

Ми­ну­точ­ку! Я уже слы­шал о SecureBoot. Это же од­но из ре­шений безо­пас­но­сти в но­вом Windows 8, так?

О

И да, и нет. SecureBoot – это ме­ханизм улуч­шения безо­пас­но­сти сис­те­мы по­сред­ст­вом при­вяз­ки к про­цес­су за­груз­ки. По фак­ту, это функ­ция спе­ци­фи­ка­ции UEFI. С Windows 8 ее свя­зы­ва­ет только то, что, по тре­бо­ванию Microsoft, она долж­на быть вклю­че­на во всех ма­ши­нах, где сто­ит сер­ти­фи­ци­ро­ван­ная «вось­мер­ка».

В

UEFI? Уве­рен, что и про это мне уже до­во­ди­лось слы­шать.

О

Ну да, мы об­су­ж­да­ли его на на­ших страницах, в LXF153. UEFI, то есть Unified Extensive Firmware Interface, приходит на за­ме­ну ин­тер­фей­су BIOS, ко­то­рый мы ис­поль­зо­ва­ли все эти го­ды. UEFI был соз­дан в Intel еще в 1990-е, а те­перь им занима­ет­ся кон­сор­ци­ум крупных тех­но­ло­ги­че­­ских ком­паний, вклю­чая AMD, Microsoft, ARM и дру­гие.

В

Яс­но, вер­нем­ся к SecureBoot. Как имен­но она спо­соб­ст­ву­ет безо­пас­но­сти?

О

В ранних вер­си­ях UEFI для про­вер­ки це­ло­ст­но­сти драй­ве­ров и про­грамм ис­поль­зо­ва­лись элек­трон­ные под­пи­си. Этот ме­ханизм, осно­ванный на про­вер­ке циф­ро­вых сер­ти­фи­ка­тов, ис­поль­зо­вал из­вест­ную тех­но­ло­гию Public Key Infrastructure (PKI). А в UEFI вер­сии 2.2, вы­шед­шей в 2008, под­держ­ка элек­трон­ных под­пи­сей рас­ши­ре­на и рас­про­странена так­же на за­груз­чи­ки ОС.

В

А как это по­мо­жет пре­дот­вра­тить ата­ки злоумышленников?

О

На ПК с вклю­чен­ной SecureBoot об­нов­лен­ный про­цесс за­груз­ки Windows 8 га­ран­ти­ру­ет, что все эле­мен­ты про­шив­ки и их об­нов­ления безо­пас­ны, и что сис­те­ма за­щи­ты ком­пь­ю­те­ра не по­вре­ж­де­на.

В

Хо­ро­шо, но где тут га­ран­тия, что не по­вре­ж­де­на са­ма про­шив­ка?

О

Не по­зво­ляя вре­до­носно­му ко­ду за­гру­жать­ся при стар­те сис­те­мы, SecureBoot про­пустит толь­ко про­ве­рен­ный и под­твер­жден­ный код, на­при­мер, та­кой, как за­груз­чик опе­ра­ци­он­ной сис­те­мы. Все за­груз­чи­ки и драй­ве­ры долж­ны иметь подпись, со­от­вет­ст­вую­щую од­но­му из про­ве­рен­ных сер­ти­фи­ка­тов. Это за­щи­тит вас от ви­ру­сов сек­то­ра за­груз­ки, а так­же рут­ки­тов, мас­ки­рую­щих­ся под драй­ве­ры.

В

Но как UEFI смо­жет про­ве­рить за­груз­чик операционной системы?

О

Вско­ре по­сле стар­та сис­те­мы, пре­ж­де чем пе­ре­дать браз­ды прав­ления за­груз­чи­ку ОС, SecureBoot про­ве­рит подпись всех ко­дов про­шив­ки под­клю­чае­мых уст­ройств, та­ких как се­те­вые кар­ты, за­по­ми­наю­щие уст­рой­ст­ва или ви­део­кар­ты. За­тем она све­рит все эти подписи с ба­зой дан­ных, и толь­ко тогда мо­дулю будет разрешено за­пустить­ся.

В

И где же хра­нят­ся эти за­ме­ча­тель­ные под­пи­си?

О

Под­пи­си хра­нят­ся в двух раз­ных ба­зах дан­ных, а так­же в са­мой про­шив­ке UEFI. Они пред­став­ля­ют со­бой два спи­ска – «Раз­ре­шен­ные» и «За­пре­щен­ные», и в со­от­вет­ст­вии с ними про­цесс за­груз­ки мо­жет быть про­дол­жен или за­вер­шен, ес­ли в под­пи­си рас­по­знан вре­до­носный код.

В

Хит­ро при­ду­ма­но. Но от­ку­да мне эти под­пи­си взять?

О

Это не ва­ша головная боль. Со­глас­но соз­дан­ной Microsoft но­вой про­грам­ме Сер­ти­фи­ка­ции Windows, на всех но­вых ком­пь­ю­те­рах с пре­дуста­нов­лен­ной сис­те­мой Windows 8 или со­вмес­ти­мых с ней ПК, но­ут­бу­ках или уст­рой­ст­вах на осно­ве ARM, ти­па план­ше­тов, ба­за под­пи­сей бу­дет по умол­чанию. Бо­лее то­го, про­из­во­ди­те­ли обо­ру­до­вания долж­ны бу­дут под­твер­дить, что функ­ция SecureBoot в их ма­ши­нах дей­ст­ви­тель­но вклю­че­на.

В

Вы­хо­дит, я не смо­гу уста­но­вить Windows 8 на но­ут­бук, ко­то­рый я за­ка­зал?

О

Конеч­но, мо­же­те. Microsoft про­сто по­про­сил про­из­во­ди­те­лей ак­ти­ви­ро­вать SecureBoot на всех но­вых ком­пь­ю­те­рах, пре­ж­де чем ле­пить на них на­клей­ку «Со­вмес­тим с Windows 8». Но для уста­нов­ки са­мой сис­те­мы по-прежнему доста­точ­но толь­ко со­от­вет­ст­вия техниче­­ских тре­бо­ваний.

В

То есть, на лю­бом ком­пь­ю­те­ре с на­клей­кой «Со­вмес­тим с Windows 8» бу­дет UEFI с вклю­чен­ной функ­ци­ей SecureBoot? О

Да, имен­но это я и имел в ви­ду, вы правильно меня поняли.

Полужирное начертаниеВ

Ух ты. То есть ма­мин но­вый но­ут­бук на Windows 8 бу­дет безо­па­сен как никогда пря­мо из ко­роб­ки? По­жа­луй, дам ей его по­иг­рать, по­ка она при­вы­ка­ет к Ubuntu.

О

По­го­ди­те радоваться. Те­перь по­лу­ча­ет­ся, что уста­нов­ка но­вой опе­ра­ци­он­ной сис­те­мы при­равнива­ет­ся к уста­нов­ке неау­тен­ти­фи­ци­ро­ван­но­го ко­да, по­сколь­ку на ней от­сут­ст­ву­ет подпись, а зна­чит, невоз­мож­но бу­дет устанавливать дистрибутивы.

В

Что? Вы хо­ти­те ска­зать — я не смо­гу уста­но­вить Linux на свой нетбук с сер­ти­фи­ци­ро­ван­ной Windows 8?

О

По крайней ме­ре, не сра­зу. Имею в ви­ду, что на­ша несча­ст­ная про­шив­ка UEFI опи­ра­ет­ся на свою ба­зу дан­ных под­пи­сей, что­бы от­ли­чить вре­до­носный рут­кит от нор­маль­ной ОС. Ис­хо­дя из это­го, UEFI не по­зво­лит Linux со­вер­шать ка­кие-ли­бо дей­ст­вия с ва­шим ком­пь­ю­те­ром, ес­ли толь­ко у него нет под­пи­сей для дан­но­го кон­крет­но­го ди­ст­ри­бу­ти­ва.

В

А нель­зя из од­но­го ди­ст­ри­бу­ти­ва под­пи­сать дру­гой?

О

Мож­но, конеч­но. Но сде­лать это бу­дет непро­сто. Для за­пуска, да­же в слу­чае, когда ди­ст­ри­бу­тив под­пи­сы­ва­ет се­бя сам, все рав­но по­тре­бу­ют­ся под­пи­си про­из­во­ди­те­ля про­шив­ки. Это ре­сур­со­ем­кая за­да­ча невы­полнима д­ля ши­ро­ко­го спек­тра ди­ст­ри­бу­ти­вов. Есть и ку­да боль­шая про­бле­ма. В нынешнем ви­де, под­пи­сать яд­ро для SecureBoot – это еще пол­де­ла, по­сколь­ку да­же в этом слу­чае яд­ро не бу­дет за­гру­жать непод­пи­сан­ные мо­ду­ли.

В

И да­же ес­ли мой лю­би­мый ди­ст­ри­бу­тив под­пи­шет яд­ро, я не смо­гу за­гру­зить до­полнитель­ные мо­ду­ли?

О

При вклю­чен­ной SecureBoot – нет. Как объ­яснил в сво­ем бло­ге раз­ра­бот­чик Red Hat Мэ­тью Гар­ретт [Mathew Garrett], это зна­чит, что при­дет­ся рас­про­щать­ся с лю­бым про­ек­том, тре­бую­щим за­груз­ки обя­за­тель­ных мо­ду­лей.

В

И как же ди­ст­ри­бу­ти­вы ухитрятся с этим спра­вить­ся?

О

На дан­ный мо­мент, толь­ко два по­пу­ляр­ных ди­ст­ри­бу­ти­ва – Fedora и Ubuntu – рас­кры­ли свои стра­те­гии по ра­бо­те с SecureBoot. Fedora под­пи­шет свой за­груз­чик клю­чом Microsoft, что­бы ее мож­но бы­ло га­ран­ти­ро­ва­но уста­но­вить на лю­бой стан­дарт­ный ПК с Windows 8. В Ubuntu вы­бра­ли под­ход по­сложнее. Ди­ст­ри­бу­тив бу­дет вы­хо­дить с соб­ст­вен­ной под­пи­сью, ко­то­рую поль­зо­ва­те­лям надо будет до­ба­вить в ба­зу дан­ных на сво­ем ком­пь­ю­те­ре.

В

А по­че­му ис­поль­зу­ют­ся раз­ные под­хо­ды? И ко­то­рый луч­ше?

О

На са­мом де­ле, и с тем, и с дру­гим свя­зан ряд техниче­­ских и юри­ди­че­­ских слож­но­стей. И, между прочим, Фонду сво­бод­но­го ПО [FSF, Free Software Foundation] не нра­вит­ся ни тот, ни дру­гой. Пер­вый – по­то­му что поль­зо­ва­те­лям Fedora при­дет­ся за­ви­сеть от под­пи­си Microsoft и от са­мой Microsoft, как от бла­го­де­те­ля. Со вто­рым та­кой про­бле­мы нет, за­то до­бав­ля­ет­ся ку­ча вся­ких слож­но­стей, по­сколь­ку поль­зо­ва­те­лям при­дет­ся ко­пать­ся в на­строй­ках UEFI, что­бы под­твер­дить досто­вер­ность под­пи­си Canonical.

В

А как на­счет ма­лых ди­ст­ри­бу­ти­вов, которые вне мейнстрима?

О

Про­чие Linux-ди­ст­ри­бу­ти­вы по­ка что мож­но уста­но­вить на обо­ру­до­вание с сер­ти­фи­ци­рован­ным Windows 8 толь­ко при условии от­клю­чения SecureBoot.

В

О, так ее, оказывается, мож­но просто взять да от­клю­чить?

О

Да. В разъ­яснении сво­ей сер­ти­фи­ка­ци­он­ной про­грам­мы для про­из­во­ди­те­лей обо­ру­до­вания, Microsoft раз­ре­ша­ет им при­ме­нять функ­цию от­клю­чения SecureBoot.

В

Уфф! Я уж бы­ло ис­пу­гал­ся. А выходит, не все так плохо.

О

Это еще не все. Во-пер­вых, это не зна­чит, что предусмотр­ен стан­дарт­ный спо­соб ее от­клю­чения. Речь шла о том, что­бы раз­ре­шить про­из­во­ди­те­лям обо­ру­до­вания ис­поль­зо­вать ме­ханиз­мы от­клю­чения дан­ной функ­ции по соб­ственному усмо­трению. А стало быть, ка­ж­дый разработает свой индивидуальный спо­соб, и это ни в коей мере не упростит су­щест­во­ва­ние ди­ст­ри­бу­ти­вам.

В

Ну и пусть это бу­дет непро­сто, но поль­зо­ва­те­ли все рав­но смо­гут по же­ланию от­клю­чить SecureBoot, так?

О

Да, но в идеа­ле это­го не долж­но тре­бо­вать­ся. Как нетрудно понять, сам ме­ханизм SecureBoot всех пол­но­стью уст­раи­ва­ет. Уж где-где, а в ди­ст­ри­бу­ти­вах Linux безо­пас­ность всегда бы­ла пре­вы­ше все­го, а от­клю­чив SecureBoot, вы тут же ли­шае­тесь пре­иму­ществ, ко­то­рые она предоставля­ет. Кро­ме то­го, от­клю­чение бу­дет воз­мож­но толь­ко на ПК с ар­хи­тек­ту­рой х86. А в ма­шинах на осно­ве ARM, сер­ти­фи­ци­ро­ван­ных Windows 8, Microsoft от­клю­чать SecureBoot за­пре­ща­ет. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика