Ein Zertifikat besteht aus einem öffentlichen Schlüssel (Public Key) und ggf. einem oder mehreren Zertifikaten, die zu der ausgebenden Zertifizierungsstelle gehören.
Es gibt zwei Möglichkeiten, in einem Zertifikat Vertrauen herzustellen. Sie können eine Kopie des Zertifikats direkt vom Signaturgeber erhalten, zum Beispiel auf einem physischen Datenträger oder über eine sichere digitale Übertragung wie eine SSL-Transaktion. Sie können sich auch auf eine Zertifizierungsstelle verlassen, um festzustellen, ob das signierende Zertifikat vertrauenswürdig ist.
Damit Sie sich auf eine Zertifizierungsstelle verlassen können, muss das signierende Zertifikat von einer Zertifizierungsstelle ausgegeben worden sein, die auf dem Computer, auf dem die Signatur validiert wird, als vertrauenswürdig eingestuft wird. Die meisten Hersteller von Betriebssystemen platzieren die Stammzertifikate einer Anzahl von Zertifizierungsstellen im Vertrauensspeicher des Betriebssystems. Benutzer können diesem Speicher Zertifikate hinzufügen und sie daraus entfernen.
Auch wenn ein Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle ausgegeben wurde, müssen Sie immer noch entscheiden, ob das Zertifikat jemandem gehört, dem Sie vertrauen. In vielen Fällen wird diese Entscheidung dem Endbenutzer überlassen. Wenn zum Beispiel eine AIR-Anwendung installiert wird, zeigt das AIR-Installationsprogramm die identifizierenden Informationen aus dem Zertifikat des Herausgebers an, wenn der Benutzer gefragt wird, ob die Anwendung installiert werden soll. In anderen Fällen müssen vielleicht die öffentlichen Schlüssel oder andere Zertifikatinformationen mit einer Liste akzeptierter Schlüssel verglichen werden. (Diese Liste muss gesichert sein, eventuell mit einer eigenen Signatur oder durch Speicherung im verschlüsselten lokalen Speicher von AIR, damit die Liste nicht ihrerseits manipuliert werden kann.)
Hinweis:
Sie können sich zwar auch ohne unabhängige Verifizierung dafür entscheiden, dem signierenden Zertifikat zu vertrauen – beispielsweise bei selbst signierten Zertifikaten – dadurch ist in puncto Sicherheit jedoch nicht viel gewonnen. Solange Sie nicht wissen, wer die Signatur erstellt hat, hat die Versicherung, dass die Signatur nicht manipuliert wurden, nur einen sehr geringen Wert. Bei der Signatur könnte es sich um eine gültig signierte Fälschung handeln.
Gültigkeitsdauer und Sperre von Zertifikaten
Alle Zertifikat haben eine begrenzte Gültigkeitsdauer. Zertifikate können auch von der ausgebenden Zertifizierungsstelle gesperrt werden, zum Beispiel wenn der private Schlüssel des Zertifikats nicht mehr vertrauenswürdig ist oder gestohlen wurde. Wenn eine Signatur mit einem abgelaufenen oder gesperrten Zertifikat signiert ist, wird die Signatur als ungültig betrachtet, sofern nicht ein Zeitstempel als Teil der Signatur enthalten ist. Wenn ein Zeitstempel vorhanden ist, validiert die XMLSignatureValidator-Klasse die Signatur, falls das Zertifikat zum Zeitpunkt des Signierens gültig war.
Ein Zeitstempel ist eine signierte digitale Meldung von einem Zeitstempeldienst, der zertifiziert, dass die Daten zu einem bestimmten Zeitpunkt (Datum und Uhrzeit) signiert wurden. Zeitstempel werden von Zeitstempelstellen ausgegeben und durch das Zertifikat der Zeitstempelstelle signiert. Das in den Zeitstempel eingebettete Zertifikat der Zeitstempelstelle muss auf dem zurzeit verwendeten Computer als vertrauenswürdig gelten, damit der Zeitstempel als gültig anerkannt wird. Die XMLSignatureValidator-Klasse stellt keine API bereit, mit der ein anderes Zertifikat zur Verwendung bei der Zeitstempelvalidierung bestimmt wird.