Имеет ли KeePass постоянный внутренний мастер-ключ для шифрования данных?

322
Cryptor

Имеет ли KeePass постоянный внутренний ключ для шифрования данных? Или ключом шифрования является пароль (и ключевой файл)? На каком-то сайте я наблюдал за обсуждением способов взлома базы KeePass. Одно из предположений заключалось в том, что существует два способа: один - взломать  парольную фразу, а другой - взломать зашифрованный  мастер-ключ . Существует ли действительно постоянный внутренний мастер-ключ для шифрования данных?

-1
это открытый исходный код, поэтому каждый, кто заботится, может прочитать исходный код. Если в исходном коде есть главный ключ, он будет общедоступным и сделает все это бесполезным. Aganju 7 лет назад 2
Я имею в виду главный ключ, который может быть сгенерирован один раз при создании базы паролей и зашифрован паролем пользователя (и ключевого файла). Cryptor 7 лет назад 0
Вот что происходит по умолчанию .... Ramhound 7 лет назад 0
Я не понимаю ... Вы имеете в виду, что при создании базы паролей генерируется мастер-ключ? Если да, есть ли способ заставить KeePass изменить главный ключ и повторно зашифровать базу при смене пароля пользователя? Представьте себе ситуацию, когда кто-то узнает пароль, получает мастер-ключ. Но владелец базы не знает об этом и просто продолжает менять базу паролей один раз в течение некоторого периода времени ... Тогда все не так хорошо ... Cryptor 7 лет назад 0

1 ответ на вопрос

2
Cryptor

После прочтения этой статьи кажется, что некоторые случайные байты действительно генерируются, но только с целью завершения полного 256-битного ключа:

Для генерации 256-битного ключа для блочных шифров используется алгоритм Secure Hash SHA-256. Этот алгоритм сжимает пользовательский ключ, предоставленный пользователем (состоящий из пароля и / или файла ключа), в ключ фиксированного размера в 256 бит. Это преобразование является односторонним, то есть вычислительно невозможно инвертировать хеш-функцию или найти второе сообщение, которое сжимается в тот же хеш.

Недавно обнаруженная атака на SHA-1 [2] не влияет на безопасность SHA-256. SHA-256 по-прежнему считается очень безопасным [3].

Вывод ключа:

Если используется только пароль (т. Е. Отсутствует файл ключа), пароль плюс 128-битная случайная соль хэшируются с использованием SHA-256 для формирования окончательного ключа (но обратите внимание, что есть некоторая предварительная обработка: защита от атак по словарю). Случайная соль предотвращает атаки, основанные на предварительно вычисленных хэшах.

При использовании файла пароля и ключа окончательный ключ получается следующим образом: SHA-256 (SHA-256 (пароль), содержимое файла ключа), т. Е. Хэш мастер-пароля объединяется с байтами файла ключа и полученным байтом. строка снова хешируется с помощью SHA-256. Если файл ключа не содержит ровно 32 байта (256 бит), они также хэшируются с помощью SHA-256, чтобы сформировать 256-битный ключ. Затем приведенная выше формула меняется на: SHA-256 (SHA-256 (пароль), SHA-256 (содержимое файла ключа)).

Таким образом, я делаю вывод о том, что нет никакого внутреннего мастера - ключа. Когда пароль пользователя (и файл ключа) изменяется, база паролей повторно шифруется новым ключом.

Похожие вопросы