Практическое применение криптографии долгое время оставалось уделом спецслужб и тщательно скрывалось от посторонних глаз. К сожалению или к счастью, развитие информационных технологий существенно расширило возможности шифрования данных, заодно сделав криптоинструменты доступными всем желающим. И таковых нашлось немало: практически любой компании есть что скрывать от конкурента. А затем и частные лица вдруг поняли, что их приватность ежедневно и ежечасно находится под угрозой. В немалой степени усугублению этой разновидности паранойи способствовал Интернет - на радость разработчикам средств информзащиты.
Подстегиваемая растущими техническими возможностями и жадным спросом, криптография начала развиваться темпами, впечатляющими и озадачивающими даже компьютерщиков с стажем. В результате обилие шифрософта не позволяет не то что составить полный каталог имеющихся программ, но даже однозначно классифицировать приложения.
Способы шифрования данных следует разделить по их программной реализации. Начнем с того, что кое-какие криптоинструменты есть даже в операционках. Так, в Windows XP используется специальная файловая система EFS, благодаря которой можно хранить защищенные данные в томах NTFS 5.0. В этом случае используется прозрачное шифрование, то есть с такими файлами можно работать, как и с обычными: открывать, изменять и т. д. Шифрование/дешифрование будет происходить незаметно, в фоновом режиме. При шифровании файлов (Свойства папки или файла › Общие › Другие › Шифровать содержимое для защиты данных) Windows создает сертификат и связанную с ним пару ключей. Сертификат представляет собой цифровой документ для проверки подлинности и защищенной передачи данных в открытых сетях. Кстати, если не сохранить сертификаты и ключи или не создать учетную запись агента восстановления, при переустановке ОС защищенные данные будут безвозвратно потеряны.
Встроенную криптозащиту предоставляют и многие программные комплексы, например MS Office или Lotus Notes. В «офисных» программах можно ставить пароль как на открытие, так и на редактирование файла. Впрочем, автоматизированный подбор пароля за приемлемое время для доступа к документам Word или Excel вполне возможен. Поэтому для усиления защиты во многих программах предусмотрено подключение внешних модулей шифрования от независимых разработчиков. Чуть ниже мы поговорим о таких модулях подробнее.
Наконец, для шифрования данных (электронной корреспонденции, файлов, дисков и пр.) можно использовать и специализированные комплексы, которые обычно поставляются в виде набора утилит, обеспечивающего полную защиту рабочего места (как правило, гибкая политика лицензирования позволяет установить и отдельные компоненты комплексов, которые необходимы в конкретной ситуации).
Сделать защиту данных более надежной позволяют аппаратные средства. В первую очередь это носители ключей, сертификатов и прочих конфиденциальных данных. Теоретически таким «хранителем» может стать тривиальная дискета, но на практике обычно используются токены (USB-ключи) и смарт-карты (изготовлением последних занимаются специализированные фирмы - Aladdin, Rainbow, «Актив», Eutron). На сегодняшний день «железные» ключи поддерживаются практически всеми популярными средствами шифрования, а некоторые программы вообще не могут работать без аппаратных средств защиты.
Так что перед пользователем, радеющим о неприкосновенности своих данных, стоит нелегкий выбор подходящего к случаю ПО. Но перед тем, как погружаться в нюансы, давайте поговорим о самом неприятном.
Казалось бы, самый очевидный подход - разделить софт по лежащим в его основе алгоритмам шифрования. Но и здесь не все гладко, потому что криптоалгоритмов накопилось великое множество, которое, в свою очередь, тоже нужно классифицировать. Да и сами алгоритмы бывают симметричные, асимметричные и тайнописные. В первом случае принцип действия алгоритма не является ни для кого тайной, а секрет составляет лишь специальный информационный блок - ключ. С его помощью данные можно как зашифровать, так и расшифровать. В асимметричном алгоритме используют пару ключей: открытый и закрытый. Первый служит для шифрования данных и не представляет собой секрета, так как не пригоден для дешифрации. Тем же, кому положен доступ к данным, владелец передает другой - закрытый ключ. Кстати, эти ключи еще и отличаются длиной в битах. Думаю, не стоит уточнять, что чем ключ «длиннее», тем надежнее шифр.
Есть еще тайнопись - самый древний и, увы, ненадежный принцип шифрования, которым в детстве забавлялись многие читатели, изобретая собственные алгоритмы. Классика жанра - использование в качестве ключа букв алфавита в обратном порядке, когда в шифруемом тексте "а" заменяется на "я", "б" - на "ю" и т. д.
В более серьезных сферах применения криптографии тайнопись уже практически не используется, так как сильно уступает двум первым вариантам. Достаточно сказать, что сама необходимость сохранения алгоритма в тайне делает этот метод крайне ненадежным.
Независимо от типа и назначения данных для шифрования можно дать ряд общих рекомендаций по выбору криптоутилиты. Во-первых, в основе ее работы должен лежать зарекомендовавший себя алгоритм. В качестве «наградного знака» можно рассматривать, например, признание алгоритма госстандартом в какой-нибудь из стран. Если же автор софта - небольшая малоизвестная компания, то к ее заявлению о собственной уникальной методике следует отнестись критически. Ну и длина ключа, если используется симметричное шифрование, должна составлять хотя бы 128 бит. С этого «порогового» значения расшифровка данных без ключа при использовании современных средств не может быть выполнена за приемлемое для злоумышленника время.
Следует также остерегаться вариантов, при которых ключ представляет собой пользовательский пароль или создается генераторами «случайных» чисел[Возможно, кого-то это удивит, но значения, возвращаемые функцией random и ее аналогами в различных языках программирования, на самом деле являются не произвольным набором чисел, а определенной последовательностью]. Хорошее решение - генерация ключа на основе случайных движений мышью или нажатий клавиш на клавиатуре, когда измеряется время между каждыми соседними нажатиями/движениями (в миллисекундах), и если результат измерения четный, то очередному биту ключа присваивается нулевое значение, иначе - единица. Если длина ключа достаточно велика, барабанить пальцами по клавиатуре придется больше минуты. Полученные ключи необходимо спрятать, для чего используются различные носители - от дискет до токенов[Такой механизм создания ключа используется, к примеру, программой-клиентом популярной системы WebMoney].
В том, что защититься на 100% невозможно, убеждать, думаю, никого не нужно, и криптографические методы - не исключение. Производители софта для шифрования данных приводят потрясающие воображение цифры тестов - на расшифровку такого-то кода взломщику, работающему по восемь часов в день, понадобится столько-то тысяч лет и т. п. Однако здесь речь идет о том, что потенциальные похитители данных будут решать задачу в лоб, то есть заниматься перебором, чего на практике, конечно же, не происходит. Не стоит забывать, что даже в приложении, построенном на основе отлично зарекомендовавшего себя алгоритма, низкая надежность может проявиться на других уровнях. Работа криптософта - сложный процесс, в котором задействованы сразу несколько технологий: кодирование, ЭЦП, хэш-функции и др. Неудовлетворительные меры защиты хотя бы по одной из этих технологий ослабляют надежность системы в целом. Также далеко не во всех программах тщательно проработано удаление исходной информации для шифрования: сброс аппаратных буферов и кэш-памяти, очистка виртуальной памяти, временных файлов и т. д. В идеале файл подкачки вообще не должен использоваться, но в этом случае резко повышаются системные требования ПО, а разработчики не хотят терять часть (и немалую) клиентов среди владельцев маломощных компьютеров.
Во многих программах не учитывается влияние «окружающей среды», которая может критически повлиять на безопасность. В частности, нередко считается, что доступ к компьютеру, на котором установлен криптософт, закрыт для посторонних. Между тем это почти всегда не соответствует истине. Выход в данном случае - программная поддержка аппаратных ключей, снабженных собственной защитой (например, смарт-карт с PIN-кодом). Ведь на самом компьютере могут находиться вредоносные программы, включая кейлоггеры, и если злоумышленник узнает пароль, вводимый пользователем для шифрования данных, он может легко получить доступ и к конфиденциальной информации.
Переход на безбумажный документооборот, интернет-платежи и онлайн-переписку породил ряд проблем. Одной из главных является замена стандартной подписи цифровым вариантом, аналогичным по своей правомерности традиционному. Во многих случаях он является единственным средством доказательства подлинности и целостности передаваемого по Сети документа. Среди важных свойств собственноручной подписи можно отметить ее аутентичность, неподделываемость, непереносимость, а значит - неоспоримость и неизменность заверенного документа.
Для создания цифровой подписи (ЦП), обладающей всеми вышеперечисленными признаками, используются три основных метода. В первом случае электронный документ шифруется симметричным алгоритмом, а адресат и отправитель документа одинаково доверяют некоему третьему лицу. Под авторизацией здесь понимается шифрование документа секретным ключом и передача его (ключа) посреднику. Во втором случае используются асимметричные алгоритмы, и под подписанием документа понимается шифрование ключом отправителя. Наконец, в третьем случае, самом распространенном, шифрование окончательного результата обработки документа хэш-функцией производится при помощи симметричного алгоритма. Есть и ряд других схем построения ЦП, применяемых для решения специфических задач (например, групповая подпись).
В 1991 году в США появился федеральный стандарт цифровой подписи - DSS (Digital Signature Standard), в основе которого лежит алгоритм DSA. В России тоже разработан стандарт на процедуры выработки и проверки электронно-цифровой подписи - ГОСТ Р 34.10-94. Описанная в нем схема ЦП во многом напоминает DSA. Многие программные приложения, работающие с открытыми сетями, имеют встроенные средства ЦП (например, почтовые клиенты). Кроме того, в настоящее время имеется большой выбор прикладного софта, позволяющего реализовать технологию для различных нужд - от частных до коммерческих.
Но бросим бесплодные попытки объять необъятное и остановимся на нескольких наиболее распространенных утилитах. Выбор рынка редко оказывается случайным, а потому рассматриваемые продукты можно назвать золотой серединой между надежностью/функциональностью и ценой.
Криптотехнология PGP (Pretty Good Privacy), использующая асимметричное шифрование, появилась в 1991 году и стала чрезвычайно популярной благодаря своим богатым возможностям и свободному распространению. В настоящее время доступны для скачивания исходники восьмой версии (последняя - девятая). PGP-софт в основном используется для шифрования электронных писем, передающихся по открытым каналам связи. К тому же технология гарантирует аутентичность сообщения - невозможность его отправки за чужой подписью. Программная линейка, начиная с девятой версии, претерпела некоторые изменения.
Так, бесплатная утилита PGP Freeware обладает минимальной конфигурацией, которой, впрочем, вполне достаточно для «домашних» условий. В продукт включено два базовых компонента: PGPkeys (менеджер ключей) и PGPmail (средство шифрования/подписания/ уничтожения данных). Третий не менее важный элемент - PGPdisk для создания зашифрованного файла-контейнера, о котором мы поговорим чуть ниже, - увы, отсутствует. Кстати, если не оплатить «более профессиональные» версии в течение месяца, то их функциональность будет как раз соответствовать PGP Freeware.
PGP Desktop Home можно отнести к категории SOHO. Помимо базовой функциональности утилита имеет плагины для почтовых клиентов и ICQ, поддерживает в качестве носителей ключей смарт-карты. Кроме того, она включает в себя PGP Virtual Disks (для создания томов, содержание которых кодируется, если они не используются) и ограниченный вариант PGP Satellite Proxy (не умеет работать с почтовыми протоколами MAPI, NAPI[Проприетарные протоколы для корпоративных почтовых сетей]). Это приложение обойдется в 105 евро.
«Венец творения» для рабочих станций - PGP Desktop Professional - вдобавок к вышеописанным возможностям имеет модуль Whole Disk, поддерживающий комплексное шифрование всех жестких дисков, съемных носителей и операционной системы, и полную версию PGP Satellite Proxy. В это приложение включен и интерфейс для работы с серверным комплексом PGP Universal. Калькулятор, подсчитывающий цену программы в зависимости от комплектации, доступен на www1.pgpstore.com.
Инструмент для централизованного управления корпоративной безопасностью - PGP Universal - рассчитан на организации со штатом от 25 пользователей до 50 тысяч (без кластеризации). «Универсальный» вариант работает автономно и формирует политику безопасности в соответствии с изначально заданными критериями (например, шифрование на сервере либо на машинах пользователей). Система имеет три модификации: 100, 200, 500. В первом случае комплекс используется как шлюз для почтового трафика и автоматически шифрует/дешифрует и подписывает проходящие письма. В режиме 200 система автоматически осуществляет политику безопасности для всех установленных на рабочих станциях PGP Desktop или PGP Universal Satellite, а режим 500 совмещает оба варианта. Версия 200 с Whole Disk стоит 159 евро.
Помимо вышеописанных приложений можно купить и отдельные компоненты (например, тот же WholeDisk). Есть и версия для КПК - PGP Mobile, работающая под управлением Windows CE и Palm OS и обеспечивающая базовую функциональность.
Долгое время возможность парольной защиты в популярном архиваторе WinZip можно было назвать скорее маркетинговым ходом, нежели действительно полезной функцией. В Интернете на каждом шагу можно было найти специальные программы, подбирающие пароль в течение нескольких часов. Ситуация изменилась лишь год назад, с выходом последней, девятой версии архиватора. Тогда в WinZip появилась поддержка 128- и 256-битного шифрования по алгоритму Rijndael. Процедура кодирования осталась столь же простой, что и раньше. Требуется только выбрать степень шифрования и дважды ввести пароль. Другое дело, что многие пользователи по-прежнему работают со старыми версиями программы и до сих пор питают иллюзии по поводу защищенности своих архивов.
На рынке криптософта полным-полно утилит для создания на винчестере виртуальных прозрачно зашифрованных дисков-контейнеров, в том числе вышеупомянутая PGPdisk. С ними можно работать как с обычными дисками: совершать операции с файлами, устанавливать ПО и т. д. Контейнер, несмотря на свои особенности, остается файлом, а потому может быть скопирован или перемещен на другой физический носитель, например CD или DVD.
Подобное шифрование может оказаться полезным
при работе за одним компьютером нескольких пользователей для разграничения доступа;
при работе в открытой сети, во избежание хищений данных троянами;
для защиты данных, хранящихся в ноутбуке, в случае его потери или кражи;
при необходимости работать с одними и теми же файлами на работе и дома.
Одним из самых известных продуктов такого типа является пакет утилит от компании Jetico - BestCrypt. Процесс шифрации/дешифрации происходит в фоновом режиме, и пользователь не ощущает разницы при работе с обычным и зашифрованным диском, однако последний, если понадобится, может одним кликом превратиться в закрытый для посторонних файл. Среди утилит можно отметить программу для создания «невидимого» контейнера, который невозможно обнаружить, а также приложение для шифрования своп-файла, хранящего временные данные. Кроме того, в BestCrypt есть утилита BCWipe, удаляющая файлы без возможности восстановления.
Из приятных мелочей отметим настройку автоматического закрытия созданных дисков, защиту контейнера от случайного удаления (парольное подтверждение) и интеграцию с Проводником Windows. Для разработки новых модулей BestCrypt создан специальный комплект, содержащий исходники программы. С сайта Jetico его можно скачать бесплатно, а вот сам софт обойдется в $90 за лицензию ($60 за BestCrypt + $30 за BCWipe).
У отечественных пользователей также популярна схожая по функциональности (вплоть до гарантированного удаления файлов) программа «Индис» от российской компании «ЛАН Крипто». Аналог конвейера - цифровой сейф, то есть область диска, доступ к которой закрыт методом трехуровневой защиты. Все файлы в сейфе зашифрованы; сам сейф можно открыть с помощью ключа, который находится под паролем. Вдобавок для лучшего сокрытия данных сейф можно заполнить цифровым «мусором». Компания также предлагает всем желающим ознакомиться с алгоритмом защиты информации и математическим обоснованием надежности. Сейф может отображаться и как логический диск, и как каталог. Кодирование, как и в предыдущем приложении, выполняется непосредственно в процессе поступления данных на «диск». Предусмотрена и политика разграничения доступа. Доверенным лицам владелец цифрового сертификата, удостоверяющего его права, может выдать ключи или на полноценное управление закодированными данными, или только на чтение. Еще одно достоинство программы может оказаться полезным: разработчики утверждают (и в доказательство приводят соответствующие ссылки), что средства защиты, созданные в «ЛАН Крипто», полностью удовлетворяют действующему законодательству РФ, а потому не требуют получения специальных лицензий или разрешений.
Стандартный показатель надежности алгоритма - его теоретическая стойкость. Она определяется только длиной используемого ключа. Известно, что созданное в 1995 году аппаратное устройство (стоимостью в $1 млн.) для атаки brute force на ключ длиной 128 бит, сумело бы взломать его за 1018 лет. Однако здесь нужно принять во внимание поступательное движение информационных технологий. Тот же пресловутый закон Мура гласит, что за пять лет вычислительная мощность возрастает на порядок. Таким образом, аналогичное устройство, разработанное в 2005 году, справится с задачей за 1016 лет.
Платформу для оценки стойкости ключа в Сети предоставляет статистика проекта распределенных вычислений distributed.net. На реализацию последнего задания - взлома ключа длиной 64 бита - ушло около 4,8 года. Вычислительная мощность всех компьютеров проекта была эквивалентна 50 тысячам процессоров AMD Athlon XP с тактовой частотой 2 ГГц. Следовательно, на взлом ключа длиной 128 бит потребуется в 264 (1019) раз больше времени или ресурсов.
Если пользователь обеспокоен безопасностью данных, то, скорее всего, частные решения, позволяющие защитить конфиденциальную информацию «на местах», покажутся ему недостаточными. Возможно, поэтому большинство разработчиков старается предлагать не одну программу, а комплексы приложений. Имея в своем составе средства для взаимодействия друг с другом, такие программы обеспечивают более полную защиту информации. Раз уж был упомянут софт от «ЛАН Крипто», в качестве первого примера приведем разработки именно этой компании.
Помимо «цифрового сейфа» в линейке продуктов имеется софт для создания «цифровой папки» («Ортис») и «цифрового конверта» («Веста»[Предназначенный для безопасной пересылки писем по открытым каналам связи]). Есть и многофункциональное ПО. В частности, решение для комплексной защиты «Криптоофис», состоящее из трех компонентов: встраиваемого в почтовые клиенты[Почти все имеющиеся на рынке криптоплагины для почты работают с одним и тем же набором клиентов: MS Outlook, Outlook Express, Lotus Notes, The Bat!, MS Exchange] средства для кодирования и подписывания сообщений; плагина Word для защиты электронных документов и инструмента шифрования/подписывания любых файлов через Проводник. Администраторская версия комплекса стоит $149, пользовательская - $59. Есть решения для работы с электронной цифровой подписью (ЭЦП) - «Нотариус», защищенным документооборотом («Веста»+ЭЦП) - «Криптобанк» и цифровыми сертификатами - «Центр сертификации» (может пригодиться при работе в сфере е-коммерции или среде клиент-банк).
Продукция другой компании, SecurIT, по функциональности во многом повторяет софт других разработчиков, однако в ее коллекции имеются и свои бриллианты. Пристальный интерес компании вызывает почти не затронутая конкурентами проблема защиты резервных копий на магнитных лентах. Проблема кажется специфической, а между тем такие бэкапы делают многие предприятия. И совершенно бессмысленным кажется создавать «непробиваемую» защиту на сервере, тогда как копии хранящихся на нем данных будут находиться в свободном доступе в том же офисе. Система Zbackup позволяет в фоновом режиме шифровать все поступающие на ленту данные и расшифровывать во время чтения копий. При этом ключи доступа хранятся на смарт-картах.
Линейка StrongDisk от «Физтех-софта» привлекает в первую очередь обилием встроенных возможностей. То есть функции у StrongDisk Pro/Server[Подробное описание версии StrongDisk можно найти в статье Сергея Голубева «Особенности национального администрирования»] вроде бы стандартные, но помимо обычного набора носителей ключа можно использовать биометрические параметры. Для того чтобы сбить злоумышленника с толку, предлагается технология «Ложные диски», а помимо своп-файла можно зашифровать папку с временными файлами. Также отмечу, что резервное копирование производится автоматически, а размер контейнера увеличивается по мере добавления новых файлов (так называемая технология «Резиновый диск»). Версия Standard стоит 3930 рублей.
Упомяну также «мобильную» разработку - StrongDisk CE, предназначенную для КПК и смартфонов, работающих под Windows Mobile. Она позволяет зашифровать почту, документы, персональные данные, адресную книгу и даже приложения. Интересно, что кроме стандартного довода о пользе криптософта - защита данных при краже или потере наладонника - разработчики приводят на своем сайте еще один аргумент (цитирую): «…иногда на ваш смартфон или КПК посягают друзья и члены вашей семьи, чем ставят вас в неловкое положение, потому что каждый имеет право на информацию частного характера». А если данные зашифруешь, то вроде бы и не отказываешь, и бояться не приходится, что жена письма любовницы увидит. Однако такое удобство обойдется в 1200 рублей.
Потратив совсем немного времени на посещение хакерских конференций, я обнаружил взломанные версии доброй половины упомянутых в этом обзоре программ (подчеркну - программ, но не алгоритмов, которые в них используются). Нет, я не собираюсь тратить журнальную площадь на рассуждения о вреде пиратства. Но не забывайте, что качество и долговечность дома совершенно не зависят от того, построен он из купленного кирпича или украденного. А вот вешать на дверь замок, который неизвестная личность подарила вам в темной подворотне, да еще снабдила набором сделанных ржавым напильником ключей, неразумно. Хотя бы потому, что ключей может оказаться гораздо больше, чем вы предполагали. Так что лучше скачать разные версии каждой утилиты, выбрать самую удобную и просто симпатичную и… заплатить. Если, конечно, вас интересует результат.
Автор благодарит Алексея Раевского, генерального директора SecurIT, за помощь в подготовке статьи.