Frage

Ich programmiere eine Zertifizierungsstelle in Java für eine uni-Klasse, jetzt weiß ich nicht, was ist die beste Option für die Seriennummer des Zertifikats.

  • Einfache statische Zähler von 0 bis veryBigNumber
  • einige große BigInt Zufallszahl

Gibt es einen guten Grund, einen über den anderen für die Wahl ... oder keiner von ihnen ??

Danke,

War es hilfreich?

Lösung

Ich würde empfehlen, dass Sie eine Zufallszahl zu verwenden, aber eine Liste der ausgegebenen Seriennummern in einer Datenbank halten. Dies wird für zwei Dinge ermöglichen.

  1. Sie werden nie die gleiche Seriennummer erneut ausgeben.
  2. Sie können von einem Zertifikat-Seriennummer sagen, wenn es auch nur entfernt gültig ist.

Natürlich # 1 setzt voraus, dass Sie prüfen, gegen die bekannte Liste auf Generation und eine neue Zufallszahl zu erzeugen, wenn eine Kollision auftritt, und # 2 ist nicht so gut wie nichts in Bezug auf die Sicherheit oder die Validierung aber eine interessante Aussicht nichts the-less.

Andere Tipps

Technisch Zähler von 0 bis veryBigNumber ist einfacher als bigRandomNumber zu implementieren - weil die Seriennummern unterschiedlich sein müssen.

Allerdings - mögen Sie vielleicht nicht einen einfachen Zähler verwenden, wenn Sie über die Menschen kümmern zu wissen, wie viele Zertifikate sie ausgestellt.

Es hängt davon ab, was Sie für die Seriennummer verwenden. Wenn Sie sind ein kleines Unternehmen, und wenn Sie auf dem Geben ein Zertifikat pro Kunde planen, dann ist Ihre Seriennummer wird zeigen, wie viele Kunden Sie haben.

Andere dann, dass ich keinen Grund sehe nicht, warum die Seriennummer darf nicht seriell sein. Einige Leute argumentieren, dass Seriennummern verwenden einige Informationen verlosen (die nächste Seriennummer) zu einem potentiellen Angreifer, aber ich nicht denke, das ist ein großes Problem.

Die wichtigste Voraussetzung ist, dass das Paar (Issuer distinguished name, serial number) im Universum einzigartig sein sollte. Daher sollten Sie nicht eine Zufallszahl verwenden, wenn es so groß ist, dass die Wahrscheinlichkeit einer Wiederholung vernachlässigbar ist. Ein 20-Byte-Zufallszahl sollte mehr als ausreichend sein. Ein einfacher Zähler ist völlig in Ordnung, wenn Sie nicht andere Leute nichts dagegen zu wissen, wie viele Zertifikate, die Sie ausgegeben haben.

Die relativ jüngsten Angriffe auf SSL-Zertifikat-Emittenten (von Alex Sotirov et al.), Die die Schwäche in MD5 ausgebeutet tatsächlich noch einfacher durch die Verwendung von Gegentyp Seriennummern vorgenommen wurden. Zufallsseriennummern wurden nicht angegriffen. Dies bedeutet nicht, dass vorhersehbare Seriennummern schlechte Sicherheit sind, ist es nur bedeutet, dass für diese Anwendung zufällige Seriennummern helfen, die Schwächen in MD5 maskieren könnten. Das eigentliche Problem war immer noch MD5.

Ich denke, wenn wir untersuchen das Wort Serien der Antwort implizit .... Serien, Serien, Progression etc

Ich war gerade über diese Frage zufällig kommen gerade jetzt, und Sie würden sich aus den Antworten der Meinung, dass eine vorhersehbare Seriennummer ist kein Sicherheitsproblem. Ich würde sagen, dass es ist ein Anliegen, und dass zufällige Seriennummern sind viel sicherer. Vgl Flammenangriff et al hier zum Beispiel, oder hier oder der wikipedia-Artikel über " Vorhersehbare Seriennummer Angriff ."

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top