Asymmetrische Chiffrierungs-Algorithmen beruhen auf dem Teilen eines öffentlichen Schlüssels zwischen mehreren Usern. In der Regel wird dieser Schlüssel über ein elektronisches Verzeichnis (meist im Format LDAP) oder eine Website geteilt.
Diese Methode hat allerdings einen großen Nachteil : nichts garantiert, dass der Schlüssel wirklich von dem User ist, mit dem er verbunden ist.. Ein Hacker kann den öffentlichen Schlüssel im Verzeichnis korrumpieren, indem er ihn durch seinen öffentlichen Schlüssel ersetzt. Der Hacker kann dann alle Nachrichten dechiffrieren, die mit dem Schlüssel im Verzeichnis chiffriert wurden.
Ein Zertifikat ermöglicht die Zuordnung eines öffentlichen Schlüssels zu einer Einheit (Person, Maschine,...), um dessen Validität zu gewährleisten. In gewisser Weise ist das Zertifikat die Identitätskarte des öffentlichen Schlüssels, die von einem Organ ausgestellt wird, das Zertifizierungs-Stelle genannt wird (oft geschrieben als CA für Certification Authority).
Die Zertifizierungs-Stelle ist zuständig für die Ausstellung von Zertifikaten, die Zuordnung des Validitätsdatums (ähnlich dem Verbrauchsdatum von Nahrungsmitteln), und dafür, eventuell Zertifikate vor diesem Datum für nichtig zu erklären, falls der Schlüssel (oder Besitzer) kompromittiert wurde.
Zertifikate sind kleine Dateien, die aus zwei Teilen bestehen :
Die Struktur des Zertifikats wird vom Standard X.509 derUIT (genauer X.509v3) normiert, der die im Zertifikat vorhandenen Informationen vorgibt :
Die Gesamtheit dieser Informationen (Informationen + öffentlicher Schlüssel des Anfragenden) wird von der Zertifizierungs- Stelle signiert, das bedeutet, dass eine Hashfunktion einen Abdruck dieser Informationen erzeugt, dieser Hash wird dann mit Hilfe des privaten Schlüssels der Zertifizierungs-Stelle chiffriert, wobei der öffentliche Schlüssel zuvor verbreitet wurde, um den Usern zu ermöglichen, die Signatur mit dem öffentlichen Schlüssel der Zertifizierungs-Stelle zu überprüfen.
Will ein User mit einer anderen Person Kontakt aufnehmen, muss er sich nur das Zertifikat des Empfängers beschaffen. Dieses Zertifikat enthält den Namen und öffentlichen Schlüssel des Empfängers, und ist von der Zertifizierungs-Stelle signiert. Die Validität der Nachricht kann man daher dadurch überprüfen, dass man einerseits die Hashfunktion auf die Informationen anwendet, die im Zertifikat vorhanden sind, und andererseits die Signatur der Zertifizierungs-Stelle mit ihrem öffentlichen Schlüssel dechiffriert, und danach die beiden Ergebnisse vergleicht.
Man unterscheidet verschiedene Arten von Zertifikaten, je nach Niveau der Signatur :
Zertifikate werden in der Regel in den folgenden drei Kontexten verwendet :