生如夏花的博客

专注于工业物联网行业数据采集,嵌入式Linux系统裁剪,5G智慧网关软件开发等

OpenSSL生成SM2证书链

本文使用OpenSSL工具生成国密算法SM2的三级CA证书,组成证书链,并使用证书链签名客户端证书和服务端证书。

可以通过证书链对生成的客户端和服务端证书进行校验。

虽然OpenSSL工具可以使用SM2算法来生成并校验证书,但是在TLS握手过程中主要支持RSA和ECC算法作为公钥加密算法,不支持SM2算法,因此无法在TLS加密连接中使用SM2证书。

SSL/TLS协议主要使用RSA和ECC(椭圆曲线密码学)算法作为公钥加密算法,而SM2算法属于ECC算法的一种。RFC8898

证书

什么是证书?证书的使用场景。

证书标准规范X.509、颁发证书的认证机构。

公钥基础设施PKI,对PKI的攻击方法和对策。

无论是数字签名、证书,还是认证机构的层级结构,都不可能在完全不可信的状态下创造出信任关系

消息认证码

消息认证码说明
作用对消息进行认证并确认其完整性的技术,但不能保证消息的机密性
原理使用发送者和接收者之间共享的密码,识别是否存在伪装或篡改
实用技术单向散列函数和对称加密技术
存在问题由于收发双方共享相同密钥,因此无法对第三方证明以及无法防止否认

认证加密是将消息认证码与对称加密相结合,同时满足消息机密性、完整性以及认证三大功能。

由于使用对称密码,发送者和接收者均可以生成消息认证码,因此对于第三方来说无法证明消息是由发送者生成的,即消息认证码无法防止否认

单向散列函数

单向散列函数能够根据任意长度的消息计算出固定长度的散列值,通过对比散列值可以判断两条消息是否一致,这种技术可用来辨别篡改。

SHA-3的具体实现方法。

针对单向散列函数的工具:暴力破解和生日攻击。

使用单向散列函数可以辨别篡改,但无法分辨伪装。要解决这个问题,需要使用消息认证码和数字签名。