SSL/TLS、IPSec简介

1. SSL/TLS

1.1 SSL/TSL定义

SSL(Secure Socket Layer,安全套接层),是为网络通信提供安全及数据完整性的一种安全协议。
TSL(Transport Layer Security,传输层安全),是以SSL为基础的升级版。

1.2 SSL/TSL目的

1.2.1 HTTP的安全风险

  • 窃听风险,第三方可以获取通信内容。
  • 篡改风险,第三方可以修改通信内容。
  • 冒充风险,第三方可以冒充他人身份进行通信。

1.2.2 SSL/TSL设计目的

  • 1.对网络数据进行加密传输。 ——机密性
  • 2.对数据内容进行校验。 ——完整性
  • 3.防止他人假冒身份。 ——可靠性

1.2.3 SSL/TSL主要功能

  • 通过加密算法,对传输数据进行加密
  • 校验数据的完整性,通过HASH算法。
  • 配备身份证书,验证通信双方身份。

1.2.4 SSL/TSL主要工作流程

基本过程
根据设计的要求,我们可以很自然的写出SSL过程的两个基本步骤。

  1. 验证通信双方身份(PKI技术)。
  2. 对通信内容进行加密传输,同时通过HASH算法验证数据的完整性。

其中,再加密传输的过程中,考虑到传输速度,因此需要用对称加密算法加密网页内容。
同时考虑到对称加密算法密钥的安全性问题,我们采取非对称加密算法对每次会话所采用的对称加密算法的公钥进行加密,并在每次会话时双方协商生成一个本次会话用的公钥。

因此,我们的基本过程可以细化为一下三个步骤:

  1. 客户端向服务器端索要并验证非对称加密算法的公钥。(将公匙存放在可信的证书中,此时也同时验证了对话双方的身份)
  2. 双方协商生成对称加密算法的"对话密钥"。
  3. 双方采用对称加密算法和它的"对话密钥"进行加密通信。

其中前两步称之为握手阶段(handshake),第三步即是使用HTTP协议传输经过加密的内容,因此这里只详细握手阶段的步骤。

1.2.5 handshake详细流程

在这里插入图片描述
整个Handshake阶段可由上图概括,每个步骤包含的内容以及含义如下:

  1. ClientHello:客户端支持的协议版本、客户端生成的随机数,支持的加密算法,支持的压缩方法。
  2. SeverHello:确认使用的协议版本,确认使用的加密方法。
  3. Servercertificate:服务器证书信息。
  4. SercerKeyExchange:会话密钥交换信号,其中包含由服务器端生成的一个随机数。
  5. CertificateRequest:对client端证书请求。(部分服务器没有客户端证书认证,因此没有相应步骤)
  6. ServerHelloDone:用以告知客户端ServerHello消息结束的信号,同时包含相应的数据完整性验证的内容。
  7. ClientCertificate:客户端证书信息,如果服务器为要求,则此处显示为0
  8. ClentKeyExchange:会话密钥交换信号,包含客户端生成会话过程中的第三个随机数(客户端生成的第二个)。
  9. CertificateVerity:若服务器要求了证书,且发送了证书信息,则此处包含客户端对证书的签名。
  10. ChangeClpherSpec:表示之后的数据传输均以加密形式传输。
  11. Finished:用以告知服务器消息结束的信号,同时包含相应的数据完整性验证的内容。
  12. ClientKeyExchange:密钥交换信号,此时,服务器已知3个随机数,服务器通过相应的选择的算法,将三个随机数内容组合在一起,生成之后对称加密算法中需要用到的公钥,并通过其他双方已知信息对其进行填充至合适长度,加密后发送给客户端,用以之后客户端解密数据信息.

2. IPSec

2.1 IPsec的历史

从1986年到1991年,NSA在安全数据网络系统(SDNS)计划下资助了互联网安全协议的开发。摩托罗拉等公司协商开始生产网络加密设备。该工作于1988年由NIST公开发布,其中第3层安全协议(SP3)以后将作为ISO标准网络层安全协议(NLSP)。[3]

从1992年到1995年,各个研究小组改进了SDNS的SP3。 1992年,美国海军研究实验室(NRL)启动了SIPP项目,研究和实施IP加密。 1993年12月,实验软件IP加密协议(swIPe)由哥伦比亚大学的SunOS和John Ioannidis等人在AT&T贝尔实验室开发。 1由白宫资助,1993年魏旭在swIPe基础上加强了IP安全协议,并开发了数据加密标准的设备驱动程序。1994年12月,带有集成3DES硬件加密功能的防火墙产品开始提供商业IP安全性保障。在此期间,互联网工程任务组(IETF)IP安全工作组成立,将这些工作标准化为一套开放,免费提供的安全扩展,称为IPsec。

2.2 IPSEC的含义

IPSec(InternetProtocolSecurity)是一种了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH)、封装安全载荷协议(ESP)、密钥管理协议(IKE)和用于网络认证及加密的一些算法等。这些协议用于提供数据认证、数据完整性和加密性三种保护形式。作为运行于网络层的协议簇,它能有效确保其上层的TCP/IP协议运行安全.

2.3 IPsec的安全特点有:

  • 不可否认性
    "不可否认性"可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过消息。"不可否认性"是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于在理论上只有发送者才唯一拥有私钥,也只有发送者才可能产生该数字签名,所以只要数字签名通过验证,发送者就不能否认曾发送过该消息。但"不可否认性"不是基于认证的共享密钥技术的特征,因为在基于认证的共享密钥技术中,发送方和接收方掌握相同的密钥。
  • 反重播性
    "反重播"确保每个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利用、重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包冒取非法访问权(即使这种冒取行为发生在数月之后)。
  • 数据完整性
    防止传输过程中数据被篡改,确保发出数据和接收数据的一致性。IPSec利用Hash函数为每个数据包产生一个加密检查和,接收方在打开包前先计算检查和,若包遭篡改导致检查和不相符,数据包即被丢弃。
  • 数据可靠性(加密)
    在传输前,对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信息也无法被读。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。
  • 认证
    数据源发送信任状,由接收方验证信任状的合法性,只有通过认证的系统才可以建立通信连接。

2.4 IPSEC的概念

IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(认证头)、ESP(封装安全载荷)、IKE(密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,它们两个可以单独作为认证,也可结合认证.当结合认证时,先进行ESP封装,再AH封装. IKE协议用于密钥交换。

2.5 安全协议

  • AH
    为了保证数据的完整性不被破坏,提供数据源认证、数据完整性校验和防报文重放功能,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是使用身份验证报文头,将验证信息添加到IP数据包端,可选择的认证算法有MD5、SHA-1等。
  • ESP
    提供加密、数据源认证、数据完整性校验和防报文重放功能。在每一个数据包的包头后添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择哈希校验完整性.
  • IKE
    IKE是一个应用层的协议,能够在不安全的网络环境中为IPsec提供自动交换密钥、建立SA的服务,简化IPsec的使用,配置和维护工作。通过数据交换计算出双方共享的密钥,其安全程度足以满足暴力破解的要求.
    IKE使用了两个阶段为IPsec进行密钥协商并建立SA:
    (1)第一阶段,通信各方彼此间建立了一个已通过身份认证和安全保护的通道.
    (2)第二阶段,用在第一阶段建立的安全隧道为IPsec协商安全服务,即为IPsec协商具体的SA,建立用于最终的IP数据安全传输的IPsec SA。
    在这里插入图片描述
    IKE的作用:
  1. 自动建立IPsec参数,降低了手工配置的复杂度。
  2. 提供端与端之间动态认证。
  3. IKE协议中的DH交换过程,每次的计算和产生的结果都是不相关的。每次SA的建立都运行DH交换过程,保证了每个SA所使用的密钥互不相关。
  4. IPsec使用AH或ESP报文头中的序列号实现防重放。此序列号是一个32比特的值,此数溢出后,为实现防重放,SA需要重新建立,这个过程需要IKE协议的配合。
  5. 对安全通信的各方身份的认证和管理,将影响到IPsec的部署。IPsec的大规模使用,必须有CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。

2.6 SA:安全联盟

SA是通信对等体间对某些要素的约定,例如,使用哪种协议(AH、ESP还是两者结合使用)、协议的封装模式(传输模式和隧道模式)、加密算法(DES、3DES和AES)、特定流中保护数据的共享密钥以及密钥的生存周期等。建立SA的方式有手工配置和IKE自动协商两种。SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。

SA是单向工作的,所以在两个同等通信单位间的双向通信,最少需要两个SA。同时,如果两个对等体希望同时使用AH和ESP来进行安全通信,则每个对等体都会针对每一种协议来构建一个独立的SA。

2.7 封装模式

2.7.1 隧道(tunnel)模式:

用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。

2.7.2 传输(transport)模式:

只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

2.7.3 IPsec使用算法

网络上有很多关于算法的相关资源,其工作原理不再详细叙述.

2.7.4 认证算法

主要采用MD5和SHA-1两种,均是将可变长度的数据包映射为定常的数据,通过比对定常数据验证数据是否完整.其安全性和速度性、复杂性不再赘述.

2.7.5 加密算法

分为DES,3DES,AES,其(最少)密钥长分别为56,168,128,复杂度和安全性也是越来越高的.

2.8 参考资料:

https://en.wikipedia.org/wiki/IPsec#History
http://www.h3c.com/cn/d_200812/624140_30003_0.htm

猜你喜欢

转载自blog.csdn.net/weixin_43255133/article/details/83714674
今日推荐