Unterstützung von AIR-Profilen: Diese Funktion wird unter allen Desktopbetriebssystemen und auf Geräten mit AIR für TV unterstützt, jedoch nicht auf mobilen Geräten. Mit der
XMLSignatureValidator implementiert einen Teilsatz der W3C-Empfehlung für XML-Signatursyntax- und -verarbeitung und sollte nicht als konforme Implementierung betrachtet werden. Der unterstützte Teilsatz der Empfehlung enthält:
Sie müssen eine IURIDereferencer-Implementierung zur Verfügung stellen, um eine XML-Signatur zu verifizieren. Diese Implementierungsklasse ist zuständig für das Auflösen der URIs, die in den SignedInfo-Elementen der Signaturdatei angegeben sind und die referenzierten Daten in einem Objekt zurückgeben, zum Beispiel ein ByteArray, das die IDataInput-Schnittstelle implementiert.
Um zu überprüfen, ob das Signierzertifikat mit einem vertrauenswürdigen Zertifikat verkettet ist, muss entweder die XML-Signatur die zum Bilden der Kette in X509Certificate-Elementen erforderlichen Zertifikate enthalten oder Sie müssen die zum Bilden der Kette erforderlichen Zertifikate über die
Überprüfen einer XMLSignatur:
Informationen zum Signaturstatus:
XML-Signaturen können gültig oder ungültig sein oder ihre Gültigkeit ist unbekannt. Der Gesamtstatus richtet sich nach dem Verifizierungsstatus der einzelnen Komponenten der Signaturdatei:
Die von der
Kanonisierungsbeschränkungen:
Die XML-Engine in AIR erzeugt beim Kanonisieren eines XML-Dokuments nicht immer den erwarteten XML-String. Aus diesem Grund wird empfohlen, keine Weißräume zwischen Elemente in umhüllten oder abgetrennten Signaturdokumenten zu setzen und Namespaces in Signaturdokumenten nicht neu zu definieren. In beiden Fällen erzeugt AIR das Dokument unter Umständen nicht mit der gleichen Zeichenfolge wie das Original und die Prüfung schlägt folglich fehl.
Ein
Sie müssen die
Das hinzugefügte Zertifikat muss ein DER-kodiertes x509-Zertifikat sein.
Wenn der
Hinweis: Eine XML-Signatur kann Zertifikate zum Bilden der Zertifikatkette des Unterzeichners enthalten. Die XMLSignatureValidator-Klasse verwendet diese Zertifikate zur Kettenbildung, aber nicht als vertrauenswürdige Stämme (standardmäßig).
Die Überprüfung ist asynchron. Das XMLSignatureValidator-Objekt löst ein
Der Überprüfungsprozess kann nicht abgebrochen werden. Wenn gerade ein Überprüfungsprozess ausgeführt wird, schlagen anschließende Aufrufe der
Hinweis: Da der XMLSignatureValidator nur einen Teilsatz der W3C-Empfehlung für die Syntax und Verarbeitung von XML-Signaturen implementiert, können nicht alle gültigen XML-Signaturen überprüft werden.
Der Status ist:
Hinweis: Wenn der
Der Status kann sein:
Die über die
Hinweis: Wenn der
Der Status kann sein:
Wichtig: Externe Ressourcen werden nur überprüft, wenn sie direkt in einem SignedInfo-Element innerhalb des Signaturdokuments referenziert werden. Externe Ressourcen, auf die von einer sekundären Referenz verwiesen wird, werden nicht überprüft. Wenn z. B. eine XML-Signatur ein Manifest-Element signiert, wird nur die Integrität des Manifest-Elements selbst überprüft. Die im Manifest aufgelisteten Dateien werden nicht überprüft.
Verwenden Sie Konstanten, die in der ReferencesValidationSetting-Klasse definiert sind, um die Eigenschaft festzulegen. Zu diesen Einstellungen gehören:
Verwenden Sie die Standardeinstellung (
Verwenden Sie die Einstellung
Verwenden Sie die Einstellung
Legen Sie diese Eigenschaft mit Konstanten, die in der RevocationSettings-Klasse definiert sind, fest. Zu diesen Einstellungen gehören:
Jede erweiterte Tastenverwendung wird in numerischer OID-Form gemeldet.
Die Vertrauenseinstellungen werden aus dem System und den Schlüssel-IODs, die im Zertifikat eingebettet sind, abgeleitet. Konstanten für die Strings, die die erkannten Vertrauenseinstellungen repräsentieren, sind in der SignerTrustSettings-Klasse definiert.
Das
Das Verändern des Array hat keinen Einfluss auf die Vertrauenseinstellungen des Zertifikats.
Eine IURIDereferencer-Implementierung muss bereitgestellt werden, bevor eine Signatur überprüft wird.
Ist der Wert
Die XML-Signatur wird überprüft, indem die kryptographische Signatur des SignedInfo-Elements, das signierende Zertifikat und die Daten, auf die die Referenzen im SignedInfo-Element verweisen, überprüft werden. Die Gültigkeit jedes dieser Elemente wird einzeln über die
XML-Signaturen können gültig oder ungültig sein oder ihre Gültigkeit ist unbekannt. Der Gesamtstatus richtet sich nach dem Verifizierungsstatus der einzelnen Komponenten der Signaturdatei:
Die von der
Die IURIDereferencer-Implementierung ist zuständig für das Auflösen der URIs, die in den SignedInfo-Elementen einer XML-Signaturdatei angegeben sind und die referenzierten Daten in einem Objekt zurückgeben, zum Beispiel ein ByteArray, das die IDataInput-Schnittstelle implementiert.
Die Schnittstelle verfügt über eine Methode:
Die IURIDereferencer-Schnittstelle wird mit der XMLSignatureValidator-Klasse verwendet.
Gibt an, dass versucht wurde, das Zertifikat zu validieren, dies jedoch fehlgeschlagen ist, weil der Gültigkeitszeitraum des Zertifikats entweder vor oder nach dem aktuellen Datum liegt. Bei einigen Betriebssystemen wird der Status
Gibt an, dass versucht wurde, ein Zertifikat zu validieren, was jedoch fehlgeschlagen ist, weil die Vertrauenskette des Zertifikats ungültig ist.
Gibt an, dass versucht wurde, ein Zertifikat zu validieren, was jedoch fehlgeschlagen ist. Dies ist der generische Fehlschlagstatus, der gemeldet wird, wenn kein genauerer Zertifikatstatus ermittelt werden kann.
Gibt an, dass ein Zertifikat noch nicht gültig ist. Das aktuelle Datum liegt vor der „notBefore“-Zeitangabe des Zertifikats.
Gibt an, dass versucht wurde, ein Zertifikat zu validieren, was jedoch fehlgeschlagen ist, da der allgemeine Name des Zertifikats nicht mit dem vollständig qualifizierten Domänennamen des Hosts übereinstimmt.
Gibt an, dass versucht wurde, ein Zertifikat zu validieren, was jedoch fehlgeschlagen ist, weil das Zertifikat gesperrt ist. Bei einigen Betriebssystemen wird der Status
Gibt an, dass das Zertifikat nicht abgelaufen ist, die Rücknahmeüberprüfung bestanden hat und mit einem vertrauenswürdigen Stammzertifikat verbunden ist.
Gibt an, dass noch keine Zertifikatvalidierung für das Zertifikat ausgeführt wurde.
Gibt an, dass versucht wurde, ein Zertifikat zu validieren, was jedoch fehlgeschlagen ist, da das Zertifikat mit keinem der Stammzertifikate im Vertrauensspeicher des Clients verkettet ist. Bei einigen Betriebssystemen wird