ISO 27001:2022 密码控制措施全解析:从"123456"到密码学的治理之路

ISO 27001:2022 密码控制措施全解析:从”123456″到密码学的治理之路

2022版 ISO 27001 对附录A做了大幅重组,控制项从114项精简为93项,但密码学相关的控制措施不降反增——从旧版的单一控制项(A.10)扩展为五项独立控制(5.33-5.37)。这个变化释放了一个明确信号:密码学不再是”IT部门的事”,而是需要系统性治理的安全域。

本文逐条拆解这五个控制项,并给出审计检查要点和落地建议。


一、五个控制项速览

控制项 标题 类型 核心关注点
5.33 密码控制策略 预防性 有没有成文的密码策略?
5.34 密钥管理 预防性 密钥的生成、分发、存储、销毁全生命周期
5.35 加密实施 预防性 策略落地了吗?用的什么算法?
5.36 开发中的密码控制 预防性 自研系统有没有正确使用密码学?
5.37 密码产品与服务 检测性 供应商的密码产品合规吗?

二、5.33 密码控制策略——一切的原点

标准要求

组织应制定并实施密码控制策略,明确密码控制的使用规则,包括业务需求、法律法规要求和合同义务。

翻译成人话:你得有一份书面文件,说清楚什么场景用什么加密、为什么这么选。

策略应包含的内容

一份合格的密码控制策略至少应涵盖:

  1. 适用范围:哪些系统、数据、通信链路需要加密
  2. 算法选择标准:推荐/禁止的算法清单(如推荐 AES-256,禁止 DES/RC4)
  3. 密钥长度要求:对称 ≥128bit,非对称 ≥2048bit(RSA)/256bit(ECC)
  4. TLS 版本要求:最低 TLS 1.2,推荐 TLS 1.3
  5. 证书管理规范:谁来签发、有效期多久、如何续期
  6. 合规映射:是否满足《密码法》、GDPR、PCI-DSS 等

审计常见发现

问题 频次
没有书面密码策略 ⭐⭐⭐⭐⭐
策略写了但从未评审更新 ⭐⭐⭐⭐
策略与实操脱节(如写了禁用 MD5,实际还在用) ⭐⭐⭐⭐
未覆盖云环境的加密要求 ⭐⭐⭐

三、5.34 密钥管理——最容易翻车的环节

标准要求

组织应制定和实施密钥管理策略,覆盖密钥的生成、分发、存储、使用、归档和销毁的全生命周期。

密码学圈有一句老话:“密钥管理比算法本身更难。” 再强的加密算法,密钥泄露了就是裸奔。

密钥生命周期管理

生成 → 分发 → 存储 → 使用 → 轮换 → 归档 → 销毁

每个阶段的控制要点:

阶段 控制要点 常见问题
生成 使用 CSPRNG,禁止人工编密钥 rand() 而非 SecureRandom
分发 非对称加密传输或密钥协商协议(DH/ECDH) 邮件/微信传密钥
存储 HSM/KMS,禁止硬编码在代码中 密钥写死在配置文件里
使用 最小权限、审计日志、禁止复用 多个系统共用同一密钥
轮换 定义轮换周期(推荐≤1年) 三年不换密钥
归档 加密归档,保留至合规期限 归档密钥与生产密钥混放
销毁 密码学擦除(多次覆写),记录销毁日志 “删了就完了”

硬编码密钥——最常见的低级错误

# ❌ 审计不合格
ENCRYPTION_KEY = "mySecretKey123!"
# ✅ 使用 KMS 或环境变量 + 密钥管理服务
import os
from cryptography.fernet import Fernet

key = os.environ.get("ENCRYPTION_KEY")  # 来自 KMS
cipher = Fernet(key.encode())

推荐工具

场景 工具
云原生 KMS AWS KMS / Azure Key Vault / 阿里云 KMS
自建 HSM Thales / Utimaco
开源方案 HashiCorp Vault / OpenBao
证书管理 cert-manager (K8s) / Let’s Encrypt

四、5.35 加密实施——策略落地

标准要求

组织应根据密码控制策略实施加密控制,包括使用经批准的加密算法和协议。

这条是对 5.33 策略的落地检验。审计时会问:“你的策略写了要用 AES-256,那你现在所有系统真的都用 AES-256 了吗?”

实施检查清单

  • [ ] 数据传输加密:内网是否全量 TLS?还是只有外网?
  • [ ] 数据存储加密:数据库是否开启了 TDE(透明数据加密)?
  • [ ] 备份加密:离线备份是否加密存储?
  • [ ] 移动介质:U盘/移动硬盘是否强制加密?
  • [ ] 邮件加密:敏感邮件是否使用 S/MIME 或 PGP?
  • [ ] 即时通讯:是否使用端到端加密的通讯工具?

算法红绿灯

状态 算法 替代方案
🔴 禁止 DES, RC4, MD5, SHA-1, SSLv3, TLS 1.0/1.1
🟡 谨慎 RSA-1024, 3DES, CBC 模式 尽快迁移
🟢 推荐 AES-256-GCM, ChaCha20-Poly1305, ECDHE, Ed25519, TLS 1.3

五、5.36 开发中的密码控制——从源头防漏洞

标准要求

组织应确保在系统开发生命周期中适当使用密码控制。

这是 2022 版新增的控制项,专门针对自研系统。很多企业采购的 SaaS 产品合规,但自研的内部系统一塌糊涂。

SDLC 各阶段的密码学检查点

SDLC 阶段 检查点
需求 是否需要加密?合规要求是什么?
设计 算法选型、密钥架构、证书方案
开发 代码审查重点:是否用了禁用算法?密钥是否硬编码?
测试 TLS 配置扫描(SSL Labs)、静态密钥检测(truffleHog/gitleaks)
部署 证书有效期检查、HSTS 配置
运维 证书到期告警、密钥轮换自动化

代码审查要点

# 审查时重点检查这些模式
import re

# 1. 硬编码密钥
# 搜索模式: key = "..." / secret = "..." / password = "..."
# 工具: gitleaks, truffleHog

# 2. 弱随机数
# ❌ random.randint() / Math.random()
# ✅ secrets.token_bytes() / crypto.randomBytes()

# 3. 弱哈希
# ❌ hashlib.md5() / hashlib.sha1()
# ✅ hashlib.sha256() / bcrypt / argon2

六、5.37 密码产品与服务——管好供应商

标准要求

组织应确保密码产品和服务的合规性,包括密码产品的采购、使用和退役。

这条关注的是你买的密码产品是否合规。比如采购了某 VPN 网关,它用的加密算法是否符合策略要求?

供应商评估要点

维度 检查内容
算法合规 产品支持的算法是否在策略白名单内?
认证资质 是否通过 FIPS 140-2/3、CC EAL、国密认证?
密钥控制权 密钥由你还是供应商管理?(BYOK/HYOK)
审计能力 是否提供密码操作审计日志?
生命周期 产品停更后密钥如何迁移或销毁?
国密合规 涉及等保/密评的系统是否支持 SM2/SM3/SM4?

七、审核员视角:如何审密码控制

如果你正在准备 ISO 27001 审核,以下是最常被抽样的证据:

审核线索 抽样方法 合格标准
密码策略文件 抽查文件版本号、审批记录 有审批、版本≤1年
密钥清单 抽查5个密钥的全生命周期记录 生成→归档可追溯
代码仓库扫描 用 gitleaks 扫描最近提交 0个高危发现
TLS 配置 用 SSL Labs 或 testssl.sh 扫描对外服务 评级≥B
供应商清单 抽查3个密码产品供应商 有评估记录、算法合规

testssl.sh 快速扫描示例

# 一键检查 TLS 配置
testssl.sh https://example.com

# 关注输出中的:
# - 是否支持 TLS 1.0/1.1(应禁用)
# - 证书是否过期
# - 是否支持不安全的密码套件
# - HSTS 是否配置

八、总结

ISO 27001:2022 把密码控制拆成五项,本质上是在说:

密码学不是技术选型问题,是治理问题。

五个控制项形成一条完整的治理链:

策略(5.33) → 密钥管理(5.34) → 实施(5.35) → 开发嵌入(5.36) → 供应链管控(5.37)

如果只做其中一两项,密码安全就是空中楼阁。审计时最常见的卡点不是”没加密”,而是“有加密但密钥管理一塌糊涂”


参考资源

  • ISO/IEC 27001:2022 附录A 5.33-5.37
  • NIST SP 800-57 Part 1: Key Management Recommendations
  • OWASP Cryptographic Failures: https://owasp.org/Top10/A02_2021-Cryptographic_Failures/
  • 《密码法》(2020年1月1日施行)
  • SSL Labs: https://www.ssllabs.com/ssltest/
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇
©2003-2026 土人老周