Keepass ошибка загрузки указанного файла
KeePass can repair corrupted databases in some cases.
KeePass has quite some features to avoid database file corruption (transacted database writing, device buffer flushing, . ). However, data corruption can still be caused by other programs, the system or broken storage devices (note that KeePass by default is verifying the integrity of database files immediately after writing them, i.e. at this point of time, KeePass guarantees file integrity; however, KeePass of course can't do anything when the data becomes corrupted/unreadable at a later point of time).
In these cases, the database repair functionality might help you. Here, KeePass tries to read as much data as possible from the corrupted file.
In repair mode, the integrity of the data is not checked (in order to rescue as much data as possible). When no integrity checks are performed, corrupted/malicious data might be incorporated into the database. Thus the repair functionality should only be used when there really is no other solution. If you use it, afterwards you should thoroughly check your whole database for corrupted/malicious data.
In order to use the repair functionality in KeePass 2.x, first create a new database file. Then, go 'File' → 'Import' and import the corrupted database file, using 'KeePass KDBX (2.x) (Repair Mode)' as format.
Anyway, if you've lost the master key for the database, the repair functionality cannot help you. Also, if the header of the database (first few bytes) is corrupted, you're out of luck, too: the repair functionality won't be able to restore any entries (because the header contains information required to decrypt the database).
The repair functionality should be seen as last hope. Regularly making backups of your databases is much better and has to be preferred. Backups have no cryptographic security implications. There are plugins that automate the backup process, see the KeePass plugins page.
TeamViewer
[windows] TeamViewer
[linux] TeamViewer
Winbox
[windows] Winbox
Сохраните winbox.exe в C:\Program Files (x86)\winbox.exe .
[linux] Winbox
Я использую пакет winbox из AUR.
SAMBA
[windows] Explorer
[linux] Nautilus / Thunar / Dolphin
Command:
Более безопасный вариант:
Для Thunar и Dolphin команда будет такая же, достаточно заменить nautilus на thunar или dolphin .
[windows] FileZilla FTP Client
[windows] Windows Explorer
[linux] FileZilla FTP Client
[linux] Nautilus / Thunar / Dolphin
Command:
Более безопасный вариант:
Для Thunar и Dolphin команда будет такая же, достаточно заменить nautilus на thunar или dolphin .
Cisco
[windows] PuTTY
Command:
Так же скачиваем сам Connector_Cisco.vbs
И сохраняем его по пути: C:\Program Files (x86)\Connector_Cisco.vbs
Примеров я думаю предостаточно. На этом пожалуй все.
Теперь, выбрав нужную запись и нажав Ctrl+U, вы сразу подключитесь куда нужно. И вам не придется сохранять пароли где-то еще.
Для более экзотических случаев вы всегда можете написать свой обработчик, вам лишь достаточно узнать параметры запуска нужной вам программы и отразить их в команде.
Пара ссылок по теме:
Если есть какие-то пожелания/дополнения пишите их в коментарии или на Github.
Благодарю за внимание.
Keepass2Android
версия: 1.09d-r0
Последнее обновление программы в шапке: 08.02.2022
Краткое описание:
Менеджер паролей с открытым исходным кодом для Android.
Keepass2Android - менеджер паролей для Android с открытыми исходниками. Он позволяет читать и редактировать файлы .kdbx - формата базы данных популярной программы KeePass 2.x Password Safe для Windows и других операционных систем для компьютера.
Пользовательский интерфейс основан на Keepassdroid (by Brian Pellin), портирован с Java на Mono для Android. Внутренние алгоритмы используют оригинальные библиотеки KeePass для доступа к файлам, чтобы обеспечить максимальную совместимость с оригинальным форматом файла.
* чтение/запись файлов .kdbx (KeePass 2.x)
* интеграция практически с любым браузером для Android (см. ниже)
* Быстрая Разблокировка: Разблокируйте базу, введя пароль целиком, откройте её повторно, введя всего лишь несколько символов (см. ниже)
* Встроенная программная клавиатура: Переключитесь на эту клавиатуру для ввода данных для авторизации. Это защитит Вас от перехватчиков пароля из буфера обмена (см. ниже)
* поддержка редактирования записей, включая дополнительные строковые поля, вложенные файлы, теги и т.п.
* чтение/запись файлов из сети напрямую (поддерживаются FTP и WebDAV). Вы можете использовать keepass2android-NoNet, если Вам не требуется данная особенность.
* поисковый диалог со всеми возможностями, присутствующими в KeePass 2.x.
== Быстрая Разблокировка ==
Вы должны защитить базу паролей устойчивым (т.е. случайным и ДЛИННЫМ) паролем, включающим символы в верхнем и нижнем регистре, а также числа и специальные символы. Ввод каждый раз такого пароля на мобильном телефоне для разблокировки базы данных занимает много времени и подвержен ошибкам. Решение от KP2A - Быстрая Разблокировка:
* Используйте устойчивый пароль для базы данных
* Загрузите базу и введите устойчивый пароль единожды. Включите Быструю Разблокировку.
* Приложение блокируется после времени, указанного в настройках
* Если вы хотите повторно открыть свою базу данных, можно ввести несколько символов (по умолчанию, последние 3 символа вашего пароля) для лёгкой и быстрой разблокировки!
* Если будет введён неверный ключ Быстрой Разблокировки, база заблокируется и потребуется повторно ввести пароль целиком.
File Header/Signature
If your database file has been deleted and you want to try recovering it using a tool that supports a file header/signature detection: below you can find the first bytes (in hex notation) with which all database files begin.
- KeePass 1.x KDB File:
03 D9 A2 9A 65 FB 4B B5 - KeePass 2.x KDBX File:
03 D9 A2 9A 67 FB 4B B5
The file header does not contain a field that specifies the length of the file. If the length cannot be determined from the file system, try to recover sufficiently much data (i.e. the database file data and maybe some subsequent, unnecessary data) and use the repair functionality above, which will simply ignore any subsequent data.
KeePass — это бесплатный менеджер паролей с открытым исходным кодом (open source). Программа не нуждается в установке и (помимо прочих языков) имеет русский интерфейс. С её помощью вы можете хранить все свои пароли в единой базе данных, защищённой паролем и/или ключевым файлом. Таким образом, чтобы открыть всю базу данных, требуется запомнить только один пароль и/или выбрать один ключевой файл. База данных зашифрована лучшими и самими стойкими на сегодня алгоритмами шифрования (AES и Twofish).
Полное описание | Описание на английском
"When you press the hot key, KeePass looks at the title of the currently opened window and searches the currently opened database for usable entries. If KeePass finds multiple entries that can be used, it displays a selection dialog. An entry is considered to be usable for the current window title when at least one of the following conditions is fulfilled:
The title of the entry is a substring of the currently active window title.
The entry has a window/sequence association, of which the window specifier matches the currently active window title."
Попробую описать немного "своими словами", со своей ситуацией.
При задействовании Auto-Type программа KeePass автоматом выбирает запись/записи, совпадающую с названием окна в фокусе ("активного онка") и название поля в базе.
В случае единичного совпадения - без подтверждения выполняет соответствующие действия (обычно заполнение полей).
Как быть, как не попасть в дурацкую ситуацию ?
Например:
в базе KeePass единственная запись "login", но "в мире" существует миллион "сайтов/страниц" с названием заголовка окна "login".
в базе KeePass единственная запись "firefox", но "на компе с запущенным браузером firefox" существует множество "окон" с заголовком "firefox".
При попытке автозаполнения формы может без подтверждения автозаполнится любое окно с названием "login" или "firefox". А это ни есть хорошо.
Длинное описание ситуации:
Есть база с несколькими записями, заполненных примерно вот так:
Метаинформация (дерево с названием групп): заметки-интернет-синхронизация. (Или проще - в каталоге дерево с таким вот названием/структурой). Структуру каталога KeePass упорядочиваю чтобы впоследствии легче было вспомнить что откуда и куда.
Далее заполнены поля: название, логин, пароль.
firefox, логин, пароль
pocket, логин, пароль
login, логин, пароль
Храню я заметки в keepass (чтоб никто не подсмотрел) и в интенете (чтоб кому надо - подсмотрел). Порой заметки синхронизирую используя разные сервисы предоставляемые, в частности, firefox и pocket (т.к. нужны логин/пароль, то храню это в keepass).
Логика заполнения базы была такова.
А теперь о кипассовом Auto-Type.
Открываю браузер Firefox, открываю вебморду роутера, жму Ctrl+Alt+A.
И что ? Кeepass осуществляет действия из записи "заметки-интернет-синхронизация-firefox"
А теперь вопрос: что я делаю не так ? И как этим пользоваться ?
Что делать в случае присутствия в Кeepass единичной записи с названием "login" и множественным фактом существования названия окна "login" ? Это что, придётся помнить "а можно ли нажать Auto-Type" или "сейчас произойдёт лажа" ?
Собственно последние несколько лет делаю так: при необходимости ввести пароль-логин в браузере - копирую имя домена, открываю keepass, осуществляю поиск по имени домена, выбираю вручную нужный логин, нажимаю ctr-v. Но неудобно же.
Проверил у себя. KeePass 2.39.1 + KPEnhancedEntryView 2.0 (только скачанный с SourceForge) все запустилось без ругани, записи отображаются.
До этого плагин KPEnhancedEntryView у меня не стоял.
На днях мне нужно было реализовать расшифровку базы данных KeePass. Меня поразило то, что нет ни одного документа и ни одной статьи с исчерпывающей информацией об алгоритме расшифровки файлов .kdb и .kdbx с учетом всех нюансов. Это и побудило меня написать данную статью.
На данный момент существует 2 версии KeePass:
- KeePass 1.x (генерирует файлы .kdb);
- KeePass 2.x (генерирует файлы .kdbx).
Структура файла с базой данных KeePass (.kdb, .kdbx) состоит из 3 частей:
- Подпись (не зашифрована);
- Заголовок (не зашифрован);
- Данные (зашифрованы).
Далее я подробно расскажу о том, как дешифровать базу данных KeePass 1.x и KeePass 2.x.
Расшифровка базы данных KeePass
Последовательность действий:
- Читаем подпись базы данных.
- Читаем заголовок базы данных.
- Генерируем мастер-ключ.
- Расшифровываем базу данных.
- Проверяем целостность данных.
- Если файл был сжат, распаковываем его.
- Расшифровываем пароли.
Пункты 5, 6 и 7 относятся только к .kdbx файлам!
Подпись
BaseSignature (4 байта)
Первая подпись одинакова для .kdb и .kdbx файлов. Она говорит о том, что данный файл является базой данных KeePass:
VersionSignature (4 байта)
Bторая подпись указывает на версию KeePass и, следовательно, отличается для .kdb и .kdbx файлов:
- 0xB54BFB65 — KeePass 1.x (файл .kdb).
- 0xB54BFB66 — KeePass 2.x pre-release (файл .kdbx).
- 0xB54BFB67 — KeePass 2.x post-release (файл .kdbx).
FileVersion (4 байта)
Третья подпись есть только у файлов .kdbx и содержит в себе версию файла. Для файлов .kdb данная информация содержится в заголовке базы данных.
Таким образом, в KeePass 1.x длина подписи составляет 8 байт, а в KeePass 2.x — 12 байт.
Заголовок
После подписи базы данных начинается заголовок.
Заголовок KeePass 1.x
Заголовок .kdb файла состоит из следующий полей:
- Flags (4 байта): данное поле говорит о том, какие виды шифрования использовались при создании файла:
- 0x01 — SHA256;
- 0x02 — AES256;
- 0x04 — ARC4;
- 0x08 — Twofish.
- Version (4 байта): версия файла.
- Master Seed (16 байт): используется для создания мастер-ключа.
- Encryption IV (16 байт): используется для расшифровки данных.
- Number of Groups (4 байта): общее количество групп в базе данных.
- Number of Entries (4 байта): общее количество записей в базе данных.
- Content Hash (32 байта): hash расшифрованных данных.
- Transform Seed (32 байта): используется для создания мастер-ключа.
- Transform Rounds (4 байта): используется для создания мастер-ключа.
Заголовок KeePass 2.x
В .kdbx файлах каждое поле заголовка состоит из 3 частей:
- ID поля (1 байт): возможные значения от 0 до 10.
- Длина данных (2 байта).
- Данные ([длина данных] байт)
Заголовок .kdbx файла состоит из следующий полей:
- ID=0x01 Comment: данное поле может быть представлено в заголовке, но в моей базе данных его не было.
- ID=0x02 Cipher ID: UUID, указывающий на используемый метод шифрования (например, для AES 256 UUID = [0x31, 0xC1, 0xF2, 0xE6, 0xBF, 0x71, 0x43, 0x50, 0xBE, 0x58, 0x05, 0x21, 0x6A, 0xFC, 0x5A, 0xFF]).
- ID=0x03 Compression Flags: ID алгоритма, использующегося для сжатия базы данных:
- 0x00: None;
- 0x01: GZip.
- 0x00: None;
- 0x01: ARC4;
- 0x02: Salsa20.
Генерация мастер-ключа
Генерация мастер-ключа происходит в 2 этапа:
- Генерация составного ключа;
- Генерация мастер-ключа на основе составного ключа.
1. Генерация составного ключа
Для генерации составного ключа используется хэш-алгоритм SHA256. В таблицах ниже представлен псевдокод для генерации составного ключа, исходя из того, какая версия KeePass используется, и какие входные данные необходимы для расшифровки базы данных (только пароль, только файл-ключ или все вместе):
Пароль sha256(password) Файл-ключ sha256(keyfile) Пароль + Файл-ключ sha256(concat(sha256(password), sha256(keyfile)))
Пароль sha256(sha256(password)) Файл-ключ sha256(sha256(keyfile)) Пароль + Файл-ключ sha256(concat(sha256(password), sha256(keyfile))) Windows User Account (WUA) sha256(sha256(WUA)) Пароль + Файл-ключ + (WUA) sha256(concat(sha256(password), sha256(keyfile), sha256(WUA)))
Обращаю внимание на то, что если для расшифровки базы данных необходимо несколько сущностей (например, пароль и файл-ключ), то сначала нужно получить хэш от каждой сущности, а потом соединить их вместе (concat) и взять хэш от объединенной последовательности.
2. Генерация мастер-ключа на основе составного ключа
- Нужно зашифровать составной ключ, полученный выше, с помощью алгоритма AES-256-ECB.
- В качестве ключа нужно использовать Transform Seed из заголовка.
- Данное шифрование нужно произвести Transform Rounds (из заголовка) раз.
- С помощью SHA256 получаем хэш от зашифрованного составного ключа.
- Соединяем Master Seed из заголовка с полученным хэшем.
- С помощью SHA256 получаем хэш от объединенной последовательности — это и есть наш мастер-ключ!
Расшифровка данных KeePass 1.x
Сразу после заголовка начинается сама зашифрованная база данных. Алгоритм расшифровки следующий:
- Весь оставшийся кусок файла расшифровываем с помощью алгоритма AES-256-CBC.
- В качестве ключа используем сгенерированный выше мастер-ключ.
- В качестве вектора инициализации используем Encryption IV из заголовка.
- Последние несколько байт расшифрованной базы данных являются лишними — это несколько одинаковых байт в конце файла (padding). Чтобы устранить их влияние, нужно прочитать последний байт расшифрованной БД — это то количество «лишних» байт, которое в дальнейшем учитывать не надо.
- С помощью SHA256 получаем хэш от расшифрованных данных (байты из предыдущего пункта не учитываем).
- Проверяем, что полученный хэш совпадает с полем Content Hash из заголовка:
- eсли хэш совпадает, то мы успешно расшифровали нашу базу данных! Можно сохранить расшифрованные данные как .xml файл и убедиться, что все логины с паролями расшифрованы верно,
- eсли хэш не совпадает, это значит, что либо был предоставлен не верный пароль или файл-ключ, либо данные были повреждены.
Расшифровка данных KeePass 2.x
Сразу после поля End of Header заголовка начинается сама зашифрованная база данных. Алгоритм расшифровки следующий:
Вот в общем-то и все, что я хотела рассказать. Надеюсь данное руководство избавит кого-нибудь от лишней головной боли и будет познавательным и информативным=)
Наверное все уже и так знают, что всегда хорошо иметь большой и сложный пароль. Многие так же знают про менеждеры паролей и как удобно, а главное безопасно можно хранить в них информацию.
По специфике моей работы мне часто приходится записывать и хранить большое количество паролей и другой конфиденциальной информации, поэтому я пользуюсь Keepass2 — менеджером паролей со свободной лицензией. Я не стану рассказывать о его возможностях и преимуществах перед другими, все это и так уже обсуждалось не раз. Если кто хочет познакомиться подробнее, вот несколько ссылок: wiki, обзорная статья, сравнения с другими: 1 2.
Вместо этого я хотел бы рассказать об одной его интересной функции:Функция называется "URL Overrides", и представляет ссобой возможность запускать ассоциированные с записями программы и передавать им данные для аутентификации прямо из Keepass'а.
Например, вы можете хранить в keepass'е список учеток для подключения к удаленному серверу, а в определенный момент выбрать нужную и простым нажатием Ctrl+U, запустить клиент удаленного подключения, и моментально получить доступ к вашему серверу.
Это очень удобно, так как все логины и пароли не хранятся абы где, а надежно зашифрованны в вашей базе keepass и передаются программе-клиенту только в момент подключения.Идея состоит в том, что бы использовать Keepass как единую точку входа на все удаленные сервера.
Должен признаться, изначально я планировал написать статью только про настройку keepas на Linux, но по ходу написания накопилось достаточно материала и для Windows-пользователей.
Решил не обделять большую часть пользователей более популярной ОС столь занятным материалом.
Для каждого протокола я указал комманды работающие как под windows так и под linuxДля того чтобы keepass знал к какому протоколу соответствует ваша запись, вам следует использовать ссылки вида rdp://server , ssh://server , ftp://server
Для того чтобы keepass знал какие и как именно нужно запускать программы для этих протоколов, вам нужно настроить обработчик ссылок.
Для этого перейдем в Tools --> Options --> Integraion --> URL Overrides. и настроим протоколы:[windows] PuTTY
[linux] OpenSSH Client
Command:
Более безопасный вариант:
Вам так же нужно установить пакет sshpass
Вместо xterm можете подставить ваш любимый эмулятор терминала[windows] MSTSC
[linux] Remmina
Command:
Более безопасный вариант:
так же нам понадобится установить небольшой вспомогательный скрипт:
[windows] RealVNC
Сохраните tightvnc-jviewer.jar в C:\Program Files\tightvnc-jviewer.jar .
[linux] Remmina
Command:
Более безопасный вариант:
Нам все так же требуется небольшой вспомогательный скрипт, про который я писал выше
Читайте также: