Хранилище ключей (независимо от того, используется ли оно для «хранилищ ключей» или «truststores») инициализируется после создания с использованием метода load()
. Одна версия ожидает InputStream
, соответствующей файлу хранилища ключей, и пароль для дешифрования файла. Предоставление пароля методу программно кажется мне странным.Управление паролями Keystore
Например, сервер использует хранилище ключей для хранения его закрытых ключей и связанных сертификатов. Информация, присутствующая в хранилище ключей, является разумной, поэтому она защищена паролем. Каковы проблемы с передачей пароля программно load()
? Какова наилучшая практика?
Другой пример, но пока что касается доверительных магазинов. У клиента есть доверительное хранилище, где хранится сертификаты доверенных ЦС. Насколько я понимаю, доверительный сервер не содержит сертификата сервера, а только сертификаты центров сертификации, которые позволяют проверять сертификат сервера. Один пример доверия, который я вижу, - это тот, который присутствует в JRE (в папке security
- cacerts
). Посмотрев конфигурацию, я вижу, что она защищена паролем по умолчанию changeit
. Я понимаю, что доверительный магазин реализован с использованием хранилища ключей, поэтому он (или, может быть, не обязательно?) Должен быть зашифрован с использованием пароля. Но, поскольку в хранилищах обычно хранятся общедоступная информация (сертификаты доверенного ЦС), почему рекомендуется менять пароль?
Благодаря
Спасибо, я не думал о модификации для truststore, это очевидно. –
У меня есть другой связанный с этим вопрос. Почему TrustManagerFactory не нуждается в пароле для инициализации, а KeyManagerFactory? Кроме того, пароли для Keystore и Truststore были предоставлены во время загрузки(). –
Пароль KMF предназначен для использования закрытого ключа. В обоих случаях вы уже загрузили хранилище ключей, прежде чем передавать его на фабрики. – Bruno