Где хранится пароль KeyStore и пароль ключа - PullRequest
0 голосов
/ 20 марта 2019

Я использовал Windows и Linux для создания хранилища ключей Java (JKS) с помощью Java Keytool. Когда я запускаю команду keytool, я упоминаю ниже:

keytool -genkey -alias TESTSSL -dname "cn = Test.com, ou = testlab, o = myorg, c = UK" -keyalg "RSA" -keysize 2048 -keystore TESTSSL.private.jks -validity 10-магазин ХХХХХХХ

Он предлагает ввести пароль хранилища ключей и пароль ключа .

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

Любая информация, связанная с этим высоко ценится.

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Обратите внимание, что вы на самом деле создаете формат хранилища ключей по умолчанию, предполагая, что этот файл не существует на момент запуска keytool;через Java 8 по умолчанию используется JKS, но с 9 и выше - PKCS12.(Присвоение имени файлу something.jks не контролирует формат, больше, чем присвоение ему имени something.lollipop сделает его сладким для ребенка.)

Если вы укажете -storepass whatever в командной строке, как вы указали, он долженне запрашивать пароль хранилища ключей - по крайней мере, не для этой операции;если вы снова запустите keytool для (повторного) использования того же файла, будет выдан , если вы снова не укажете его в командной строке .Точно так же, если вы указываете -keypass whatever в командной строке, при необходимости в зависимости от операции он не должен запрашивать пароль ключа.

Для JKS JCEKS и PKCS12 пароль (и) не хранится ввсе. Это было бы крайне небезопасно.Вместо этого пароль (и) плюс «соль» (рандомизированное значение) обрабатываются односторонним алгоритмом «получения ключа» для создания ключа , используемого для шифрования по крайней мере записей закрытого ключа вхранилище ключей и аутентифицировать (MAC) все хранилище ключей.PKCS12, реализованный в Java (слабо), шифрует сертификаты, а также приватные ключи;JKS и JCEKS нет.PKCS12, реализованный в Java, может не поддерживать пароль закрытого ключа, отличный от пароля хранилища.

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

Для хранилищ ключей, не основанных на файлах, таких как PKCS11 в некоторых системах или хранилище, предоставляемое ОС в Windows, способ реализации и использования пароля - если вообще - зависит от особенностей этого хранилища ключей, хотя сохранение пароля будетобычно плохая или плохая практика.

0 голосов
/ 20 марта 2019

Пароль ключа и пароль хранилища ключей хранятся в самом хранилище ключей.Это автономно.Таким образом, хранилище ключей является переносимым и может быть отправлено другим, кто может его открыть (при условии, что они знают пароль ключа [store]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...