О чем же говорит «отец основатель» криптографии с открытым ключом. Сегодня невозможно представить защиту информации без криптографии. Стойкость современных криптографических алгоритмов до сих пор не поставлена под сомнение. Однако компрометация систем, использующих криптографические механизмы защиты, не такая уж редкость. Причин этому много. Хочется отметить, что здесь и далее не рассматривается человеческий фактор, государственное влияние, коррупция и т.п., а обсуждаются исключительно технические аспекты. Характерным примером атак на системы использующие криптографию, является атака на систему клиент-банк. Отсутствие доверенной среды выполнения криптографических операций на компьютере клиента приводит к возможности проведения атак направленных на кражу ключевой информации, на подмену платежной информации, на несанкционированное использование ключей. Огромное количество инцидентов в системах ДБО показывает, что защита среды выполнения важна не менее чем стойкость используемых криптографических алгоритмов.
Что же должна обеспечивать среда выполнения криптографических операций:
- Обеспечивать защиту криптографических ключей от копирования;
- Гарантировать разграничение прав доступа к выполнению криптографических операций;
- Обеспечивать контроль аутентичности данных поступаемых на обработку;
- Обеспечивать целостность собственного кода;
- Иметь интерфейс взаимодействия с небезопасной средой.
Отдельно стоящим пунктом является юзабилити решения. Требование это не техническое, а скорее коммерческое. И конечно, строгой формализации в этом вопросе нет.
Для создания доверенной среды в настоящее время используется множество различных механизмов. Ниже небольшой обзор.
Антивирусы и «песочницы»
К «первой линии обороны» можно отнести различные программные средства защиты, устанавливаемые в систему. Необходимо отметить, что данные средства не являются самой средой, а используются для формирования защищенной среды в ОС компьютера. К таким средствам относятся антивирусы и различные программные песочницы. Использование этих средств в значительной степени снижает риск несанкционированного доступа к данным при выполнении критически важных операций. Однако, как показывает практика, их использование не дает гарантий защиты. Ошибки в общесистемном ПО и постоянно совершенствующиеся шпионское ПО позволяют обходить практически любые программные механизмы защиты.
Использование модуля доверенной загрузки
Модуль доверенной загрузки (МДЗ) и доверенная среда звучат похоже, однако, совсем не одно и тоже. Действительно, использование МДЗ решает часть задач по формированию доверенной среды. МДЗ может обеспечить разграничения прав доступа к системе, повысить надежность хранения ключей в системе, обеспечить целостность некоторой части системы. Это решение повышает общий уровень безопасности до загрузки системы, однако после загрузки ОС с установленным МДЗ также подвержена атакам, как и обычная система.
Загрузка с образа
Использование загрузки с образа операционной системы для совершения важных операций. Такой подход может быть реализован различными методами. Однако всем им присуще одни недостатки.
- Образ системы критически важная составляющая решения. Без использования дополнительных средств защиты невозможно обеспечить целостность образа и конфиденциальность ключевой информации хранимой в образе.
- Уже запущенная доверенная ОС может быть атакована, как и обычная система. Использование загрузки с доверенной ОС без дополнительных средств защиты не обеспечивает создание доверенной среды.
- Юзабилити:
- В большинстве случаев требуется перезагрузка системы;
- Пользователь вынужден использовать среду без привычных инструментов;
- Затруднен обмен данными между доверенной и недоверенной средами.
Существует два основных подхода в использовании загрузки с образа.
Виртуальная машина. Возможны атаки с хостовой машины, как во время выполнения, так и на образ виртуальной машины. Как и другие программные механизмы защиты снижает риск, но не дает гарантий безопасности.
Загрузка с LiveCD / LiveUSB. При построении такого решения необходимо сформировать образ системы, обладающий необходимой функциональностью. При этом имеет смысл ограничить список приложений в образе только теми, которые необходимы для выполнения поставленных задач. При планировании запуска системы на разных компьютерах необходима поддержка различных аппаратных платформ. Для безопасного использования необходимо решить все вышеперечисленные проблемы. Часть проблем можно решить использованием защищенного носителя.
Загрузка с защищенного носителя
Более продвинутой версией загрузки с образа ОС, является использование при этом защищенного носителя. Как и в предыдущем случае рекомендуется использовать ОС специально подготовленную для проведения конкретной операции. Например, ОС с которой можно подключится только к определенному серверу и выполнить строго определенные действия. С точки зрения безопасности, риски при использовании такого решения стремятся к нулю. Однако при наличие ошибок на сервере системы возможность атаки остается. Защита образа системы от несанкционированного изменения реализуется с помощью специального носителя. Специальный носитель реализует также безопасное хранение криптографических ключей.
Касательно юзабилити. Основным недостатком всех подобных решений является «оторванность» от основной системы, а также необходимость перезагрузки системы для запуска доверенной среды. То есть в таком решение отсутствуют привычные инструменты работы, а также усложняется перенос данных между приложениями доверенной и обычной ОС. Одним из приемлемых вариантов обмена данными может являться специализированный сетевой ресурс, однако постоянная перезагрузка ОС для выполнения какой-либо операции крайне неудобна для пользователя. Логическим продолжением могло бы быть использование двух компьютеров. Основного, где происходит бизнес процесс и отдельно стоящего компьютера со специальной ОС для совершения критичных с точки зрения ИБ операций. Эти компьютеры могут иметь сетевое соединение непосредственно между собой или через сервер.
Загрузка кода в одно ядро
Это решение имеет смысл вынести в отдельный класс из за оригинальности использованного механизма. Согласно описанию при загрузке со специального носителя (флешки) в одно из ядер процессора загружается некий код, затем (после извлечения флешки) стартует основная система на других ядрах. Имеется возможность переключаться между запущенной ОС и выполняемым кодом в первом ядре. Декларируется, что ОС не имеет доступа к первому ядру с загруженной программой. Однако из ОС можно передавать данные в выделенное ядро для «доверенной» обработки. Схема весьма оригинальна, однако остается под вопросом корректность изоляция выполняемых в разных ядрах процессах. Логика подсказывает, что если возможно передать данные для подписи из основной ОС в другие ядра, то скорее всего возможны и другие варианты взаимодействия процессов. Так же не очень понятен механизм защиты флеш носителя от изменения кода загрузчика и сохранности хранимых на нем ключей. Видимо, без использования специальных носителей не обойтись.
Внешние доверенные устройства
Идея вынести выполнение критических операций на отдельное специализированное устройство не нова. К критическим операциям в данном случае стоит отнести работу с ключами и контроль обрабатываемой информации. То есть в этих устройствах необходимо обеспечить генерацию ключей, выполнение криптографических операций и контроль поступаемых на обработку данных. Так же необходимо обеспечить механизм разграничения прав доступа к устройству и обеспечить неизменность исполняемого кода.
Задачу по безопасной работе с ключами достаточно давно и весьма эффективно решают смарткарты и токены с криптографией на борту. Ключи генерируются аппаратно в устройствах, криптографические операции выполняются в устройствах, ключи никогда не покидают устройств. Разграничение прав доступа наиболее часто осуществляется с помощью PIN кода. Защита исполняемой программы от модификации обеспечивается производителем чипов на аппаратном уровне. Для борьбы с атаками направленными на несанкционированное использование криптографических возможностей, развитие данных устройств идет по пути добавления функциональности контроля аутентичности данных.
Реализация контроля аутентичности данных, поступаемых на обработку, в доверенных устройствах может быть различной. Существует три основных механизма контроля:
- Доверенный механизм ввода данных. Реализуется с помощью клавиатур ввода данных физически располагаемых на устройстве. Характерным примером являются так называемые «криптокалькуляторы», на клавиатуре которых производится набор платежных реквизитов и затем на основе секрета устройства (или секрета платежной карты) формируется код подтверждения платежа. Основным недостатком решения является необходимость ввода данных вручную. В банковской сфере, для устранения этого неудобства, в устройство может быть добавлена функциональность хранения списка контрагентов.
- Визуальный контроль данных, осуществляемый с помощью дисплея доверенного устройства. В отличии от первого способа, данные формируются в недоверенной среде, а затем отображаются на экране доверенного устройства. Корректность данных проверяет пользователь устройства. В случае подтверждения пользователем корректности данных, формируется код подтверждения. Устройства могут иметь различный форм фактор и иметь различные интерфейсы обмена данными. В настоящее время являются самыми удобными для пользователя решениями по созданию доверенной среды.
- Получение данных из доверенного источника с криптографической проверкой авторства. Получение данных от доверенного сервера приложений и расшифровка (проверка подписи) в доверенном устройстве. Может сочетается с визуальным контролем данных.
По своей сути все внешние доверенные устройства являются миникомпьютерами с ограниченными функциональными и вычислительными возможностями. Аутентичность данных обеспечивается наличием собственных интерфейсов ввода-вывода.
Перспективы
При изобилии различных решений для создании доверенной среды наблюдается некоторые закономерности.
- Эффективно решить поставленную задачу без некого, отдельного от основного компьютера, устройства не удается.
- При использовании загрузки с доверенного носителя для обеспечения безопасности ограничивается функциональность загружаемой ОС.
- Внешние подключаемые устройства наращивают свою функциональность.
Исходя из вышесказанного в ближайшие годы стоит ожидать появления специализированных компьютеров, предназначенных исключительно для проведения критически важных операций в доверенной среде. Вполне вероятно основой для них могут стать планшетные компьютеры, которые постоянно падают в цене и обладают при этом достаточной вычислительной мощностью и необходимыми интерфейсами.
ссылка на оригинал статьи http://habrahabr.ru/post/171629/
Добавить комментарий