Самостоятельная работа 4. Анализ безопасности протокола обмена информацией
· Найти уязвимость в схеме протокола
· Определить, атака какого типа позволит воспользоваться выявленной уязвимостью протокола
· Предложить способ модифицировать протокол, чтобы устранить уязвимость
Смарт-карты как на программном, так и на аппаратном уровне поддерживают множество алгоритмов симметричного шифрования и шифрования с открытым ключом. Смарт-карта оснащена собственным криптопроцессором и может выполнять операции шифрования и дешифрации без участия хост-компьютера, что и позволяет осуществлять безопасный обмен данными через Internet. Информация, которую необходимо предоставить пользователям, накапливается в базе данных сервера, а на компьютере пользователя установлено специальное клиентское ПО для доступа к этой информации.
Пользователь должен ввести PIN -код для взаимной аутентификации Internet -сервера и карты. Так как карта была эмитирована учебным заведением, в ней хранится открытый ключ сервера, а серверу известен открытый ключ карты. Сам процесс аналогичен взаимной аутентификации карты и хост-компьютера: карта передает серверу случайное число, зашифрованное его открытым ключом. Сервер должен его расшифровать и передать назад. Если число расшифровано правильно, карта может доверять серверу (см. рисунок).
Аналогично происходит аутентификация карты сервером. Такая процедура позволяет обеспечить доступ к данным легитимным пользователям. После того как подлинность карты и сервера по отношению друг к другу установлена, происходит обмен сессионными ключами. Например, ключи генерируются на сервере, шифруются открытым ключом карты и передаются карте, которая их расшифровывает и сохраняет. Далее смарт-карта шифрует запрос пользователя сессионным ключом и передает серверу. Сервер расшифровывает запрос, формирует ответ, шифрует их другим сессионным ключом и передает назад. Карта расшифровывает полученный ответ, который затем отображается на компьютере клиента. При передаче следующей порции данных будет использован новый сессионный ключ.
Рис. 15.1. Схема доступа смарт-карты к Internet
Протокол подвержен атаке типа "человек посередине". На этапе "Обмен сеансовыми ключами " сервер не предоставляет никакого подтверждения того, что именно он сгенерировал зашифрованные на открытом ключе смарт-карты. Сообщение от сервера может быть изъято злоумышленником и заменено на другие ключи симметричные K3, K4, зашифрованные на открытом ключе карты (согласно принципу асимметричной криптографии, открытый ключ известен всем, в т.ч. и потенциальному злоумышленнику). После этого смарт-карта передаст запрос серверу, зашифровав его на ключе K3. Злоумышленник сможет перехватить и расшифровать его, чтобы сформировать ответ и зашифровать на ключе K4. Таким образом, смарт-карта будет взаимодействовать не с сервером, а со злоумышленником. Избежать этого можно, если на этапе "Обмен сеансовыми ключами " в дополнение к передаваемому сообщению XXX сервер передаст результат шифрования XXX на своем закрытом ключе XXXX (по сути, это будет служить цифровой подписью ключей). Тогда эквивалентность XXX и результата расшифрования XXXX на открытом ключе сервера будет для смарт-карты гарантией того, что ключ был получен от сервера, а не от злоумышленника.
В результате выполнения лабораторной работы студенты научились смотреть на протокол обмена информацией с позиции взломщика и систематизировали знания основ криптографии:
· Закрепили знания фундаментальных принципов асимметричной и симметричной криптографии
· Научились оценивать возможность криптографических механизмов обеспечить не только шифрование данных, но и аутентификацию участников переговоров
Лекция 12: Безопасная вычислительная база нового поколения
· Ознакомиться со спецификациями доверенной платформы, разработанными TCG
· Рассмотреть круг задач, на решение которых ориентирован TPM
· Изучить принципы работы TPM
· Рассмотреть архитектуру Windows Vista TPM
· Сравнить процесс загрузки доверенной платформы:
o согласно спецификации TCG
o в интерпретации Microsoft
· Изучить возможности средства шифрования диска Windows BitLocker
Сложность, разнородность и скорость изменения современных открытых систем противоречит принципам проектирования защищенных систем. Инициатива Microsoft по созданию "Безопасной вычислительной базы нового поколения" ( Next-Generation Secure Computing Base - NGSCB ) [16.1] нацелена на разработку платформы, обеспечивающей надежное управление доступом и при этом сохраняющей открытость персональных компьютеров. Microsoft объявила о разработке NGSCB в 2002 году. Этот набор технологий, известный ранее под кодовым названием Palladium, подразумевает использование сочетания программных и аппаратных средств, которое должно существенно повысить уровень защищенности ПК. По замыслу авторов проекта, на открытой платформе NGSCB может работать любое программное обеспечение, но необходимы механизмы, которые позволили бы защитить друг от друга операционные системы и приложения, выполняемые на одной и той же машине. Достичь этого можно путем изоляции операционной системы от других процессов и реализации аппаратной и программной поддержки секретности и аутентификации по отношению к локальным и удаленным объектам. Проект NGSCB еще не был реализован в полной мере, не встретив поддержки со стороны корпоративных пользователей и производителей программного обеспечения: необходимым условием применения новых средств защиты было изменение кода существующих систем. Тем не менее, ряд идей, лежащих в основе NGSCB, были реализованы в Windows Vista и Windows Server 2008 и заложили основу для дальнейшего развития проекта доверенной открытой платформы.
Платформа NGSCB разрабатывалась в соответствии с новыми требованиями в области безопасности, установленными группой Trusted Computing Group ( TCG ) [16.4]. TCG была сформирована в 2003 г. с целью разработки и продвижения открытых стандартов на "доверенные вычисления" ( trusted computing ). В число компаний-основателей входят Advanced Micro Devices, Hewlett-Packard, IBM, Infineon, Intel, Lenovo, Microsoft и Sun Microsystems ; в настоящий момент группа насчитывает 135 участников. Основным результатом работы группы на данный момент является спецификация Trusted Platform Module ( TPM ) [16.3] и связанный с ним документ Trusted Computing Group Software Specification ( TSS ) [16.2]. Под TPM мы будем понимать не только абстрактную концепцию, но и аппаратный компонент "доверенной вычислительной платформы". TSS - спецификация программного интефейса ( API ), который должны использовать разработчики для взаимодействия с TPM. "Доверенная вычислительная платформа" - это платформа, которая должна обеспечивать пользователя более высоким уровнем защиты по сравнению с традиционным персональным компьютером. Текущая версия спецификации TPM на момент написания данного курса лекций - 1.2. Эта версия спецификации TPM была опубликована в октябре 2003 г. и с тех пор претерпела ряд изменений. Windows Vista поддерживает только TPM -устройства, совместимые с версией 1.2.
Trusted Platform Module ( TPM ) - микроконтроллер, который предлагает средства для безопасного создания и хранения ключей шифрования. Важно отметить, что микросхема ТРМ имеет встроенную защиту от подделки. TCG рассматривает TPM как основу для построения доверенной вычислительной платформы. Специализированная микросхема TPM, предназначенная для создания мастер-ключа шифрования, который может быть в дальнейшем использован для шифрования других ключей, сгенерированных на уровне пользователя, позволяет обеспечить дополнительную защиту ключей, не полагаясь только на программное обеспечение, которое подвержено уязвимостям (например, ошибкам типа "переполнение буфера" - buffer overflow).
TPM позволяет создавать криптографические ключи и зашифровывать их таким образом, что они могут быть расшифрованы только тем же самым модулем TPM. Данный процесс, называемый " сокрытием " (wrapping) ключа или " привязкой " ("binding") ключа, помогает защитить ключ от раскрытия. В каждом модуле TPM хранится секретный ключ, называемый ключом корневого хранилища ( Storage Root Key, SRK ), который создается при инициализации модуля и никогда не станет доступен любому другому компоненту системы, программному обеспечению, процессу или пользователю. Ключ SRK используется для защиты ключей, которыми шифруются данные в на диске. При очистке модуля SRK стирается, что приводит к отмене права владения модулем TPM и отключению модуля TPM.
" Запечатывание " ( sealing ) ключа в модуле TPM позволяет создавать ключи, которые будут не только зашифрованы, но и привязаны к определенной системной конфигурации. Такой тип ключа может быть расшифрован только в том случае, если характеристика платформы, на которой его пытаются расшифровать, совпадает с той, на которой этот ключ создавался. При использовании "запечатанного" ключа и BitLocker (см. секцию "Средство шифрования диска Windows BitLocker ") можно обеспечить блокировку данных до тех пор, пока они не будут перенесены на компьютер с подходящей аппаратной или программной конфигурацией.
Согласно концепции TCG, доверенная вычислительная платформа должна обладать следующими возможностями:
· Защищенные функции (Protected capabilities);
· Мониторинг целостности (Integrity monitoring);
· Хранение показателей целостности (Integrity storage);
· Оповещение о целостности (Integrity reporting).
Защищенные функции - набор команд, которые могут применяться для доступа к секретным данным, размещенным в защищенных хранилищах. Мониторинг целостности - это набор данных о состоянии системы и метрик, позволяющих отражающих состояние защищенности системы: например, должна быть возможность определить, подвергались ли данные несанкционированному доступу. Метрики могут храниться в логах, но хеш-значения состояния целостности системы, полученные при помощи алгоритма с помощью алгоритма SHA1, записываются в регистры конфигурации платформы ( platform configuration registers, PCR ), которые представляют собой перезаписываемые или неперезаписываемые ячейки памяти самого TPM. Назначение функции оповещения о целостности очевидно из названия.
Аттестация ("attestation") позволяет с использованием специальных 2048-битных ключевых пар ( Attestation Identity Key, AIK ), хранимых в TPM, подписывать при помощи алгоритма RSA сведения о параметрах и конфигурации платформы и на основании этих данных проверять надежность системы. Существует 4 типа аутентификации [16.5]:
· TPM использует ключ AIK, чтобы подписать некие данные, хранимые внутри самого модуля, подтверждая, что он активен и может проверить сам себя;
· TPM использует ключ AIK, чтобы подписать данные в регистрах PCR, что позволяет оповещать 3-ю сторону о целостности системы ("удаленная аттестация");
· Платформа подтверждает свою идентичность, предоставляя данные, которые использовались при создании ключа AIK ;
· Платформа использует непереносимые ключи, хранимые в TPM, для аутентификации устройства (например, с целью проверить, что система, осуществляющая доступ к данным, обладает соответствующими правами).
" Корни доверия " ( roots of trust ) - это заслуживающие доверия компоненты системы, которые позволяли бы верифицировать состояние других частей системы. Обычно различают 3 корня доверия:
· Корень доверия для измерения ( Root of trust for measurement, RTM );
· Корень доверия для хранения ( Root of trust for storage, RTS );
· Корень доверия для оповещения ( Root of trust for reporting, RTR ).
RTM, как правило, представляет собой процессор, работающий под контролем центрального корня доверия для измерения ( Core root of trust for measurement, CRTM ), где CRTM - это набор инструкций, выполняемых вычислительной машиной при осуществлении измерений.
Важнейшее понятие доверенной платформы - " доверенный строительный блок " ( Trusted Building Block, TBB ), который включает 2 компонента - CRTM и TPM. Оба эти компонента физически расположены на материнской плате и не должны заменяться.
На рис.16.1 показана связь TBB и BIOS с архитектурой Windows Vista. Во-первых, важно отметить, что TSS располагается на более высоком уровне, чем драйвер TPM и базовые службы TPM (TPM Base Services, TBS). Драйвер TPM предоставляется производителем TPM, TBS является компонентом Windows Vista, а TSS представляет собой реализацию одноименной спецификации, разработанной группой TCG. Таким образом, TCG определила спецификации для трех компонентов доверенной платформы, расположенных на разных уровнях.
Необходимо отметить несколько аспектов, специфичных для архитектуры Windows Vista TPM. В отличие от обычных драйверов, драйвер TPM необходим еще до загрузки операционной системы, использующей механизм безопасной загрузки: поэтому он интегрирован в код BIOS. Кроме того, Microsoft в качестве посредника между высокоуровневыми приложениями и драйвером TPM (по сути - аппаратным обеспечением TPM ) предлагает использовать TBS. TSS предоставляет приложениям третьих фирм стандартный API -интерфейс для взаимодействия с TPM. Интересные данные по тестированию TPM и служб TPM в Windows Vista приводятся в [16.6].
Рис. 16.1. Архитектура Windows Vista TPM
Каждый раз при загрузке системы контроль в первую очередь получает CRTM: пока не выполнятся инструкции из этого набора, управление не может быть передано другому коду. Цель такого подхода - дать CRTM возможность определить надежность каждого компонента системы, прежде чем передать ему управление. Последовательность загрузки (с момента запуска CRTM ) проиллюстрирована на рис. 16.2 (подробное описание см. в [16.5]):
1. CRTM производит измерения целостности оставшейся части кода BIOS.
2. Если CRTM устанавливает, что измерения подтверждают идентичность системы, контроль передается BIOS.
3. BIOS производит измерения целостности конфигурационных установок платформы и других необходимых параметров.
4. Если BIOS устанавливает, что измерения подтверждают идентичность системы, контроль передается менеджеру загрузки Windows Vista, который производит свои измерения целостности как часть процесса безопасной загрузки.
5. Когда контроль получает механизм загрузки BitLocker, он производит измерения целостности загрузочного сектора NTFS и менеджера загрузки.
6. Как только BitLocker убедится в том, что уже выполненный код и код, которому нужно передать управление, заслуживает доверия, он распечатывает ключ и расшифровывает содержимое диска, а затем передает управление ядру операционной системы.
7. Задача проверки целостности кода переходит к Windows Vista. Подобно предшествующим компонентам, Vista производит измерения целостности кода; при обнаружении несоответствия с ранее сохраненными значениями загрузка блокируется.
8. Убедившись в том, что целостность кода не нарушена, операционная система загружается.
Рис. 16.2. Процесс загрузки доверенной платформы: (A) - согласно
спецификации TCG; (B) - в интерпретации Microsoft
Средство шифрования диска BitLocker (прежнее название - Full Volume Encryption / FVE - "полное шифрование тома") обеспечивает защиту данных на аппаратном уровне. Шифрование всего системного тома Windows позволяет предотвратить утечку или раскрытие данных с утерянного, украденного или неправильно утилизированного компьютера. Технология BitLocker помогает организациям исполнять государственные постановления и законы, в которых требуется использование высоких стандартов обеспечения безопасности и защиты данных (например, закон Сарбэйнса-Оксли [16.7] и HIPAA [16.8]).
Шифрование диска BitLocker является новой возможностью, которая доступна в Windows Vista и Server 2008. Оптимальным хранилищем для ключа шифрования с точки зрения функции BitLocker является микросхема доверенного платформенного модуля TPM версии 1.2. Если технология развертывается в системе, не имеющей такой микросхемы, то ключ шифрования записывается на запоминающее устройство USB [16.9].
BitLocker использует алгоритм AES с ключом 128 бит [16.10]. Взлом такого шифра методом полного перебора с использованием самого мощного персонального компьютера уйдет более 100 триллионов лет [16.5]. При современном уровне развитии вычислительной техники можно гарантировать, что на ближайшие 2 тыс. лет данные, зашифрованные алгоритмом AES-128 в безопасности. Однако нельзя с уверенностью утверждать, что за это время не появится более эффективных методов взлома таких шифров или что в AES не обнаружатся лазейки, которые позволят осуществлять поиск ключа более эффективно, чем методом полного перебора. Для повышения надежности длину ключа можно увеличить до 256 бит с помощью групповых политик или через интерфейс, предоставляемый провайдером инструментария управления Windows ( Windows Management Instrumentation, WMI ) для BitLocker. Более подробная информация по криптоалгоритмам, используемым BitLocker, изложена в [16.11].
Защита данных с помощью шифрования BitLocker усиливается за счет шифрования системного раздела и проверки целостности компонентов, используемых на раннем этапе загрузки. Каждый сектор тома шифруется отдельно, при этом часть ключа шифрования определяется номером этого сектора. В результате два сектора, содержащие одинаковые незашифрованные данные, будут в зашифрованном виде выглядеть по-разному, что сильно затрудняет определение ключей шифрования путем записи и шифровки заранее известных данных. Не шифруются три элемента [16.9]:
· загрузочный сектор,
· поврежденные сектора, уже отмеченные как нечитаемые,
· метаданные тома.
Метаданные тома состоят из трех избыточных копий данных, используемых BitLocker, включая статистическую информацию о томе и защищенные копии некоторых ключей расшифровки. Эти элементы не требуют шифрования, поскольку не являются уникальными, ценными или позволяющими определить личность.
Перед применением шифрования BitLocker использует алгоритм, называемый диффузором ( diffuser ) [16.10]. В результате его применения даже мельчайшее изменение исходного текста приводит к абсолютному изменению всего сектора зашифрованных данных. Это серьезно затрудняет определение ключей или дешифровку.
Использование технологии BitLocker - это один из возможных подходов к проблеме гарантированного уничтожения информации на жестком диске. Как известно (см., например, [16.12]), эта задача является очень важной: даже использование специализированных средств не всегда предохраняет от риска восстановления данных злоумышленником по остаточной информации. Чтобы избавиться от данных, достаточно избавиться от ключа, которым они были зашифрованы: несмотря на то, что данные при этом физически останутся на жестком диске, для злоумышленника они уже не будут представлять интереса.
На первый взгляд, совместное использование EFS и BitLocker противоречит золотому правилу криптографии: "Если вы шифруете что-то дважды - вы, очевидно, не понимаете смысл своих действий" [16.5]. Действительно, в стандартном сценарии шифрования данные шифруются симметричным криптоалгоритмом с использованием ключа, который затем зашифровываются на открытом ключе пользователя, имеющего право доступа к этим данным. В этом случае мы имеем 2 ключа и 2 шага шифрования - тем не менее, к каждому объекту шифрования (данным и симметричному ключу) криптоалгоритм применяется только один раз. Какой смысл дополнительно шифровать данные, которые уже защищены при помощи BitLocker? Однако заметим, что пользователь, обладающий ключом шифрования BitLocker, автоматически получает доступ ко всему содержимому диска. EFS предоставляет более гибкий подход и позволяет управлять доступом на уровне пользователей. Очевидным минусом комбинирования технологий является снижение производительности системы.
Платформа NGSCB ("Безопасная вычислительная база нового поколения") разрабатывалась в соответствии с новыми требованиями в области безопасности, установленными группой Trusted Computing Group ( TCG ).
Согласно концепции TCG, доверенная вычислительная платформа должна обладать следующими возможностями:
· Защищенные функции ( Protected capabilities );
· Мониторинг целостности ( Integrity monitoring );
· Хранение показателей целостности ( Integrity storage );
· Оповещение о целостности ( Integrity reporting ).
TCG рассматривает как основу для построения доверенной вычислительной платформы Trusted Platform Module ( TPM ) - микроконтроллер, который предлагает средства для безопасного создания и хранения ключей шифрования.
Шифрование диска BitLocker является новой возможностью, которая доступна в Windows Vista и Windows Server 2008. Оптимальным хранилищем для ключа шифрования с точки зрения функции BitLocker является микросхема доверенного платформенного модуля TPM версии 1.2.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.