Относительно вашего первого вопроса, да, ваши изложенные шаги верны!Вот общий поток mutualSSL
с графическим обзором: ( источник )
- Клиент запрашивает доступ к защищенному ресурсу.
- Сервер представляет свой сертификат клиенту.
- Клиент проверяет сертификат сервера.
- В случае успеха клиент отправляет свой сертификат на сервер.
- Сервер проверяет клиентучетные данные.
- В случае успеха сервер предоставляет доступ к защищенному ресурсу, запрошенному клиентом.
Ваш второй вопрос ( Как сервер проверяет сертификат клиента? ): Сервер проверяет сертификат клиента с помощью подписи.Подпись обычно является хеш-значением, сборкой полного сертификата.Хэш-значение подписывается закрытым ключом соответствующего CA
(центр сертификации).Сервер проверяет подпись сертификата клиента с помощью открытого сертификата CA
.
Ваш третий вопрос ( Склад доверенных сертификатов сервера, содержащий открытый ключ / сертификат клиентаили соответствующий сертификат CA? ): Если вы используете, например, самозаверяющие сертификаты, вам, вероятно, придется импортировать открытый ключ / сертификат клиента непосредственно в хранилище доверенных сертификатов сервера.Если ваш клиент использует подписанный сертификат CA
, серверу целесообразно хранить только открытый ключ / сертификат CA
, поскольку он используется для проверки сертификата клиента.
Ваш четвертый вопрос ( Действительно ли этот процесс аутентифицирует клиента ): Да!Как вы видите в ответе на второй вопрос, сертификат проверяется проверкой подписи.Подпись является хешем над полным сертификатом.Стандарт X.509
содержит информацию для идентификации субъекта.Проверяя подпись, субъект аутентифицируется.Стандартный X.509
сертификат содержит среди прочего, например, такую информацию: Имя субъекта, Информация об открытом ключе субъекта, Алгоритм открытого ключа, Уникальный идентификатор эмитента (необязательно), ...
Ваш пятый вопрос ( Куда идет проверка CN? ): проверка CN
(общее имя) выполняется во время проверки сертификата.CN
указывает действительное имя хоста для текущего сертификата.Он ограничен одной записью.В качестве расширения было введено SAN
(альтернативное имя субъекта).Сертификат может содержать более одного SAN
.Запись CN
(и SAN
) является частью сертификата и проверяется с помощью проверки подписи сертификатов.
Ваш шестой вопрос ( ЕслиСертификат клиента может быть скомпрометирован по каким-либо причинам. Управляется ли он простым удалением его из хранилища доверенных сертификатов сервера? ): Поэтому CA
s использует так называемый revocation lists
.Если вы используете, например, самозаверяющие сертификаты, было бы хорошо просто удалить скомпрометированную запись сертификата из хранилища доверенных сертификатов серверов.
Ваш седьмой вопрос ( Есть ли преимущество?в моем сценарии использования доверенного ЦС, например, verisign для создания клиентского сертификата по сравнению с самозаверяющим? ): Есть несколько преимуществ использования CA
подписанного сертификата вместо самозаверяющего.
- Сертификатом и, в конечном итоге, отзывом управляет
CA
- Сертификат действителен для каждой проверяющей стороны общественности
CA
, например, Verisign - Most
CA
s предлагают стандартизированные способы создания сертификата