- Подготовка программы
- Запуск приложений
- Множественные базы
- Манипуляции с данными
- Защита KeePass'а
- Разное
Подготовка программы
Как и в предыдущей статье, все приемы использования KeePass'а иллюстрируются готовой настроенной программой. Напомню, что вам понадобится распаковать в какую-либо пустую папку архив с portable-вариантом KeePass версии 2.x, туда же распаковать архив KeePass_Settings.zip (пароль 1), в папку Languages — архив с русским переводом. Опционально — поместить в папку Plugins плагины Favicon Downloader, TCATO Placeholder, WebAutoType, AutoTypeShow, KeePassQuickUnlock и KPSourceForgeUpdateChecker.
KeePass 2.x требует .NET Framework 2.0. Если используются жесткие средства защиты, наподобие Comodo Internet Security, понадобится добавить каталог Scripts в доверенные.
Для открытия базы необходимо ввести пароль 1
.
Запуск приложений
Запуск программ из KeePass'а
Ссылками могут быть не только интернет-адреса, но и любые команды.
Чтобы двойным кликом по ссылке запускалась какая-нибудь программа, например, TeamViewer, воспользуемся кнопкой Инструменты → Поле ссылки: выбор приложения в окне редактирования записи — тогда в поле URL-ссылка появится строка наподобие cmd://"C:\TeamViewer\TeamViewer.exe"
. Можно и вручную сформировать подобную строку: написать cmd://
, затем путь к приложению в кавычках.
Также в поле URL-ссылка можно указать аргументы командной строки, причем ссылаться в них на поля записи. Например, сделаем логином и паролем идентификатор и пароль клиента в TeamViewer, а ссылкой — строку cmd://"C:\TeamViewer\TeamViewer.exe" -i "{USERNAME}" -P "{PASSWORD}"
. Тогда двойным кликом по ней установится соединение.
Если программа является портативной и располагается рядом с портативным KeePass'ом, то воспользуемся заполнителем {APPDIR}
, чтобы ссылка работала независимо от того, где находится каталог с обоими приложениями. Например: cmd://"{APPDIR}\..\TeamViewer\TeamViewer.exe" -i "{USERNAME}" -P "{PASSWORD}"
Если же программа установлена в системе, то нам понадобится, чтобы одна и та же ссылка работала на разных ПК, где пути к программам различны. В этом случае укажем вместо приложений их ярлыки. Создадим в каталоге программы папку LNK и поместим в нее ярлыки приложений. Пути к этим ярлыкам будут иметь вид "{APPDIR}\LNK\имя_ярлыка.lnk"
. Например: cmd://"{APPDIR}\LNK\TeamViewer.lnk" -i "{USERNAME}" -P "{PASSWORD}"
Другой пример — удаленный рабочий стол. Чтобы подключаться к нему двойным кликом по ссылке, воспользуемся схемой RDP. Для этого запись должна быть такой:
- логин: имя пользователя,
- пароль: пароль пользователя,
- ссылка:
RDP://имя_или_адрес_компьютера
.
Запуск программ с одновременным автонабором
Мы рассмотрели запуск приложений двойным кликом по ссылке, все данные при этом передавались в аргументах командной строки. Такой способ небезопасен, поскольку командная строка может логироваться, поэтому разберемся, как передавать пароли через автонабор.
Если отметить запись определенного вида и нажать кнопку [R] на панели инструментов — программа запустится и в нее подставится пароль.
Например, если у вас установлена программа VeraCrypt, можно легко монтировать шифрованные тома. Создайте ярлык на программу VeraCrypt.lnk в папке LNK. Для каждого криптоконтейнера добавьте запись по шаблону VeraCrypt: укажите контейнер (путь к файлу или устройству) в поле Логин и пароль в поле Пароль.
Если для криптоконтейнера используются ключевые файлы, понадобится также перечислить их пути в поле KeyFile (разделяя переводом строки, если их несколько); иначе оставить поле пустым. Если значение PIM нестандартно, его следует указать в поле PIM, иначе оставить это поле пустым. Если необходимо монтировать том на определенную букву, ее следует указать в поле Letter (по умолчанию это поле пусто, что означает выбор первой свободной буквы).
Если используется портативная VeraCrypt, см. замечание ниже.
Теперь достаточно выбрать запись с нужным контейнером, нажать кнопку [R] — и смонтируется том VeraCrypt, т.е. KeePass сам запустит VeraCrypt и наберет пароль.
Аналогично работает кнопка [R] для записей, созданных по шаблонам Telegram, Thunderbird, TeamViewer, AmmyyAdmin, Electrum. Например, при выборе записи AmmyyAdmin с одного нажатия кнопки [R] установится соединение с клиентом и наберется его пароль.
Универсальный шаблон такого типа — _Запуск_с_автонабором_, вы можете на его основе создавать записи для множества приложений. Создавая запись по этому шаблону, нужно указать запускаемое приложение в поле URL-ссылка и его оконный заголовок в поле R_Title: начало или конец заголовка. Возможно, понадобится также изменить последовательности автонабора, назначенные разным окнам (по умолчанию KeePass набирает пароль в окне, заголовок которого начинается или оканчивается значением поля R_Title). В поле R_Time указывается максимальное время, в течение которого KeePass будет ждать появления окна с заданным заголовком (по умолчанию 0, что означает бесконечное ожидание, которое можно прервать вручную).
Если программа при запуске дважды запрашивает ввод данных, пригодится шаблон _Запуск_с_двойным_автонабором_. В записях, созданных на его основе, должны быть заданы поля R_Title (заголовок первого окна для ввода данных), R_Title2 (заголовок второго окна для ввода данных), R_Time (продолжительность попыток активировать первое окно) и R_Time2 (продолжительность попыток активировать второе окно) и прописаны соответствующие ассоциации окон и последовательностей автонабора.
В редких случаях оконный заголовок (наподобие «Login») может совпасть с началом названия какой-нибудь веб-страницы, из-за чего запись приложения будет предлагаться при глобальном автонаборе на этой странице. Чтобы этого избежать, можно сделать запись просроченной.
Открытие ссылок в альтернативных браузерах
Ссылки из записей KeePass'а могут открываться не только в браузере, установленном по умолчанию. Если выбрать запись и нажать кнопку [R], будет предложено открыть ссылку любым браузером из списка.
Чтобы задать желаемый список браузеров, отредактируем файл OpenWith.txt в каталоге Scripts: удалим ненужные пункты, добавим свои. Каждый пункт задается парой строк: первая — название браузера, вторая — команда его запуска. Для наглядности пары можно отделять друг от друга любым количеством пустых строк. В команде путь к браузеру заключается в двойные кавычки, он может быть абсолютным или относительным, после него могут идти дополнительные аргументы командной строки. Например, если каталог с портативным браузером FirefoxPortable и каталог с KeePass'ом располагаются рядом, то пункт для открытия ссылки в приватном окне этого браузера задается парой строк:
Firefox Portable (инкогнито)
"..\..\FirefoxPortable\FirefoxPortable.exe" -private-window
Можно пользоваться переменными среды, в т.ч. обозначать переменной %CD%
путь к каталогу Scripts. Например, пункт для открытия портативного Firefox'а в песочнице Comodo будет таким:
Firefox Portable (Comodo Sandbox)
"%PROGRAMFILES%\COMODO\COMODO Internet Security\virtkiosk.exe" -v "%CD%\..\..\FirefoxPortable\FirefoxPortable.exe"
Браузер, запущенный кнопкой [R], будет работать с обычными правами, даже если KeePass выполняется с правами администратора.
Также в контекстном меню записи есть подменю URL-ссылки, позволяющее выбрать браузер. Однако там представлены лишь браузеры, установленные в системе, причем без дополнительных опций.
Множественные базы
Работа с несколькими базами
Удобно иметь несколько баз, например, одну с обычными паролями, другую с вложенными файлами, а записи третьей базы использовать сообща с кем-нибудь.
Новую базу можно создать с нуля (Файл → Новый...). Но чтобы для нее заработали все функции, предложенные в этих статьях, желательно сделать иначе: извлечь исходную базу из архива KeePass_Settings.zip, поместить в каталог DBases под каким-либо другим именем, открыть и сменить пароль.
Различные операции, которые выполняются автоматически — описанные в предыдущей статье синхронизация, сохранение и бэкап, а также описанные ниже автоокрытие и автоэкспорт, — работают только для баз, расположенных рядом с программой в папке DBases. Так сделано намеренно, чтобы эти операции не создавали неприятностей, когда какая-нибудь база открывается для просмотра, тестирования и т.п.
В одном окне KeePass'а можно открывать несколько баз. При этом для каждой из них будут корректно работать автоматические операции, выполняющиеся при открытии, сохранении или закрытии. Например, если нажать стандартную кнопку Сохранить все, то для каждой базы, содержащей несохраненные изменения, выполнится резервное копирование, сохранение и синхронизация.
Если заблокировать KeePass с несколькими базами, то при последующей разблокировке будет запрашиваться пароль от первой из них.
Чтобы KeePass при запуске всегда открывал одну и ту же базу (независимо от того, какая использовалась последней), можно создать триггер с событием Приложение инициализировано и действием Открыть файл базы данных, указав в поле Файл путь к базе: {APPDIR}{ENV_DIRSEP}DBases{ENV_DIRSEP}имя_базы.kdbx
.
Открытие баз друг из друга
Одна база может содержать пароль от другой, позволяя открывать ее одним нажатием кнопки.
Чтобы открывать дополнительную базу, создадим запись по шаблону База KeePass. В поле Пароль введем мастер-пароль этой базы, а если база защищена еще и ключевым файлом, то укажем путь к нему в дополнительном поле KeyFile. В поле Логин введем имя этой базы без расширения.
Если каталог дополнительной базы отличается от каталога текущей или ее расширение отличается от .kdbx, то запишем в поле URL-ссылка ее путь (желательно с префиксом kdbx://
). Если для доступа к файлу базы нужна авторизация, то укажем учетные данные в полях ConnectionLogin и ConnectionPassword.
Вместо пути к ключевому файлу можно поместить в поле KeyFile его содержимое, представленное в виде data: URL. Например, файл, состоящий из ASCII-строки My cool key file
, запишется как data:,My%20cool%20key%20file
или data:;base64,TXkgY29vbCBrZXkgZmlsZQ==
. Кроме того, в текущей версии KeePass'а можно вместо содержимого файла использовать его хеш SHA-256.
Теперь достаточно выбрать соответствующую запись, нажать кнопку [R] — и база откроется в новой вкладке. Как вариант, если ссылка имеет префикс kdbx://, можно не нажимать кнопку [R], а сделать двойной клик по полю URL — база откроется в новом экземпляре KeePass'а.
Более того, дополнительная база может открываться автоматически, одновременно с основной. Для этого изменим в соответствующей записи название на <AutoOpen>
и оставим нетронутой последнюю строку в поле заметок.
Если понадобится автоматически открывать еще одну-две базы, создайте аналогично записи <AutoOpen1> и/или <AutoOpen2>.
Если какая-либо база является «вспомогательной» — используется только для открытия других баз и должна после этого закрываться, — добавьте в нее пустую запись с названием <AutoClose>
.
Открытие базы без ввода пароля
Существуют разные способы открывать базу, не вводя мастер-пароль. Например, с использованием базы-стартера:
- скопируем исходную базу из архива KeePass_Settings.zip в папку DBases под именем
Starter.kdbx
; - откроем ее и изменим мастер-пароль: выберем шифрование только учетными данными Windows;
- создадим в этой базе запись по шаблону База KeePass:
- Название —
<AutoOpen>
, - Логин — имя основной базы без расширения, например,
Database
, - Пароль — ее пароль,
- поле KeyFile — путь к ключевому файлу, если используется;
- Название —
- создадим пустую запись с названием
<AutoClose>
; - включим опцию Сервис → Триггеры → Автоматически открывать дополнительную базу #1 → Разрешен;
- добавим новый триггер Автоматически открывать базу-стартер:
- событие: Приложение инициализировано;
- действие: Открыть файл базы данных:
- файл:
{APPDIR}{ENV_DIRSEP}DBases{ENV_DIRSEP}Starter.kdbx
, - опция Учетная запись пользователя Windows включена.
- файл:
Хотя при этой настройке мастер-пароль и не хранится в открытом виде, необходимо учитывать, что для завладения им злоумышленнику достаточно доступа к учетной записи пользователя и к файлу Starter.kdbx. Поэтому теряет смысл блокирование базы — можно отключить все опции автоблокировки на вкладке Параметры → Безопасность.
Но в случае смены учетной записи, смены ПК или переустановки ОС база-стартер не откроется — понадобится ввести мастер-пароль (поэтому его следует помнить!).
Как устроены использованные триггеры и шаблон, рассмотрено выше.
Манипуляции с данными
Ручная синхронизация базы
В предыдущей статье рассмотрена автоматическая синхронизация базы с облачным хранилищем. Возможно, для перестраховки вы пожелаете дополнительно синхронизировать базу с каким-нибудь другим хранилищем, причем делать это не постоянно, а только в случае важных ее изменений. Для этого понадобится поместить копию базы в это хранилище и создать запись: указать в ссылке расположение базы, в логине и пароле — учетные данные подключения к хранилищу (FTP/WebDAV), а также добавить поле R_Trigger со значением R_Sync
. В результате синхронизация запустится, если отметить эту запись и нажать кнопку [R].
Просмотр изменений и сравнение баз
Иногда нужно выяснить, какие изменения вносились в базу и когда.
Самый простой и удобный способ это сделать — открыть список записей, отсортированный в порядке изменения: Правка → Показать все записи → Недавно измененные записи. Однако так мы не узнаем об удалении записей или их перемещении между группами.
Более полные данные об изменениях дает сравнение базы с ее резервной копией. Для этого вручную экспортируем обе версии базы в формат Настраиваемый HTML-файл, причем в окне экспорта на вкладке Макет выберем вариант Детали и нажмем ссылку Выбрать все.
Для сравнения получившихся файлов придется применить какой-нибудь сторонний инструмент, например, TotalCommander или Notepad++. По завершении необходимо безвозвратно (!) удалить эти файлы, например, с помощью SDelete.
Если такие операции приходится выполнять часто, можно их облегчить, разрешив экспорт без пароля (Параметры → Политика), а также реализовав открытие резервных копий базы без пароля. Для этого понадобится создать запись по шаблону База KeePass, указать в ней мастер-пароль и/или ключевой файл, а ссылкой сделать код kdbx://{PICKCHARS:Title:Hide=False}
. Тогда по нажатию кнопки [R] появится окно, запрашивающее путь к базе, и указанная база откроется в новой вкладке. Используемые здесь триггеры и шаблон рассмотрены выше
Дублирование записей
Иногда возникает потребность в дубликатах записей: например, чтобы сделать запись доступной в разных группах, или когда нужны записи, различающиеся лишь автонабором, или ссылкой, или какими-то другими мелкими деталями. В простейшем случае для копирования записи достаточно воспользоваться соответствующим пунктом контекстного меню.
Если вы хотите, чтобы изменение логина/пароля исходной записи автоматически отражалось на ее копии, включите в диалоге дублирования опцию Заменять логины и пароли ссылками. Если хотите, чтобы в копии отражалось также изменение URL, замените в ней URL кодом {REF:A@I:идентификатор}
(идентификатор находится на вкладке Свойства исходной записи).
Если нужно, чтобы в копии отражалось изменение дополнительного поля, например, Secret, добавьте к Заметкам исходной записи строку $Secret={T-CONV:/{S:Secret}/Uri/}
, а в копии замените значение поля Secret на {T-CONV:/{T-REPLACE-RX:#{REF:N@I:идентификатор}#(?:[\s\S]*\$Secret=(\S*))?[\s\S]*#$1#}/Uri-Dec/}
. Аналогичное можно проделать и для нескольких полей. Разумеется, выделенные фрагменты кода нужно будет заменить своими.
Перенос записей в другую базу
Записи можно копировать в буфер обмена и вставлять в другую базу. Предварительно понадобится разрешить эту операцию: включить опцию Параметры → Политика → Копирование записей целиком и перезапустить KeePass.
Выделим одну или несколько записей (можно из разных групп, с помощью поиска). Нажмем Ctrl+Shift+C, перейдем в другую базу и нажмем Ctrl+Shift+V — готово. Если нужно, можно удалить записи из исходной базы.
Данные при этом шифруются с помощью DPAPI, чтобы злоумышленник, перехвативший буфер обмена, не смог извлечь их на своей ОС. Однако он сможет сделать это впоследствии, если получит доступ к учетной записи.
Иногда действительно нужно скопировать данные на одной системе и вставить на другой, например, при обмене записями через удаленный доступ или виртуальную машину. Для этого воспользуемся пунктом меню Запись → Обмен данными → Копировать запись (незашифрованно).
Перенос групп в другую базу
Если при переносе записей нужно сохранить структуру групп, то копирование в буфер обмена не годится — понадобится экспорт и импорт. Предварительно включим опцию Параметры → Политика → Экспорт и перезапустим KeePass.
KeePass позволяет экспортировать отдельную группу, однако есть тонкий момент: если затем импортировать получившийся файл в другую базу, то содержимое этой группы «высыпется» из нее: окажется на верхнем уровне.
Другой тонкий момент — цвет целевой базы может измениться на цвет исходной.
Поэтому рекомендую придерживаться такого алгоритма:
- создать в исходной базе группу export и вложенную в нее группу subexport;
- поместить в группу subexport группы и записи, которые нужно перенести;
- через контекстное меню экспортировать группу export в формате KeePass KDBX (2.x);
- импортировать полученный файл в целевую базу:
- ввести мастер-пароль исходной базы,
- выбрать метод Новые идентификаторы (поскольку мы сохраняем структуру);
- в целевой базе расформировать и удалить группы export и subexport (они разделятся);
- восстановить цвет целевой базы (Файл → Параметры БД);
- удалить экспортированный файл (не обязательно безвозвратно).
Благодаря выбору формата KeePass KDBX (2.x), экспортируемый фрагмент шифруется, как исходная база. Таким образом, конфиденциальные данные не утекают ни в буфер обмена, ни на диск.
Экспорт базы триггерами
Экспорт можно автоматизировать триггерами. Как и для экспорта через меню, понадобится включить опцию Сервис → Параметры → Политика → Экспорт и перезапустить KeePass.
На основе шаблона Экспортируемая база KeePass можно создавать записи, для которых по нажатию кнопки [R] будет выполняться экспорт. В качестве ссылки указывается путь для экспорта: например, строка {DB_DIR}{ENV_DIRSEP}{DB_BASENAME}.exported
означает, что база будет экспортирована в тот же каталог и с тем же именем, что у текущей, но получит расширение exported. Формат определяется полем Format, допускаются значения:
KeePass KDBX (2.x)
— зашифрованная база для KeePass 2.x;KeePass KDB (1.x)
— зашифрованная база для KeePass 1.x;KeePass XML (2.x)
— расшифрованная база для KeePass 2.x;KeePass CSV (1.x)
— расшифрованная база для KeePass 1.x.
По желанию можно экспортировать только записи с определенным тегом, указав его в поле Tag. Также можно ограничить записи определенной группой, указав путь к ней в поле Group: без корневой группы, начиная с произвольного разделителя, например, /Почта/Mail.ru
.
Триггеры способны экспортировать базу не только в локальный файл, но и в удаленный, однако есть проблема с WebDAV: учетные данные придется хранить в конфигурации в открытом виде. Можно использовать протокол FTP: указать в поле URL-ссылка FTP-адрес базы, в поля Логин и Пароль — учетные данные подключения. Либо можно использовать особый WebDAV с доступом по ссылке, в этом случае логин и пароль оставляются пустыми.
Если требуется выполнять экспорт автоматически при каждом закрытии базы, переименуйте запись в <AutoExport>
и включите опцию Сервис → Триггеры → Автоматически экспортировать → Разрешен. При этом первой строкой Заметок должен быть адрес какой-либо страницы (по ней будет проверяться доступность хранилища), последнюю строку нужно оставить неизменной.
Обратим внимание, что триггеры позволяют экспортировать базу в расшифрованном формате, причем без ввода пароля (несмотря на отключенную опцию Политика → Экспорт — без ключа). Если вы опасаетесь, что кто-либо получит доступ к разблокированной программе и украдет сразу всю базу, но при этом хотите пользоваться экспортом, то отключите опцию Политика → Триггеры, а в окне Сервис → Триггеры → Экспорт кнопкой [R] → Действия → Экспорт текущей базы данных измените поле Формат файла на KeePass KDBX (2.x)
или KeePass KDB (1.x)
; аналогично для триггера Автоматически экспортировать. В результате триггеры будут способны экспортировать только в зашифрованном виде и их будет запрещено перенастраивать, но останется возможность ручного экспорта в любой формат с вводом мастер-пароля.
Защита KeePass'а
Опасность доступа к процессу и памяти KeePass'а
Вредоносная программа, способная изменять память KeePass'а или хотя бы взаимодействовать с его оконным интерфейсом, вероятно, сможет и украсть пароли. Так, инструмент KeeFarce внедряется в память программы и запускает операцию экспорта.
Но если злоумышленник может лишь читать память KeePass'а (например, изучать дамп) — защищены ли наши данные?
Вообще-то KeePass выгодно отличается от некоторых конкурентов тем, что обычно не держит мастер-пароль раскрытым в своей памяти. Пароли, находящиеся в открытой базе, тоже не раскрываются до поры до времени.
Мастер-пароль базы, его хеш и пароли записей защищены в памяти программы DPAPI-шифрованием, ключом от которого владеет только операционная система. Она будет отдавать расшифрованные данные KeePass'у, если он попросит, но не сторонним процессам. Инструменты KeeThief и LaZagne извлекают мастер-пароль за счет того, что не просто читают, а изменяют память KeePass'а: внедряют туда код, который получает расшифрованные данные от имени KeePass'а.
Однако стоит воспользоваться какой-нибудь записью, как KeePass раскрывает ее данные в памяти и не стирает их до конца своей работы. Даже если заблокировать или закрыть базу — пароли останутся в памяти KeePass'а.
А если использовать плагины, которые передают данные в браузер (WebAutoType к ним не относится), то «поверхность атаки» увеличится: пароли осядут еще и в памяти браузера, причем не только использовавшиеся.
Особая неприятность — вредоносные программы могут читать чужую память, даже если запускать их в песочнице Comodo или Sandboxie.
Все эти проблемы можно счесть несерьезными, положив, что менеджеры паролей не обязаны гарантировать безопасность на зараженной машине. Однако важно избежать ложного чувства защищенности, например, запуская вредоносные программы в песочницах или предоставляя компьютер посторонним, когда на нем работает KeePass, пусть и с заблокированной базой.
Утечкой грозит также отправка дампов памяти разработчикам различного ПО с целью отладки. К счастью, KeePass отключает автоматическую отправку своих аварийных дампов в Microsoft (хотя не само их создание).
В предлагаемой настройке используются некоторые защитные меры:
- включена DACL-защита;
- предусмотрена возможность работы KeePass'а с правами администратора;
- отключена опция Безопасность → Помнить зашифрованный мастер-пароль базы, пока она открыта. В результате инструменты наподобие KeeThief не могут извлечь мастер-пароль (хотя теоретически могут тем же способом извлечь его хеш и расшифровать им базу). Однако из-за этого невозможны некоторые специфические операции, вроде экспорта в формат KDB.
Дополнительно можно предпринять какие-либо из этих мер:
- включить опцию Всегда выходить вместо блокирования программы. Тогда при блокировке базы будет выгружаться и сам KeePass, но станет невозможной быстрая разблокировка.
- в системном реестре создать раздел
HKLM\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps\KeePass.exe\
и в нем параметрDumpCount
типа DWORD со значением 0. Это отключает создание в каталоге %LOCALAPPDATA%\CrashDumps дампа KeePass'а при его аварийном завершении.
DACL-защита
В предлагаемой конфигурации включена DACL-защита, которая запрещает доступ к процессу KeePass'а обычным ограниченным программам. При этом не играет роли, запущен ли сам KeePass с обычными правами или с правами администратора. (Конечно, предполагается, что UAC включен.)
Удостоверимся, что защита работает. Запустим KeePass и, например, Process Hacker — обе программы с обычными правами, не от администратора. Попытаемся прочитать память KeePass'а и убедимся, что это запрещено.
К сожалению, этот запрет не распространяется на программы, выполняющиеся от администратора. Даже будучи изолированными в песочнице Comodo, они смогут читать память KeePass'а. С другой стороны, при изоляции таких программ в песочнице Sandboxie, по экспериментам, чтение памяти защищенного KeePass'а им все-таки запрещается.
В то же время сам разработчик не рекомендует включать DACL-защиту, в частности, из-за угрозы конфликта с антивирусами или средствами модификации пользовательского интерфейса. Например, в окне KeePass'а не сможет работать Punto Switcher или экранный диктор. Однако серьезных проблем при использовании этой защиты вместе с Comodo Internet Security мной замечено не было.
Работа KeePass'а с правами администратора
Если DACL-защита вам по какой-либо причине не подходит, можно добиться похожего эффекта иначе — просто запуская KeePass от имени администратора. Тогда его процесс будет защищен от обычных ограниченных программ.
Дополнительный эффект этой защиты — KeePass сможет вводить пароли в программы, выполняющиеся с правами администратора, например, в портативную VeraCrypt.
Чтобы KeePass всегда требовал повышение прав, откроем свойства файла KeePass.exe и отметим на вкладке Совместимость опцию Выполнять эту программу от имени администратора.
Также можно защитить от изменений файлы программы, включая конфигурацию и базу. Для этого в свойствах папки программы на вкладке Безопасность оставим Полный доступ только Системе и группе Администраторы, а группе Пользователи оставим в разрешениях лишь Чтение, Выполнение и Список содержимого папки. Как вариант, можно просто поместить папку программы в %ProgramFiles%.
Важное преимущество предлагаемой настройки — при открытии ссылок из записей KeePass'а приложения запускаются с обычными ограниченными правами. Это относится и к запуску браузера http- и https-ссылками, и к запуску разнообразных приложений cmd-ссылками, и к открытию удаленного рабочего стола RDP-ссылкой.
Также права приложений ограничиваются, когда они запускаются кнопкой [R]: при выборе браузера или при запуске с автонабором.
Если вам понадобится, чтобы KeePass запускал какую-нибудь программу с правами администратора (вернее, с правами, которые имеет сам), используйте вместо префикса cmd://
префикс cmdDirect://
.
Дополнительная защита с помощью Comodo Internet Security
Предложу вариант настройки комплекса Comodo Internet Security для усиленной защиты KeePass'а. Эта настройка совершенно не обязательна и адресуется только опытным пользователям.
Хотя CIS и не защитит память KeePass'а от чтения сторонними программами (если только не запускать KeePass в среде «Безопасного шоппинга»), он предотвратит ее изменение, в т.ч. выполняемое для снятия дампа. Также CIS защитит окно KeePass'а от оконных сообщений, а его файлы от изменения, скроет содержимое папок с программой и с ключевым файлом. Кроме того, CIS может запретить KeePass'у запускать сторонние приложения иначе как через проводник — чтобы они не унаследовали от KeePass'а повышенные привилегии.
Поскольку файл конфигурации может хранить учетные данные подключения к хранилищам и другую секретную информацию, скроем местоположение программы: дадим каталогу с программой секретное имя и переместим в другой каталог. В результате путь к программе примет вид наподобие C:\KeePass\secret3518\KeePass.exe.
Откроем настройку CIS на вкладке Репутация файлов → Список файлов и добавим скрипты из папки Scripts как доверенные.
Перейдем на вкладку Репутация файлов → Группы файлов, создадим группу KeePass и добавим в нее папку, в которой находится «секретная», в нашем примере это C:\KeePass\*.
Откроем вкладку HIPS → Защищенные объекты → Защищенные данные и добавим в список ту же папку, а также папку с ключевым файлом. Теперь эти папки будут выглядеть пустыми для программ, выполняющихся в виртуальной среде Comodo Sandbox.
На вкладке HIPS → Защищенные объекты → Защищенные файлы добавим группу KeePass.
Откроем вкладку HIPS → Настройка HIPS и убедимся, что HIPS включен в Безопасном или Параноидальном режиме, опция Создавать правила для безопасных приложений отключена.
Перейдем на вкладку Правила HIPS и отредактируем правила группы Все приложения. В пункте Межпроцессный доступ к памяти нажмем Изменить и добавим на вкладку Заблокированные группу KeePass. Аналогично изменим пункты Оконные сообщения и Защищенные файлы и папки.
Добавим правила HIPS для группы KeePass, выберем вариант Использовать собственный набор правил:
- в пункте Защищенные файлы и папки нажмем Изменить и добавим на вкладку Разрешенные группу KeePass;
- выберем действие Разрешить в пунктах Оконные сообщения, Межпроцессный доступ к памяти, DNS-запросы, Монитор, Диск и Клавиатура.
Добавим правило HIPS для всех exe-файлов, относящихся к KeePass'у (в нашем случае C:\KeePass\*.exe), снова выберем вариант Использовать собственный набор правил, в пункте Запуск приложений выберем действие Блокировать, нажмем Изменить и добавим на вкладку Разрешенные:
- группу KeePass,
%windir%\explorer.exe
,%windir%\Microsoft.NET\*
,%windir%\System32\cscript.exe
,%windir%\System32\wscript.exe
,%windir%\System32\ping.exe
.
На вкладке Фаервол → Правила для приложений назначим группе KeePass политику Только исходящие.
Заметим, что теперь вносить изменения в файлы и папки KeePass'а смогут только программы, которым это явно разрешено. Например, по умолчанию таковым является проводник.
Разное
Временное отключение автоматики
Бывает, что нужно отказаться от автосохранения базы и других автоматических операций — но не насовсем, а временно. Например, если в базу внесены ошибочные изменения, то хорошо бы закрыть ее без сохранения. Или требуется открыть базу, содержащую запись <AutoClose>, и т.д.
Вообще, любой триггер можно деактивировать, отключив в нем опцию Разрешен, но важно не забыть потом включить ее обратно. Кроме того, эту операцию придется проделывать с несколькими триггерами по отдельности. Если же отключить разом всю триггерную систему, то перестанут работать и неавтоматические функции.
Однако есть совсем простой способ — отключить импровизированный чекбокс [v] A на панели инструментов. Этим чекбоксом отключается сразу несколько автоматических операций: сохранение, синхронизация, бэкап, открытие, закрытие и экспорт баз. При этом будет работать ручной вызов этих и других операций кнопками. Включение чекбокса восстанавливает прежнее состояние триггеров. Можно не включать его — прежнее состояние все равно восстановится после перезапуска KeePass'а.
Чекбокс на панели инструментов меняет лишь внутреннее состояние триггеров, на значение опции Разрешен в них он никак не влияет. Также он не влияет на автоматику, не связанную с триггерами: автоматическую блокировку, сохранение и синхронизацию, которые настраиваются в параметрах программы.
KeePass как менеджер закладок
KeePass пригоден для хранения не только паролей, но и браузерных закладок. Эта возможность подойдет тем, кто из соображений конфиденциальности не желает хранить свои закладки в браузерах и тем более, синхронизировать их с помощью браузеров.
Любая запись KeePass'а может играть роль закладки, поскольку содержит ссылку. Поэтому будем просто добавлять в базу, помимо обычных записей, еще и записи без паролей и использовать их как закладки. Чтобы такие записи не мешали при глобальном автонаборе, поместим их в отдельную группу Закладки и запретим для нее автонабор.
Однако удобнее использовать для закладок вообще отдельную базу и отдельно настроенный экземпляр KeePass'а. Для этого в папке KeePass_B заготовлена конфигурация KeePass.config.xml. Распакуем в эту папку архив с программой KeePass 2.x Portable, в подпапку Languages — перевод, а в подпапку Plugins поместим файлы WebAutoType.plgx, KeePassFaviconDownloader.plgx и TCATO_Placeholder.plgx.
Также в папке DBases заготовлена база Bookmarks.kdbx, а в основной базе Database.kdbx в группе bookmarks сделана специальная запись База закладок. Сделаем двойной клик по ее полю URL-ссылка — база Bookmarks.kdbx откроется в отдельном экземпляре KeePass'а.
Сгенерируем новый пароль в записи База закладок и назначим его базе Bookmarks.kdbx (старый пароль: 1
). Также известным нам способом наладим в базе Bookmarks.kdbx облачную синхронизацию.
Заметим, что KeePass, где открывается база Bookmarks.kdbx, не содержит лишних столбцов и в целом настроен мягче: без автоблокировки и других защитных мер.
Чтобы добавить закладку в базу Bookmarks.kdbx, будет достаточно нажать Ctr+Alt+Shift+Q — и появится окно создания записи с уже подставленным заголовком, а поле URL-ссылка будет представлять собой меню, где можно выбрать детальность адреса. Никакой настройки браузеров не потребуется. (Ограничения: не поддерживаются браузеры наподобие K-Meleon и Pale Moon, а для Edge подхватывается лишь адрес.)
Чтобы активировать свернутое окно KeePass'а с закладками, достаточно нажать Ctr+Shift+Q (кстати, курсор сразу станет в поле поиска). Открыть закладку можно двойным кликом по ссылке, а можно нажать кнопку [R] и выбрать желаемый браузер. Кроме того, можно поставить курсор в адресную строку и выполнить автонабор.
Можно перенести закладки из браузера: сначала экспортировать их в HTML-файл, а затем KeePass'ом импортировать его в базу.
Возможен и обратный перенос закладок из KeePass'а в браузер: экспортировать базу из KeePass'а в HTML-файл и импортировать этот файл браузером.
Таким образом, мы получаем универсальный менеджер закладок, который шифрует их, синхронизирует между устройствами и охватывает множество браузеров, не требуя их настройки.
Доступ к данным в отсутствие .NET/Mono
Бывает, нужно воспользоваться паролями, сохраненными в базе KeePass'а, но запустить программу версии 2.x невозможно — отсутствует .NET/Mono. Например, такая ситуация возникает при работе в Windows PE.
Здесь помогут разные сторонние адаптации KeePass'а. Так, рассмотренное ранее приложение KeePass2Android позволяет работать с базой на смартфоне.
На ПК выручит кросплатформенная программа KeePassXC. Она предоставляет некоторые привычные функции KeePass'а, например, автонабор. С версии 2.3 поддерживается преобразование ключа Argon2.
Наконец, открыть базу можно даже прямо в браузере — это позволяет веб-приложение KeeWeb.