You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何安全存储用户提交的第三方服务API密钥?

用户第三方API密钥存储方案

方案核心原则

  • 完全规避全局统一加密密钥,每个用户的加密逻辑天然隔离
  • 服务端不存储任何可直接解密用户API密钥的明文密钥,从根源避免批量泄露风险

具体落地方案

方案1:基于用户密码派生独立加密密钥(适配全端场景)

你不需要额外存储每个用户的加密密钥,直接通过用户的登录凭证派生独有的加密密钥:

  • 用户登录时输入的明文密码,使用Argon2或PBKDF2等慢哈希算法,单独派生一个长度符合AES要求的加密密钥,该密钥仅临时存放在内存中,会话结束后立刻销毁
  • 你服务端仅存储用于登录校验的密码哈希值,不会也不需要存储该派生加密密钥,不存在加密密钥落库泄露的风险
  • 用户提交第三方API密钥时,直接用该用户独有的派生密钥做AES-256-GCM加密,仅把加密后的密文存储到数据库即可
  • 需要调用用户的API密钥时,先从数据库取出密文,用当前会话内存中的派生密钥解密后使用,用完立刻擦除内存中的明文密钥数据

方案2:基于系统级安全存储实现(适配客户端应用)

如果你的应用是移动端、桌面端应用,可以直接调用系统原生的安全存储能力,完全不需要自己维护加密密钥逻辑:

  • Android端使用KeyStore API存储用户API密钥,系统会自动做密钥加密和用户隔离
  • iOS端使用Keychain存储,支持生物校验访问控制
  • Windows端使用Credential Locker,macOS端使用Keychain Access接口
  • 上述系统级存储的加密密钥由系统独立维护,每个用户每个应用的密钥天然隔离,不会出现全局密钥泄露的问题

额外安全加固要求

  • 全链路禁止打印、存储用户API密钥的明文、密文或加密密钥片段,避免日志泄露
  • 数据库API密钥密文字段做最小权限控制,仅业务必需的服务账号有权限读写
  • 敏感数据使用后立刻擦除内存内容,避免内存dump导致的泄露风险

内容的提问来源于stack exchange,提问作者Pety Ialimijoro Rakotoniaina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:54:06