面向人群:所有开发者

发布日期:2021年12月07日

目标:提高交付整体安全

第一章:总则

第二章:安全要求细则

第三章:处罚的方式和适用

第四章:附则

第五章:附录

名词

解读

安全随机函数安全随机函数生成,如:
1) OpenSSL库的RAND_bytes;
2) OpenSSL FIPS模块中实现的DRBG;
3)  JDK的java.security.SecureRandom;
4)类Unix平台的/dev/random文件;
5)Windows平台的CryptGenRandom。
不安全的密码算法MD5/DES/3DES(加密传输协议TLS/SSH密码协议中必须禁止使用3DES,非密码协议场景必须保证密钥K1≠K2≠K3)/HMAC-SHA2-256-96/HMAC-SHA1-96/HMAC-MD5/HMAC-MD5-96/SSH服务所有带CBC模式的算法/匿名算法套件/DH512/DH1024/SKIPJACK/RC2/RSA(1024位及以下)/MD2/MD4。
说明:
1)禁止MD5应用在密码学安全场景,包括“数字签名/hash-only/HMAC/密钥派生/随机数产生”。
2)禁止SHA1应用在参与生成“数字签名/hash-only”的场景;可用于“HMAC/密钥派生/随机数产生”场景;
推荐使用的密码算法

1)分组密码算法:AES(密钥长度在128位及以上)
2)流密码算法:AES(密钥长度在128位及以上)(OFB或CTR模式)
3)非对称加密算法:RSA(密钥长度在2048位及以上,推荐3072位)
4)哈希算法:SHA2(256位及以上)
5)密钥交换算法:DH(2048位及以上,推荐3072位)
6)HMAC(基于哈希的消息验证码)算法:HMAC-SHA2

认证凭据不需要还原的场景(例如认证服务端保存的用户登录口令),须使用PBKDF2或更强的算法加密,对于性能极其敏感且安全性要求不高的场景(如业务面终端用户场景)允许使用HMAC(认证凭据,盐值)(注:认证凭据、盐值位置可以互换)。
1、认证凭据使用PBKDF2算法计算口令单向哈希时,对性能有要求的场景迭代次数最低10000次,有特殊性能要求时最低1000次。
2、盐值Salt为密码学意义上的安全随机数,由系统随机生成,盐值salt至少16字节,并按用户区分。
3、禁止使用HASH(用户名||口令)、HMAC(用户名,口令)、HASH(口令 XOR salt)。