PK Tokens, kurz für Public Key Tokens, stellen eine innovative Methode zur sicheren Verknüpfung von Identitäten und kryptografischen Schlüsseln dar. Im digitalen Zeitalter, in dem die Authentifizierung von Nutzern und Maschinen immer zentraler wird, bieten PK Tokens eine zuverlässige Lösung, um Identitäten auf eine manipulationsresistente Weise zu verifizieren. Das Konzept hinter PK Tokens basiert auf bewährten Standards wie JSON Web Signatures (JWS) und JSON Web Tokens (JWT), erweitert diese jedoch um zusätzliche Funktionen, die insbesondere im Kontext der OpenID Connect (OIDC) Protokolle relevant sind. Die Grundlage eines jeden PK Tokens ist ein ID Token, wie es von einem OpenID Provider (OP) ausgestellt wird. Dieses ID Token ist ein digital signiertes Dokument, das Informationen über ein Benutzer- oder Maschinenidentität enthält, darunter etwa einen eindeutigen Identifikator, eine gültige Ausstellungszeit und weitere Claims, die die Authentizität und den Kontext der Identität beschreiben.
Im Unterschied zu herkömmlichen ID Tokens wird bei einem PK Token das ID Token um zusätzliche Signaturen erweitert. Diese zusätzlichen Signaturen ermöglichen eine Bindung an einen öffentlichen Schlüssel, der als Nachweis für die Identität dient und somit eine Proof-of-Possession durch den Besitzer des entsprechenden privaten Schlüssels erbringt. Die technologische Basis bilden JSON Web Signatures. Ein JWS ist ein standardisiertes Format für signierte JSON-Daten. Ein besonderes Merkmal ist, dass ein JWS mehrere Signaturen auf den gleichen Payload enthalten kann, wodurch verschiedene Parteien unterschiedliche Informationen signieren können, ohne die Integrität der ursprünglichen Daten zu beeinträchtigen.
PK Tokens nutzen diese Multisignaturfähigkeit, um neben der Signatur des OpenID Providers weitere Signaturen von sogenannten Client-Instance Claims (CIC) und optionalen Cosignern (COS) einzufügen. Der OP-Signatur kommt die Aufgabe zu, die Identitätsclaims im ID Token in der Payload zu unterzeichnen und somit die Authentizität des Tokens zu garantieren. Die CIC-Signatur wiederum stellt die Verknüpfung zwischen der Identität und einem öffentlichen Schlüssel sicher. Sie enthält in ihrem geschützten Header den öffentlichen Schlüssel des Nutzers beziehungsweise der Maschine in Form eines JSON Web Keys (JWK). Besonders wichtig ist dabei, dass die CIC-Signatur eine Proof-of-Possession beinhaltet, was bedeutet, dass der Besitzer des privaten Schlüssels die Signatur erzeugt hat und somit die Kontrolle über die Identität besitzt.
Diese Funktion verhindert sogenannte Rogue-Key-Attacken, bei denen ein Angreifer versucht, eine fremde Identität mit seinem eigenen Schlüssel zu verbinden. Die optionale COS-Signatur wird von einem sogenannten Cosigner erstellt. Der Cosigner ist eine unabhängige dritte Partei, die eine zusätzliche Authentifizierung der Identität vornimmt. Ziel des Cosigners ist es, die Sicherheit der PK Tokens zu erhöhen und sicherzustellen, dass die Authentifizierung nicht allein vom OpenID Provider abhängt. Somit kann auch im Falle einer Kompromittierung des OP eine vertrauenswürdige Authentifizierung gewährleistet werden.
Ein besonderes Merkmal von PK Tokens ist der sogenannte Commitment-Mechanismus. Hierbei wird die Bindung zwischen dem öffentlichen Schlüssel und dem ID Token anhand sogenannter Commitments sichergestellt. Je nach Implementierung ist dieses Commitment in unterschiedlichen Bestandteilen des Tokens enthalten. Bekannt sind verschiedene Commitment-Typen, darunter das Nonce-Commitment, bei dem der Commitment-Hash im Nonce-Feld der Payload hinterlegt wird, und das Audience-Commitment, bei dem das Commitment im Audience-Claim abgebildet ist. Nonce-Commitment findet häufig bei Benutzeridentitäten Anwendung, etwa bei Google-Konten.
Dabei wird der Nonce-Wert im Payload als Hash des geschützten Headers der CIC-Signatur genutzt. Durch diese Bindung kann ein Verifizierer sicherstellen, dass der öffentliche Schlüssel tatsächlich mit dem ID Token verknüpft ist und die Identität vertrauenswürdig ist. Solche PK Tokens finden vor allem bei interaktiven Authentifizierungsprozessen und Webanwendungen Verwendung. Im Bereich der Maschinenidentitäten, wie sie in CI/CD-Systemen oder automatisierten Workflows benötigt werden, etabliert sich das Audience-Commitment als bevorzugte Methode. Hier wird das Commitment im Audience-Claim des ID Tokens hinterlegt und ermöglicht so eine präzise Zuordnung der Identität zu einem definierten Anwendungsfall oder Dienst.
Beispiele hierfür finden sich bei GitHub oder Google Cloud Platform, wo maschinelle Workloads mit eindeutigen Identitäten und Berechtigungen ausgestattet werden. Für bestimmte Plattformen, die weder Nonce- noch Audience-Commitments unterstützen, wie beispielsweise GitLab-CI, wurde der GQ-Commitment-Mechanismus entwickelt. Dieser basiert auf GQ (Guillou-Quisquater) Signaturen, einer Form der Zero-Knowledge-Proofs, die neben der herkömmlichen Signatur die Vertraulichkeit der Originalsignatur bewahren, indem sie diese als Zertifikat beziehungsweise Nachweis für die Authentizität nutzen, ohne sie direkt preiszugeben. GQ Signaturen spielen eine zentrale Rolle, wenn PK Tokens öffentlich zugänglich gemacht werden, etwa beim Software-Artefakt-Signing oder im öffentlichen Ledger. Sie verhindern Replay-Attacken, bei denen ein ID Token aus einem PK Token herausgelöst und wiederverwendet werden könnte, um sich unberechtigt Zugang zu Diensten zu verschaffen.
Mit GQ Signaturen bleibt die Originalsignatur verschlüsselt und kann nicht für eine externe Authentifizierung missbraucht werden. Ein weiterer Fortschritt im Bereich der PK Tokens wird mit der Nutzung von Zero-Knowledge-Proofs (ZKP) erwartet. Diese Technologie erlaubt es, Identitätsnachweise zu erbringen, ohne sensible Daten direkt preiszugeben. Obwohl sich die Entwicklung noch in einem frühen Stadium befindet, sollen ZK-PK Tokens künftig noch mehr Datenschutz und Sicherheit bieten, indem sie lediglich die Gültigkeit einer Identität bestätigen, ohne dabei genaue Details offenzulegen. Ein praxisrelevanter Aspekt für Entwickler und Anbieter ist die Serialisierung von PK Tokens.
Während das Standard-Format für JWS eine kompakte Darstellung mit nur einer Signatur vorsieht, erfordern PK Tokens eine eigene kompakte Serialisierung, um mehrere Signaturen abzubilden. Hierfür wurde ein Format entwickelt, das die verschiedenen geschützten Header und Signaturen durch Doppelpunkte trennt. Dieses Format erlaubt es, die gesamte Struktur der PK Tokens effizient und zugleich standardkonform zu übertragen und zu verarbeiten. Die Sicherheit von PK Tokens hängt maßgeblich von deren korrekter Implementierung und den jeweiligen Anwendungsrichtlinien ab. So sollten etwa GQ-Commitment-PK-Tokens nur bei OpenID Providern verwendet werden, die keine anderen Commitment-Mechanismen unterstützen, um Missbrauch vorzubeugen.
Außerdem setzen viele Systeme optional einen Cosigner ein, um die Vertrauenswürdigkeit zusätzlich zu erhöhen. Dies unterstreicht die Flexibilität von PK Tokens, welche sich an unterschiedlichste Sicherheitsanforderungen anpassen lassen. Insgesamt bieten PK Tokens ein hohes Maß an Sicherheit und Flexibilität bei der Verknüpfung von Identitäten mit kryptografischen Schlüsseln. Durch die Verwendung bewährter Standards wie JWT und JWS und deren Erweiterung um mehrfache Signaturen ermöglichen sie vielfältige Integrationsmöglichkeiten. In verschiedenen Bereichen wie Web-Authentifizierung, maschinelle Identitäten, Multi-Faktor-Authentifizierung und Software-Signing können PK Tokens die Sicherheit signifikant verbessern und das Risiko von Identitätsdiebstahl und -missbrauch minimieren.
Zukunftsweisende Entwicklungen, insbesondere im Bereich der Zero-Knowledge-Proofs, versprechen zudem eine noch größere Wahrung der Privatsphäre und eine verbesserte Nutzerfreundlichkeit. Aufgrund ihrer starken Sicherheitsgarantien werden PK Tokens vermutlich zunehmend an Bedeutung gewinnen und könnten in vielen Identitäts- und Zugriffskontrollsystemen zum neuen Standard werden. Wer sich frühzeitig mit PK Tokens auseinandersetzt und deren Potenziale erkennt, ist bestens gerüstet für die Anforderungen moderner digitaler Identitätslösungen.