赞
踩
大家好,又见面了,我是你们的朋友运维老纪。
需要查看更多的计算机网络相关的知识?点击这里
三.HTTPS和HTTP的主要区别
1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
四.HTTPS的主干层次介绍
这部分内容作为前提点缀,如果你是初次了解HTTPS,看不懂这里不要紧,只要把文章后面看完,再回过头来看这里的内容,就能恍然大悟了。
第一层:HTTPS本质上是为了实现加密通信,理论上,加密通信就是双方都持有一个对称加密的秘钥,然后就可以安全通信了
但是,无论这个最初的秘钥是由客户端传给服务端,还是服务端传给客户端,都是明文传输,中间人都可以知道。那就让这个过程变成密文就好了呗,而且还得是中间人解不开的密文。
第二层:使用非对称加密 加密客户端与服务端协商生成对称秘钥之前各种盐值、种子。
但是,在使用非对称加密秘钥之前,比如由服务端生成非对称秘钥,它需要将生成的公钥给到客户端,这个时候公钥就会在网络中明文传输,任何人都可以更改,会有中间人攻击的问题。因此,只能引入公信机构CA,使我们传输自己的公钥时可以保证不会被篡改!
第三层:服务端把自己的公钥给 CA,让 CA 用 CA 的私钥加密,然后返回加密结果(可以用CA的公钥解密,如果要篡改结果,必须再次用 CA 的私钥加密,由于中间人没法获取私钥,所以无法篡改)。
非对称加密:客户端和服务端均拥有一个公有密匙和一个私有密匙。公有密匙可以对外暴露,而私有密匙只有自己可见。 使用公有密匙加密的消息,只有对应的私有密匙才能解开。反过来,使用私有密匙加密的消息,只有公有密匙才能解开。这样客户端在发送消息前,先用服务器的公匙对消息进行加密,服务器收到后再用自己的私匙进行解密。
HTTP与HTTPS的区别,详细介绍[通俗易懂]
下面是我们本次模拟访问https://www.baidu.com时抓的包,大家可以看到这里面涉及的流程逻辑
到这里,服务端与客户端将 生成最终通信的对称加密秘钥:master_secret 计算过程根据上面得到的三个随机数: 随机数 1(客户端随机数):在 ClientHello 消息里,由客户端生成的随机数1 随机数 2(服务端随机数):在 ServerHello 消息里,由服务端生成的随机数2 随机数 3(pre_master):通过秘钥交换算法 ECDHE 计算出的,我们叫它 pre_master。 最终的对称加密秘钥 master_secret,就是根据这三个随机数共同计算出来的。
1. client –> server ClientHello 客户端生成随机数,并发送一组密码学套件供服务端选 2. server–> client ServerHello 服务端生成随机数,并从上述密码学套件组里选一个 3. server–> client Certificate 服务端发给客户端证书 4. server–> client ServerKeyExchange 服务端发给客户端秘钥交换算法所需的值 5. server–> client ServerHelloDone 服务端 hello 阶段结束 6. client –> server ClientKeyExchange 客户端发给服务端秘钥交换算法所需的值pre_master 7. client –> server ChangeCipherSpec 客户端告诉服务端,我已经知道秘钥了,之后的消息我就都加密发送了。 8. client –> server Finish 结束并验证 7. server –> server ChangeCipherSpec 服务端告诉客户端,我已经知道秘钥了,之后的消息我就都加密发送了。 9. server–> client Finish 结束并验证
“不管是客户端还是服务器,都需要随机数,这样生成的密钥才不会每次都一样。由于SSL协议中证书是静态的,因此十分有必要引入一种随机因素来保证协商出来的密钥的随机性。 对于RSA密钥交换算法来说,pre-master-key本身就是一个随机数,再加上hello消息中的随机数,三个随机数通过一个密钥导出器最终导出一个对称密钥。 pre master的存在在于SSL协议不信任每个主机都能产生完全随机的随机数,如果随机数不随机,那么pre master secret就有可能被猜出来,那么仅适用pre master secret作为密钥就不合适了,因此必须引入新的随机因素,那么客户端和服务器加上pre master secret三个随机数一同生成的密钥就不容易被猜出了,一个伪随机可能完全不随机,可是是三个伪随机就十分接近随机了,每增加一个自由度,随机性增加的可不是一。” 此外,如果前一步,服务器要求客户端证书,客户端会在这一步发送证书及相关信息。
1)对于消息认证使用密钥散列法:TLS 使用“消息认证代码的密钥散列法”(HMAC),当记录在开放的网络(如因特网)上传送时,该代码确保记录不会被变更。SSLv3.0还提供键控消息认证,但HMAC比SSLv3.0使用的(消息认证代码)MAC 功能更安全。 2)增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。 3)改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。 4)一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。 5)特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。