 Следующий доклад, наш доклад, это взлом TPM и что вы можете... Не спрашивайте, что вы можете сделать TPM. Спрашивайте то, что TPM вы можете делать для вас. И расскажет наш гость, Андрей Ас. Аплодисмент. Всем привет. Меня зовут Андрей Ас. Я буду презентовать вам мои штуки на Pro App TPM. Это мой ссылка на mygithub, вы можете найти там то, что я делаю. В конце вы все равно увидите ссылку. Full disclosure, я работаю над TPM-ами и мне платят за то, что я работаю там. Также я являюсь частью Trusted Computing Group. Однако я начал работать с TPM-ом около 5 лет назад. И на тот момент это было еще версия 1.2. И я пытался сделать, чтобы что-то заработало на меня, но... Мне очень хорошо поддерживалось. API иногда было не очень удобно работать с этим API. И затем меня позвали работать над TSS, около 5 лет назад. И после поддерживания, затем я поддерживал на GitHub, как результат всего этого. Я хочу представить вам то, что я хочу представить. Сначала я расскажу, что такое TPM, небольшое вводное. Затем мы поговорим о защите креденшелов. Затем как вы можете работать над этим. И потом будет демо, будут классные, веселые сессии. Я решил сделать некоторые демо. И я решил, что я буду копировать всякие скрипты. И в мою вратольную машину. Сразу, конечно, не работает. Я должен был вот так. Но здесь и сейчас, когда-то время от времени, мы будем делать задалайф демо. Что такое TPM? TPM это такой чип безопасности, который припаян на вашу материнскую плату. И благодаря Microsoft, которые предоставили нам эту вещь. И благодаря почти все компьютеры с Windows, сейчас имеют TPM. И они достаточно высоко, сильно обезопасены. Есть общие критерии, по которым вы можете, в принципе, доверять. Были Failed, TPM Failed, так как в уязвимости. Таня и Дэннил говорили об этом около двух часов назад. Также этот чип может делать крипто. Криптографию. Может хранить что-то. Или записывать значения хэшей от загрузчика. И что самое главное, он пассивный. И вы видите старую версию 1.2 TPM на картинке. А на пасном ли TPM? Я, наверное, на прошлом конгрессе говорил, что репутация TPM была не очень хорошая. Она рассматривалась как дерево устройства. И в реальности это такие встроенные смарт-карты. В какого-то рода безопасный элемент, в котором находится вашем компьютере. И также есть способности для тестации и проверки целостности. Не слушайте меня, а послушайте Stolmant from GNU Foundation. Они сделали вывод, что TPM не является опасным. И что нет никакой безопасности, чтобы включать или не включать ваш компьютер. В принципе, можно ее использовать. В каким-то образом он ее заоправил. Кто здесь используется криптографию с открытым ключом? Я так понимаю, что почти все подняли руки. Кто использует смарт-карты или юбики? Тоже, да, почти все. Кто оптимизировал этот процесс, чтобы просто ставить эту смарт-карту в лаптопе? Или используя юбики Nano, которые всегда находятся в компьютере? Не так много. Для вас не некоторых. Это примерно такой же уровень безопасности, который дает вам TPM. Вы также можете использовать просто TPM, чтобы, может быть, удобнее. Может быть, у вас уже есть TPM, и вам не нужно беспокоиться, потому что у вас уже есть. В чем заключается идея по безопасности, которая заключается в TPM-ах и смарт-картах? В основном, это разделяет на две части. А вот идентификация — это доказательство обладания, когда у нас запрашивается какая-то информация, и мы должны доказать, что мы обладаем какой-то информацией, а также есть доказательство знания, это что-то типа пароля. Нас спрашивать пароль — мы, по сути, вводим пароль. Доказательство обладания обладает свойством, что это нельзя скопировать, сделает дубликаты этого. Например, если есть приватный ключ, который лежит на жестом диске, это предотвращает это. Если когда есть что-то не копируемое, когда только один человек может обладать этим в какой-то определенный момент, и это добавляет какую-то дополнительную безопасность, и это особенно важно на хакерском конгрессе, что-то типа этого. И некоторые люди могут хорошо распознавать пароли от записи видео, как выпечатать пароли на компьютере. Доказательство обладания обычно — это что-то типа вашей смарт-карты или бикинану, может быть просто сконвертировано в доказательство обладания лептопа с TPM. Это два фактора — это обладание этим лептопом плюс знание пинкода. А что, если вас взломали? Это основная проблема, если для всех обладание, если кто-то способен контролировать вашу систему, они могут более-менее использовать ваши данные для Логина. Но, поскольку нельзя копировать, то вы временно связаны с ограниченной по времени для произведения этого взлома, и нет шансов для хардблида, потому что любой эксплуат, который может получить полный доступ или производить дамп памяти, в этой проблемой не может быть в случае с TPM, потому что ключи не хранятся нигде на компьютере, а используются в TPM. Как вы используете эту защиту? Экшили, на самом деле. Был один из ПО, одно из ПО, который мы установили. Чтобы использовать этот TPM то ССС, все, что вам нужно — это только всего лишь три команды. Я сейчас быстро вам покажу их. Я не использую симулятора TPM, я использую настоящий TPM. Переключение между виртуальными рабочими столами — это боль. Чтобы мы сначала сделаем, мы генерируем ключи для использования с этим TPM. Следующие команды — мы сделаем самый подписанный сертификат. Первая — это кастомная команда, и вторая — это обычная OpenSSL. Мы указываем Engine, который выполняет наши кербидгархические действия. Мы возьмем и используем это. Теперь мы у нас есть Corel. На самом деле, Corel может подключиться... Он может помочь нам подключиться к... Он может использовать OpenSSL, движки OpenSSL, которые... Не обращайте внимания на minus-minus.exe, потому что у нас локальный сервер. И поэтому я просто хочу сделать аутентификацию клиента, использовать клиентскую аутентификацию TLS и запросить эту страницу. Как вы можете видеть, это есть веб-сайт. Первый раз, когда я запустил эту команду, я не мог поверить, что все так было, все произошло быстро. И я могу включить debug-режим, что мы видим всю коммуникацию с TPM. И мы увидим, что TPM выполняет клиентскую TLS-аутентификацию. Следующая вещь, которую мы... Во-первых, почему я это делаю? Я только использовал TPM для только простых баш-скриптов. Когда вы используете баш-скрипты, то вы можете нанести сюда свои пароли, а потом вы опубликуете на гитхабе, и это проблема. Другая вещь, которую я хотел бы сделать дома, это Reverse Proxy на Engines. И производить аутентификацию. И кто может, а кто не может использовать это Web-сервер? И так, что не меня не затронет какой-нибудь HardBlit с будущего. Уязвимость типа HardBlit. Если мы посмотрим в Science Enabled, Configurat Engines, как мы видим, мы используем SLS Certificate. Мы используем это ключевое слово engine. Мы указываем TPM engine из-за какого-то странного бага в Engines, в котором люди из Engines говорили. Мы также должны указать сверху, что у нас будет этот движок. Теперь мы просто перезапустим Engines. Теперь я могу зайти попробовать подключиться к этому серверу с моей хостовой системы. Мы только что использовали TPM, чтобы аутентифицироваться из браузера. Теперь с обоих сторон можем подключиться к этому серверу. То есть этот сервер представляет этот сертификат из TPM. Другой, более сложный вариант это использовать стандартный API, который из общей API, который, например, используется для SMARC. Также мы работаем как сообщество над этой вещью и также над некоторыми контрибютерами здесь сидят в зале. Если, например, есть странность в установке всего этого, нужно перезапустить это все из дома. Заметьте, что единственная вещь, которую я реально устанавливаю, это Shared Library, которая называется LPP. В любом случае, мы устанавливаем Python Pass, указываем перемены окружения, где хранить эту нашу базу данную. Мы инициализируем и добавляем токен и затем добавляем ключ. Давайте посмотрим, как это работает. Выглядит неплохо. И теперь мы получили это. Мы получили определенную, мы добавили этот ключ как смарт-карта. Я хочу это использовать для того, чтобы производить автонтификацию СССР. Я не знаю, как много людей используют автонтификацию через СССР по публичному ключу. Я бы сказал, что это почти все. Круто. А кто не защищает, кто использует пустой пароль для этого ключа? Для всех вас это может быть интересно. Все, что мы будем делать, это мы запустим СССР и сгенилируем СССР ки. И я скопирую этот публичный ключ скопируя на хостовую машину и добавлю этот ключ. И обратно возвращаюсь в виртуальную машину. Виртуальный рабочий стол внутри другого виртуального рабочего стола. Прекрасно. Теперь мы можем залоггениться с помощью СССР и тоже должно работать. Теперь у нас спрашивают ПИН для смарт-карт, который мы начали назвать лейбл. И теперь я залоггенился и это тоже работает. Чтобы сделать вещи еще более крутыми, я все для чего использую СССР. Я возьму публичный ключ и добавлю в Магит хоп-аккаунт этот ключ. И теперь это становится еще более интересно. Я добавил этот СССР ключ да, я храню пароль в браузере. То, что мы сейчас здесь делаем, я создал этот офигенный Shell Script который использует PKCS11 11. Я указываю гид СССР в тременное окружение. И затем эта вещь вызывает PKCS11 11. Давайте попробуем склонировать какую-нибудь репозиторию. И вот теперь у нас спрашивают пароль ПИН для TPM. И вот, все, мы склонировали репозиторию. Теперь мы можем попробуем сделать за чеков новый бренд. И теперь сейчас перейдем за чеков тем новый бренд. И запушим обратно в этот репозиторий. И теперь мы запушили. Теперь мы можем зайти на теперь мы можем зайти на Магит хоп-аккаунт и увидеть этот пуш в эту ветку, который был автоинтифицирован с помощью PKCS11 и TPM. Может быть там будут какие-то баги, но я бы сказал довольно юзабельно. Я бы сказал, что это все еще незаконченная работа. Битлокер. Как можно назвать это битлокер для Linux. Я отправил патч в Linux. Я надеюсь, что каждый раз я отправлю эту работу обратно. Идея в том, что можно использовать это для Lux или Crypto Setup. И когда есть несколько кислотов для зашифрованных ключей и также зашифрованных с помощью KTF и пароля. Также есть JSON с разными хедрами, кислотами, которые вы можете расширять на ваших links в машине. Что мы делаем, мы берем наш ключ в Олимки в неизменяемом энергонезависимом с пространства. И мы храним этот в Олимки внутри TPM. И также мы храним различные методаны в Hedery Lux. Теперь настало опять время демонстрации. Это branch Crypto Setup. И я собираю, компилирую это онлайн, пока я рассказываю. Внутри нашей виртуальной машины запущена просто обычная бунта. И я просто выбрал обычный LVM то, что там было просто обычное шифрование диска. К сожалению, надо до сих пор использовать формат Lux 1. К сожалению, нужно использовать конвертацию, которая конвертирует конвертирование диска с Lux 1 на Lux 2. И все будет так. Обновили InitramFS Следующая команда, которая запущу, это единственная разница в команде. Это только DASH TPM. Это указывает, что мы используем TPM. Мы вводим существующий пароль, вводим новый пароль и вводим пароль, который будет использовать за TPM. Осталось только все 5 минут, так что я пропущу это. Он запросит меня пароль для TPM. Что мы видим, это у нас OK-слот для TPM 2. Еще одну вещь, которую хочу его презентовать. Это проверка целостности. MatiGuard это основано на работе MatiGuard, который он презентовал. Это на 32,3. Я просто сделал реимплементацию от всего этого. Теперь теперь теперь настало время достать ваши телефоны, открыть Google Vindicator или ваша любая ТОТП-приложение и все будет работать как и задумано. На самом деле, я перекомпилировал заранее. Если есть в зале эксперты по GTK3, то пожалуйста, помогите. Теперь мы выставили на каждые загрузки. Мы вализируем одинаковые, они одинаковые для значения при каждой загрузке. То есть, если при каждой ПСР, если у вас было обновление гидра, то у вас поменяется. Вы можете добавить этот ключ по QR-коду в вашу ТОТП-приложение и запустить нашу систему. Проблема была с тема, что ладно. У меня есть номер из ТОТП-приложения правильно? И теперь вместо того, чтобы вместо без плохого места плохого, но его обычного паролья я уважаю пароль от ТОТПМ. Один, два, три, четыре, пять. И мы загрузились. И это сработало с лаксом. Окей. Я надеюсь, это дало вам некоторое представление, что вы можете сделать ТОТПМ сейчас. Если вы хотите начать делать вклад нашу работу. Вы можете присоединиться на наш китхап. Вы можете подойти ко мне, поговорить со мной с моими коллегами. Вы можете посмотреть на файлы хедда-файлы, которые довольно важны. Недавно это ФАПИ. Я думаю, около недели назад. Пожалуйста, посмотрите. Посмотрите на это внимательно. Посмотрите на инструменты, которые начинаются с ТОТПМ-2. Например, ТСС-2 ESUS. Различные мампинки. Еще один совет. Бонусный совет. Если у вас есть какие-то проблемы, что-то не работает случайным образом, это говорит о том, что вам нужно сделать флаж-контекст. Спасибо всем. У нас стало время вопросов. Спасибо большое. Сейчас время для вопросов. У нас есть вопросы из интернета и вопросы отсюда из зала. У вас та же самая майка. Вопрос от микрофонного М4. Скажем, у вас есть ключи для инкрепшен в ТПМ? И у вас какое-то правительство влияет на компания, которая меняет вашу мантру, которую вы говорите и использует ТПМ. В этом смысле нужно будет иметь оба ключей для декрипции люкс. Скажем, если будет торчер, вам все равно нужно двойной фактор-отентификации. Даже если у вас есть ключи, я им не доверяю. Хорошая идея, спасибо. Только вопросы, пожалуйста, не комментарии. Мне нужно использовать видос, который использует BitLocker. Вы думаете, что есть много шансов, что вы можете сломать BitLocker ключи? Это очень сильно зависит на инструмент, в который вы используете цели. Инструмент, который я использую и все, что я показал, не устанавливает постоянные ключи. ПКСС-11 встанавливает постоянные ключи. И ОТП в штуке используют какие-то ресурсы NVM. Кроме этого, нет ключей, которые будут удаляться. То есть вы можете взять и использовать их. Спасибо. Теперь у нас будет вопрос с интернетом. Если вы используете токены как юбики, у кого есть нужда нажимая на кнопку, чтобы доказать proof of presence. Как вы можете взять TPM? В данный момент нет. Но я надеюсь, что сейчас TPM уже использует встроенный посветодиод. Может быть, у нас будет GPIO в нашем TPM. Может быть, есть похожие функции там же. Но на данный момент сейчас только были прототипы для исследования на Cortex M3 сам я делал эти не прототипы. И да, это нужно разработать сначала GPIO из TPM. Спасибо, Шая. Вы думаете, вы можете это имплементировать в двухфакторной да и нет. Наверное, имплементировать только части. Это только базовые криптографические операции. Они просто обычно используют кастомные форматы для данных. Когда у вас есть какие-то счетчики, которые имплементироваются и они не знают о файловой структуре, был такой TPM Metastation Mount режим. Если вы хотите начать работать над этим, просто подойдите ко мне и я просто могу вам помочь. Так что это много чего делать. Если кто-то из вас ищет то, что можно поделать, можно просто посмотреть на нашу страницу сообщества в Гитхабе и контролете вниз. Там есть большой список программ, в котором вы хотели бы иметь поддержку TPM различные приложения. Например, что-то простой, что-то типа GPG. Следующий вопрос. Сколько разных ключей или смарт-каров вы можете сохранять в TPM? Классная вещь насчет этого с концертом TPM, что TPM хранит только несколько ключей. В данном случае это только один. Все остальные ключи зашифрованы с помощью этого ключа и хранятся на диске. Сколько угодно ключей, поскольку у вас есть много места на диске. Следующий вопрос. Спасибо за заклад. У меня есть вопрос связан с Kernel Upgrades. Если я буду делать upgrade на Kernel, вы думаете, что есть возможность измерять, что какое Kernel у меня будет и если будет разница на следующий будд? В теории, конечно, да, абсолютно. Это очень просто исследователь тебе скажет, что это можно сделать, а инженер скажет, что это в этом есть проблема, потому что каким-то образом нужно знать референции из-за ранее. И затем нужно имплементировать это все. Распространение, проверка целостности и так далее. В основном, это проблема инфраструктуры, нежели чем проблема третьего TPM или ПО, которая использует TPM. Последний вопрос интерната. Если я не доверяю TPM моей машины, я могу использовать другой TPM от другого вендера. Да, насколько я знаю, есть совместимый SPI-протокол и такой же пин-оут. Это довольно неплохая стандартизация, так что да, конечно, пожалуйста. Наверное, за исключением только за исключением TPM, который используется внутри Imple Management Engine и потому что они находятся внутри и не используют аюа. Спасибо большое, если вы хотите вставлять контакт с Андреасом, вы можете найти их в странице, вы только что видите. Спасибо большое за Андреас.