AT Protocol 中的加密概觀
AT Protocol 為實現去中心化社群網路,全面採用橢圓曲線密碼(ECC)。主要用途如下。金鑰對類別
AbstractKeypair
AbstractKeypair 為 P256 / K256 共用的基礎類別。內部使用 phpseclib3。
P256 (secp256r1)
OAuthKey 繼承 P256,並從 config('bluesky.oauth.private_key') 載入私鑰。
也提供產生新 OAuth 私鑰的 Artisan 指令。
K256 (secp256k1)
DidKey
DidKey 類別將公鑰編碼 / 解碼為 did:key 格式。
什麼是 did:key 格式
AT Protocol 中公鑰以did:key:z... 字串表達。這是在公鑰上附加曲線識別碼後,以 Base58btc 進行 multibase 編碼的結果。
將公鑰編碼為 did:key
從 DID Document 解析公鑰
JsonWebToken (JWT)
JsonWebToken 類別提供 JWT 的編碼 / 解碼。
DPoP (Demonstrated Proof of Possession)
DPoP 是將 OAuth access token 綁定至特定 client 金鑰對的安全機制,可預防 token 重放攻擊。DPoP 類別為內部使用,通常無需直接呼叫。OAuthAgent middleware 會自動附加 DPoP header。
Signature(簽章格式轉換)
AT Protocol 採用 64 位元組的緊湊簽章格式,但 phpseclib3 回傳的是 ASN.1 DER 格式。Signature 類別負責此轉換。
JsonWebKey
JsonWebKey 是代表 JWK (JSON Web Key) 的類別。用於產生 DPoP proof。
OAuthKey
OAuthKey 是繼承自 P256 的 OAuth 專用金鑰類別,使用 config('bluesky.oauth.private_key') 的值作為私鑰。
參考連結
Source:src/Crypto/