跳至主要内容
附件 2 — 算法要求A2v0.2 草案 -> v1.0https://ccsa-council.com/zh/standard/annex-2-algorithms
A2

附件 2 — 算法要求

PCI DSS 类比

类似于 PCI DSS 密码学要求(强密码学)


中文译文供阅读与核对;请同时参阅俄文和英文原文。当前版本为 v0.2 草案。

部分规范性文件: 附件2 标准版: 0.2

附件 2 — 算法要求

A2.0。目的

本附录定义了允许在经过 CCSA 标准认证的系统中使用的特定加密算法。结构:3 层(全球、俄罗斯、量子就绪)、TLS 配置、推荐库和 HSM 产品、算法弃用流程以及审核清单。

规范依据:

  • NIST SP 800-57 Rev. 5(密钥管理生命周期)
  • FIPS 186-5(ECDSA,EdDSA)
  • FIPS 202(SHA-3 系列)
  • NIST SP 800-132 (PBKDF)
  • OWASP 密码存储备忘单 (2024)
  • GOST R 34.10-2018、34.11-2018、34.12-2018、34.13-2018(针对俄罗斯客户)
  • NIST PQC 标准化(ML-KEM、ML-DSA 8 月定稿 2024)

CCSA 没有重复这些文件的要求,而是针对加密托管环境指定并加强了它们。

A2.1。 Global Tier(国际算法)

非对称签名

允许:

  • ECDSA secp256k1(比特币、以太坊遗产)— 256 位强度等值
  • ECDSA P-256、P-384(NIST 曲线) — 128-bit、192-bit 强度
  • Ed25519 (EdDSA) — 128- 位强度; Solana 和许多现代区块链
  • BLS12-381(以太坊2.0共识,Filecoin)—128-比特强度
  • RSA — 具有基于级别的要求:
    • L1、L2: RSA-3072+ 允许旧版兼容性
    • L3: RSA-3072 自 2028-01-01 起已弃用;在此日期之后生成新密钥时必须使用 RSA-4096+
    • 所有级别: RSA < 2048 位禁止

禁止:

  • ECDSA with k-reuse(已知严重漏洞,泄露私钥)
  • DSA(已弃用,NIST SP 800-131A 修订版 2)
  • RSA < 2048 生产中的位
  • 过时曲线上的 ECDSA(secp192k1 及更低版本)

哈希

允许:

  • SHA-256、SHA-384、SHA-512(NIST SHA-2 系列;FIPS 180-4)
  • SHA-3 系列 — Keccak-256、Keccak-512(FIPS 202;以太坊原生;Solana)
  • BLAKE2b、BLAKE3 (RFC 7693) — 用于性能关键路径

禁止安全关键操作:

  • MD5(损坏;RFC 6151)
  • SHA-1(已证明冲突;根据 NIST SP 800-131A Rev. 2 已弃用)
  • RIPEMD-160(旧版;仅允许向后兼容比特币见证脚本)

对称加密

允许的 AEAD 算法(建议用于所有新部署):

  • AES-256-GCM(主 AEAD 算法)
  • AES-256-GCM-SIV(适用于存在nonce重用风险的场景)
  • ChaCha20-Poly1305(移动,性能关键)

非 AEAD 模式仅在配备独立 MAC 时允许使用:

  • AES-256-CTR + HMAC-SHA-256 在加密后的 MAC 结构中

禁止:

  • DES,3DES(已弃用)
  • RC4、RC5、RC6(已损坏/已取代)
  • 未配备独立 MAC 的 AES-ECB 和 AES-CBC
  • AES-128 用于长期受保护的数据(适用于会话范围的临时数据)

密钥派生

允许的 KDF:

  • Argon2id(新部署的首选) - 最小参数 m ≥ 19 MiB,t ≥ 2,p = 1(OWASP 密码存储备忘单,2024)
  • PBKDF2 — SHA-256 的最小 600,000 迭代(OWASP 2024 推荐);建议新部署使用 SHA-512
  • scrypt — 最小值 N = 2^17,r = 8,p = 1(相当于大约 128- 位工作因子)
  • HKDF (NIST SP 800-56C Rev. 2) — 用于协议中的密钥推导,不适用于密码散列

禁止:

  • 用于密码存储的纯哈希(SHA-256,没有 KDF 迭代计数)
  • PBKDF2 < 100,000 生产中的迭代(必须迁移迭代次数 < 100K 的遗留系统)
  • Argon2,参数 m < 19 MiB 或 t < 2(计算工作因子不足)

随机数生成

允许的熵源:

  • 硬件真随机数生成器(TRNG),经过 FIPS 140-3 级别 3+ 认证
  • 符合 NIST SP 800-90A 的确定性随机位生成器 (DRBG),根据 SP 800-90B/C 进行播种
  • HSM 内部 RNG 具有有效的 FIPS 证书
  • Apple Secure Enclave RNG(Apple Silicon、A14+)和 Android 硬件支持的密钥库 RNG (StrongBox)
  • 现代 Linux 内核 (5.18+) 上的 /dev/urandom 用于服务器端操作(请参阅 B.2.1 节中有关初始熵的注释)

禁止生产来源CCM: JavaScript 中的

  • Math.random()、Python 中的 random 模块(不含 secrets)、Java 中的 Random(不含 SecureRandom)
  • 用户提供的熵,无需加密源增强
  • 基于时间的种子
  • 无需加密种子的伪随机

A2.2。 Russian Tier(俄罗斯算法)

非对称签名

允许:

  • GOST R 34.10-2018(椭圆曲线上的电子签名)

**申请:**对于与俄罗斯DFA(数字金融资产)相关的文件是强制性的;用于使用数字卢布进行操作;除了全球层之外,还推荐给俄罗斯客户。

哈希

允许:

  • GOST R 34.11-2018 (Streebog)

**应用:**使用GOST R 34.10-2018时强制。

对称加密

允许:

  • GOST R 34.12-2018 — Kuznyechik(128-bit 块)
  • GOST R 34.12-2018 — Magma(64-bit 块,仅旧版兼容性)

模式 (GOST R 34.13-2018):

  • CTR(计数器模式)
  • CBC-IM(CBC 与 MAC)
  • MGM(多线性伽罗瓦模式 - GCM 的 AEAD 模拟,推荐用于 GOST 上的 CCM)

加密信息保护工具(СКЗИ)认证

СКЗИ 等级(根据俄罗斯 FSB):

班级应用
КС1最小
КС2中 — 俄罗斯联邦 1 CCSA 级别的最低要求(对于大多数金融组织)
КС3高架 — 俄罗斯联邦最低 2 CCSA 级
КВ1高 — 俄罗斯联邦 3 CCSA 级别的最低值
КВ2非常高(对于政府系统)
КА最高(军事/国家机密)

认证产品(示例,并非详尽列表):

  • KriptoPro CSP — КС1、КС2、КС3
  • ViPNet CSP — КС1、КС2、КС3
  • 信号-COM CSP — КС1, КС2
  • Kontinent-AP — 适用于 VPN
  • APKSh Kontinent — 用于加密

完整的 СКЗИ 注册表可在俄罗斯 FSB (https://clsz.fsb.ru/clsz/) 的官方网站上找到。

A2.3。量子就绪层(v1.0 中的建议,v2.0 中的 L3 强制)

目标

后量子密码学的准备。在 v1.0 中 — 咨询(推荐);在 v2.0 (2029) 中 — 对于 3 级别是强制性的。

允许的后量子算法(NIST PQC 标准化、最终确定 2024)

非对称密钥封装机制(KEM):

  • ML-KEM(原 CRYSTALS-Kyber)— NIST FIPS 203(Kyber-512、Kyber-768、Kyber-1024)

数字签名:

  • ML-DSA(原 CRYSTALS-Dilithium) — NIST FIPS 204
  • SLH-DSA(以前称为 SPHINCS+) — NIST FIPS 205,无状态基于哈希,经过验证的安全性
  • Falcon(紧凑签名,2025 标准化过程中)

混合方案(建议过渡期):

  • ECDSA + ML-DSA 关键操作双重签名
  • ECDH + ML-KEM 混合用于 TLS 密钥交换

迁移路线图

阶段 1 — 清单和评估 (2026–2027):

  • 识别所有存储长期秘密的加密操作
  • 按“现在收获,稍后解密”(HNL)风险分类
  • 优先级:签名密钥 > 加密密钥 > 会话密钥

2 阶段 — 混合部署 (2027–2028):

  • 关键路径:实现双重签名(ECDSA + ML-DSA 混合)
  • 新密钥生成:创建混合密钥对
  • TLS 1.3 + 混合 KEM 支持后端通信

3 阶段 — 合规评估 (2028–2029):

  • 3 级组织:向理事会提交混合 PQC 路线图作为评估阶段提交(而非执行);委员会收集路线图来评估 v2.0 的市场准备情况
  • 2级别:顾问状态; SAQ 包括量子问题
  • 等级1:无量子要求

阶段 4 — 纯 PQC(2029–2030,v2.0 中的 L3 强制):

  • 传统加密货币逐渐被新系统淘汰
  • 对于存储密钥超过 10 年的任何系统,L3 是强制的

A2.4。 TLS配置

对于链下通信(API,Web 界面):

TLS 版本支持

允许:

  • TLS 1.3(新部署必需)
  • TLS 1.2 — 允许在相对于 v1.0 生效日期(2026-12-01)的临时窗口内:
    • 直到 2027-12-01(v1.0 生效日期后重叠的 12 个月):允许 L1 和 L2,无需明确弃用
    • 来自 2027-12-01:TLS 1.2 已弃用; TLS 1.3 所有级别均强制
    • 来自 2028-06-01:TLS 1.2 禁止用于新部署(仅适用于通过具有迁移计划的补偿控制的现有系统)

禁止:

  • TLS 1.1 及更低
  • SSLv2、SSLv3

密码套件

TLS 1.3 密码套件:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256(仅适用于会话范围的数据,不适用于CCM长期)

TLS 1.2 密码套件(过渡期):

  • ECDHE-ECDSA-AES256-GCM-SHA384
  • ECDHE-RSA-AES256-GCM-SHA384
  • ECDHE-ECDSA-CHACHA20-POLY1305
  • ECDHE-RSA-CHACHA20-POLY1305

证书要求

  • 来自受信任证书颁发机构的公共证书(Let's Encrypt、DigiCert、Sectigo、GlobalSign 及同等证书;对于俄罗斯客户 — 允许使用俄罗斯 CA)
  • ECDSA 或 RSA-3072+(根据 A2.1,1 1 月 2028 之后的 L3 为 RSA-4096)
  • 对于最小 max-age 为 31536000(1 年)和 includeSubDomains(对于 L2+)的 Web 界面,HSTS 是必需的

证书固定

推荐用于具有关键依赖性的后端到后端通信:

  • 对于关键的后端到 HSM 以及后端到区块链节点的通信,建议使用 TLS 证书固定
  • 对于面向公众的 API:标准 CA 链验证就足够了
  • 固定实施:根据 OWASP 指南动态固定,具有轮换策略和最低 90 天 固定备份有效性

A2.5。算法合规性映射

使用案例全球级别俄罗斯级量子层(咨询)
比特币签名ECDSA secp256k1—与 ML-DSA 混合
以太坊签名ECDSA secp256k1—与 ML-DSA 混合
索拉纳签名埃德25519—与 ML-DSA 混合
定制L1区块链签名取决于链条规格+ GOST R 34.10-2018 用于俄罗斯 DFA混合(v2.0)
客户身份验证TLS 1.3 + Argon2idСКЗИ КС2+—
HSM 操作FIPS 140-3 L3+СКЗИ КС3+—
备份加密AES-256-GCMGOST R 34.12 库兹涅奇克 MGM迁移到 ML-KEM 包装 (v2.0)
会话令牌SHA-256 / HMACGOST R 34.11—

A2.6。算法弃用过程

委员会维护一个结构化流程,用于在发现漏洞或量子就绪里程碑时弃用算法。

A2.6.1。弃用类别

类别描述需要采取行动
已弃用(建议)该算法仍被正式允许,但建议在 24 个月内逐步淘汰记录迁移计划;自我评估定于下次重新认证
不受欢迎不建议用于新部署;允许用于现有系统强制补偿控制或迁移计划
禁止生产中强制淘汰使用=不合规

A2.6.2。通知及实施流程

  • 理事会在执行前至少 180 天发布安全建议(公开)
  • CCSAC 在咨询后 60 天内进行培训
  • 过渡评估从受评估实体的下一次重新评估开始
  • AOC 状态更新中标记的违规行为

A2.6.3。紧急弃用

发现关键的 CVE 后(例如,对广泛使用的算法进行演示的实用密钥恢复攻击):

  1. 立即发布安全警告
  2. 该算法在当前 CCSA 版本中被标记为“已弃用”
  3. 在下一个标准版本中,如果没有缓解措施,它将变为“禁止”
  4. 组织有 12 个月的时间进行补救或失去认证

A2.7。推荐的密码库和 HSM 产品

开源加密库

  • libsodium (经过验证,经过充分审核)
  • Bouncy Castle(Java、C#)
  • 启用 FIPS 模块的 OpenSSL 3.0+
  • ring(Rust,高保证)
  • Google Tink(多语言,高级API)

硬件安全模块

  • 级别 1 / 级别 2: Thales Luna Network HSM、金雅拓 SafeNet、AWS CloudHSM(FIPS 140-2 级别 3)
  • 级别 3: Securosys Primus HSM、YubiHSM 2、Utimaco SecurityServer(FIPS 140-3 级别 3+)
  • 区块链特定: Ledger 安全元件、Nitrokey HSM、Coldcard Mk4

已知的易受攻击/已弃用的库

  • OpenSSL < 3.0(已弃用;将 3.x 与 FIPS 模块一起使用)
  • 旧版本的 cryptojs(已知较弱的 RNG 实现)
  • 未经第三方审核的自定义加密实现 — 禁止用于生产 CCM

A2.8。审计员的密码学审查清单

在审核期间,CCSA-QSA 对每个 CCM 相关的加密操作执行以下检查表:

  • 加密清单已完成 - 所有操作均已记录(链接到 CCM 清单,B.1.1 部分)
  • 版本审核 — 生产路径中没有已弃用或已终止生命的库
  • 配置审核 — TLS 密码套件强化,KDF 参数满足要求,RNG 配置正确
  • 随机源验证 — 使用受支持内核上的 FIPS 认证的 TRNG / DRBG 或 /dev/urandom;没有回退到弱 RNG
  • 密钥存储已验证 — CCM 隔离(HSM 分区、安全隔离区、MPC 封装);日志或内存转储中没有明文暴露
  • 密钥轮换计划 — 记录并测试(B.5.1 部分)
  • 侧信道风险评估(针对 3 级别)——定时攻击、功率分析缓解
  • 文档完整性 — 为每个 CCM 类别明确说明的算法、密钥大小、轮换节奏和处置程序
  • 兼容层(如果适用)- 俄罗斯客户的俄罗斯层,检查是否有有效的 СКЗИ 证书

A2.9。量子风险评估框架(v2.0、2029 中的 L3 强制)

对于 v2.0 中的 L3 组织,年度量子风险评估是强制性的。在 v1.0 中 — 咨询; v1.1 — 鼓励;全面实施 - 从 v2.0(4、2029 阶段)开始。

  • 加密资产生命周期分析 — 对于每个 CCM 类别,对预期使用寿命的评估
  • HNL(立即收获,稍后解密)风险分类 — 如果密钥保护必须保密的数据 > 10 年,则将其分类为 HIGH 风险
  • 迁移路线图 — 由 2028–2029 作为评估阶段向理事会提交(3 阶段);从 v2.0 开始全面实施(4 阶段)
  • 混合部署状态 — 关键路径中混合 PQC 部署的进度报告

相关

来源

请参阅前面的 0.4 规范性参考文献部分。

其他来源:

  • NIST PQC 标准化(FIPS 203、204、205 — 最终确定 2024)
  • OWASP 加密存储备忘单 (2024) 俄罗斯
  • OWASP 密码存储备忘单 (2024)
  • FSB — СКЗИ 注册 (https://clsz.fsb.ru/clsz/)

该标准正在接受公众咨询。如果您对此部分有意见,请根据需求代码进行说明。

评论此部分

草案 v0.2 -> v1.0。在 2027-01-01 之前可能会有更改。