Welcome! Log In Create A New Profile

Advanced

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

August 27, 2012 05:08PM
Я все-таки повторюсь со своей проблемой.
Пытался внимательно понять, как и что работает, пришел к следующим выводам:
1. Директива ssl_client_certificate определяет список доступных CA для клиента, сертификаты этих CA сервер готов рассматривать для авторизации по сертификату. Со стороны клиента выглядит как:
---
Acceptable client certificate CA names
/CN=SubCA1/O=Test JSC/L=Moscow/C=RU
---
Браузер, получая такой сертификат смотрит все клиентские пары ключей и выбирает те, которые подписаны указанным сертификатом.

2. Директива ssl_certificate содержит ссылку на файл с серверным SSL сертификатом. Причем если в сертификате верно прописаны AIA caIssuer и Authority Key Identifier, то клиент может самостоятельно построить цепочку до корневого сертификата. Возможно добавить промежуточные CA после серверного сертификата, однако корневой сертификат добавлять туда не стоит, в этом нет смысла. Корневые сертификаты должны присутствовать у клиента.

Вроде все должно работать предсказуемо, однако это не так.

Проблемы начинаются из-за того, что нет разделения механизма проверки клиентских сертификатов и предоставления клиенту списка принимаемых сертификатов. Это приводит к тому, что в директиве ssl_client_certificate ссылка должна указывать на файл, который помимо серверного сертификата должен ВСЕГДА содержать цепочку сертификатов, включая корневой, иначе проверка клиентского сертификата завершится неудачно с кодом 20:unable to get local issuer certificate для отсутствующих сертификатов и 27:certificate not trusted для всех остальных в цепочке.
Проблема наличия корневого сертификата в списке доступных для клиента в том, что браузер предлагает использовать все сертификаты всех подчиненных CA, подписанных корневым сертификатом. Это является потенциальной проблемой безопасности. И пользователь с сертификатом, подписанным SubCA2, сможет получить доступ на сайт вместо пользователя с сертификатом, подписанным SubCA1.

Есть ли возможность реализовать передачу доступных CA клиенту директивой ssl_client_certificate в виде существующей функциональности, а вот механизм проверки клиентских сертификатов сделать независимым от данной директивы? Вероятно придется определить новый параметр типа ssl_verify_client_certificate, который будет указывать на файл с цепочками доверенных сертификатов, включая корневые.

Это действительно важно для многоуровневых PKI.

Заранее спасибо!
Subject Author Posted

Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 September 09, 2011 01:11PM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 September 13, 2011 07:01AM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Rush September 13, 2011 07:14AM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 September 13, 2011 07:50AM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Igor Sysoev September 13, 2011 08:08AM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 September 13, 2011 08:23AM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 August 27, 2012 05:08PM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maxim Dounin August 31, 2012 11:54PM

Re: Как различить SSL сертификаты, выданные различными промежуточными ЦС собщим корневым ЦС?

Maximus43 September 05, 2012 08:51AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 169
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready