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

Содержание статьи

  • Что такое TPM и почему он мешает расшифровать диск
  • Архитектура защиты
  • Как устроена защита
  • Загрузка
  • Системный раздел зашифрован BitLocker
  • Пытаемся взломать TPM
  • Пытаемся получить ключ шифрования из оперативной памяти
  • Атака методом холодной загрузки
  • Метод доступа через DMA
  • Сниффер для TPM
  • Страшный сон TPM
  • Противодействие атакам
  • Заключение

Мо­дули TPM час­то исполь­зуют­ся для шиф­рования дис­ков с помощью BitLocker даже без ведома поль­зовате­ля. Сис­тема заг­ружа­ется и зашиф­рован­ный том раз­бло­киру­ется нас­толь­ко проз­рачно, что поль­зователь может и не подоз­ревать, что накопи­тель в его устрой­стве зашиф­рован. Рас­шифро­вать такой диск мож­но лишь с исполь­зовани­ем клю­ча вос­ста­нов­ления или… или взло­мав чип TPM, в котором хра­нит­ся ключ шиф­рования.

info

Статья осно­вана на иссле­дова­нии Андрея Малыше­ва, руково­дите­ля евро­пей­ско­го фили­ала «Элкомсофт».

 

Что такое TPM и почему он мешает расшифровать диск

Trusted Platform Module (TPM) — тех­нология безопас­ности, пред­став­ленная в виде допол­нитель­ного чипа, рас­паян­ного или уста­нов­ленно­го на материн­ской пла­те компь­юте­ра. Нес­мотря на то что офи­циаль­но устрой­ства с TPM в Рос­сию не пос­тавля­ются, так как содер­жат несер­тифици­рован­ные средс­тва шиф­рования, тех­нология при­сутс­тву­ет в боль­шинс­тве ноут­буков. Чип TPM либо рас­паян на материн­ской пла­те (но не акти­виро­ван в BIOS), либо, что слу­чает­ся гораз­до чаще, при­сутс­тву­ет в «вир­туаль­ном» виде бла­года­ря исполь­зованию плат­формы Intel PTT (Intel Platform Trust Technology).

Для поль­зовате­ля и опе­раци­онной сис­темы прак­тичес­кой раз­ницы меж­ду эти­ми под­ходами нет, одна­ко с точ­ки зре­ния уяз­вимос­тей и их экс­плу­ата­ции раз­ница сущес­тву­ет.

Ес­ли рас­смат­ривать модуль TPM в качес­тве аппа­рат­ного «довес­ка», то он сос­тоит из крип­тогра­фичес­кого про­цес­сора и встро­енной памяти неболь­шого объ­ема. При этом крип­тогра­фичес­кий соп­роцес­сор не исполь­зует­ся для шиф­рования дан­ных — как, нап­ример, это сде­лала Apple с чипом T2.

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

Ра­зуме­ется, как самой опе­раци­онной сис­теме, так и ее ком­понен­там и при­ложе­ниям дос­тупны интерфей­сы для работы с TPM и клю­чами шиф­рования — что тем не менее не озна­чает пол­ной бес­кон­троль­нос­ти.

По­чему одни дис­ки, зашиф­рован­ные BitLocker, мож­но взло­мать методом перебо­ра, в то вре­мя как дру­гие, точ­но такие же, нель­зя? Меша­ет то, что пароль в таких дис­ках не исполь­зует­ся вов­се, — переби­рать‑то, собс­твен­но, нечего. Ключ шиф­рования хра­нит­ся в аппа­рат­ном модуле TPM, и имен­но этот модуль будет решать, выдать ключ по зап­росу, отка­зать в дос­тупе или вов­се заб­локиро­вать чип, зас­тавив рас­шифро­вывать кон­тей­нер дру­гим спо­собом. (В скоб­ках замечу, что «дру­гой спо­соб» — это резер­вный ключ, так называ­емый ключ вос­ста­нов­ления дос­тупа, он всег­да сох­раня­ется при соз­дании тома или на дис­ке, или в обла­ке Microsoft, или в Active Directory. Зашиф­рован­ный этим клю­чом ключ шиф­рования дис­ка так­же сох­раня­ется в заголов­ке тома BitLocker.)

Ес­ли ты стал­кивал­ся с экра­ном наподо­бие того, который при­водит­ся ниже, ты пой­мешь, о чем идет речь.

info

Ес­ли хочешь — можешь почитать, где взять ключ вос­ста­нов­ления дос­тупа. Я же про­дол­жу рас­сказ о модулях TPM.

 

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

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

  • В устрой­стве при­сутс­тву­ет и акти­виро­ван чип TPM или тех­нология Intel PTT.
  • Ус­трой­ство под­держи­вает Modern Standby.
  • Поль­зователь с пра­вами адми­нис­тра­тора вошел в сис­тему через учет­ную запись Microsoft Account или исполь­зовал для вхо­да учет­ную запись домена.
  • Сис­тема авто­мати­чес­ки соз­даст ключ вос­ста­нов­ления BitLocker и заг­рузит его в Microsoft Account поль­зовате­ля или Active Directory.
  • В ран­них сбор­ках Windows допол­нитель­но при­сутс­тво­вало тре­бова­ние, что­бы опе­ратив­ная память была рас­паян­ной, а в качес­тве сис­темно­го исполь­зовал­ся твер­дотель­ный накопи­тель, одна­ко в све­жих вер­сиях плат­формен­ной докумен­тации упо­мина­ний это­го я не нашел.

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

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

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

     

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

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

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

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

  • Рас­шифро­вать паролем, если раз­дел зашиф­рован имен­но таким обра­зом.
  • Рас­шифро­вать клю­чом вос­ста­нов­ления (Recovery Key).
  • Из­влечь непос­редс­твен­но из модуля TPM.
  • О пароль­ных ата­ках я писал уже дос­таточ­но; извле­чение клю­ча вос­ста­нов­ления — инте­рес­ная тема, зас­лужива­ющая отдель­ной статьи. Сей­час нас инте­ресу­ет исклю­читель­но тре­тий вари­ант — извле­чение клю­ча из модуля TPM.

     

    Загрузка

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

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

  • При вклю­чении компь­юте­ра управле­ние получа­ет пер­вый доверен­ный модуль 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?».
  • SRTM дела­ет пер­вую запись в цепоч­ке: в регистр PCR0 записы­вает­ся кон­троль­ная сум­ма прог­рам­мно­го кода BIOS. Если в сис­теме про­писал­ся рут­кит, цепоч­ка доверен­ной заг­рузки будет прер­вана (см. «Как сис­тема Windows Defender System Guard защища­ет Windows 10 от рут­китов»).
  • Те­перь управле­ние получа­ет доверен­ный UEFI BIOS, который фор­миру­ет даль­нейшие ком­понен­ты цепоч­ки. При этом ана­лизи­рует­ся мно­жес­тво парамет­ров: таб­лицы MBR, заг­рузчи­ка bootloader и дру­гих. В цепоч­ку добав­ляет­ся оче­ред­ная кон­троль­ная сум­ма, в соз­дании которой исполь­зует­ся информа­ция из пре­дыду­щего регис­тра PCR. Наруше­ние любого из ком­понен­тов при­водит к изме­нению содер­жимого регис­тров PCR и пре­рыва­нию доверен­ной заг­рузки.
  • Уп­равле­ние переда­ется заг­рузчи­ку (bootloader), который счи­тыва­ет и запус­кает код из MBR дис­ка. При этом в цепоч­ку заг­рузки добав­ляет­ся еще нес­коль­ко записей.
  • За­пус­кает­ся ядро опе­раци­онной сис­темы, которое добав­ляет оче­ред­ные эле­мен­ты в цепоч­ку.
  • Заг­ружа­ется опе­раци­онная сис­тема. В резуль­тате на выходе — набор дан­ных в регис­трах PCR, однознач­но опи­сыва­ющий весь про­цесс заг­рузки. От модифи­кации содер­жимое регис­тров PCR защища­ется на аппа­рат­ном уров­не модулем TPM.
  • От­лично, сис­тема заг­рузилась, содер­жимое регис­тров PCR ука­зыва­ет на доверен­ный ста­тус заг­рузки. Теперь добавим шиф­рование.

    Источник: xakep.ru

    Ответить

    Ваш адрес email не будет опубликован. Обязательные поля помечены *