Как управлять закрытыми ключами

Источник: infosecurity

У людей, не вдающихся в технические подробности, асимметричная криптография стала синонимом понятия PKI (Public Key Infrastructure - инфраструктура открытых ключей). Однако, вопросы, касающиеся PKI, несравненно шире.

  Сегодня уже трудно представить себе отсутствие мобильной связи, персональных компьютеров и сети интернет, которые прочно вошли в нашу повседневную деятельность. Для применения интернета в бизнесе должны функционировать системы, имеющие такие характеристики, как надежность и безопасность. Без современных технологий защиты электронный бизнес основного сектора В2В (Business to business) не имел бы такого бурного развития, которое в значительной степени зависит от фактора доверия. Доверие связано с безопасностью - чем более прозрачна и надежна защита, тем выше степень доверия и шире область использования решений.

  Электронная цифровая подпись (ЭЦП) - один из сервисов безопасности, который помогает решать задачи целостности, доступности и неотказуемости авторства. Для полноценного функционирования электронной цифровой подписи требуется создание развитой инфраструктуры, которая известна в России как инфраструктура открытых ключей или PKI (public key infrastructure) - в международной терминологии. Под этим термином понимается полный комплекс программно-аппаратных средств, а также организационно-технических мероприятий, необходимых для использования технологии с открытыми ключами. Основным компонентом инфраструктуры является собственно система управления цифровыми ключами и сертификатами. Все развитые страны мира, в том числе Россия, формируют подобные национальные инфраструктуры. Асимметричная криптография помогает решать задачи обеспечения конфиденциальности, аутентификации, целостности и достоверности информации. Однако не стоит путать эти понятия.

  В асимметричной криптографии применяется два типа отличных друг от друга ключей. Один из них, а именно публичный ключ, используется для того, чтобы выполнить "публичные операции" (например, зашифрование, проверка и подтверждение подлинности цифровой подписи). Второй - соответственно, закрытый ключ - используется для "закрытых операций" (например, расшифрование, генерация ЭЦП). Таким образом, всё, что зашифровано с помощью публичного ключа, может быть расшифровано с помощью закрытого или секретного ключа.. Такая система позволяет не только избежать необходимости делиться секретной (ключевой) информацией с другими пользователями, но и обеспечить такое важное свойство информации, как неотказуемость пользователя от авторства. Так как только владелец закрытого ключа в состоянии реализовать соответствующие процедуры.

  Благодаря использованию инфраструктуры открытых ключей, которая базируется на использовании сертификатов, определяющих владельцев закрытых ключей и их полномочия, мы имеем возможность соотнести публичные ключи с их владельцами. Это, безусловно, важно, поскольку при криптографическом преобразовании сообщения, решающим фактором является использование публичного ключа, который принадлежит легальному получателю, а не какому-либо "подставному" лицу. Таким образом, технология PKI по существу является способом безопасного распределения публичных ключей, которая дает гарантию того, что сообщение зашифровано с применением публичного ключа, принадлежащего нужному нам адресату. По аналогичной схеме, после получения подписанного документа, мы в состоянии проверить идентичность подписывающего его лица.

  Сегодня область применения асимметричной криптографии постоянно расширяется, с ней (явно или неявно) имеют дело самые разные категории пользователей - от индивидуальных владельцев домашних компьютеров (использующих протокол SSL при оплате через интернет товаров или услуг), до пользователей корпоративных систем (входящих с ее помощью в сеть и проходящих аутентификацию при доступе к корпоративным базам данных).

  В сущности, единственный способ гарантировать целостность электронного документа - подписать каждое сообщение электронной цифровой подписью, поскольку критически важным свойством ЭЦП является неотказуемость. Иными словами, если подписанный документ получен, то подписывающее лицо не может позже отрицать факт подписания документа. Таким образом, отправитель не может отказаться от совершенного действия. Это свойство дает возможность использовать документы, подписанные с помощью ЭЦП, в качестве доказательной базы в суде, и обеспечивает неотменяемость посланных по электронной почте заказов или распоряжений.

  Другая область применения асимметричной криптографии - аутентификация. Например, при входе в операционную систему Microsoft Windows по смарт-карте пользователь отправляет запрос на аутентификацию, подписанный своим закрытым ключом. В ответ он получает от сервера реквизиты для удостоверения личности (ticket granting ticket - "билет, предоставляющий билет" в терминологии Kerberos), которые зашифрованы с помощью его открытого ключа и для расшифрования которых опять требуется использование закрытого ключа пользователя. Также асимметричная криптография является неотъемлемой частью протокола сетевой аутентификации TLS/SSL.

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

Безопасность закрытых ключей

  Важнейшей составляющей асимметричной криптографии и инфраструктуры PKI является управление закрытыми ключами. При дальнейшем обсуждении данной проблемы будем считать решенным вопрос, как распределены публичные ключи, и каким образом мы узнаём о соответствии ключа пользователю.

  Фундаментальный постулат криптографии заключается в том, что закрытые ключи доступны только их владельцам. Если злоумышленник может получить закрытый ключ какой-либо из сторон, участвующих в информационном обмене, это значит, что он легко может расшифровать все сообщения, посланные этой стороне. Кроме того, он может подписать любое сообщение от имени легального пользователя, и успешно исполнить его роль в информационном обмене. Т.е. ни о какой безопасности не может быть и речи. Более тонкий вопрос, который возникает в этом случае, заключается в том, что неотказуемость как свойство ЭЦП можно также считать утраченным, как только пользователь получит возможность утверждать, что его закрытый ключ мог быть нелегально использован (неважно, действительно ли фактическое воровство имело место или нет).

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

  Безопасность закрытого ключа пользователя должна быть обеспечена на каждом из этапов его жизненного цикла: на этапе генерация ключевой пары (открытый и закрытый ключи), во время хранения закрытого ключа, при использовании закрытого ключа (выполнение криптографических операций, требующих использования закрытого ключа пользователя, например - формирование электронной цифровой подписи) и при уничтожении закрытого ключа.

  Генерация ключевой пары должна выполняться в среде, исключающей как возможность влияния злоумышленника на сам процесс генерации, так и возможность получения какой-либо информации о закрытом ключе, которая может впоследствии быть использована при попытке его восстановления.

  При хранении закрытого ключа должны быть обеспечены его конфиденциальность и целостность - ключ должен быть надёжно защищён от несанкционированного доступа, а также модификации. При использовании закрытого ключа важно исключить возможности его перехвата, а также несанкционированного использования (помимо воли и желания владельца ключа). И, наконец, на этапе уничтожения закрытого ключа необходимо обеспечить гарантированное уничтожение информации и полностью исключить возможность его повторного использования (например, путём восстановления ранее удаленного хранилища).

Обеспечение безопасности закрытых ключей пользователей

  Сейчас наиболее распространены и наиболее часто используются следующие подходы к обеспечению безопасности закрытых ключей.

Программные хранилища (software token)

  Предназначены для хранения закрытых ключей на диске компьютера, чаще всего - в зашифрованном виде. Примерами реализации данного подхода являются криптопровайдер Microsoft Enhanced CSP, входящий в состав операционной системы Microsoft Windows или браузер Mozilla/Netscape.

Аппаратные устройства (hardware token)

  Предназначены для хранения закрытых ключей и выполнения криптографических операций, требующих использования закрытого ключа. К таким устройствам относятся смарт-карты и USB-ключи, построенные с использованием микросхем смарт-карты.

Репозитарии (credentials repository)

  Представляют собой выделенные серверы, предназначенные (часто специализированные аппаратное обеспечение) для централизованного хранения закрытых ключей для нескольких пользователей. Для того чтобы выполнить операцию с использованием своего закрытого ключа (например, подписать электронное письмо), пользователь должен сначала аутентифицироваться на сервере, передать данные для обработки на сервер, затем получить результат.

  В настоящее время в России наиболее распространёнными средствами хранения закрытых ключей являются программные хранилища (software token) и аппаратные устройства (hardware token) в виде смарт-карт и USB-ключей. Репозитарии стоят очень дорого и не позволяют обеспечить мобильность пользователя. В основном они применяются для хранения ключей, используемых при аутентификации устройств, например, серверов при организации защищённого информационного обмена, а также в финансовой сфере.

Управление закрытыми ключами: программные хранилища

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

  Защита закрытых ключей программными средствами называется программным хранилищем. Такое хранилище является программной эмуляцией аппаратного электронного ключа и выполняет практически аналогичные функции. Однако простота использования программных хранилищ имеет обратную сторону - велики риски компрометации ключей.

  Чтобы воспользоваться закрытым ключом (например, для формирования ЭЦП документа), закрытый ключ пользователя должен быть предварительно извлечён из программного хранилища и загружен в память компьютера, после чего он может быть использован для выполнения криптографических операций.

  Отметим, что удобство и простота использования программных хранилищ имеет обратную сторону. В частности, для обеспечения мобильности пользователя программное хранилище должно быть продублировано на всех его компьютерах (рабочий компьютер, домашний компьютер, ноутбук, карманный компьютер и др.). Это значительно увеличивает уязвимость закрытого ключа и может привести к его компрометации.

Основные угрозы

  Важно понимать и отдавать себе отчёт в том, что любые персональные компьютеры представляют собой потенциально небезопасную среду в силу наличия двух основных угроз. Классической угрозой является возможность физического доступа. В основе данной угрозы лежит тот факт, что компьютер в большинстве случаях является физически доступным и незащищённым. И дело даже не в краже того же ноутбука, хотя и она не исключена. Существуют и значительно более распространенные примеры.

  Скажем, во многих компаниях практикуется посменная работа сотрудников. При этом все они используют один и тот же компьютер. Соответственно, никто не может знать, что происходит с компьютером и кто за ним сидит в другие смены. Нередки случаи, когда, например, секретарь может покинуть своё рабочее место, оставив пришедшего в офис посетителя предоставленным самому себе.

  Получить физический доступ к "бесхозному" компьютеру не составляет никакой сложности. А это значит, что потенциально злоумышленник может получить доступ к программному хранилищу. Фактически любой офис не является безопасной средой и представляет богатые возможности для проникновения злоумышленника, особенно обладающего навыками социальной инженерии. Программное хранилище закрытых ключей легального пользователя (сотрудника компании) может быть захвачено, скопировано или украдено вместе с ноутбуком или карманным компьютером. Причем в качестве злоумышленника можно легко представить не только "случайного гостя", но и коллегу по работе или даже уборщицу. Если задаться вопросом, почему уборщица могла бы заинтересоваться программным хранилищем, ответ прост - так проще всего реализовать атаку, направленную на отдельно взятую компанию. Для такого нападения естественная стратегия состоит в том, чтобы компания сама наняла сотрудника в штат. Например, ту же самую уборщицу или электрика, которым вполне может оказаться опытный социоинженер (хакер, совмещающий ИТ и социотехники для воздействия на людей с какой-либо целью). Компания нанимает электрика на небольшую зарплату, не подозревая, что стоимость его "работы" может обойтись ей намного дороже. Ведь электрик имеет физический доступ во все помещения офиса. Остаётся лишь дождаться удобного момента, и задачу можно считать выполненной.

  Важно отметить, что простой блокировки компьютера недостаточно - злоумышленник может просто вручную извлечь жесткий диск и прочесть хранящиеся на нём файлы. Конечно, можно принять контрмеры против кражи программного хранилища, например, зашифровав содержимое жёсткого диска компьютера. Однако в большинстве случаев даже такой "грубый" вариант всё еще остаётся возможным.

  Вторую угрозу представляет злонамеренное программное обеспечение (malicious software), к которому относятся вирусы, сетевые черви, трояны и др. Стремительное распространение вредоносных программ ежегодно наносит компаниям колоссальный ущерб. Заражение с помощью любого типа злонамеренного ПО может иметь разрушительные последствия для хранящегося на компьютере пользователя закрытого ключа, защищенного программными средствами. Написанная специально для этих целей программа-шпион (spyware) может просто считать файл программного хранилища без ведома хозяина компьютера и послать его своему автору. Такие программы незаметно "подсаживаются" на компьютер в ходе просмотра обычных с виду web-страниц.

  Более того, описанная выше атака может носить массовый характер, и таким образом множество ключей, хранящихся на компьютерах, могут быть считаны и украдены одним единственным "шпионом". В качестве примера можно привести вирус под названием Caligula, выпущенный в конце 90-ых годов. Он был предназначен для похищения закрытых ключей пользователя системы PGP, которые хранились в программном хранилище.

Основные контрмеры

  Учитывая вышеупомянутые угрозы, ясно, что программные хранилища не являются простыми, типичными файлами, сохраненными в личном каталоге пользователя. Это сделало бы захват программного токена чрезмерно простой задачей для злоумышленника. Программные хранилища защищены, и для этого используются следующие методики. Во-первых, шифрование данных. Всё содержимое программного хранилища находится в зашифрованном виде, используется надёжный алгоритм шифрования, а ключ шифрования выводится из пароля пользователя (например, с использованием хеш-функции).

  Во-вторых, стараются максимально сбить с толку того, кто несанкционированно попытается получить доступ к закрытому ключу. По существу, программное хранилище скрывается благодаря скремблингу на жестком диске пользователя. В принципе, для того чтобы осложнить задачу хакера, используется множество способов имеющих эффект "путаницы". Например, один из них состоит в том, чтобы сначала зашифровать программное хранилище секретным ключом шифрования, и затем "прятать" ключ в различных местах на диске пользователя.

  Вполне можно согласиться с тем, что эффект "путаницы", действительно, может помочь защититься от молодых амбициозных сетевых злоумышленников. Однако опытный хакер, приложив некоторые усилия, может обойти этот способ защиты. Таким образом, всецело доверять обеспечение безопасности "путанице" не стоит, её можно рассматривать лишь как, дополнительную меру, которая может использоваться, чтобы снизить, но не исключить риск. Возможно, "путаница" и подходит для защиты приложений, связанных с системой управления цифровыми правами (DRM), но она не обеспечивает необходимого для PKI-решений уровня безопасности.

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

  Пробуя вводить подобранные пароли, атакующий может угадать необходимую для доступа комбинацию. Такое нападение называют "атакой по словарю" или "словарной атакой" и оно в достаточной мере эффективно. Единственный способ предотвратить эту угрозу состоит в применении сложного пароля, содержащего символьные, цифровые, буквенные значения разных регистров, и к тому же состоящего из случайного набора символов. Качественный пароль может выглядеть примерно так: g1UY$^M#&6430Ff``@Nk. К сожалению, запомнить такую комбинацию для большинства пользователей не представляется возможным, особенно если принять во внимание тот факт, что паролей может быть несколько. Таким образом, в большинстве случаев, "словарные атаки" очень успешны.

  Основная проблема программных хранилищ состоит в том, что они зависят от безопасности среды, в которой находятся, то есть - компьютера. А персональные компьютеры отнюдь не безопасны: как только получен физический доступ, или машина заражена вирусом, закрытый ключ пользователя может быть скомпрометирован.

  Стоит добавить, что сам факт атаки может остаться незамеченным для пользователя, и злоумышленник в течение долгого времени сможет расшифровывать корреспонденцию легального пользователя и отправлять от его имени и за его подписью фальсифицированную информацию. Таким образом, важнейшее свойство ЭЦП - неотказуемость - не может быть достигнуто. Именно поэтому программное хранилище обеспечивает относительно низкий уровень безопасности, и его использование в организациях, оперирующих конфиденциальной информацией, должно быть исключено.

Алексей Сабанов, Антон Крячков, Константин Демченко, Сергей Белов 


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=10476