воскресенье, 4 июня 2023 г.

KeePass 2.54. Отказ от гибкости?

Теперь триггеры, переопределения URL, профили генератора паролей и кое-что еще положено хранить в enforced-конфигурации. На деле это затронет, в первую очередь, тех, у кого инсталлируемый KeePass и многопользовательская среда. Но портативная версия тоже подкинет сюрпризов.

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

Но, раз уж KeePass (инсталлируемый) стал требовать права администратора от того, кто полезет внедрять вредоносные триггеры, — может, нам вернули возможность экспортировать базу без ввода пароля? Увы, так и не вернули.

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

Некоторой неожиданностью (особенно в случае портативной версии, так как она выдает меньше предостережений) может стать новая логика, по которой сохраняются или отменяются изменения, когда вы настраиваете KeePass. Тут надо внимательно следить, изображен ли на кнопке «OK» щит. Например, если зайти в настройку, открыть диалог «Переопределить URL», изменить там что-нибудь и нажать «OK» со щитом — в этот момент изменения сохранятся в файл KeePass.config.enforced.xml. Даже если потом в окне настройки нажать «Отмену» — новые переопределения URL все равно останутся сохраненными. В предыдущих версиях KeePass'а это было не так.

Есть и кнопка без щита, которая обладает тем же эффектом, — красный крестик в окне «Генератора паролей». Если выбрать профиль (созданный вручную, а не предустановленный) и нажать эту кнопку, то этот профиль удалится из файла enforced-конфигурации.

Однако приступим к обновлению на KeePass 2.54.

Сначала откроем напоследок старую версию, зайдем в «Сервис → Настройка → Интеграция → Переопределения URL» и запомним, какие из схем задействованы. Закроем KeePass и обязательно забэкапим его или, по крайней мере, его конфигурационные файлы.

Заменим все файлы KeePass'а новыми и запустим приложение.

Если у вас портативная версия, то, скорее всего, никаких видимых казусов не произойдет: программа настроится автоматически. Но если инсталлируемая — выскочит уведомление, что часть настройки сбита.

Откроем «Сервис → Триггеры» и просто включим опцию «Использовать триггерную систему» и нажмем «OK». Если KeePass инсталлируемый, он переспросит, действительно ли мы хотим сохранить триггеры, — подтвердим намерение.

Зайдем в «Переопределения URL» и вернем на место прежние галки. (В случае моей настройки нужно просто включить все в разделе «Свои переопределения».)

Наконец, откроем «Сервис → Создать пароль...». Если кнопка со щитом активна — нажмем ее и снова подтвердим сохранение. (Но в самом окне генератора паролей после этого нажмем «Отмену», а не «OK» — иначе он просто создаст вам ненужную запись.)

Кажется, мы выполнили все рекомендации разработчика (не считая особой экзотики со смешением конфигураций)?

А теперь сюрприз: кэш плагинов теперь расположился в %LOCALAPPDATA%\KeePass, даже если ваша старая конфигурация отводила ему другое место. В случае портативной версии такое расположение, очевидно, нарушает портативность. В случае инсталлируемой — позволяет ограниченному пользователю подменить плагин вредоносным кодом. Доминик не считает последнее проблемой, но на фоне радикальных ужесточений, которые он ввел в новую версию из соображений безопасности, это выглядит странно.

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

Другая такая переехавшая опция, на которой не сделано акцента, — HelpUrl.

Итак, последний штрих: открываем в блокноте файл KeePass.config.enforced.xml и после строчки <Application> вставляем <PluginCachePath>{APPDIR}{ENV_DIRSEP}PluginCache</PluginCachePath>. Каталог KeePass в %LOCALAPPDATA% удаляем. Если вы решите это сделать для инсталлируемого KeePass'а, первый его запуск нужно выполнить от администратора.

P.S. Оказывается, все еще можно использовать одну установку KeePass'а с разными наборами триггеров, переопределений URL и профилей генератора паролей, в зависимости от пользовательской конфигурации. Для этого нужно прописать в соответствующих узлах enforced-конфигурации атрибут MergeContentMode="Merge". А затем настроить эти самые пользовательские конфигурации... путем редактирования их файлов вручную.