Skip to main content
Crypto est une implémentation interne avancée. Il n’est pas requis pour les opérations habituelles (publication, récupération de flux, notifications, etc.). Consultez cette page si vous construisez une vérification de signature bas niveau ou une implémentation OAuth pour AT Protocol.

Aperçu du chiffrement dans AT Protocol

AT Protocol s’appuie largement sur la cryptographie sur courbes elliptiques (ECC) pour bâtir un réseau social décentralisé. Ses usages principaux sont les suivants :

Classes de paires de clés

AbstractKeypair

AbstractKeypair est la classe de base commune à P256 et K256. En interne, elle utilise phpseclib3.

P256 (secp256r1)

Utilisée pour OAuth (DPoP / Client Assertion). OAuthKey étend P256 et charge la clé privée depuis config('bluesky.oauth.private_key'). Une commande Artisan est également fournie pour générer une nouvelle clé privée OAuth.

K256 (secp256k1)

Utilisée pour l’authentification des Feed Generators et Labelers. Le PDS / Relay de Bluesky vérifie les signatures sur cette courbe.

DidKey

La classe DidKey encode et décode les clés publiques au format did:key.

Qu’est-ce que le format did:key ?

Dans AT Protocol, une clé publique est représentée par la chaîne did:key:z.... C’est une clé publique préfixée par un identifiant de courbe, encodée en multibase Base58btc.

Encoder une clé publique en did:key

Analyser la clé publique depuis un DID Document


JsonWebToken (JWT)

La classe JsonWebToken fournit l’encodage et le décodage de JWT.

DPoP (Demonstrated Proof of Possession)

DPoP est un mécanisme de sécurité qui lie un access token OAuth à une paire de clés client donnée. Il prévient les attaques par rejeu. La classe DPoP est utilisée en interne et n’a normalement pas besoin d’être appelée directement. Le middleware OAuthAgent ajoute automatiquement les en-têtes DPoP.

Signature (conversion de format)

AT Protocol utilise un format compact de signature de 64 octets, alors que phpseclib3 renvoie un format ASN.1 DER. La classe Signature assure cette conversion.

JsonWebKey

JsonWebKey représente un JWK (JSON Web Key). Il est utilisé pour générer les preuves DPoP.

OAuthKey

OAuthKey est une classe de clé spécifique à OAuth qui étend P256 et utilise comme clé privée la valeur de config('bluesky.oauth.private_key').
En temps normal, ceci est géré automatiquement par Bluesky Socialite en interne.

Liens utiles

Source : src/Crypto/
Dernière modification le 13 juillet 2026