Java KeyStore (JKS) - это хранилище криптографических ключей и сертификатов, которое используется, например, при шифровании TLS. Он определен в спецификации архитектуры криптографии Java.

Расширение файла jksобычно относится к хранилищу ключей Java, как определено в спецификации архитектуры криптографии Java (JCA). Эта файловая структура используется для хранения простых ключей, личных сертификатов и открытых сертификатов для использования приложениями на основе Java.

Java JDK ссылается на два разных jksфайлы. Один, называемый Trust Store, содержит доверенные сертификаты, такие как сертификаты подписавшего, выданные центром сертификации, или личные сертификаты, выданные одноранговыми узлами. Поскольку все сертификаты в хранилище доверенных сертификатов являются общедоступной частью пар сертификатов, которые они представляют, требования безопасности для этого файла значительно ниже, чем для частных сертификатов и ключей. Основной риск заключается в обеспечении безопасной подготовки для предотвращения вставки нежелательных сертификатов. Однако риск того, что файл будет доступен для чтения всем, практически отсутствует.

Разделение файлов хранилища ключей и хранилища доверенных сертификатов позволяет распространять хранилище доверенных сертификатов как часть пакета конфигурации приложения. Расположение по умолчанию для этого файла:[jre home]/lib/security/cacerts.

Обратите внимание, что хотя этот файл называется хранилищем доверенных сертификатов, чтобы отличать его от хранилища ключей, в котором хранятся закрытые ключи, он использует jks формат и расширение имени файла.

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

Централизованное управление закрытыми ключами и личными сертификатами с последующим их развертыванием создает дополнительную угрозу безопасности. Если центральный репозиторий взломан, все сертификаты скомпрометированы сразу. Когда сертификаты транспортируются неправильно, их изображения можно оставить во временных файлах, памяти, кеше и локальных файловых системах. По этим причинам централизованное управление частными криптоэлементами лучше всего выполнять с помощью специально созданной системы управления инфраструктурой открытых ключей (PKI). Хорошо построенная PKI использует множество дополнительных средств контроля для снижения рисков взлома и утечки при транспортировке.

JDK предоставляют служебную программу с именем keytool для управления хранилищем ключей и содержащимися в нем криптографическими активами. Вkeytool Утилита включает функции для генерации ключей, создания запросов на подпись сертификатов, импорта и экспорта ключей и сертификатов, а также удаления ключей и сертификатов из хранилища ключей.