目录
1、网络层的安全协议:IPsec 协议族
(1)IP 安全数据报格式
(2)互联网密钥交换 IKE (Internet Key Exchange) 协议
2、运输层的安全协议:TLS 协议
3、系统安全:防火墙与入侵检测
1、网络层的安全协议:IPsec 协议族
什么是 IPsec 协议?
IPsec 就是 “IP安全(security)” 的缩写。IPsec 并不是单一的协议,而是能够在 IP 层提供互联网通信安全的协议族。实际上,IPsec 包含了一个通用框架和若干加密算法,具相当的灵活性和可扩展性。IPsec 允许通信双方从中选择合适的算法和参数,以及是否使用鉴别。
IPsec 协议族中的协议可划分为以下三个部分://用来提供网络层的安全通信
- IP 安全数据报格式的两个协议:鉴别首部 AH (Authentication Header) 协议和封装安全有效载荷 ESP (Encapsulation Security Payload) 协议。//数据报
- 加密算法。//算法
- 互联网密钥交换 IKE (Internet Key Exchange) 协议。//密钥交换
(1)IP 安全数据报格式
上边提到 IP 安全数据报格式有两个协议,即 AH 和 ESP。
AH 协议提供源点鉴别和数据完整性,但不能保密。
ESP 协议比 AH 协议复杂得多,它提供源点鉴别、数据完整性和保密。IPsec 支持 IPv4 和 IPv6。AH 协议的功能都已包含在 ESP 协议中,因此使用 ESP 协议就可以不使用 AH 协议。
使用 ESP或 AH 协议的 IP 数据报称为 IP 安全数据报 (或 IPsec 数据报),它可以在两台主机之间、两个路由器之间或一台主机和一个路由器之间发送。
IP安全数据报有以下两种不同的工作方式:
第一种工作方式是 运输方式(transport mode)。运输方式是在整个运输层报文段的前后分别添加若干控制信息,再加上 IP 首部,构成 IP 安全数据报,如下图所示:
第二种工作方式是 隧道方式(tunnel mode)。隧道方式是在原始的 IP 数据报的前后分别添加若干控制信息,再加上新的 IP 首部,构成一个IP安全数据报,如下图所示:
无论使用哪种方式,最后得出的数据报的 IP 首部都是不加密的。只有使用不加密的 IP首部,互联网中的各个路由器才能识别 IP 首部中的有关信息,把 IP安全数据报在不安全的互联网中进行转发,从源点安全地转发到终点。目前使用最多的就是隧道方式。
(2)互联网密钥交换 IKE (Internet Key Exchange) 协议
IKE 的用途主要是为 IP 安全数据报创建安全关联 SA。
那什么是安全关联 SA 呢?
在发送 IP 安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接,这个连接就是安全关联 SA (Security Association)。安全关联是从源点到终点的单向连接,它能够提供安全服务。如要进行双向安全通信,则两个方向都需要建立安全关联。安全关联 SA 上传送的就是 IP 安全数据报。//单向的安全数据报传输通道
IKE 是个非常复杂的协议,IKEv2 是其新的版本,IKEv2 以另外三个协议为基础:
- Oakley——密钥生成协议。
- 安全密钥交换机制 SKEME (Secure Key Exchange MEchanism) ——用于密钥交换的协议。它利用公钥加密来实现密钥交换协议中的实体鉴别。
- 互联网安全关联和密钥管理协议 ISAKMP (Internet Secure Association and Key ManagementProtocol) —— 用于实现 IKE 中定义的密钥交换,使 IKE 的交换能够以标准化、格式化的报文创建安全关联 SA。
2、运输层的安全协议:TLS 协议
运输层安全协议曾经有两个,即:安全套接字层 SSL (Secure Socket Layer) 和 运输层安全 TLS (Transport Layer Security)。
TLS 协议的发展历史:
SSL 协议是 Netscape 公司在 1994 年开发的安全协议,广泛应用于基于万维网的各种网络应用。SSL 作用在系统应用层的 HTTP 和运输层之间,在 TCP 之上建立起一个安全通道,为通过 TCP 传输的应用层数据提供安全保障。
1995 年 Netscape 公司把协议 SSL 转交给 IETF,希望能够把 SSL 进行标准化。1999 年 IETF 在 SSL 3.0 的基础上设计了协议 TLS 1.0,为所有基于 TCP 的网络应用提供安全数据传输服务。后来,为了应对网络安全的变化,IETF 也不断地对 TLS 版本进行升级,目前使用得比较多的运输层安全协议有 TLS 1.2 和 TLS 1.3 等。//虽然TLS源于SSL,但两者并不兼容
TLS 协议在运输层和应用层之间。虽然协议 SSL 2.0/3.0 均已被废弃不用了,但现在还经常能够看到把 “SSL/TLS” 视为 TLS 的同义词。这是因为协议 TLS 本来就源于 SSL (但并不兼容),而现在旧协议 SSL 也被更新为新协议 TLS 了。
应用层使用协议 TLS 最多的就是 HTTP,但并非仅限于 HTTP。因为协议 TLS 是对 TCP 加密,因此任何在 TCP 之上运行的应用程序都可以使用协议 TLS。
TLS 协议是怎么生效的呢?
TLS 协议具有双向鉴别的功能。但大多数情况下使用的是单向鉴别,即客户端(浏览器)需要鉴别服务器。也就是说,浏览器 A 要确信即将访问的网站服务器 B 是安全和可信的。这必须要有以下两个前提:
- 首先,服务器 B 必须能够证明本身是安全和可信的。因此服务器 B 需要有一个证书来证明自己。现在我们假定服务器 B 已经持有了有效的 CA 证书。这正是运输层安全协议 TLS 的基石。//服务器持有有效CA证书
- 其次,浏览器 A 应具有一些手段来证明服务器 B 是安全和可信的。//浏览器能够鉴别
那么浏览器如何证明服务器 B 是安全可信的呢?
生产电脑操作系统的厂商为了方便用户,把当前获得公众信任的许多主流认证中心 CA 的根证书,都已内置在其操作系统中。这些根证书上都有认证中心 CA 的公钥 ,而且根证书都用 CA 的私钥 进行了自签名(防止伪造)。用户为了验证要访问的服务器是否安全和可信,只要打开电脑中的浏览器,就可查到操作系统收藏的某个根认证中心的根 CA 证书,并可以利用证书上的公钥 对 B 的证书进行验证。//使用CA公钥进行验证
那么TLS 协议的工作原理是怎样的呢?
如下图所示,在客户与服务器双方已经建立了 TCP 连接后,就可开始执行 TLS 协议。这里主要有两个阶段,即握手阶段和会话阶段。在握手阶段,TLS 使用其中的握手协议,而在会话阶段,TLS 使用其中的记录协议。
握手阶段要验证服务器是安全可信的,同时生成在后面的会话阶段所需的共享密钥,以保证双方交换的数据的私密性和完整性。//验证服务器安全可信+生成密钥
(1)协商加密算法:客户 A 向服务器 B 发送自己选定的加密算法(包括密钥交换算法)。服务器 B 从中确认自己所支持的算法,同时把自己的 CA 数字证书发送给 A。
(2)证书鉴别:客户 A 用数字证书中 CA 的公钥对数字证书进行验证鉴别。
(3)生成主密钥:客户 A 按照双方确定的密钥交换算法生成 主密钥MS (Master Secret)。客户 A 用 B 的公钥 对主密钥 MS 加密,得出加密的主密钥 ,发送给服务器 B。//这里的主密钥是对称加密密钥
(4)解密密钥:服务器 B 用自己的私钥把主密钥解密出来得到 MS。这样,客户 A 和服务器 B 都拥有了为后面的数据传输使用的 共同的主密钥 MS。
3、系统安全:防火墙与入侵检测
防火墙(firewall) 作为一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险。
由于防火墙不可能阻止所有入侵行为,作为系统防御的第二道防线,入侵检测系统 IDS (IntrusionDetection System) 通过对进入网络的分组进行深度分析与检测发现疑似入侵行为的网络活动,并进行报警以便进一步采取相应措施。
什么是防火墙?
防火墙是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间,目的是实施访问控制策略,访问控制策略可以由使用防火墙的单位自行制定。
如上图,防火墙(淡蓝色长方体) 位于互联网和内部网络之间。互联网这边是防火墙的外面,而内联网这边是防火墙的里面。防火墙里面的网络称为 “可信的网络”(trusted network),防火墙外面的网络称为 “不可信的网络”(untrusted network)。
防火墙技术一般分为以下两类:
(1)分组过滤路由器 是一种具有分组过滤功能的路由器,它根据过滤规则对进出内部网络的分组执行转发或者丢弃(即过滤)。过滤规则是基于分组的网络层或运输层首部的信息,例如:源/目的 IP 地址、源/目的端口、协议类型(TCP或UDP),等等。
我们知道,TCP 的端口号指出了在 TCP 上面的应用层服务。例如,端口号 23 是 TELNET,端口号 119 是新闻网 USENET,等等。所以,如果在分组过滤器中将所有目的端口号为 23 的 入分组(incomingpacket) 都进行阻拦,那么所有外单位用户就不能使用 TELNET 登录到本单位的主机上。同理,如果某公司不愿意其雇员在上班时花费大量时间去看互联网的 USENET 新闻,就可将目的端口号为 119 的 出分组(outgoing packet) 阻拦住,使其无法发送到互联网。//通过端口号进行过滤
分组过滤路由器的优点是简单高效,且对于用户是透明的,但不能对高层数据进行过滤。例如,不能禁止某个用户对某个特定应用进行某个特定的操作,不能支持应用层用户鉴别等。这些功能需要使用应用网关技术来实现。
(2)应用网关 也称为 代理服务器(proxy server),它在应用层通信中扮演报文中继的角色。一种网络应用需要一个应用网关,例如,万维网缓存就是一种万维网应用的代理服务器。在应用网关中,可以实现基于应用层数据的过滤和高层用户鉴别。
所有进出网络的应用程序报文都必须通过应用网关。当某应用客户进程向服务器发送一份请求报文时,先发送给应用网关,应用网关在应用层打开该报文,查看该请求是否合法。如果请求合法,应用网关以客户进程的身份将请求报文转发给原始服务器。如果不合法,报文则被丢弃。
例如,一个邮件网关在检查每一个邮件时,会根据邮件地址,或邮件的其他首部,甚至是报文的内容(如,有没有“导弹”“核弹头”等关键词)来确定该邮件能否通过防火墙。
应用网关也有一些缺点。首先,每种应用都需要一个不同的应用网关(可以运行在同一台主机上)。其次,在应用层转发和处理报文,处理负担较重。另外,对应用程序不透明,需要在应用程序客户端配置应用网关地址。
通常可将这两种技术结合使用,上图所示的防火墙就同时具有这两种技术。它包括两个分组过滤路由器和一个应用网关,它们通过两个局域网连接在一起。
什么是入侵检测系统?
防火墙试图在入侵行为发生之前阻止所有可疑的通信。但事实是不可能阻止所有的入侵行为,有必要采取措施在入侵已经开始,但还没有造成危害或在造成更大危害前,及时检测到入侵,以便尽快阻止入侵,把危害降低到最小。
入侵检测系统 IDS 就是为了解决上述问题的一种技术。IDS 对进入网络的分组执行深度分组检查,当观察到可疑分组时,向网络管理员发出告警或执行阻断操作(由于 IDS 的“误报”率通常较高,多数情况不执行自动阻断)。IDS 能用于检测多种网络攻击,包括网络映射、端口扫描、DoS 攻击、蠕虫和病毒、系统漏洞攻击等。
入侵检测方法一般可以分为基于特征的入侵检测和基于异常的入侵检测两种。
基于特征的 IDS 维护一个所有已知攻击标志性特征的数据库。每个特征是一个与某种入侵活动相关联的规则集,这些规则可能基于单个分组的首部字段值或数据中特定比特串,或者与一系列分组有关。当发现有与某种攻击特征匹配的分组或分组序列时,则认为可能检测到某种入侵行为。这些特征和规则通常由网络安全专家生成,机构的网络管理员定制并将其加入到数据库中。基于特征的IDS 只能检测已知攻击,对于未知攻击则束手无策。//被动防守
基于异常的 IDS 通过观察正常运行的网络流量,学习正常流量的统计特性和规律,当检测到网络中流量的某种统计规律不符合正常情况时,则认为可能发生了入侵行为。例如,当攻击者在对内网主机进行 ping 搜索时,或导致 ICMP ping 报文突然大量增加,与正常的统计规律有明显不同。但区分正常流和统计异常流是一件非常困难的事情。至今为止,大多数部署的 IDS 主要是基于特征的。//主动学习
至此,全文结束。