Skip to main content
Crypto ist eine tiefgehende interne Implementierung. Für normale Posts, Feed-Abrufe oder Benachrichtigungen wird es nicht benötigt. Ziehen Sie es heran, wenn Sie Low-Level-Signaturprüfungen oder OAuth-Implementierungen für das AT Protocol aufbauen.

Überblick über die Kryptografie im AT Protocol

Das AT Protocol setzt für ein dezentrales soziales Netzwerk umfassend auf Elliptic-Curve-Cryptography (ECC). Die Hauptanwendungen sind:

Schlüsselpaar-Klassen

AbstractKeypair

AbstractKeypair ist die gemeinsame Basisklasse für P256 / K256. Intern wird phpseclib3 verwendet.

P256 (secp256r1)

Wird für OAuth (DPoP / Client Assertion) verwendet. OAuthKey erbt von P256 und lädt den privaten Schlüssel aus config('bluesky.oauth.private_key'). Es gibt auch ein Artisan-Kommando zum Erzeugen eines neuen OAuth-Privatschlüssels.

K256 (secp256k1)

Wird für die Authentifizierung von Feed Generator und Labeler verwendet. Bluesky-PDS/-Relay verifizieren Signaturen mit dieser Kurve.

DidKey

Die Klasse DidKey codiert und decodiert öffentliche Schlüssel im did:key-Format.

Was ist das did:key-Format?

Im AT Protocol wird ein öffentlicher Schlüssel als String did:key:z... dargestellt. Dabei wird der öffentliche Schlüssel um einen Kurven-Identifier ergänzt und multibase-encodiert in Base58btc.

Öffentlichen Schlüssel als did:key codieren

Öffentlichen Schlüssel aus einem DID-Document parsen


JsonWebToken (JWT)

Die Klasse JsonWebToken bietet Encoding/Decoding von JWTs.

DPoP (Demonstrated Proof of Possession)

DPoP ist ein Sicherheitsmechanismus, der OAuth-Access-Tokens an ein bestimmtes Client-Schlüsselpaar bindet. Er verhindert Replay-Angriffe mit den Tokens. Die Klasse DPoP wird intern verwendet und muss normalerweise nicht direkt aufgerufen werden. Die Middleware des OAuthAgent fügt den DPoP-Header automatisch hinzu.

Signature (Signaturformat-Konvertierung)

Das AT Protocol verwendet ein kompaktes 64-Byte-Signaturformat, während phpseclib3 ASN.1-DER zurückgibt. Die Klasse Signature übernimmt diese Umwandlung.

JsonWebKey

JsonWebKey repräsentiert einen JWK (JSON Web Key) und wird zur Erzeugung von DPoP-Proofs verwendet.

OAuthKey

OAuthKey ist eine OAuth-spezifische Schlüsselklasse, die von P256 erbt. Sie verwendet den Wert von config('bluesky.oauth.private_key') als privaten Schlüssel.
Dies wird normalerweise intern von Bluesky Socialite verarbeitet.
Source: src/Crypto/
Zuletzt geändert am 13. Juli 2026