Вопрос для тех, кто использует программы подобные KeePass. И авторизацию ключевой файл + пароль.
Где вы храните ключевой файл? Копия на флешке, компьютере, телефоне, в облаке?
Очевидно, что он не должен лежать рядом с базой и как-то выделяться.
Какие способы хранения вы используете?
Не вижу преимуществ в использовании ключевого файла перед текстовым паролем. Из минусов:
На всех ваших внешних/внутренних съемных и несъемных дисках лежат (в сумме) несколько сот тысяч различных файлов, что соответствует 16-20 бит различных вариантов, что соответствует трем-четырем символам текстового пароля смешанного регистра.
Файл в единственном экземпляре очень легко потерять/повредить по сотне разных причин. Вы бы стали держать что-то ценное в сейфе, единственный ключ от которого сделан из сахара?
Файл во множестве экземпляров - все равно, что разбросать по двору копии ключа от квартиры.
Файл-ключ дает ложное чувство более высокой надежности и/или криптостойкости (ни то, ни другое неверно).
P.S. Некоторые комментаторы, возможно, путают файл-ключ с файлом самой базы.
Тут имеется ввиду использование пароля совместно с ключевым файлом.
Ключевой файл сформирован так, что его можно восстановить в ручную, в течении дня, по определённому алгоритму. Резервная копия как таковая не особо важна.
Вопрос в том, где хранить так, чтобы хоть минимально скрыть его местоположение, но при этом доступ к нему иметь везде, где есть интернет (иначе эти пароли особо не нужны, естественно)
По надежности: Ключевой файл + пароль = минимум(надежность_файла, надежность_пароля) = надежность_файла (если не рассматривать вариант забывания пароля).
Ключевой файл в Сети требует защищенного канала в Сеть, который требует ключи из базы (которая еще не расшифрована) или пароль из головы (этот случай сводится к случаю расшифровки базы по одному паролю, отличается только меньшей надежностью).
Если ключевой файл возможно сгенерировать локально, то хранение в Сети его копии не повышает ни безопасность, ни надежность такого решения.
знание пароля без ключевого файла вам тоже ничего не даст
Оно даст полную и окончательную потерю доступа ко всей базе в случае случайного повреждения/утери носителя с файлом-ключем. А идея держать ключ в облаке - это все равно что единственный ключ от сейфа с драгоценностями постоянно хранить в шкафчике раздевалки в сауне.
Allows KeePass to use RSA certificates from the Windows certificate store as master key source.
Во-первых, я не пользуюсь Windows.
Во-вторых, использовать в качестве ключа для KeePass открытый ключ, который сгенерирован на основе закрытого, который лежит в файле рядом, ничем не безопаснее чем просто открывать KeePass секретным ключем из файла (со всеми вышеприведенными недостатками). Только не говорите, что "Windows надежно хранит..." - если ключ не надо каждый раз заново вводить, значит он где-то лежит в открытом виде. Еще хуже если в генерации открытого ключа как-то участвуют какие-то уникальные параметры окружения, тогда получаем: слетела ОС -> была переустановлена -> сгенерированны новые ключи -> эти ключи не открывают базу KeePass! Как вообще можно доверять такой закрытой и запутанной вещи как ОС Windows?
Алексей Константинов: По поводу ключа в облаке: ОК, мы его шифруем, а пароль храним... в KeePass, который невозможно открыть без этого ключа! Нет, мы храним его в голове, а генерируем 16-значную цифробуквенную последовательность в генераторе в KeePass, но забыв всего одну цифру мы теряем все! Или мы сочиняем пароль из собственной фамилии и даты рождения (как это делают секретарши), тогда мы практически дарим облаку наш файл-ключ, а вместе с ним и всю базу.
Чем все это лучше варианта без файла ключа, кроме того, что этот вариант боле запутанный?
И еще: если в облаке хранится единственный экземпляр ключа, то его утеря означает потерю всей базы (а потеря доступа к облаку иногда случается по причинам далеким от криптографии). Если ключ во множестве копий валяется на разных носителях, то этот вариант опять же аналогичен варианту вообще без файла-ключа на одном пароле.