За семью замками

«Как эксперт в компьютерной безопасности, я никогда не понимал шумихи вокруг open source. В криптографии открытые коды – необходимость. Открытая защита всегда более надежна, чем проприетарная. Для нас open source – не бизнес-модель, а инженерное правило» (Брюс Шнайер).

Как и любая программа, средства защиты должны, помимо надежности, обладать гибкостью, автономностью и желательно широкой распространенностью – что особо важно в наше время «мобильных офисов». В плане гибкости и мобильности open source впереди – из-за технических (а не шкурных) интересов их авторов и, как следствие, простоты программ и любви к кроссплатформенности. Делу же распространенности я собираюсь сейчас помочь: расскажу о полезняшках с фронта защиты личных данных.

Пароли
Первая задача – защита бесчисленных аккаунтов в почте, форумах и прочем: пока не настала эра биометрии (а с ней – отрезанных пальцев и скальпов), делается это с помощью паролей. К несчастью, пароли, которые сложно подобрать, обычно оказываются разложены на бумажках на рабочем столе – реальном или виртуальном. Практика эта порочная ещё и потому, что уже давно существуют программы-хранители (менеджеры) паролей, которые могут избавить как от слабых паролей, так и от человеческого фактора: ваше дело при этом – запомнить один самый-самый пароль, дело программы – не выдать остальные никому чужому.
Open-source’ных парольных менеджеров, по большому счету, два: Password Safe и KeePass. Всю альтернативу им составляют проприетарные программы ценой в $30±10. К тому же все эти программы, включая объекты нашего изучения, работают под Windows. Зато, благодаря открытости этих двух фаворитов, появляются их кроссплатформенные клоны, совместимые по формату базы паролей, что позволяет легко переносить драгоценную нагенерированную абракадабру между компьютерами.

Password Safe 3.05.02
Лицензия: Artistic License
Автор: Bruce Schneier, Rony Shapiro
ОС: Windows, PocketPC
Сайт: passwordsafe.sf.net
Размер: 3,1 Мбайт (с библиотеками MFC)
Язык: многоязычная (в т.ч. русский)

Password Safe – порождение уже упомянутого Брюса Шнайера и его компании Counterpane Labs. Шнайер – признанный эксперт в области криптографии, автор популярных алгоритмов шифрования Blowfish и Twofish, последний из коих и используется в программе. Собственно, о надежности программы этим всё сказано. Шнайер отдал программу на развитие сообществу open source, и теперь проект хостится на Sourceforge, а главный его разработчик – Рони Шапиро.
Функционал парольных менеджеров почти одинаков, поэтому он будет описан здесь, а в части KeePass будут даны только отличия. Пароли хранятся в одном зашифрованном файле, ключ для шифрования генерируется из мастер-пароля. Вскрыть базу без мастер-пароля практически невозможно. Тот, кто вводит правильный пароль, получает доступ к списку записей: заголовок, логин, пароль и дополнительная информация. Логин и пароль из выбранной записи можно скопировать в буфер обмена и вставить в другое приложение.
Интерфейс Password Safe довольно спартанский (см. рис. 1). Записи хранятся в иерархии групп (можно включить и вид «все сразу»), наличествует поиск по базе. Пароль для новой записи можно не только ввести самому, но и сгенерировать при помощи Password Safe; длина и набор символов пароля задаются в настройках или прямо при генерации. По истечении заданного в настройках времени неактивности Password Safe удалит скопированный пароль из буфера, свернется в трей и запрется на замок – для разворачивания потребуется мастер-пароль. Собственно, основные функции на этом исчерпываются, начинаются удобства.

Фича под названием Auto Type – автоматический ввод выбранного логина и пароля в открытую в другом приложении форму: вы устанавливаете курсор в поле логина, выбираете нужную запись в Password Safe и нажимаете Ctrl+T. Хранитель сам набирает логин с паролем и жмёт Enter, отправляя всё на проверку. К несчастью, фича не лишена недостатков – нужно следить, чтобы была выбрана верная раскладка клавиатуры, пароль же при наборе спокойно читается кейлоггерами (в частности, Punto Switcher’ом).
Есть несколько весьма полезных для параноиков служебных функций: для базы и каждой записи хранятся дата и время создания, изменения и последнего использования. Можно хранить прошлые значения паролей. При изменении базы автоматически создается запасная копия, которую можно сделать и вручную. Если установить для отдельного пароля срок действия, программа напомнит вам о его истечении.
Благодаря малому размеру как программы, так и баз, Password Safe можно носить с собой на флешке. При желании можно и записать на компакт-диск – база откроется в режиме «только чтение». Большинство настроек хранятся прямо в базе.
Существует официальный порт Password Safe на PocketPC, в Readme обещается поддержка других платформ в будущем. Тем временем вовсю разрабатываются и используются упомянутые клоны: MyPasswordSafe (под Linux) довольно ограничен в функциях; Password Gorilla же работает отлично, удручает только скорость открытия и сохранения баз (Горилла написана на интерпретируемом языке Tcl/Tk, работает на Windows, Linux-BSD-Solaris, MacOS X).

KeePass 1.06
Лицензия: GNU GPL v.2
Автор: Dominik Reichl
Сайт: keepass.info
Размер: 734 Кбайт
ОС: Windows, PocketPC
Язык: многоязычная (в т.ч. русский)

Идеология KeePass идентична Password Safe, однако программа более тщательно проработана – удобнее и куда приятнее интерфейс, подробнее справка. Из справки можно узнать, что KeePass поддерживает шифрование базы с помощью всё того же Twofish или AES, с 256-битными ключами. Полезная возможность – вместо или вместе с мастер-паролем можно использовать файлы-ключи (если таковой записать на флешку, получится USB-ключ к базе).

Больше внимания уделяется мелочам в безопасности (по крайней мере, так уверяет справка): пароли хранятся в памяти в зашифрованном виде и дешифруются только при непосредственном использовании, так что чтение памяти или свопа другим процессом ничего не даст. Применяются специальные поля ввода паролей, не читающиеся другими программами. Генератор паролей собирает из системы случайную информацию (вроде текущей загрузки процессора), плюс просит пользователя подвигать мышью или постучать по клавиатуре.
Интерфейс KeePass функционален и не вызывает вопросов: записи разделяются по иерархии категорий; категориям и записям можно назначить иконки. К записи, помимо текстовой заметки, можно приложить файл. Добавлены функции для быстрой работы с TAN-паролями – одноразовыми, использующимися банками для подтверждения онлайн-транзакций. Бэкап-копии паролей сохраняются в отдельной категории.
Функция Auto-Type реализована аналогично Password Safe и с теми же недостатками. Есть, однако, занятный режим – при нажатии горячей клавиши в любом приложении KeePass ищет в базе запись, сопоставленную этому приложению, и впечатывает её. Правда, ровно с той же проблемой с клавиатурной раскладкой.
Реализован интерфейс для плагинов – они отвечают за резервное копирование базы паролей и импорт-экспорт в дополнительные форматы. Программа KeeForm хоть и не является плагином, позволяет упростить взаимодействие с Internet Explorer – не нужно возиться с буфером обмена или Auto-Type, достаточно активировать веб-адрес из KeePass.
Как и Password Safe, KeePass не требует установки – достаточно скопировать файлы программы на жесткий диск или флешку. Нужны только библиотеки MFC, все настройки хранятся в одном ini-файле.
Существует полностью рабочая версия под PocketPC, порт на Linux/MacOS X под названием KeePassX (не удалось проверить из-за старых библиотек в моей системе) и конвертер для парольного менеджера Keyring.
Базу из KeePass можно экспортировать в Password Safe через промежуточный текстовый файл. Однако здесь Password Safe проявляет норов: иногда вылетает прямо при импорте или при попытке включить сохранение прошлых паролей для импортированных записей. Проблема решилась перезапуском программы после импорта. Экспорт из Password Safe в KeePass сделать вообще не удалось.

Keyring for PalmOS 1.2.3
Лицензия: GNU GPL v.2
Авторы: Jochen Hoenicke, Martin Pool
Сайт: gnukeyring.sf.net
Размер: 74 Кбайт
ОС: PalmOS 3 и выше
Язык: многоязычная (русского нет)

Пара слов о программе Keyring для наладонников на платформе PalmOS. Её тоже можно использовать для транспортировки паролей (например, к веб-почте для использования в интернет-кафе), но больше она подойдет для хранения вещей вроде PIN-кода SIM-карты. Используется шифрование Triple-DES со 112-битным ключом.

Есть сторонний плагин (conduit) к Palm Desktop для синхронизации с PC – к несчастью, на момент написания статьи его сайт был недоступен. Зато линуксовый аналог Palm Desktop – JPilot – уже включает инструментарий для управления паролями и синхронизации с Keyring. Также вполне работает упомянутый конвертер из KeePass.

Напоследок...
...совет по генерации мастер-пароля: неамериканцам уже дано отличное средство – надо только набирать русскими буквами при включенной английской раскладке. Таким образом легко генерируется абракадабра вроде «hecbyjdfhekbn», сложная для подбора, но лёгкая для запоминания. Некоторые применяют парольные фразы1: Брюс Шнайер, например, использует эпическую пароль-поэму, детально описывающую жизнь и подвиги нескольких героев скандинавских мифов. Как опытный параноик, должен отметить, что пароли (как и биометрия) – только часть защиты: ведь остаются трояны и перехват в сетях – и кто знает, что творится на другой стороне провода. В следующей статье будет рассмотрено, как хотя бы самому не сплоховать и скрыть от чужих глаз драгоценные данные – займёмся шифрованием файлов.

1. Вспомните, например, пароли Чингиза и хакера Падлы из «Фальшивых зеркал» С. Лукьяненко


Рекомендуем почитать: