ssl工作原理和常见加密方式

SSL(Secure Sockets Layer)安全套接层协议,目的是保证数据传输的安全和完整。TLS(Transport Layer Security)传输层安全是SSL的非专有版本。SSL位于应用层和传输层之间。处理的对象是数据流,加密算法是RC4。

工作流程图解:
在这里插入图片描述
原理:
(1)浏览器向服务器发送请求信息(包含协商SSL版本号、询问选择何种对称密钥算法),开始新会话连接。
(2)服务器返回浏览器请求信息,附加生成主密钥所需的信息,确定SSL版本号和对称密钥算法,发送服务器证书(包含了RSA公钥),并使用某CA中心私钥加密。
(3)浏览器对照自己的可信CA表判断服务器证书是否在可信CA表中。如果不在,则通信中止:如果在,则使用CA表中对应的公钥解密,得到服务器的公钥。
(4)浏览器随机产生一个对称密钥,使用服务器公钥加密并发送给服务器。
(5)浏览器和服务器相互发一个报文,确定使用此对称密钥加密;再相互发一个报文,确定浏览器端和服务器端握手过程完成。
(6)握手完成,双方使用该对称密钥对发送的报文加密。

数字签名对比信息完整性

在这里插入图片描述

数字证书(CA证书)工作原理

在这里插入图片描述
将上面的信息总结起来,简述ssl的工作原理就是:
1.客户端在浏览器输入一个https的网址,然后连接服务端的443端口,向服务端发送SSL协议版本号、加密算法种类、随机数等信息;
2.服务端给客户端返回给SSL协议版本号、加密算法种类、随机数等信息,并将准备好的数字证书(公钥)发送给客户端;
3.客户端的TLS会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题;
如果证书没有问题,那么hash摘要就生成一个随机值,然后用证书对该随机值进行加密,生成数字签名,即为客户端的公钥,如上图所示,一起发送给服务端;
4.服务端用自己的私钥解密后,利用数字签名验证数据完整性,得到客户端的公钥,然后把内容进行对称加密(和客户端协商后选择的加密方式),发送给客户端;
5.客户端收到服务端的信息后,用自己的私钥解密,获取到解密后的内容产生该加密方式的随机码,即为二者后面联系的密钥,使用服务端证书获得的公钥进行加密,发送给服务端;
6.服务端收到客户端的信息后,用自己的私钥解密,获得对称加密的密钥,后面联系均用此密钥进行对称加密。
在这里插入图片描述

常见的加密算法:

对称加密算法:
1.DES:明文分为64位一组,密钥64位。
2.3DES:DES的扩展,执行三次DES。
3.RC5:三组可变参数(分组大小、密钥长度、加密轮数)的分组密码算法。
4.IDEA:明文、密文均为64位,密钥长度位128位。
5.RC4:密钥长度可变,用于SSL。
非对称加密算法:
RSA:素数分解加密。
选出质数p、q(p!=q),n=pq,公钥为(n,e),密钥为d,则使得ed=1mod(p-1)(q-1)成立,得出d为私钥。
例如:p=5,q=3,e=7,则7d=1mod8,d=7。

常见摘要算法:

1.SHA-1:基于md5的安全HASH算法,使用一个标准把信息分为512比特的分组,并且创建一个160比特的摘要。
2.md5:把信息分为512比特的分组,并且创建一个128比特的摘要。

猜你喜欢

转载自blog.csdn.net/weixin_53202364/article/details/122379912

相关文章