静态数据加密

Fystack 采用 KEK/DEK(密钥加密密钥/数据加密密钥)架构实现全面的静态数据加密。 每一份敏感数据在写入磁盘之前都会被加密。数据加密密钥(DEK)用于加密单条记录或数据块,而安全存储在 AWS Secrets Manager 等保管库中的密钥加密密钥(KEK)则用于封装和保护 DEK。 这确保即使整个数据库或备份被窃取,暴露的也只有密文,从而实现端到端的机密性。

该流程遵循行业安全标准,满足 AES-GCM 相关的 FIPS 197 和 NIST SP 800-38D 要求,并符合 PCI DSS 和 GDPR 第 32 条关于保护静态敏感数据的规定。

KEK/DEK 流程
Click to open the full-size diagram

初次了解 KEK/DEK 分层?请阅读我们的博客入门文章:DEK/KEK: The industry standard to protect highly sensitive data (Part 1)。

1. 概述

每个敏感值都使用 AES-256-GCM 加密,并存储在带版本的信封中,信封会记录所用算法和密钥版本。工作区隔离、按链派生以及由保管库支持的主密钥相结合,即使基础设施遭到入侵,数据也依然处于加密状态。

为什么选择 AES-256-GCM?

  1. NIST 认可:联邦加密标准(FIPS 197)。
  2. 认证加密:同时提供机密性和完整性。
  3. 性能:在现代 CPU 上通过 AES-NI 实现硬件加速。
  4. 行业标准:AWS、Google Cloud、Azure 均将其用于静态数据加密。

2. 哪些数据会被加密

  • 私钥和种子: Hyper wallet 的所有钱包密钥材料在存储前都会使用工作区专属的 DEK 进行加密。

组件

说明

全局加密密钥

从 AWS Secrets Manager 动态加载的 32 字节 AES 密钥,可回退到环境变量或 HashiCorp Vault、Doppler 等密钥管理工具。

工作区种子

为每个工作区单独生成的随机 32 字节种子。

加密算法

AES-GCM(认证加密)保护每一份密文。

密钥派生

每个工作区密钥均通过 HKDF(global_encryption_key, salt) 派生。

钱包派生

EVM 链和 Tron 使用 BIP44;Solana、Aptos 等新型链使用 SLIP-10。

密钥层级:全局密钥、工作区密钥、加密种子、钱包派生
Click to open the full-size diagram
  • 用户凭证: TOTP 密钥及其他认证材料同样采用 DEK/KEK 架构,在静态存储时保持加密。
image-2025-11-07T15-51-02-776Z

信封格式

每份密文都包含算法标识符、版本元数据、派生上下文和载荷。这实现了算法敏捷性、向后兼容性,以及每条加密记录的完整来源追溯。