L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Données et recherche · SKILL.md

implementing-aes-encryption-for-data-at-rest

implementing-aes-encryption-for-data-at-rest

AES(高级加密标准)是由 NIST(FIPS 197)标准化的对称分组密码,用于保护机密和敏感数据。本技能涵盖在 GCM 模式下实现 AES-256 加密,用于加密静态文件和数据存储,包括正确的密钥派生、IV/nonce 管理和认证加密。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: implementing-aes-encryption-for-data-at-rest description: AES(高级加密标准)是由 NIST(FIPS 197)标准化的对称分组密码,用于保护机密和敏感数据。本技能涵盖在 GCM 模式下实现 AES-256 加密,用于加密静态文件和数据存储,包括正确的密钥派生、IV/nonce 管理和认证加密。 domain: cybersecurity subdomain: cryptography tags: [cryptography, encryption, aes, data-at-rest, symmetric-encryption] version: "1.0" author: mahipal license: Apache-2.0

为静态数据实现 AES 加密

概述

AES(高级加密标准,Advanced Encryption Standard)是由 NIST(FIPS 197)标准化的对称分组密码(symmetric block cipher),用于保护机密和敏感数据。本技能涵盖在 GCM 模式下实现 AES-256 加密,用于加密静态文件和数据存储,包括正确的密钥派生(key derivation)、IV/nonce 管理和认证加密(authenticated encryption)。

目标

  • 实现针对文件的 AES-256-GCM 加密和解密
  • 使用 PBKDF2 和 Argon2 从密码派生加密密钥
  • 安全管理初始化向量(IV,Initialization Vector)和 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() 生成 nonce(密码安全伪随机数生成器,CSPRNG)
  • 将 nonce 与密文一起存储(nonce 不是秘密)

实现步骤

  1. 安装 cryptography 库:pip install cryptography
  2. 生成或派生加密密钥
  3. 为每次加密操作创建随机 nonce
  4. 使用密钥和 nonce 通过 AES-256-GCM 加密数据
  5. 将 nonce + 密文 + 认证标签一起存储
  6. 解密时,提取 nonce,验证标签,然后解密

加密文件格式

[salt: 16 字节][nonce: 12 字节][密文: 可变长度][标签: 16 字节]

安全注意事项

  • 始终使用认证加密(GCM、CCM)以防止篡改
  • 永远不要对同一密钥重复使用 nonce(在 GCM 中会造成灾难性后果)
  • 对长期数据保护使用至少 256 位密钥
  • 在可能的情况下,使用后安全清除内存中的密钥
  • 根据组织策略定期轮换加密密钥
  • 对于磁盘级加密,考虑使用 XTS 模式(AES-XTS)

验证标准

  • AES-256-GCM 加密产生有效密文
  • 解密能精确恢复原始明文
  • 认证标签能检测任何密文修改
  • 密钥派生使用足够的迭代次数/参数
  • 同一密钥的 nonce 从不重复使用
  • 大型文件(>1GB)可通过流式处理
  • 加密文件格式包含所有必要的元数据
Skills enregistrées