本章重点:
- 计算机网络面临的安全性威胁和计算机网络安全的主要问题
- 对称密钥密码体制和公钥密码体制的特点
- 数字签名与鉴别的概念
- 网络层安全协议 IPsec 协议族和运输层安全协议 SSL/TLS 的要点
- 系统安全:防火墙与入侵检测
目录
一、网络安全问题概述
1.1安全性威胁
计算机网络上的通信面临以下两大类威胁:被动攻击和主动攻击
被动攻击(又称流量分析)
- 指攻击者从网络上窃听他人的通信内容
- 通常把这类攻击成为截获
- 在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU,以便了解所交换的数据的某种性质。但不干扰信息流
- 对付被动攻击可采用各种数据加密技术
主动攻击
- 篡改——故意篡改网络上传送的报文。这种攻击方式有时也称为更改报文流
- 恶意程序——种类繁多,对网络安全威胁较大的主要包括:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等
- 拒绝服务——指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪
-
对付主动攻击则需将加密技术与适当的鉴别技术相结合
一个安全的计算机网络应达到四个目标:保密性、端点鉴别、信息的完整性、运行的安全性
1.2数据加密模型
用户 A 向 B 发送明文 X,通过加密算法 E 运算后,就得出密文 Y
密钥
- 加密和解密用的密钥 K 是一串秘密的字符串(即比特串)
- 明文通过加密算法 E 和加密密钥 K 变成密文
- 接收端利用解密算法 D 运算和解密密钥 K 解出明文 X。解密算法是加密算法的逆运算
- 加密密钥和解密密钥可以一样,也可以不一样
- 密钥通常是由密钥中心提供
- 当密钥需要向远地传送时,一定要通过另一个安全信道
二、两类密码体制
2.1对称密钥密码体制
常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。这种加密系统又称为对称密钥系统
数据加密标准 DES
- 数据加密标准 DES 属于对称密钥密码体制,是一种分组密码
- 在加密前,先对整个明文进行分组。每一个组长为 64 位。然后对每一个 64 位 二进制数据进行加密处理,产生一组 64 位密文数据。最后将各组密文串接起来,即得出整个的密文
- 使用的密钥为 64 位(实际密钥长度为 56 位,有 8 位用于奇偶校验)
- DES 的保密性仅取决于对密钥的保密,其算法是公开的
现在已经设计出搜索 DES 密钥的专用芯片。56位 DES 已不再认为是安全的了
三重 DES
使用两个 56 位的密钥。把一个 64 位明文用一个密钥加密,再用另一个密钥解密,然后再使用第一个密钥加密
2.2公钥密码体制
产生原因
- 常规密钥密码体制的密钥分配问题
- 对数字签名的需求
任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量
公钥算法特点
- 密钥对产生器产生出接收者 B 的一对密钥:加密密钥 PK
和解密密钥 SK
- 加密密钥 PK
就是接收者B的公钥,它向公众公开
- 解密密钥 SK
就是接收者B的私钥,对其他人都保密
- 发送者 A 用 B 的公钥 PK
对明文 X 加密(E 运算)后,在接收者 B 用自己的私钥 SK
解密(D 运算),即可恢复出明文
- 加密密钥是公开的,但不能用它来解密
- 加密和解密运算可以对调,即加密和解密是互逆的
公开密钥与对称密钥的区别
- 在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方既可用此密钥加密明文,并发送给对方,也可接收密文,用同一密钥对密文解密。这种保密通信仅限于持有此密钥的双方(如再有第三方就不保密了)
- 在使用公开密钥时,在通信信道上可以是多对一的单向保密通信
如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法
如果某一信息用私有密钥加密,那么,它必须用公开密钥解密。这就是实现数字签名的方法
三、数字签名
用于证明真实性
数字签名必须保证以下三点
- 报文鉴别——接收者能够核实发送者对报文的签名(证明来源)
- 报文的完整性——发送者事后不能抵赖对报文的签名(防否认)
- 不可否认——接收者不能伪造对报文的签名(防伪造)
现在已有多种实现各种数字签名的方法。但采用公钥算法更容易实现
四、鉴别
在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用鉴别
鉴别与授权是不同的概念。授权涉及到的问题是:所进行的过程是否被允许(如是否可以对某文件进行读或写)
鉴别细分为两种
- 报文鉴别:即鉴别所收到的报文的确是报文的发送者所发送的,而不是其他人伪造的或篡改的。这就包含了端点鉴别和报文完整性的鉴别
- 实体鉴别:仅仅鉴别发送报文的实体。实体可以是一个人,也可以是一个进程(客户或服务器)。这就是端点鉴别
4.1报文鉴别
许多报文并不需要加密,但却需要数字签名,以便让报文的接收者能够鉴别报文的真伪
4.1.1密码散列函数
密码散列函数是一种相对简单的对报文进行鉴别的方法
散列函数特点
- 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫做散列值,或更简单些,称为散列
- 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。这就是说,散列函数的输入和输出并非一一对应的,而是多对一的
在密码学中使用的散列函数称为密码散列函数,具有单向性的特点
4.1.2报文鉴别码 MAC
为防范伪造,可以对散列进行一次加密。散列加密后的结果叫做报文鉴别码 MAC
现在整个的报文是不需要加密的。虽然从散列H导出报文鉴别码 MAC 需要加密算法,但由于散列 H 的长度通常都远远小于报文 X 的长度,因此这种加密不会消耗很多的计算资源。因此使用鉴别码 MAC 就能够很方便地保护报文的完整性
4.2实体鉴别
报文鉴别是对每一个收到的报文都要鉴别报文的发送者
实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次
最简单的实体鉴别过程
可以使用共享的对称密钥实现实体鉴别
A 发送给 B 的报文的被加密,使用的是对称密钥 K。B 收到此报文后,用共享对称密钥 K
进行解密,因而鉴别了实体 A 的身份。 因为该密钥只有 A 和 B 知道
但是存在明显漏洞
入侵者 C 可以从网络上截获 A 发给 B 的报文。C 并不需要破译这个报文,而是直接把这个截获的、由A加密的报文发送给 B,使 B 误认为 C 就是 A。然后 B 就向伪装是 A 的 C 发送应发给 A 的报文
这种攻击被称为重放攻击。C 甚至还可以截获 A 的 IP 地址,然后把 A 的 IP 地址冒充为自己的 IP 地址(这叫做 IP 欺骗),使 B 更加容易受骗
措施是使用不重数进行鉴别
不重数就是一个不重复使用的大随机数,即“一次一数”。由于不重数不能重复使用,所以 C 在进行重放攻击时无法重复使用所截获的不重数
五、互联网使用的安全协议
5.1网络层安全协议
5.1.1 IPsec 协议
IPsec 并不是一个单个的协议,而是能够在 IP 层提供互联网通信安全的协议族
IPsec 由三部分组成
- IP 安全数据报格式的两个协议
- 鉴别首部 AH协议:提供源点鉴别和数据完整性,但不能保密
- 封装安全有效载荷 ESP协议:提供源点鉴别、数据完整性和保密
- 有关加密算法的三个协议
- 互联网密钥交换 IKE 协议
安全关联 SA
在使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接。此逻辑连接叫做安全关联 SA
IPsec 就把传统互联网无连接的网络层转换为具有逻辑连接的网络层
有如下特点:
- 安全关联是从源点到终点的单向连接,它能够提供安全服务
- 在安全关联 SA 上传送的就是 IP 安全数据报
- 如要进行双向安全通信,则两个方向都需要建立安全关联
- 若 n 个员工进行双向安全通信,一共需要创建 (2 + 2n) 条安全关联 SA
5.1.2 IP 安全数据报的格式
IP 安全数据报有两种工作方式
1、运输方式
在整个运输层报文段的前后分别添加若干控制信息,再加上 IP 首部,构成 IP 安全数据报
把整个运输层报文段都保护起来,适合于主机到主机之间的安全传送
需要使用 IPsec 的主机都运行 IPsec协议
2、隧道方式
在原始的 IP 数据报的前后分别添加若干控制信息,再加上新的 IP 首部,构成一个 IP 安全数据报
这需要在 IPsec 数据报所经过的所有路由器上都运行 IPsec 协议
隧道方式常用来实现虚拟专用网 VPN
无论使用哪种方式,最后得出的 IP 安全数据报的 IP 首部都是不加密的
所谓“安全数据报”是指数据报的数据部分是经过加密的,并能够被鉴别的。通常把数据报的数据部分称为数据报的有效载荷
5.2应用层安全协议
现在广泛使用安全套接字层 SSL 和运输层安全 TLS 协议
SSL / TLS建立在可靠的 TCP 之上,与应用层协议独立无关
SSL / TLS基本目标:实现两个应用实体之间的安全可靠通信
在发送方,SSL 接收应用层的数据,对数据进行加密,然后把加了密的数据送往 TCP 套接字。在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层
SSL 提供的安全服务
- SSL 服务器鉴别,允许用户证实服务器的身份。支持 SSL 的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥
- SSL 客户鉴别,SSL 的可选安全服务,允许服务器证实客户的身份
- 加密的 SSL 会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改
SSL 安全会话建立过程
- 协商加密算法。①浏览器 A 向服务器 B 发送浏览器的 SSL 版本号和一些可选的加密算法。②B 从中选定自己所支持的算法(如RSA),并告知 A
- 服务器鉴别。③服务器 B 向浏览器 A 发送包含其 RSA 公钥的数字证书。④A 使用该证书的认证机构 CA 的公开发布的RSA公钥对该证书进行验证
- 会话密钥计算。由浏览器 A 随机产生一个秘密数。⑤用服务器 B 的 RSA 公钥进行加密后发送给 B。⑥双方根据协商的算法产生共享的对称会话密钥
- 安全数据传输。
双方用会话密钥加密和解密它们之间传送的数据并验证其完整
六、系统安全
6.1防火墙
防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施访问控制策略
防火墙内的网络称为“可信的网络”,而将外部的因特网称为“不可信的网络”
防火墙可用来解决内联网和外联网的安全问题
功能
- 阻止:阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)
- 允许:功能与“阻止”恰好相反
防火墙必须能够识别通信量的各种类型。不过在大多数情况下防火墙的主要功能是“阻止”
6.2入侵检测系统
入侵检测系统 IDS能够在入侵已经开始,但还没有造成危害或在造成更大危害前,及时检测到入侵,以便尽快阻止入侵,把危害降低到最小
IDS 对进入网络的分组执行深度分组检查,当观察到可疑分组时,向网络管理员发出告警或执行阻断操作(由于 IDS 的“误报”率通常较高,多数情况不执行自动阻断)
IDS 能用于检测多种网络攻击,包括网络映射、端口扫描、DoS 攻击、蠕虫和病毒、系统漏洞攻击等
两种入侵检测方法
1、基于特征的 IDS
维护一个所有已知攻击标志性特征的数据库
这些特征和规则通常由网络安全专家生成,机构的网络管理员定制并将其加入到数据库中
基于特征的 IDS 只能检测已知攻击,对于未知攻击则束手无策
2、基于异常的 IDS
通过观察正常运行的网络流量,学习正常流量的统计特性和规律。当检测到网络中流量某种统计规律不符合正常情况时,则认为可能发生了入侵行为
至今为止,大多数部署的 IDS 主要是基于特征的,尽管某些 IDS 包括了某些基于异常的特性