Fragen von Entwicklern zu KYA: 13 Antworten
Wer KYA in eigene Systeme einbaut, hat konkrete technische Fragen. Hier die Antworten zu Paket, Formaten, Vertrauen, Ergebnissen und Betrieb, jeweils mit Verweis auf die vertiefenden Seiten.
Worum es geht
Diese Seite fasst die häufigsten Fragen aus der Integration zusammen. Den Einstieg in Code bieten die Anleitungen zum Prüfkern in Node.js und zur CI-Pipeline, die Bedeutung jedes Begründungscodes erklärt die Fehlerreferenz.
Fragen und Antworten
Wie binde ich den Prüfkern ein?
Über das Paket @knowyouragent/verify-core, das Sie direkt von knowyouragent.ch installieren. Die Funktion verify() nimmt den Nachweis und Optionen und liefert einen Bericht mit Urteil, Stufe und allen Prüfschritten.
Welche Laufzeitumgebungen werden unterstützt?
Node.js ab Version 20 und aktuelle Browser. Der Prüfkern nutzt WebCrypto und hat keine Laufzeitabhängigkeiten.
Welche Formate prüft der Prüfkern?
SD-JWT VC, JWS, kya-pack/1, kya-chain/1, Statuslisten nach IETF, RFC-3161-Zeitstempel, Verifiable Intent und HTTP-Signaturen nach RFC 9421 einschliesslich Web Bot Auth.
Lädt der Prüfkern Schlüssel oder Statuslisten aus dem Netz?
Nein. Alles, was der Prüfkern zum Vertrauen braucht, übergeben Sie als Option. Was fehlt, gilt als nicht belegt; das macht die Prüfung reproduzierbar und unabhängig vom Netz.
Welche Algorithmen werden unterstützt?
ES256, ES384, EdDSA mit Ed25519, RS256 und PS256. Fehlt einer Umgebung Ed25519, meldet der Prüfkern den Schritt als nicht geprüft, nie als ungültig.
Was bedeuten die Exit-Codes der Kommandozeile?
0 steht für VALID, 1 für INVALID, 2 für INDETERMINATE und 64 für einen falschen Aufruf. In Pipelines sollte jeder Code ausser 0 den Lauf scheitern lassen.
Wie gehe ich mit INDETERMINATE um?
Als fehlenden Nachweis, nicht als Erfolg. Der Bericht nennt im betroffenen Prüfschritt einen Begründungscode, etwa status_list_not_provided, der zeigt, was fehlt.
Ist das Ergebnis deterministisch?
Ja. Dieselben Eingaben und derselbe Prüfzeitpunkt ergeben denselben Bericht und denselben reportDigest. Setzen Sie now, um Prüfungen später exakt nachzuvollziehen.
Wie teste ich meine eigene Implementierung?
Mit den öffentlichen Testvektoren unter Apache 2.0. Jeder Vektor enthält Eingabe, Optionen und das erwartete Ergebnis bis zum Begründungscode.
Kann ich eigene Einschränkungen in Mandaten verwenden?
Ja, aber der Prüfkern wertet nur die Einschränkungen des Prüfprofils aus. Unbekannte Einschränkungen meldet er mit constraint_not_supported, und Ihr System muss sie selbst prüfen.
Wie schnell ist eine Prüfung?
Die Prüfung läuft lokal in Millisekunden bis wenigen Hundert Millisekunden, je nach Format, Anzahl der Signaturen und Zertifikatsketten.
Unter welcher Lizenz steht der Prüfkern?
Unter Apache 2.0. Sie können ihn kommerziell einsetzen, verändern und weitergeben; die Spezifikation steht unter CC BY 4.0.
Wo melde ich Fehler oder Abweichungen?
Über die Kontaktseite. Hilfreich sind der Nachweis oder ein nachgebauter Testfall, die Optionen und der erwartete sowie der tatsächliche Begründungscode.
Gibt es eine Version für den Browser?
Ja. Derselbe Prüfkern läuft auf der Prüfseite im Browser; das Paket enthält eine Fassung, die sich mit einem Bundler in Webanwendungen einbinden lässt.
Wie werden neue Versionen des Prüfkerns veröffentlicht?
Mit Versionsnummer, Changelog und Prüfsumme. Änderungen am Verhalten sind über die Testvektoren nachvollziehbar, und Begründungscodes bleiben stabil.
Kann ich Prüfscheine maschinell weiterverarbeiten?
Ja. Der Bericht ist JSON mit festem Aufbau: Urteil, Stufe, zehn Prüfschritte mit Status und Begründungscode, Fakten und reportDigest. Die Struktur beschreibt ein veröffentlichtes JSON-Schema.
Unterstützt der Prüfkern Delegationsketten?
Ja. Er prüft jede Stufe auf Signatur, Bindung an die nächste Stufe und Einschränkung der Befugnis und meldet Fehler mit eigenen Begründungscodes.
Quellen
- @knowyouragent/verify-core (Paket): https://knowyouragent.ch/downloads/knowyouragent-verify-core-1.2.0.tgz
- KYA-Prüfprofil: https://knowyouragent.ch/standard/pruefprofil