浅析Internet上使用的安全协议

Internet上使用的安全协议

网络安全是分层实现的,从应用层安全到数据链路层安全。

一、运输层安全协议:安全套接字SSL

1.1.简介

  • SSL 是安全套接层 (Secure Socket Layer),可对万维网客户与服务器之间传送的数据进行加密和鉴别。
  • SSL 在双方的联络阶段协商将使用的加密算法和密钥,以及客户与服务器之间的鉴别。
  • 在联络阶段完成之后,所有传送的数据都使用在联络阶段商定的会话密钥。
  • SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport Layer Security)的基础。

1.2.SSL 的位置

image-20200206165343194

  • 在发送方,SSL 接收应用层的数据(如 HTTP 或 IMAP 报文),对数据进行加密,然后把加了密的数据送往运输层 TCP 套接字。

  • 在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。(发送方和接收方都有SSL层)

1.3.使用SSL技术的例子

image-20200206172009093

当我们访问网站时,一般不涉及输入账号密码等操作的网页使用的都是 "HTTP" 协议(使用80端口),即网站域名开头为:http://;当涉及账号密码等敏感信息的操作时,网站一般都会使用 "HTTPS"协议(使用443端口),"S"表示的即是SSL (Secure Socket Layer),即网站域名开头为:https://。

例如,我们访问中国工商银行的官网:

image-20200206170948893

在主页处的域名栏中可以发现浏览器提醒的 "不安全" 字样,实际上该主页使用的就是HTTP协议,即不加密信息,明文传输。由于这是谷歌浏览器,没有显示 "http://" 的域名前缀。

当点击登录时,跳转到另外一个网页:

image-20200206171337136

从网站域名开头的 "https://" 可以看出,涉及到账号密码等敏感信息的登录页面使用的是HTTPS协议,说明网页使用了SSL技术。

补充

HTTP协议使用了安全套接字(SSL)变成了HTTPS协议,使用的端口由80变为443,其他应用层的协议也可以使用安全套接字:

  • IMAPS:TCP-993;
  • POP3S:TCP-995;
  • SMTPS:TCP-465;

1.4.安全套接字实现的过程:https

image-20200206223547589

https既采用了对称加密的效率,也采用了非对称加密的安全。

通信前Web服务器先把证书中的公钥交给IE浏览器(客户),IE浏览器根据收到的公钥生成一个对称密钥,然后使用公钥加密对称密钥并发送给Web服务器。

Web服务器使用私钥解密收到的加密后的对称密钥,随后使用对称密钥加密需要传输的数据。在之后的通信中都采用该对称密钥对数据加密和解密。

在传输对称密钥的过程中使用非对称加密,在传输数据过程中使用对称加密。这样既保证了数据传输的安全,也提高了效率。

所以,在使用https通信的时候一开始都不会太快,因为要协商对称密钥,协商好之后才会快起来。

查看使用https网站的证书

例如:百度。

image-20200206224006290

点击 "锁" 图标。

image-20200206224100256

点击 "证书" 即可查看到该网站使用的证书。

image-20200206224149426

image-20200206224207086

1.5.SSL 实现的三个功能

  • SSL 服务器鉴别 :允许用户证实服务器的身份。具有 SSL 功能的浏览器维持一个表,上面有一些可信赖的认证中心 CA (Certificate Authority)和它们的公钥。
  • 加密的 SSL 会话 :客户和服务器交互的所有数据都在发送方加密,在接收方解密。
  • SSL 客户鉴别 :允许服务器证实客户的身份。

image-20200206224325686

上图为颁发给百度首页的证书,可以看到SSL除了可以加密会话信息之外,还可以鉴别服务器和客户身份。


二、网络层安全协议:IPSec

网络安全是分层实现的。

image-20200206225737400

  • 应用层安全:比如微软的 "Outlook" 邮箱,可以通过在应用程序中的某些设置实现数据传输的安全。应用层安全的特点为需要应用程序的支持。

  • 传输层安全:传输安全是通过夹在应用层和传输层中间的SSL层实现的,发送方的SSL可以将应用层的数据加密后给传输层,接收方的SSL传输层收到的数据解密后给应用层。SSL安全的特点为需要配置相应证书。

  • 网络层安全:属于底层安全,不需要应用程序支持,也不需要配置证书,对用户来说是透明的,即用户并不知道数据在该层进行了加密。

    比如,未加密的数据经过发送方的网卡实现了加密,接收方的网卡实现数据解密,整个过程用户是不知道的,是透明的,即使数据在传输过程中被截获了,第三方也不能破解其中内容;或者数据被篡改了,接收方也能发现,这便是网络层安全。

2.1.IPsec与安全关联 SA

网络层保密是指所有在 IP 数据报中的数据都是加密的。

**IPsec 中最主要的两个部分 **

  • 鉴别首部 AH (Authentication Header): AH鉴别源点和检查数据完整性,但不能保密。类似于数字签名,用于确保数据的来源并判断数据是否被更改。
  • 封装安全有效载荷 ESP (Encapsulation Security Payload):ESP 比 AH 复杂得多,它鉴别源点、检查数据完整性和提供保密。 类似于既使用数字签名,又使用共享密钥对数据进行加密。

**安全关联 SA(Security Association) **

  • 在使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联 SA

  • IPsec 就把传统的因特网无连接的网络层转换为具有逻辑连接的层。

  • SA(安全关联)是构成IPSec的基础,是两个通信实体经协商(利用IKE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。

2.2.安全关联的特点

  • 安全关联是一个单向连接。它由一个三元组唯一地确定,包括:

    (1) 安全协议(使用 AH 或 ESP)的标识符;

    (2) 此单向连接的源 IP 地址;

    (3) 一个 32 位的连接标识符,称为安全参数索引 SPI (Security Parameter Index);

  • 对于一个给定的安全关联 SA,每一个 IPsec 数据报都有一个存放 SPI 的字段。通过此 SA 的所有数据报都使用同样的 SPI 值。

2.3.查看安全关联

  • 在Windows系统开始页面输入命令mmc打开 "Microsoft 管理控制台",打开 "文件" 选择 "添加/删除管理单元"。

image-20200207211626876

  • 找到并添加 "IP安全监视器"。

image-20200207211821913

  • 回到控制台界面,可在IP安全监视器中找到 "安全关联" 选项,选中后可查看已建立的安全关联。

image-20200207212859987

2.4.鉴别首部协议 AH

  • 在使用鉴别首部协议 AH 时,把 AH 首部插在原数据报数据部分的前面,同时把 IP 首部中的协议字段置为 51。
  • 在传输过程中,中间的路由器都不查看 AH 首部。当数据报到达终点时,目的主机才处理 AH 字段,以鉴别源点和检查数据报的完整性。

image-20200207231300350

AH首部

(1) 下一个首部(8 位)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。

(2) 有效载荷长度(8 位),即鉴别数据字段的长度,以 32 位字为单位。

(3) 安全参数索引 SPI (32 位)。标志安全关联,两个计算机进行通讯时的SPI值是固定的。

(4) 序号(32 位)。鉴别数据字段的长度,以32 位字为单位。

(5) 保留(16 位)。为今后用。

(6) 鉴别数据(可变)。为 32 位字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。

2.5.封装安全有效载荷 ESP

使用 ESP 时,IP 数据报首部的协议字段置为 50。当 IP 首部检查到协议字段是 50 时,就知道在 IP 首部后面紧接着的是 ESP 首部,同时在原 IP 数据报后面增加了两个字段,即 ESP 尾部和 ESP 数据。

  • ESP 首部:里面有标识一个安全关联的安全参数索引 SPI (32 位),和序号(32 位)。
  • ESP 尾部:里面有下一个首部(8 位,作用和 AH 首部的一样)。ESP 尾部和原来数据报的数据部分一起进行加密,因此攻击者无法得知所使用的运输层协议。
  • ESP 鉴别:和 AH 中的鉴别数据是一样的。因此,用 ESP 封装的数据报既有鉴别源站和检查数据报完整性的功能,又能提供保密。

image-20200207232719822

2.6.设置本地计算机的IP安全策略

  • 在计算机的 "开始" 界面搜索 "本地安全策略"。

image-20200207115239305

  • 右键 "IP安全策略" 打开菜单,选择 "创建 IP 安全策略"。

image-20200207115445503

  • 进入 "IP安全策略向导" ,创建一个自定义的 IP安全策略,随后一直 "下一步" 结束向导。

image-20200207120033791

image-20200207120152009

image-20200207120247539

这里的 "激活默认规则" 指的是,当没有指定规则时,使用默认的规则。

image-20200207120323944

  • 进入自定义IP安全策略的属性界面,去掉默认勾选的 "使用添加向导" 这样可以看到更多的细节,然后点击 "添加",添加新的IP安全规则。

image-20200207120926871

进入 "新规则 属性" 界面,在 "IP筛选器列表" 选项中可选择和添加 IP筛选器列表,它的作用是:指定受此新规则影响的网络流量。比如所有的 IP 通讯、所有的 ICMP 通讯等,即设置允许接收从哪里来或到哪里去的数据。

image-20200207121257916

  • 点击 "添加" 进入 "IP 筛选器列表"界面,自定义IP 筛选器列表。

image-20200207124730121

  • 去掉默认勾选的 "使用添加向导" 选项,继续点击 "添加" ,进入 "IP 筛选器 属性" 界面。该界面可以设置 IP筛选器 的地址、协议和描述信息。

image-20200207122229921

  • 在 "地址" 选项卡的 "源地址" 选项中可以设置 与本计算机通信的流量数据中的源地址。

image-20200207122623280

  • 同样也可以设置目标地址。

image-20200207122659055

  • 在 "协议" 选项卡中,可以设置通信的协议类型和相应的端口。

image-20200207122830457

image-20200207122843818

  • 在 "描述" 选项卡可给自定义的IP筛选器添加描述。

image-20200207122959980

  • 编辑完 IP 筛选器属性后,回到 "IP筛选器列表" 可看到刚才添加的IP筛选器。

image-20200207124912045

  • 点击 "确认" ,回到 "新规则 属性" 界面,可在 "IP 筛选器列表" 中看到刚才自定义的IP筛选器列表。

image-20200207124948681

在 "筛选器操作" 选项卡中,可以指定如何保障新建的IP筛选器列表的网络流量的安全,即指定在 "IP 筛选器列表" 中设置的允许通行的流量使用的安全方法(AH或ESP等)。同样不使用向导,点击 "添加",添加筛选器的操作。

image-20200207145554515

  • 在进入的 "新筛选器操作 属性" 界面中,可以设置对应的安全方法,比如可以无条件阻止或许可之前选定的 IP 筛选列表中的通信流量,也可以在协商安全的情况下进行通信。我们选中 "协商安全" 选项,然后点击 "添加" ,添加对应的安全方法。

image-20200207150110642

  • 进入 "新增安全方法" 界面,可以看到有两种安全方法,一种为 "完整性和加密",相当于既使用数字签名也使用共享密钥加密;另一种为 "仅保持完整性",相当于数字签名。这便是IPSec中的AH协议和ESP协议这两种协议。

image-20200207150150691

  • 选择 "自定义" 选项,再点击 "设置" ,进入 "自定义安全方法设置" 界面。在该界面中可以选择使用的安全协议AH或者ESP及相应的算法,也可以设置会话密钥生成的间隔(密钥生成时间):每传输多少数据或每经过多长时间生成新密钥。

image-20200207150854020

  • 设置完相应的安全方法后回到 "新筛选器操作 属性" 界面, 可以看到刚才自定义的安全方法及相应设置。在界面下方的三个选项中,前两项设置如字面意思,第三项设置意思为新密钥生成之后,以后加密数据都不会再使用旧密钥。随后点击 "应用" 和 "确认" 回到 "新规则 属性" 界面。

image-20200207152326688

image-20200207152720031

在 "身份验证方法" 选项卡中,可以指定通信双方建立信任关系的方法,即验证通信双方的身份。点击 "添加" 进入 "新身份验证方法 属性" 界面。

image-20200207153533208

  • 在该界面中,可以指定身份验证方法。例如通过设置共享密钥,来实现身份验证。

image-20200207153647894

  • 设置完成后点击 "确认" 可回到 "新规则 属性" 界面,可看到新增的身份验证方法。

image-20200207153856786

"新规则 属性" 界面的 "隧道设置" 选项卡可设置IPSec隧道相关属性。

image-20200207154209520

"新规则 属性" 界面的 "连接类型" 选项卡可指定使用新规则的连接类型。

image-20200207154307189

  • 这样便完成了新规则的属性设置,回到自定义IP安全策略的属性界面,可以看到添加的自定义列表。

image-20200207154549163

  • 点击 "确定",回到 "本地安全策略" 界面,可看到新增的 "toServer" 安全策略,此时该安全策略还未生效。右键选择 "分配" 可指派该策略,使计算机使用该安全策略进行通信。

image-20200207155041995

2.7.仿真练习

image-20200207160024218

把本地计算机当作Web服务器,按图中要求设置Web服务器到三台计算机的安全策略,其中计算机XP1的IP地址为192.168.80.101,XP2为192.168.80.102,XP3为192.168.80.103 。

  • 设置Web服务器到计算机XP1的安全策略:

    在 "新规则 属性" 界面的 "IP筛选器列表" 中添加新列表,指定通信的目标地址为XP1的IP地址:192.168.80.101 。

    image-20200207160540417

    image-20200207160815453

    在 "IP筛选器列表" 中选中 "toXP1" 的情况下,在 "筛选器操作" 中添加安全方法名称为改为AH。

    image-20200207161252422

    image-20200207161513023

    image-20200207161316685

    在 "IP筛选器列表" 中选中 "toXP1" 和 "筛选器操作" 中选中 "AH"的情况下,在 "身份验证方法" 中添加Web服务器到XP1的身份验证方法:使用共享密钥aaa。

    image-20200207161631766

    image-20200207161652255

    "隧道设置" 和 "连接类型" 两项该例中不用设置,由此完成从Web服务器到XP1安全策略的设置。

  • 设置Web服务器到计算机XP2和XP3的安全策略与到XP1的设置同理。最后,Web服务器把到XP1~XP3的安全策略都按要求添加了。

image-20200207162607923

  • 回到 "本地安全策略" 界面,选中新增的 "toXPS" 安全策略,右键 "分配" ,该安全策略生效,即按要求完成了Web服务器的安全策略设置。

image-20200207162855522

设置完之后,当Web服务器与XP1和XP2通信时,使用装包工具抓到的数据包只能看到加密后的数据;当Web服务器与XP3通信时,由于没有加密,所以抓包工具抓到的数据包能看到传输的明文。可在虚拟机中模拟四台计算机进行验证,这里就不展开了。

2.8.关于IP安全规则冲突问题

如下图所示,在IP安全规则中勾选的 "所有 IP 通讯量" 是否与其他勾选的安全规则冲突呢?是不冲突的,选择IP安全规则时采用的是最佳匹配原则。比如:老师说中午12点下课,班干部11:30开完会后可以离开,张三11点就能走,虽然时间不同,但是每个学生都清楚自己几点可以走,这就是最佳匹配。通信时,如果是与XP2通信,那么计算机就采用 "toXP2" 安全规则;与XP3通信,则采用 "toXP3" 安全规则;如果都不是,才采用 "所有 IP 通讯量" 安全规则。

image-20200207210220402

posted @ 2020-02-24 00:00  AhuntSun  阅读(...)  评论(...编辑  收藏