So identifizieren Sie Zertifikate eindeutig

So identifizieren Sie Zertifikate eindeutig

Wir haben einen Dienst, der eine Menge signierter XML-Dokumente empfängt. Einige davon sind mit einem selbstsignierten Zertifikat signiert und andere stammen von einer vertrauenswürdigen Zertifizierungsstelle.

Wie können wir am besten sicherstellen, dass das zum Signieren des XML-Dokuments verwendete Zertifikat in einer Liste vertrauenswürdiger Zertifikate enthalten ist?

Heute vergleichen wir den Fingerabdruck des Zertifikats mit einer Liste akzeptierter Zertifikatsfingerabdrücke.

Können wir darauf vertrauen, dass der Fingerabdruck einzigartig ist – oder ist es möglich, ihn zu fälschen?

Was wäre die beste Lösung für dieses Problem? (Wir können nicht jeden, der signierte XML-Dokumente sendet, dazu zwingen, Zertifikate einer vertrauenswürdigen Zertifizierungsstelle zu verwenden.)

Antwort1

Wenn Sie diestandardmäßige XML-SignaturSyntax, dann kann die optionale KeyInfo das tatsächlich zu verwendende Zertifikat enthalten.

Sie sollten den Fingerabdruck des Zertifikats aus der KeyInfo verwenden, um ihn mit der Liste der akzeptierten Zertifikate abzugleichen, und dann die tatsächliche Signatur validieren gegeneine Kopie dieses Zertifikats aus Ihrem eigenen Speicher vertrauenswürdiger Zertifikate. Wenn das zum Signieren des Dokuments tatsächlich verwendete Zertifikat ein anderes ist, schlägt der Validierungsschritt fehl, das Dokument sollte abgelehnt werden und hoffentlich sollte jemand weitere Untersuchungen durchführen.

Der Zertifikatfingerabdruck sollte komplex genug sein, damit die Wahrscheinlichkeit, dass es versehentlich zwei Zertifikate mit demselben Fingerabdruck gibt, vernachlässigbar ist. Aber selbst wenn dies passiert (vielleicht aus böswilliger Absicht), sollte es nur dazu führen, dass für den Signaturvalidierungsprozess ein falsches Zertifikat ausgewählt wird, was definitiv dazu führen sollte, dass die Validierung fehlschlägt.

Aber wenn Sie das Dokument validierenmit der Bescheinigung, die dem Dokument beiliegtund dann überprüfen, ob der Zertifikatfingerabdruck mit einem der vertrauenswürdigen Zertifikate übereinstimmt, sind SieEs falsch machen: Sie verwenden im Wesentlichen die Fingerabdrücke der vertrauenswürdigen Zertifikate als Passwörter.

verwandte Informationen