Категория > Новости > Страшный сон TPM. Взламываем защиту модулей TPM и шифрование BitLocker - «Новости»

Страшный сон TPM. Взламываем защиту модулей TPM и шифрование BitLocker - «Новости»


23-01-2021, 00:00. Автор: Харитон
где взять ключ вос­ста­нов­ления дос­тупа. Я же про­дол­жу рас­сказ о модулях TPM.

 

Архитектура защиты


С точ­ки зре­ния поль­зовате­ля, защита, которую обес­печива­ет модуль TPM, не толь­ко совер­шенно проз­рачна, но и абсо­лют­но незамет­на. Я мно­го раз слы­шал о слу­чаях, ког­да вла­делец устрой­ства утвер­ждал, что никако­го шиф­рования нет, — при этом сис­темный раз­дел был зашиф­рован BitLocker. И если порой в утвер­жде­ниях поль­зовате­лей мож­но было усом­нить­ся, то в осталь­ных слу­чаях их сло­ва подоз­рений не вызыва­ли. Как пра­вило, речь идет о фун­кции шиф­рования устрой­ств BitLocker Device Encryption, опи­сан­ной в статье «Об­щие све­дения о фун­кции шиф­ровании устрой­ств BitLocker в Windows 10». Если не вда­вать­ся в детали, Windows (незави­симо от редак­ции — фун­кция под­держи­вает­ся даже в Windows 10 Home) авто­мати­чес­ки зашиф­рует сис­темный раз­дел в фоновом режиме при выпол­нении нес­коль­ких усло­вий:



  1. В устрой­стве при­сутс­тву­ет и акти­виро­ван чип TPM или тех­нология Intel PTT.

  2. Ус­трой­ство под­держи­вает Modern Standby.

  3. Поль­зователь с пра­вами адми­нис­тра­тора вошел в сис­тему через учет­ную запись Microsoft Account или исполь­зовал для вхо­да учет­ную запись домена.

  4. Сис­тема авто­мати­чес­ки соз­даст ключ вос­ста­нов­ления BitLocker и заг­рузит его в Microsoft Account поль­зовате­ля или Active Directory.


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


Страшный сон TPM. Взламываем защиту модулей TPM и шифрование BitLocker - «Новости»

Итак, ты вошел в сис­тему с пра­вами адми­нис­тра­тора, исполь­зовав учет­ную запись Microsoft Account. Сис­темный диск был зашиф­рован, но ты это­го даже не заметил. Через какое‑то вре­мя ты перезаг­рузил сис­тему. Изме­нилось ли что‑нибудь в про­цес­се заг­рузки? С точ­ки зре­ния поль­зовате­ля — ров­ным сче­том ничего: компь­ютер заг­рузил­ся, Windows вывела зап­рос пароля. К это­му момен­ту зашиф­рован­ный BitLocker диск уже раз­бло­киро­ван, но ты даже не при­касал­ся к компь­юте­ру. С какой сто­роны это называ­ется защитой?


А вот с какой. При про­екти­рова­нии архи­тек­туры защиты раз­работ­чики Windows исполь­зовали модель угроз, приз­ванную пре­дот­вра­тить сле­дующие события:



  1. Вход в опе­раци­онную сис­тему в обход стан­дар­тных механиз­мов аутен­тифика­ции.

  2. Из­вле­чение дис­ка и его перенос на дру­гой компь­ютер с целью пос­леду­ющей рас­шифров­ки.

  3. Сня­тие обра­за дис­ка и его рас­шифров­ка.

  4. Заг­рузка компь­юте­ра с внеш­него накопи­теля с целью рас­шифров­ки сис­темно­го раз­дела.

  5. Из­менение кон­фигура­ции заг­рузки с целью рас­шифров­ки сис­темно­го раз­дела.


Та­ким обра­зом, если тебе известен пароль вхо­да в сис­тему — ты не испы­таешь никаких неудобств от того, что диск зашиф­рован. А вот если пароля у тебя нет, то тебе не удас­тся даже запус­тить перебор: база дан­ных SAM хра­нит­ся на зашиф­рован­ном дис­ке, и дос­тупа к ней у тебя не будет до тех пор, пока ты не спра­вишь­ся с шиф­ровани­ем. Для парано­иков дос­тупны вари­анты уси­лен­ной защиты: нап­ример, на сис­темный раз­дел мож­но допол­нитель­но уста­новить PIN-код, сох­ранить ключ на USB-накопи­теле или исполь­зовать сра­зу оба спо­соба. В раз­деле, пос­вящен­ном про­тиво­дей­ствию ата­кам, как раз и упо­мина­ется этот спо­соб.


 

Как устроена защита


В BitLocker исполь­зует­ся сим­метрич­ное шиф­рование дис­ка. По умол­чанию — алго­ритм AES с клю­чом дли­ной 128 бит. В све­жих сбор­ках Windows 10 при­меня­ется режим XTS; более ста­рые вер­сии ОС и пер­вый релиз Windows 10 исполь­зуют режим CBC.


Как имен­но выпол­няет­ся шиф­рование: средс­тва­ми цен­траль­ного про­цес­сора (с исполь­зовани­ем команд AES-NI) или кон­трол­лера дис­ка, — воп­рос слож­ный. До недав­него вре­мени Windows отда­вала пред­почте­ние механиз­мам шиф­рования, встро­енным в кон­трол­лер дис­ка или SSD, одна­ко обна­ружен­ная иссле­дова­теля­ми в целом ряде моделей уяз­вимость в реали­зации подоб­ных механиз­мов зас­тавила Microsoft отка­зать­ся от этой прак­тики и реали­зовать шиф­рование силами цен­траль­ного про­цес­сора. Впро­чем, это каса­ется толь­ко вновь соз­дава­емых томов; уже зашиф­рован­ные дис­ки будут про­дол­жать исполь­зовать тот механизм, который был исполь­зован при их соз­дании.


С нашей точ­ки зре­ния, оба механиз­ма экви­вален­тны. Для рас­шифров­ки дис­ка в любом слу­чае пот­ребу­ется мас­тер‑ключ, который мож­но получить одним из нес­коль­ких спо­собов:



  1. Рас­шифро­вать паролем, если раз­дел зашиф­рован имен­но таким обра­зом.

  2. Рас­шифро­вать клю­чом вос­ста­нов­ления (Recovery Key).

  3. Из­влечь непос­редс­твен­но из модуля TPM.


О пароль­ных ата­ках я писал уже дос­таточ­но; извле­чение клю­ча вос­ста­нов­ления — инте­рес­ная тема, зас­лужива­ющая отдель­ной статьи. Сей­час нас инте­ресу­ет исклю­читель­но тре­тий вари­ант — извле­чение клю­ча из модуля TPM.


 

Загрузка


Мо­дуль TPM или тех­нология Intel PTT исполь­зует­ся в том чис­ле для аппа­рат­ного кон­тро­ля «доверен­ной заг­рузки» (Trusted boot). Цель «доверен­ной заг­рузки» — убе­дить­ся, что заг­ружена имен­но та опе­раци­онная сис­тема и имен­но в той кон­фигура­ции, которая исполь­зовалась при соз­дании клю­чей. Для это­го исполь­зует­ся тех­нология, напоми­нающая блок­чейн. Стро­ится сво­еоб­разная «цепоч­ка доверия» — пос­ледова­тель­ность бло­ков с информа­цией об эта­пах заг­рузки, выс­тро­енная в хро­ноло­гичес­ком поряд­ке. Так же как и в блок­чей­не, информа­цию в цепоч­ке нель­зя изме­нить — толь­ко добавить. «Цепоч­ка доверия» сох­раня­ется в регис­трах PCR (Platform Configuration Register).


Для начала рас­смот­рим работу механиз­ма «доверен­ной заг­рузки» и роль модуля TPM без шиф­рования. Во вре­мя заг­рузки про­исхо­дят сле­дующие опе­рации.



  1. При вклю­чении компь­юте­ра управле­ние получа­ет пер­вый доверен­ный модуль SRTM (Static root of trust for measures), который находит­ся в области ROM, защищен­ной от записи. Важ­ный момент: SRTM по опре­деле­нию ста­тичен и защищен от изме­нений. Уяз­вимость в этом модуле может пос­тавить под угро­зу всю сис­тему безопас­ности, как это про­изош­ло в слу­чае с най­ден­ной в заг­рузчи­ках Apple уяз­вимостью checkm8. Под­робно об SRTM и дру­гой тех­нологии — DRTM мож­но узнать из отве­та на Stack Exchange «How does the TPM perform integrity measurements on a system?».

  2. SRTM дела­ет пер­вую запись в цепоч­ке: в регистр PCR0 записы­вает­ся кон­троль­ная сум­ма прог­рам­мно­го кода BIOS. Если в сис­теме про­писал­ся рут­кит, цепоч­ка доверен­ной заг­рузки будет прер­вана (см. «Как сис­тема Windows Defender System Guard защища­ет Windows 10 от рут­китов»).

  3. Те­перь управле­ние получа­ет доверен­ный UEFI BIOS, который фор­миру­ет даль­нейшие ком­понен­ты цепоч­ки. При этом ана­лизи­рует­ся мно­жес­тво парамет­ров: таб­лицы MBR, заг­рузчи­ка bootloader и дру­гих. В цепоч­ку добав­ляет­ся оче­ред­ная кон­троль­ная сум­ма, в соз­дании которой исполь­зует­ся информа­ция из пре­дыду­щего регис­тра PCR. Наруше­ние любого из ком­понен­тов при­водит к изме­нению содер­жимого регис­тров PCR и пре­рыва­нию доверен­ной заг­рузки.

  4. Уп­равле­ние переда­ется заг­рузчи­ку (bootloader), который счи­тыва­ет и запус­кает код из MBR дис­ка. При этом в цепоч­ку заг­рузки добав­ляет­ся еще нес­коль­ко записей.

  5. За­пус­кает­ся ядро опе­раци­онной сис­темы, которое добав­ляет оче­ред­ные эле­мен­ты в цепоч­ку.

  6. Заг­ружа­ется опе­раци­онная сис­тема. В резуль­тате на выходе — набор дан­ных в регис­трах PCR, однознач­но опи­сыва­ющий весь про­цесс заг­рузки. От модифи­кации содер­жимое регис­тров PCR защища­ется на аппа­рат­ном уров­не модулем TPM.


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



Перейти обратно к новости