Expand description
MCP token 静态加密(AES-GCM-256)。
设计要点:
- 明文 bearer token 永不裸存于 DB。存储列
token_enc是 AES-GCM 密文 (nonce ‖ ciphertext ‖ tag)的 hex 编码;管理员可在后台解密重查明文。 token_hash(明文 SHA-256 hex)用于每请求 O(1) 常量查找,见auth.rs。- 主密钥来自环境变量
MCP_TOKEN_ENC_KEY(hex 编码的 32 字节,64 个 hex 字符; 可用openssl rand -hex 32生成)。缺失或非法时mcp_enc_key()返回 None, 调用方按「MCP 不可用」降级(拒绝签发/认证),不 panic——符合 AGENTS.md §16。
AES-GCM-256:12 字节随机 nonce(每次加密独立生成),认证标签隐含在密文尾部。
nonce 复用是 AES-GCM 的唯一致命风险;这里每次 encrypt_token 都新取 nonce,
且 nonce 与密文一同存储,解密时无需额外恢复。仅用 hex(已是直接依赖)编码,
避免把 base64 由传递依赖提升为直接依赖。
Functions§
- decrypt_
token - 解密
token_enc(nonce‖ct‖tag的 hex)还原明文 token。 - encrypt_
token - 加密明文 token,返回
nonce‖ct‖tag的 hex 字符串(存入token_enc)。 - mcp_
enc_ key - 从环境读取并解码主密钥;缺失或非法返回 None(降级,不 panic)。