Какие части клиентского сертификата использовать для однозначной идентификации пользователей?

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

Клиентские сертификаты должны быть действительными сертификатами, выданными настроенным списком центров сертификации, и будут проверяться ( проверено) при представлении.

На этапе регистрации мне нужно сохранить часть (и) клиентского сертификата в пользовательском репозитории (БД, LDAP и т. д.), чтобы я мог сопоставить пользователя, который аутентифицируется с клиентским сертификатом, с внутренний «пользователь».

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

RFC 2459 определяет (4.1.2.2), что серийный номер сертификата должен быть уникальным в пределах данного CA.

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

Я что-то пропустил?

27
задан Community 23 May 2017 в 11:54
поделиться