Каковы рекомендации по сопоставлению сертификата клиента с учетной записью пользователя? - PullRequest
4 голосов
/ 10 апреля 2010

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

  • Сохранить в открытый ключ сертификата?
  • Сохранить эмитента и серийный номер?

Или есть другие возможности?

Ответы [ 2 ]

2 голосов
/ 10 апреля 2010

Вы выдаете сертификаты (и есть возможность установить некоторые поля сертификата)? Нужно ли интегрировать эти сертификаты в более масштабную среду PKI, такую ​​как подпись по электронной почте (я имею в виду кошмар взаимодействия X.509)?

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

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

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

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

0 голосов
/ 05 мая 2011

Мы храним серийный номер сертификата клиента и DN эмитента и сопоставляем его. Согласно http://www.tectia.com/manuals/server-admin/60/userauth-cert.html, этого достаточно для однозначной идентификации сертификата.

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