欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

网站百科

为您解码网站建设的点点滴滴

HTTPS协议的SSL握手过程

发表日期:2018-04 文章编辑:小灯 浏览次数:2036

HTTPS常被定义为为HTTP over SSL,超文本传输安全协议。
以往HTTP通讯直接使用的明文传输,容易被人抓包,破解数据包,而HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。

HTTP的URL由“http://”起始且默认使用端口80,
HTTPS的URL由“https://”起始且默认使用端口443。

注意:

  • SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议。这种协议在WEB上获得了广泛的应用。
  • IETF机构将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小。

SSL 定义

SSL是一个介于HTTP协议与TCP之间的一个可选层,为数据通讯提供安全支持。SSL协议可分为两层:

  • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
  • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

如果用右边的TCP/IP协议来划分,SSL是属于应用层与传输层之间的协议,如果还是用OSI七层协议划分,SSL是属于表示层与会话层的。

image.png

SSL握手过程

SSL协议的大概原理就是通过公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

以下是SSL协议握手的一个主要过程,主要分为4个阶段。

  • SSL客户端(也是TCP的客户端)在TCP链接建立之后,发出一个ClientHello来发起握手,这个消息里面包含了
    -- Client支持的SSL协议版本;
    -- Client生成的随机数c1,稍后用于生成"对话密钥";
    -- Client支持的加密方法;
    -- Client支持的压缩方法;

  • SSL的服务器端会回应一个ServerHello,这个消息里面包含了以下内容
    -- Server确认使用的加密通信协议版本;
    --Server生成的随机数s1,稍后用于生成"对话密钥";
    -- Server确认使用的加密方法;
    -- Server 的SSL证书。

  • Client收到服务器回应以后,首先验证Server的证书是否有效,如果没问题,从证书里面取出Server的公钥,然后发送消息给Server,包含以下内容
    -- Client生成的随机数c2,需要注意的是,这个随机数c2是经过Server公钥加密过的;
    -- 告知Server 握手结束

  • Server收到Client消息后,使用私钥解密Client发过来的第二个随机数,同时也会发送握手结束的消息给Client。

此时,client和server都持有3个随机数,客户端和服务端用商定的算法利用3个随机数生成一个对话秘钥(session key),随后的通信就用这个秘钥进行加密解密。之所以用3个随机数,因为证书是静态的,增加随机数可以使得密钥更加有随机性。SSL协议传输过程中,使用的是由相同的3个随机数生成的对话秘钥(session key),而生成的规则是client与server商议好的算法,所以这个对话秘钥(session key)是相同的,这个加密方法称为对称加密

中间人攻击

HTTPS通讯也不一定是绝对安全的,有可能会被人劫持,通常是中间人攻击。

服务器向客户端发送公钥。
攻击者截获公钥,保留在自己手上。
然后攻击者自己生成一个【伪造的】公钥,发给客户端。
客户端收到伪造的公钥后,生成加密hash值发给服务器。
攻击者获得加密hash值,用自己的私钥解密获得真秘钥。
同时生成假的加密hash值,发给服务器。
服务器用私钥解密获得假秘钥。

中间人攻击一般发生在SSL握手协议中,协商密钥的时候(非对称加密阶段),而且发生中间人攻击,也就是代表攻击方拿到了证书的公钥和私钥。一旦会话初始化完成,开始进行数据通讯(对称加密阶段),想要完成中间人攻击是非常困难的。

防御中间人攻击的手段是做好证书的校验

参考

http://www.nsfocus.net/index.php?act=magazine&do=view&mid=841
https://www.jianshu.com/p/9c52693a09dc


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户学习参考,本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:https://dengtar.com/20420.html
相关开发语言
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

  • QQ咨询
  • 在线咨询
  • 官方微信
  • 联系电话
    座机0755-29185426
    手机13699882642
  • 预约上门
  • 返回顶部