Управление закрытыми ключами: программные хранилища
Сентябрь, 2006
Программное хранилище — защита закрытых ключей программными средствами: эмуляция аппаратного электронного ключа с аналогичными функциями. Для использования ключа (например, формирования ЭЦП) он извлекается из хранилища и загружается в память компьютера. Для мобильности хранилище дублируется на всех компьютерах пользователя (рабочий, домашний, ноутбук, карманный) — это значительно увеличивает уязвимость.
Основные угрозы — две, и обе делают ПК потенциально небезопасной средой:
- физический доступ. Компьютер чаще всего физически доступен и не защищён: посменная работа нескольких сотрудников за одним ПК, секретарь, оставивший посетителя наедине с компьютером, кража ноутбука. Захватить, скопировать или украсть программное хранилище может не только “случайный гость”, но и коллега — или нанятый компанией “электрик”, оказавшийся социоинженером с физическим доступом во все помещения. Блокировки компьютера недостаточно — жёсткий диск можно извлечь и прочитать напрямую; шифрование диска помогает, но “грубый” вариант часто остаётся возможным.
- злонамеренное ПО (вирусы, черви, трояны): spyware может считать файл хранилища без ведома хозяина и отправить автору — такие программы незаметно “подсаживаются” при просмотре обычных web-страниц. Атака может быть массовой: вирус Caligula (конец 90-х) крал закрытые ключи PGP из программных хранилищ.
Контрмеры и их предел. Программные хранилища защищают двумя способами:
- шифрование: содержимое зашифровано, ключ шифрования выводится из пароля пользователя (через хеш-функцию);
- “путаница” (скремблинг): хранилище скрывается на диске — например, шифруется секретным ключом, который “прячется” в разных местах диска.
Эффект “путаницы” помогает против молодых злоумышленников, но опытный хакер его обойдёт; это лишь дополнительная мера (снизить риск, не исключить) — для DRM подходит, для PKI-решений уровня безопасности не обеспечивает. Шифрование с паролем зависит от качества пароля: получив зашифрованное хранилище, атакующий проводит словарную атаку; единственная защита — случайный пароль вроде g1UY$^M#&6430Ff``@Nk, который пользователи запомнить не могут, тем более несколько таких. Поэтому словарные атаки очень успешны.
Вывод. Программное хранилище зависит от безопасности среды (компьютера): при физическом доступе или заражении закрытый ключ скомпрометирован, причём сам факт атаки может остаться незамеченным — злоумышленник долго расшифровывает корреспонденцию и отправляет фальсификации от имени легального пользователя, и неотказуемость ЭЦП не достигается. Уровень безопасности программных хранилищ низкий — их использование в организациях, оперирующих конфиденциальной информацией, должно быть исключено.
Это краткая аннотация статьи, полную версию читайте в первоисточнике.
Первоисточник: CNews Analytics, сентябрь 2006
Эксперт: Алексей Сабанов, Аладдин
