Серийный номер сертификата X.509 - PullRequest
5 голосов
/ 19 января 2010

Я программирую центр сертификации в java для класса uni, теперь я не знаю, какой вариант лучше всего подходит для серийного номера сертификата.

  • Простой статический счетчик от 0 до очень большого числа
  • какое-то огромное BigInt случайное число

Есть ли веская причина для выбора одного над другим ... или ни одного из них ??

спасибо,

Ответы [ 6 ]

2 голосов
/ 19 января 2010

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

  1. Вы никогда не будете повторять один и тот же серийный номер.
  2. По серийному номеру сертификата можно определить, является ли он хотя бы удаленно действительным.

Конечно, # 1 требует, чтобы вы проверяли по известному списку при генерации и генерировали новое случайное числочисло, если происходит коллизия, и № 2 не является чем-то большим с точки зрения безопасности или проверки, но тем не менее интересная перспектива.

2 голосов
/ 19 января 2010

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

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

2 голосов
/ 19 января 2010

Технически счетчик от 0 до veryBigNumber проще реализовать, чем bigRandomNumber - потому что серийные номера ДОЛЖНЫ быть другими.

Однако - вы можете не захотеть использовать простой счетчик, если вы заботитесь о том, чтобы люди знали, сколько сертификатов вы выпустили.

1 голос
/ 20 января 2010

Основным требованием является то, что пара (Issuer distinguished name, serial number) должна быть уникальной во вселенной.Поэтому не следует использовать случайное число, если оно не настолько велико, чтобы вероятность повторения была незначительной.Случайное число из 20 байтов должно быть более чем адекватным.Простой счетчик отлично подойдет, если вы не возражаете, что другие люди знают, сколько сертификатов вы выпустили.

Относительно недавние атаки на издателей SSL-сертификатов (от Алекса Сотирова и др.), Которые использовали слабостьMD5 на самом деле стало еще проще благодаря использованию серийных номеров счетного типа.Случайные серийные номера не были атакованы.Это не означает, что предсказуемые серийные номера являются плохой защитой, это просто означает, что для этого приложения случайные серийные номера могут помочь скрыть недостатки в MD5.Проблема с корнем все еще была MD5.

0 голосов
/ 23 мая 2014

Я случайно наткнулся на этот вопрос только сейчас, и из ответов вы можете подумать, что предсказуемый серийный номер не является проблемой безопасности. Я бы сказал, что это является проблемой , и что случайные серийные номера намного безопаснее. Ср Атака пламенем и др. здесь , например, или здесь или статья в википедии " Атака с предсказуемым серийным номером ."

0 голосов
/ 20 января 2010

Я думаю, что если мы рассмотрим слово Serial, ответ будет неявным .... Serial, series, progression и т.д.

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