In deutschen Worten:
ocspd verifiziert auf Anforderung des Security.frameworks ein Zertifikat. Diese Zertifikate sind i.d.R. im Schlüsselbund hinterlegt und werden von einer Applikation verwendet, um eine Verbindung zu irgendeinem Dienst im Internet aufzubauen.
Genau, das Ganze hat mit Zertifikaten und PKI (Public Key Infrastructure) zu tun.
Zertifikate dienen als elektronischer "Ausweis" für die verschiedensten Dinge (für SSL zwischen Server und Browser, zu Authentisierungszwecken an Diensteplattformen, zum Signieren von E-Mails etc.).
So ein Zertifikat beinhaltet Informationen über den Aussteller des Zertifikats, Informationen über den Inhaber des Zertifikats, Angaben zur Gültigkeit des Zertifikats und noch ne Menge andere Dinge (sogenannte Extensions/Erweiterungen).
Wenn nun im von maelcum genannten Beispiel der signierten E-Mails der Mailclient diese Signatur vorfindet, passiert folgendes:
1. Der Mailclient prüft, ob die Signatur mathematisch korrekt ist.
2. Das in der Signatur enthaltene Zertifikat wird überprüft.
2a. Mathematische Prüfung des Zertifikats
2b. Prüfung der Zertifikatskette unter Zuhilfenahme des Zertifikatsspeichers im Betriebssystem/in der Anwendung
2.c Überprüfung des Sperrstatus des Zertifikats (geht nur bei Onlineverbindungen).
Beim Punkt 2c. kommt dann der ocspd ins Spiel.
--
Welche Möglichkeiten der Statusprüfung gibt es?
1. Sperrlistenprüfung (CertificateRevocationList - cRL)
Eine Sperrliste enthält eine Aufzählung von Zertifikatsseriennnummern und den dazugehörigen Sperrzeitpunkten und optional anzugebenen Sperrgründen. Wie man an diese Sperrlisten kommt (also die URL für den Download) findet man im Allgemeinen in einer Zertifikatsextension mit dem Namen "crlDistributionPoint".
Gängige Wege der Beschaffung sind über http (Port 80) oder über das ldap-Protokoll (meist Port 389). Die genaue URL ist aber wie gesagt in der Extension zufinden.
Der Vorteil einer cRL ist, dass man eine Struktur hat, welche man einfach parsen kann und diese Struktur enthält mehr als einen Sperreintrag. Der Nachteil ist, dass so eine cRL sehr gross werden kann und damit mehr als unhandlich wird.
2. OCSP (Online Certificate Status Protocol )
Wie es der Name schon sagt, ist dies ein eigenes Protokoll zur Statusabfrage. Bei der Abfrage wird das ausstellende CA-Zertifikat und die zu überprüfende Zertifikatsseriennnummer übergeben.
Als Antwort erhält man keine Datenstruktur im Sinne einer cRL sondern eine siognierte Antwort, die verschiedene Auskünfte gibt.
Mögliche Antworten sind:
- gültig
- gesperrt inkl. Sperrdatum und optionalem Sperrgrund
- unbekannt
Der Vorteil dieses Protokolls ist, dass die Antworten immer sehr klein bleiben und nicht ins Uferlose wie bei cRLs wachsen.
Der Nachteil ist, dass man für jedes Zertifikat eine separate Abfrage tätigen muss.
Die URL für den Zugriff auf diesen Dienst steht in einer Zertifikatsextension mit dem Namen "authorityInformationAccess".
Der Zugriff kann native erfolgen (oft der Port 9000) oder in http eingapckt, also Port 80.
Damit erklärt sich auch der Zugriff über den Port 80 im hier konkret aufgebarchten Fall.
Viele Grüße
Tom