首页/安全/加密与证书速查/非对称密钥对生成要点
加密算法基础95 条

非对称密钥对生成要点

生成密钥对时需关注随机源质量、密钥长度、用途分离与私钥保护;生成后立即校验并纳入权限、备份与轮换流程。

加密与证书速查安全更新于 2026-10-13

密钥对生成要点

生成非对称密钥对看似只是一条命令,实际要一次做对几件事:随机源质量、密钥长度、用途分离与私钥保护。生成后立即校验,并纳入权限、备份与轮换流程,能避免绝大多数「证书与私钥不匹配」「私钥被读走」类事故。低熵环境是最容易被忽略的风险点,虚拟机冷启动与容器首次运行时尤其需要留意。

基本信息

随机源系统 CSPRNG,如 /dev/urandom、BCryptGenRandom
长度选择RSA 3072 位及以上、EC P-256 及以上、Ed25519 固定长度
用途分离签名密钥与加密密钥分开生成
私钥保护文件权限 600,优先存放于 KMS 或 HSM
生成后动作校验、备份、登记指纹与责任人
轮换明确周期与触发条件

典型使用场景

  • 新建服务:为证书申请生成密钥对并立即设定权限
  • 内部 PKI:批量生成密钥并按主体登记归档
  • 用途分离:为签名与加密各生成一套独立密钥
  • 轮换演练:在测试环境验证从生成到替换的完整流程
  • 合规审计:核对私钥文件的权限与存放位置

生成与校验

生成与校验
# 生成 3072 位 RSA 私钥
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out rsa.key
# 校验私钥结构完整可用
openssl pkey -in rsa.key -check -noout
# 导出公钥并登记指纹,便于后续核对与轮换
openssl pkey -in rsa.key -pubout -out rsa.pub
# 收紧权限
chmod 600 rsa.key

关键要素

要素要求常见失误
随机源使用操作系统 CSPRNG自造随机数或用时钟做种子
长度按强度对照表选择沿用 2048 位以下的旧默认值
用途签名与加密分离一套密钥同时承担多种角色
权限600 且属主明确默认权限落盘后忘记收紧
备份加密备份并记录位置无备份,密钥丢失只能重签
密钥生成后不要用明文在网络或聊天工具中传输;需要分发时应借助加密通道或密钥库。
备份与安全是一对矛盾:没有备份的密钥一旦丢失就无法恢复,而备份又扩大泄露面,通常的折中是加密备份并严格限制访问对象。
轮换要有明确触发条件:不只是到期,还包括人员变动、疑似泄露与算法降级。把条件写进流程,才能避免长期不更换的隐患。

易错点

  • 在低熵环境(新装虚机、容器冷启动)生成密钥有风险,生成后应校验质量并纳入审计
  • 同一密钥对既做 TLS 服务端又做代码签名,会在轮换时造成联动停机
  • 生成后忘记设置权限,私钥以默认权限落盘
  • 没有备份策略,密钥丢失后只能重新签发并替换全部引用
  • 用自造随机数或可预测种子生成密钥,安全性完全无法保证

数据来源与参考

  • NIST SP 800-57 Part 1 Rev.5(密钥生成与保护)
  • OpenSSL 官方文档 openssl-genpkey(1)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌