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)
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)
DidKey
La classeDidKey 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înedid: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 classeJsonWebToken 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 classeDPoP 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 classeSignature 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').
Liens utiles
Source : src/Crypto/