vpn、tls与ipsec

VPN(virual private network)即虚拟专网,是指将物理上分布式的网络通过公用网络(通常指Internet)连接而构成逻辑上的虚拟子网。它利用认证、访问控制、保密性、数据完整性等技术在公用网络上构建专用网络,在分布式智能制造网络中,VPN是保证通信安全最常用的技术。在安全Web服务、安全邮件服务中,通过使用传输层安全协议(transport layer security,TLS)协议保证Http协议和邮件协议中传输数据的安全。因此本文将重点介绍TLS协议和VPN使用的IPSec协议。


「 1. TLS 」

1)TLS协议简介

TLS(transport layer security)传输层安全协议多用于web服务的安全,由早期的安全套接字层(secure socket layer,SSL)协议演化而来,最初由Netscape公司开发,后IETF将SSL更名为TLS。该协议主要用于HTTPS协议中,HTTPS协议是用户在线申报、注册及交易时常用协议,其由Web浏览协议HTTP及TLS协议组成。

TLS协议允许使用数字签名及证书,因此TLS能提供强大认证功能。在建立TLS连接过程中,客户端与服务器之间要进行多次的信息交互。与许多C/S方式一样,客户端与服务器端通过“Hello”信息开始连接,双方验证对方的证书后启动密钥交换协议。密钥交换协议主要任务为:①产生主密钥;②由主密钥产生两个会话密钥,服务器到客户端及客户端到服务器的密钥;③由主密钥参数产生两个消息认证码密钥。

2)TLS协议工作原理

完整的TLS协议体系结构包含:TLS握手协议、TLS密钥交换协议和TLS报警协议。三者均为应用层协议,而TLS记录协议属于第3层协议。

TLS握手协议

握手协议建立在可靠传输协议之上,负责协商客户端及服务器之间会话的加密参数。当一个TLS客户端和服务器第一次通信时,它们首先选择一致的协议版本,协商加密算法及认证方式,并利用公钥算法协商共享密钥。

具体协议流程如下:

  1. TLS客户端连接至TLS服务器,并要求验证服务器身份。
  2. TLS服务器发送其数字证书至客户端,客户端验证其身份。这个过程可以包括整个证书链,该证书链可以追溯到根证书颁发机构。通过检查证书的有效日期并验证数字证书中所包含的可信CA的数字签名来确认TLS服务器公钥的真实性。
  3. 服务器向客户端请求证书验证客户端身份。但由于缺乏PKI系统的支撑,大多数TLS服务器不进行客户端验证。
  4. 协商用于消息加密的加密算法和用于完整性检验的Hash算法,通常由客户端提供它所支持的所有算法列表,然后由服务器端选择最合适的密码算法。
  5. 客户端生成一个随机数,并使用服务器证书中的公钥进行加密,并将密文发送给TLS服务器。
  6. TLS发送另一随机数作为回应。
  7. 对以上两个随机数进行Hash运算,从而生成会话密钥。其中,最后三步用于协商会话密钥。

TLS记录协议

TLS记录协议用于在实际数据传输开始前通信双方进行身份认证、协商加密算法及加密密钥等功能。发送方将应用消息分割为可管理的数据块,然后与密钥一起进行Hash运算,生成一个消息认证码MAC,最后将组合结果进行加密并传输。接收方接收数据并解密,校验MAC,并对分段消息进行重新组合,提供给上层应用。

TLS告警协议

TLS告警协议用于提示何时TLS协议发生了错误,或者两个主机之间的会话中止时间确定。只有在TLS协议失效时警报协议才会被激活。

3)TLS协议的发展

TLS 1.2的改进

TLS协议提出至今经历了多次版本更新,低版本的TSL(如TLS 1.0)存在许多严重漏洞,如无法抵抗降级攻击、中间人攻击等,其使用的加密算法Export加密算法目前已被摒弃。行业内从2008年TLS 1.2提出正式进入新版本过渡期,其引入SHA-256 Hash算法代替SHA-1,能够有效增强数据完整性。TLS 1.2与TLS 1.0 步骤及原理基本一致,TLS 1.2为目前网络兼容性最强的版本,其与TLS低版本主要有以下改进:

  1. 密钥协商验证操作中,对Finished报文(即表示密钥协商正确)的计算由MD5及SHA-1组合的方式升级为单次SHA-256,有效提高效率及安全性。
  2. TLS 1.2在证书验证操作及服务器密钥交换环节中的报文增加2bytes说明其签名算法的类型,可以兼容多项公钥签名及Hash算法。
  3. TLS 1.2相较 TLS 1.0版本,数据加密的方式也有所提升。在密码分组链接模式(cipher block chaining ,CBC)下对数据加密前填充的随机数可不进行加解密操作,优化传输及计算效率。但TLS 1.2因兼容老旧的CBC模式,也出现漏洞导致了中间人攻击的成功。

TLS 1.3

TLS 1.3版本2018年提交为正式标准,本次更新包含了在安全、性能和隐私方面的重大改进。TLS1.3在总体步骤上与前版本保持一致,但在握手阶段修改协议内容,有效提高了连接效率,相比于TLS 1.2减少一半的握手时间,对于移动端网站访问能减少近100ms的延迟。

  1. 客户端发出访问请求,该段为明文发送。其中包含了客户端支持的协议版本、会话ID、密码套件、压缩算法、以及扩展消息(密钥共享要求、预共享密钥、预共享密钥模式)。该步骤主要目的为密钥交换、选择TLS协议版本和加密算法并且协商算法所需参数。
  2. TLS服务器端进行密钥交换及认证,发送选定的加密算法、证书。使用证书对应的私钥对握手消息签名,将结果发送给客户端。根据客户端提供的参数生成临时公钥,并计算出用于加密HTTP消息的共享密钥。服务端生成的临时公钥通过KeyShare消息发送给客户端。该步骤主要目的为建立其他握手协议的参数,例如确定应用层协议。
  3. 客户端进行证书验证,发送其证书、验证结果、Finshed报文至服务器端,此步骤主要目的为对客户端进行认证并完成密钥确认。
  4. 客户端与服务器使用协商好的共享密钥对应用数据进行加密传输。
  5. TLS 1.3握手协议不再支持静态RSA密钥交换,需要使用具有前向安全性的DH密钥协商协议,但仅需一次交互即可完成握手。

此外,TLS 1.3与前版本比较有以下差异:

引入了PSK(共享密钥)协商机制并支持在握手中的应用数据传输及零往返时间(0-RTT),减少交互轮数,高效建立连接。但零往返时间将导致有过交互记录的客户端及服务器记住彼此,忽略安全检查,使用之前的密钥开展即时通信,可能带来安全隐患。

摒弃了3-DES、RC4及AES-CBC等加密方案,废弃了SHA1、MD5等Hash算法,提高连接安全性。

ServerHello后的握手消息均进行加密传输,减少空口传输可见明文。

禁止加密报文的压缩及收发双方的重协商,防止降级攻击,攻击者无法通过使用旧版本协议攻击已知漏洞。

摒弃DSA证书的使用。

以上更新有效提高了TLS协议的安全性及连接效率,目前Chrome和Firefox等主流浏览器已支持TLS 1.3协议。


「 2. IPSEC

1)IPSec协议简介

IPSec协议在IPv6的制定过程中产生,用于提供IP层的安全。鉴于IPv4的应用仍然很广泛,IPSec也支持IPv4。IPSec协议由AH协议和ESP协议提供了两种工作模式,AH协议和ESP协议可以组合使用也可以单独使用。

AH、ESP或AH+ESP既可以在隧道模式中使用,又可以在传输模式中使用。隧道模式在IP子网之间建立一个安全通道,允许每个子网中的所有主机用户访问对方子网中的所有服务和主机。传输模式在两个主机之间以端对端的方法提供安全通道,并且在整个通信路径的建立和数据的传递过程中采用了身份认证、数据保密性和数据完整性等安全保护措施。

2)IPSec协议工作原理

IPSec通过查询安全策略数据库(security policy database,SPD)决定如何对接收到的IP数据包进行处理。IPSec对数据包的处理包括进行加密和认证,以保证在公用网络上传输数据的机密性、认证性和完整性。

IPSec无论是对数据包进行加密还是认证,均有两种工作模式:传输模式和隧道模式。

(1)传输模式。采用传输模式时,IPSec只对IP数据包的净荷进行加密或认证。此时,封装数据包继续使用原IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到原IP头部和传输层头部之间。IPSec传输模式如图4-16所示。

(2)隧道模式。采用隧道模式时,IPSec对整个IP数据包进行加密或认证。此时需要产生一个新的IP头,IPSec头被放在新产生的IP头和原IP数据包之间,从而组成一个新的IP头。IPSec隧道模式如图4-17所示。

「 3. TLS及IPSEC的对比 」

远程客户采用TLS协议的VPN访问内部网中的一些基于Web的应用,而IPSec在为企业高级用户提供远程访问及为企业提供LAN-to-LAN隧道连接方面具有绝对的优势。普遍的共识是典型TLS VPN适合普通员工远程访问基于Web的应用,IPSec VPN及TLS VPN用于智能制造信息网络中不同的领域,不可互相取代。

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦龙zmc

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值