关于 implementing-aes-encryption-for-data-at-rest
面向安全工程师的静态数据加密实施技能,涵盖 AES-256-GCM 文件加解密、密钥派生、nonce 管理和认证校验。
主要功能
- 01使用 AES-256-GCM 加解密文件
- 02通过 PBKDF2 或 Argon2 派生密钥
- 03安全生成并管理 nonce
- 04加密和解密目录树
- 05支持大型文件流式处理
适用场景
- 01保护静态文件和数据存储
- 02为密码派生加密密钥
- 03检测密文篡改并验证数据完整性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill implementing-aes-encryption-for-data-at-rest安装后在 Claude Code 中输入/implementing-aes-encryption-for-data-at-rest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py详细介绍
为静态数据实施 AES 加密
概述
AES(高级加密标准)是由 NIST(FIPS 197)标准化的对称分组密码,用于保护机密和敏感数据。本技能涵盖在 GCM 模式下实施 AES-256 加密,以加密静态文件和数据库,包括正确的密钥派生、IV/nonce 管理以及认证加密。
何时使用
- 在环境中部署或配置为静态数据实施 AES 加密的能力时
- 建立符合合规要求的安全控制时
- 为该领域构建或改进安全架构时
- 开展需要此实施的安全评估时
前置条件
- 熟悉密码学概念和工具
- 可访问测试或实验环境以安全执行
- 已安装所需依赖的 Python 3.8+
- 对任何测试活动具备适当授权
目标
- 为文件实施 AES-256-GCM 加密和解密
- 使用 PBKDF2 和 Argon2 从密码派生加密密钥
- 安全管理初始化向量(IV)和 nonce
- 加密和解密整个目录树
- 实施认证加密以检测篡改
- 通过流式加密处理大型文件
关键概念
AES 工作模式
| 模式 | 认证 | 可并行化 | 使用场景 |
|---|---|---|---|
| GCM | 是(AEAD) | 是 | 网络数据、文件加密 |
| CBC | 否 | 仅解密 | 遗留系统、磁盘加密 |
| CTR | 否 | 是 | 流式加密 |
| CCM | 是(AEAD) | 否 | IoT、受限环境 |
密钥派生
切勿将原始密码用作加密密钥。始终使用以下方式派生密钥:
- PBKDF2:NIST 批准,广泛支持(截至 2024 年最少 600,000 次迭代)
- Argon2id:密码哈希竞赛获胜者,内存硬
- scrypt:内存硬,Argon2 的良好替代
Nonce/IV 管理
- GCM 要求 96 位(12 字节)nonce,且绝不能与同一密钥重复使用
- 使用
os.urandom()(CSPRNG)生成 nonce - 将 nonce 与密文一起存储(它不是秘密)
工作流
- 安装
cryptography库:pip install cryptography - 生成或派生加密密钥
- 为每次加密操作创建随机 nonce
- 使用密钥和 nonce 通过 AES-256-GCM 加密数据
- 将 nonce + 密文 + 认证标签一起存储
- 解密时,提取 nonce、验证标签并解密
加密文件格式
[salt: 16 bytes][nonce: 12 bytes][ciphertext: variable][tag: 16 bytes]
安全注意事项
- 始终使用认证加密(GCM、CCM)以防篡改
- 切勿将 nonce 与同一密钥重复使用(在 GCM 中后果严重)
- 为长期数据保护使用至少 256 位密钥
- 尽可能在使用后安全地从内存中擦除密钥
- 按组织策略定期轮换加密密钥
- 对于磁盘级加密,考虑 XTS 模式(AES-XTS)
验证标准
- AES-256-GCM 加密产生有效密文
- 解密可精确恢复原始明文
- 认证标签可检测任何密文修改
- 密钥派生使用足够的迭代次数/参数
- Nonce 绝不对同一密钥重复使用
- 大型文件(>1GB)可通过流式处理
- 加密文件格式包含所有必要元数据
评论
支持 Markdown