基于Openssl的对称加密、密钥对的创建和应用,基于Openssl数字签名和数字证书的创建和应用
背景
SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。
SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。(摘自:百度百科)
算法
OpenSSL支持许多不同的加密算法:
加密
AES、Blowfish、Camellia、Chacha20、Poly1305、SEED、CAST-128、DES、IDEA、RC2、RC4、RC5、TDES、GOST 28147-89https://zh.wikipedia.org/zh-cn/OpenSSL#cite_note-gost-15)、[SM4](https://zh.wikipedia.org/wiki/SM4)密码散列函数
MD5、MD4、MD2、SHA-1、SHA-2、SHA-3、RIPEMD-160、MDC-2、GOST R 34.11-94[15]、BLAKE2、Whirlpool[16]、SM3公开密钥加密
RSA、DSA、ECDSA、ECDHE、迪菲-赫尔曼密钥交换、椭圆曲线密码学、X25519、Ed25519、X448、Ed448、GOST R 34.10-2001https://zh.wikipedia.org/zh-cn/OpenSSL#cite_note-gost-15)、[SM2](https://zh.wikipedia.org/wiki/SM2)
对称加密
OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。
非对称加密
OpenSSL一共实现了4种非对称加密算法,包括DH算法、RSA算法、DSA算法和椭圆曲线算法(EC)。DH算法一般用于密钥交换。RSA算法既可以用于密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也可以用于数据加密。DSA算法则一般只用于数字签名。
信息摘要
OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA算法事实上包括了SHA和SHA1两种信息摘要算法。此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。
对称加密
准备1x.txt文件
使用AES256加密
查看加密后的内容
使用AES256解密
查看解密后的内容
散列函数
查看MD5值
查看SHA
256****值
非对称加密
生成2048位RSA私钥
查看私钥内容
利用私钥生成公钥
查看公钥内容
使用公钥进行文件加密
查看加密后的文件
使用私钥解密文件
查看解密后的文件
数字签名
使用私钥对文件签名
生成sigh.sha256,然后得到可读版本
查看签名后的文件
对base64进行解码
核实签名
证书
创建一个证书签名请求(CSR),
生成自签证书(有效期1年)
生成证书可读版本及部分内容