美文网首页
关于计算机网络

关于计算机网络

作者: 8fe8946fa366 | 来源:发表于2018-03-11 15:37 被阅读16次

1.Http与Https

1、HTTPS是加密传输协议,HTTP是名文传输协议;

2、HTTPS需要用到SSL证书,而HTTP不用;

3、HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO

HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

2.Https协议基础

Https叫做安全超文本传输协议,基于http开发,用于在客户端和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。这种加密方式是在通信线路上加密,用ssl建立安全通信线路。

HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

https协议中使用的三种加密算法:

非对称加密算法 RSA/ECC/DH 用于在握手过层中加密密码,密钥成对出现,一个公钥一个私钥。公钥加密的信息只能用私钥解开,私钥加密的信息只能用公钥解开,客户端掌握公钥,服务器掌握私钥,服务器用私钥解密客户端发送的密码,客户端用公钥解密服务器发送的密码,验证服务器身份。服务器和客户端可以实现一对多通信

对称加密算法 AES/DES/RC4 相同的密钥可以用于信息的加密和解密,掌握密钥才能获取信息,能够防止信息窃听,通信方式是1对1。用于对传输的数据进行加密。

HASH算法 MD5 用于验证数据的完整性。单向不可逆,已知密码无法推测出明文,生成的所有密码长度相等,但是可以用暴力破解的方法,匹配生成的密码在数据库中查找对应的明文。

https请求的过程:

请求过程非常复杂,我只是简单描述一下大致的过程。

1.客户端向服务器发送明文请求,相当于告诉服务器:你好,我是客户端。同时发送了自己支持的一套加密规则和一个随机数random_c

2.服务器向客户端发出响应并发送自己的证书。同时发送了选择使用的加密规则,一个随机数random_s

3.客户端对服务器发来的证书进行校验, 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等)。

校验如果失败,连接终止,如果校验成功,客户端生成一个随机数字Pre-master用服务器发来的公钥进行加密,生成enc_pre_master。

此时客户端计算协商密钥,enc_key=Fuc(random_C, random_S, Pre-Master)

生成握手信息:使用约定好的HASH计算握手消息,并使用协商密钥enc_key及约定好的算法对消息进行加密。

4.客户端把之前生成的数据发送给服务器,包括公钥加密随机数得到的enc_pre_master握手信息,以及通知

5.客户端收到用户发来的en_pre_master,用自己的私钥解密,得到Pre_master。根据Pre_master、random_S和random_C计算出协商密钥enc_key=Fuc(random_C, random_S, Pre-Master)。

使用协商密钥enc_key解密客户端发来的握手信息,并检验hash是不是客户端发来的。

生成握手消息使用协商密钥enc_key及约定好的算法加密一段握手消息,发送给客户端。

6.服务器把握手消息发给客户端。

7.客户端拿到握手消息并计算hash,如果hash与服务器发来的一致握手成功。

8.开始数据传输,传输的数据使用对称加密算法加密。

参考:https加密协议浅谈https

相关文章

网友评论

      本文标题:关于计算机网络

      本文链接:https://www.haomeiwen.com/subject/adbvfftx.html