Welche Schritte sind notwendig um ein Zertifikat zu validieren / zu prüfen?

Übersicht

X.509 Zertifikate sind digitale Daten, was bedeutet, dass jedermann die Möglichkeit hat, ein X.509 Zertifikat mit beliebigem Inhalt zu erstellen. Aufgrund dieser Tatsache wurden mehrere Mechanismen eingeführt, um zu überprüfen, ob ein Zertifikat gültig ist.

Vertrauen

Ein zentraler Begriff bei der Überprüfung von X.509 Zertifikaten ist das Vertrauen (eng. Trust). Das Vertrauen in ein Zertifikat ist eine notwendige Bedingung für die Gültigkeit eines Zertifikats. Meistens wird Software, die X.509 Zertifikate verwendet, mit einem oder mehreren Zertifikaten ausgeliefert, die die Software (zb. Microsoft Zertifikatsverwaltung) a priori als trusted bewertet.


Zertifikatsüberprüfung

Folgende Schritte werden (nicht notwendigerweise in dieser Reihenfolge) durchlaufen, um die Gültigkeit eines Zertifikats zu überprüfen:
- Überprüfung der Signatur
- Überprüfung der Gültigkeitsdauer
- Überprüfung des Widerrufsstatus
- Überprüfung des Vertrauens (Zertifikatspfad)

Schlägt einer dieser Schritte fehl, ist das Zertifikat ungültig und je nach Software wird eine mehr oder weniger exakte Fehlermeldung oder Warnung ausgegeben.


Überprüfung der Signatur

Jedes X.509 Zertifikat wird mit dem privaten Schlüssel (eng. private key) des Ausstellers des Zertifikats signiert. Mittels des dazugehörigen öffentlichen Schlüssels (eng. public key) kann die Signatur überprüft werden. Wenn die Signaturprüfung fehlschlägt, wurde das Dokument a) nie unterschrieben oder b) das Dokument seit der Signatur verändert.


Überprüfung der Gültigkeitsdauer

In jedem X.509 Zertifikat ist eine Gültigkeitsdauer mittels eines Start-Datums und eines Ende-Datums angegeben. Wenn die momentane Systemzeit vor dem Start-Datum oder nach dem Ende-Datum liegt, ist diese Überprüfung negativ.


Überprüfung des Widerrufsstatus

Jedes X.509 Zertifikat kann vom Aussteller widerrufen werden. Im Zertifikat werden Informationen hinterlegt, wie der Widerrufsstatus des Zertifikats überprüft werden kann. Die Überprüfung kann einen Verbindungsaufbau von der überprüfenden Software zu einem Server des Ausstellers auslösen, der dazu dient, die Widerrufsinformationen abzufragen. GLOBALTRUST bietet die Methoden CRL und OCSP an, um den Widerrufsstatus zu überprüfen. Die Überprüfung des Widerrufsstatus scheitert, wenn a) der Verbindungsaufbau zum Widerrufsinformationsserver scheitert oder b) die überprüfende Software die Information erhält, dass das Zertifikat widerrufen wurde.

Insbesondere bei OCSP ist es notwendig tatsächlich Online zu sein. Es reicht wenn der Port 80 für diese Überprüfung freigeschalten ist. Kann die Direktverbindung nicht gesichert werden, sollte die Onlineüberprüfung deaktiviert werden. Manche Software bringt dann eine Meldung, in der Form, dass eine "Überprüfung des aktuellen Gültigkeitsstatus eines Zertifikats nicht vorgenommen werden konnte". Dies hat jedoch keinen Einfluss auf die tatsächliche Gültigkeit eines signierten Dokuments.

Sollten berechtigte Zweifel an der Gültigkeit eines Dokuments bestehen, dann besteht immer auch die Möglichkeit direkt bei GLOBALTRUST anzurufen, dann wird die Gültigkeit manuell geprüft. Bei einem Anruf benötigt GLOBALTRUST jedenfalls die Seriennummer des Zertifikats, den Namen des Zertifikats und das Signierdatum des Dokuments.


Überprüfung des Vertrauens (Zertifikatspfad)

Bei dieser Überprüfung sucht die prüfende Software das Ausstellerzertifikat des zu prüfenden Zertifikats und nimmt eine komplette Zertifikatsprüfung dieses Zertifikats vor. Dies löst natürlich wieder eine Überprüfung des Ausstellerzertifikats dieses Zertifikats aus und so weiter, bis ein Zertifikat überprüft wird, bei dem Aussteller und Subjekt dasselbe sind (self-signed certificate). Diese Überprüfung endet erfolgreich, wenn im Zuge der Überprüfung dieses Zertifikatspfades auf ein Zertifikat gestoßen wird, dem die Software vertraut (siehe Absatz "Vertrauen"). Sie scheitert, wenn a) ein Ausstellerzertifikat nicht gefunden werden kann oder b) die Überprüfung am Ende der Zertifikatskette angekommen ist (self-signed Zertifikat) und diesem Zertifikat nicht vertraut wird.