Как именно проверяется сертификат SSL?

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

  • Когда вы создаете CSR, он генерирует закрытый ключ вместе с ним, и вы отправляете его в CA, чтобы сгенерировать сертификат и подписать его, но разве CA не использует свой собственный закрытый ключ для подписи? Так в чем смысл закрытого ключа, который вы сгенерировали с помощью своей CSR?

  • Когда сервер отправляет свой сертификат для проверки клиентом, как именно клиент проверяет, является ли он действительным сертификатом CA. У него есть коллекция доверенных сертификатов CA, хорошо, но как именно они используются для проверки того, что это был действительный CA, подписавший сертификат сервера с использованием подписи и открытого ключа сертификата сервера? Какие вещи сравниваются, чтобы убедиться, что это не было подделано?

  • Есть ли смысл шифровать ваши внутренние самозаверяющие сертификаты? Как насчет внутреннего корневого сертификата? Или секретный ключ - единственный, который стоит зашифровать?

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

1 ответ

Решение

Когда вы создаете CSR, он генерирует закрытый ключ вместе с ним

Или вы уже сгенерировали свой собственный закрытый ключ.

и вы отправляете его в CA, чтобы сгенерировать сертификат и подписать его

Вы отправляете CSR. Вы не отправляете свой закрытый ключ. Это личное. Вы не отправляете это никому.

но CA не использует свой собственный закрытый ключ для подписи?

Да.

Так в чем смысл закрытого ключа, который вы сгенерировали с помощью своей CSR?

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

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

Сам сертификат проверяется путем проверки его цифровой подписи; проверяется на срок действия; и затем делается попытка сформировать цепочку сертификатов, используя предполагаемого подписавшего сертификат ("эмитент") и доверенные сертификаты в коллекции.

Есть ли смысл шифровать ваши внутренние самозаверяющие сертификаты?

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

Как насчет внутреннего корневого сертификата?

Нет.

Или секретный ключ - единственный, который стоит зашифровать?

Да.

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

Потому что это личное. Это важная часть вашей личности. Если вы пропустите это, другие могут выдать себя за вас.

Другие вопросы по тегам