Zertifikatketten
Um Zertifikate aus Sicherheitsgründen zu verwenden, muss die Echtheit und Gültigkeit jedes empfangenen Zertifikats überprüft werden. Diese Überprüfung hängt vom Vertrauensbegriff und der Vertrauensdelegierung ab; weitere Informationen finden Sie unter Hierarchie der Vertrauensstellung.
Jedes Zertifikat enthält ein Betrefffeld, das die Person oder Gruppe identifiziert, für die das Zertifikat ausgestellt wurde. Jedes Zertifikat enthält außerdem ein Ausstellerfeld, das die Zertifizierungsstelle identifiziert, die berechtigt ist, die Identität des Antragstellers zu zertifizieren.
Eine Zertifikatkette besteht aus allen Zertifikaten, die erforderlich sind, um den antragsteller zu zertifizieren, der durch das Endzertifikat identifiziert wird. In der Praxis umfasst dies das Endzertifikat, die Zertifikate von Zwischenzertifizierungsstellen und das Zertifikat einer Stammzertifizierungsstelle, die von allen Parteien in der Kette als vertrauenswürdig eingestuft wird. Jede Zwischenzertifizierungsstelle in der Kette enthält ein Zertifikat, das von der Zertifizierungsstelle eine Ebene darüber in der Vertrauenshierarchie ausgestellt wurde. Die Stammzertifizierungsstelle stellt ein Zertifikat für sich selbst aus.
Die Überprüfung der Echtheit und Gültigkeit eines neu empfangenen Zertifikats umfasst die Überprüfung aller Zertifikate in der Kette von Zertifikaten von der ursprünglichen, universell vertrauenswürdigen Zertifizierungsstelle über alle Zwischenzertifizierungsstellen bis hin zum soeben empfangenen Zertifikat, das als Endzertifikat bezeichnet wird. Ein neues Zertifikat kann nur vertrauenswürdig sein, wenn jedes Zertifikat in der Kette dieses Zertifikats ordnungsgemäß ausgestellt und gültig ist.
Die Nachverfolgung aller Zertifikate, die ein neues Endzertifikat sichern, kann umständlich werden. Daher bietet die CryptoAPI 2.0-Technologie Funktionen, die die Erstellung der Kette von Zertifikaten automatisieren, die jedes angegebene Endzertifikat sichern. Diese Funktionen überprüfen und melden auch die Gültigkeit jedes Zertifikats in einer Kette.
Die Kettenerstellungs- und Überprüfungsfunktionen von CryptoAPI 2.0 verwenden eine Ketten-Engine, um Zertifikatketten zu erstellen und zu überprüfen. Eine Ketten-Engine definiert einen Speichernamespace und eine Cachepartitionierung für die Zertifikatketteninfrastruktur. CryptoAPI 2.0 stellt eine Standardketten-Engine für jeden Anwendungsprozess bereit, der nur Standardsystemspeicher (z. B. MY, Root, CA und Trust) zum Erstellen und Zwischenspeichern von Ketten verwendet. Eine Anwendung kann einen eigenen Speichernamespace definieren oder über einen eigenen partitionierten Cache verfügen, indem sie eine eigene Ketten-Engine erstellt. Um ein optimales Zwischenspeicherungsverhalten zu erzielen, empfiehlt es sich, beim Anwendungsstart eine Single Chain-Engine zu erstellen und diese Ketten-Engine während der gesamten Lebensdauer der Anwendung zu verwenden.
Eine Liste der Funktionen finden Sie unter Überprüfungsfunktionen der Zertifikatkette. Ein Programm, das Zertifikatketten erstellt und Zertifikate überprüft, finden Sie unter Beispiel-C-Programm: Erstellen einer Zertifikatkette.