计算机网络 第七章:网络安全

1.网络安全问题概述

1.1 计算机网络面临的安全性威胁

计算机网络的通信面临两大类威胁:

  1. 被动攻击:指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获。
  2. 主动攻击:
    1. 篡改:攻击者故意篡改、中断网络上传送的报文。
    2. 恶意程序:计算机病毒、蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等。
  3. 拒绝服务 DoS(Denial of Service):若从互联网上的成百上千个网站集中攻击一个网站,则称为分布式拒绝服务 DDOS。

1.2 安全的计算机网络

一个安全的计算机网络应设法达到以下四个目标:

  1. 保密性:只有信息的发送方和接收方才能懂得所发送信息的内容。
  2. 端点鉴别:必须能够鉴别信息的发送方和接收方的真实身份。
  3. 信息的完整性:必须确认所收到的信息都是完整的。
  4. 运行的安全性:计算机网络运行的安全性。

1.3 数据加密模型

一般的数据加密模型,用户 A 向 B 发送明文 X,但通过加密算法 E 运算后,就得出密文 Y。

2.两类密码体制

2.1 对称密钥密码体制

加密密钥与解密密钥是使用相同的密码体制。数据加密标准 DES 属于对称密钥密码体制。它由 IBM 公司研制出,于 1977 年被美国定为联邦信息标准后,在国际上引起了极大的重视。ISO 曾将 DES 作为数据加密标准。

DES 的保密性仅取决于对密钥的保密,而算法是公开的。DES 的问题是它的密钥长度。56 位长的密钥意味着共有 $2^{56}$ 种可能的密钥。(1999 年被破解)

2.2 公钥密码体制(非对称密钥)

公钥密码体制(又称为公开密钥密码体制)的概念是由斯坦福大学的研究人员 Diffie 与 Hellman 于 1976 年提出的。公钥密码体制使用不同的加密密钥与解密密钥

公钥密码体制的产生主要有两个方面的原因,一是由于对称密钥密码体制的密钥分配问题,二是由于对数字签名的需求。

公钥密码体制提出不久,人们就找到了三种公钥密码体制。目前最著名的是由美国三位科学家 Rivest, Shamir 和 Adleman 于 1976 年提出并在 1978 年正式发表的 RSA 体制,它是一种基于数论中的大数分解问题的体制。

在公钥密码体制中,加密密钥 PK(public key,即公钥)是向公众公开的,而解密密钥SK(secret key,即私钥或秘钥)则是需要保密的。加密算法 E解密算法 D 也都是公开的。

公钥密码体制的加密和解密过程有如下特点:

(1)密钥对产生器产生出接收者 B 的一对密钥:加密密钥 $PK_B$ 和解密密钥 $SK_B$ 。发送者 A 所用的加密密钥 $PK_B$ 就是接收者 B 的公钥,它向公众公开。而 B 所用的解密密钥 $SK_B$ 就是接收者 B 的私钥,对其他人都保密。

(2)发送者 A 用 B 的公钥 $PK_B$ 通过 E 运算对明文 X 加密,得出密文 Y,发送给 B。

$$
Y=E_{PK_B}(X)
$$

B 用自己的私钥 $SK_B$ 通过 D 运算进行解密,恢复出明文,即

$$
D_{SK_B}(Y)=D_{SK_B}(E_{PK_B}(X))=X
$$

(3)虽然在计算机上可以容易地产生成对的$PK_B$ 和 $SK_B$ ,但从已知的 $PK_B$ 实际上不可能。

(4)虽然公钥可用来加密,但却不能用来解密,即

$$
D_{PK_B}(E_{PK_B}(X)) \ne X
$$

(5)先后对 X 进行 D 运算和 E 运算或进行 E 运算和 D 运算,结果都是一样的:

$$
E_{PK_B}(D_{SK_B}(X))=D_{SK_B}(E_{PK_B}(X))=X
$$

请注意,任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量,而不是简单地取决于加密的体制(公钥密码体制或传统加密体制)。

3.数字签名

书信或文件是根据亲笔签名或印章来证明其真实性的。但在计算机网络中传送的文电又如何盖章呢?这就要使用数字签名。数字签名必须保证能够实现以下三点功能:

  1. 接收者能够核实发送者对报文的签名。这叫做报文鉴别
  2. 接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这叫做报文的完整性
  3. 发送者事后不能抵赖对报文的签名。这叫做不可否认

4.鉴别

4.1 报文鉴别

4.1.1 密码散列函数

D 运算和 E 运算都需要花费非常多的计算机的 CPU 时间。因此,我们需要找出一种相对简单的方法对报文进行鉴别。这种方法就是使用密码散列函数(cryptographic hash function)

散列函数具有以下两个特点:

  1. 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。散列函数的输出叫做散列值。
  2. 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。这就是说,散列函数的输入和输出并非一一对应的,而是多对一的。

在密码学中使用的散列函数称为密码散列函数,其最重要的特点就是:要找到两个不同的报文,它们具有同样的密码散列函数输出,在计算上是不可行的。

4.1.1 实用的密码散列函数 MD5 和 SHA-1

通过许多学者的不断努力,已经设计出一些实用的密码散列函数(或称为散列算法),其中最出名的就是 MD5 和 SHA-1。MD 就是 Message Digest 的缩写,意思是报文摘要。

MD5算法的大致过程如下:

  1. 先把任意长的报文按模 $2^{64}$ 计算其余数(64位),追加在报文的后面。
  2. 在报文和余数之间填充 1~512 位,使得填充后的总长度是 512 的整数倍。填充的首位是 1,后面都是 0。
  3. 把追加和填充后的报文分割为一个个 512 位的数据块,每个 512 位的报文数据再分成 4 个 128 位的数据块依次送到不同的散列函数进行 4 轮计算。每一轮又都按 32 位的小数据块进行复杂的运算。一直到最后计算出 MD5 报文摘要代码(128位)。

4.1.3 报文鉴别码

下面进一步讨论在报文鉴别中怎样使用散列函数。下面给出的三个简单步骤:

  1. 用户 A 首先根据自己的明文 X 计算出散列 H(X)(例如,使用 MD5)。为方便起见,我们把得出的散列 H(X) 记为 H。
  2. 用户 A 把散列 H 拼接在明文 X 的后面,生成了扩展的报文 (X, H),然后发送给 B。
  3. 用户 B 收到了这个扩展的报文 (X, H)。因为散列的长度 H 是早已知道的固定值,因此可以把收到的散列 H 和明文 X 分离开。B 通过散列函数的运算,计算出收到的明文 X 的散列 H(X)。若 H(X)=H,则 B 似乎可以相信所收到的明文是 A 发送过来的。

4.2 实体鉴别

实体鉴别和报文鉴别不同。报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次

但是,实体鉴别有漏洞叫“重放攻击”。C 截断 A 的信息,伪装成 C 发送给 B,让 B 误认为 C 就是 A。

5.密钥分配

5.1 对称密钥的分配

目前常用的密钥分配方式是设立密钥分配中心 KDC(Key Distribution Center)。KDC 是大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)。

5.2 公钥的分配(非对称密钥)

公钥的分配通过认证中心 CA(Certification Authority),它一般由政府出资建立。每个实体都有 CA 发来的证书,里面有公钥及其拥有者的标识信息(人名或 IP 地址)。此证书被 CA 进行了数字签名。

6.互联网使用的安全协议

6.1 网络层安全协议

6.1.1 IPsec 协议族概述

IPsec 并不是一个单一协议,而是能够在 IP 层提供互联网通信安全的协议族(不太严格的名词“IPsec协议”也常见到)。IPsec 并没有限定用户必须使用何种特定的加密和鉴别算法。实际上,IPsec 是个框架,它允许通信双方选择合适的算法和参数(例如,密钥长度)。为保证互操作性,IPsec 还包含了一套加密算法,所有 IPsec 的实现都必须使用。

IPsec 协议族中的协议可划分为以下三个部分:

  1. IP 安全数据报格式的两个协议:鉴别首部 AH(Authentication Header)协议和封装安全有效载荷 ESP(Encapsulation Security Payload)协议。
  2. 有关加密算法的三个协议
  3. 互联网密钥交换 IKE(Internet Key Exchange)协议

IP 安全数据报有以下两种不同的工作方式:

  1. 运输方式(transport mode):运输方式是在整个运输层报文段的前后分别添加若干控制信息,再加上 IP 首部,构成 IP 安全数据报。
  2. 隧道方式(tunnel mode):隧道方式是在原始的IP数据报的前后分别添加若干控制信息,再加上新的 IP 首部,构成一个 IP 安全数据报。

无论使用哪种方式,最后得出的 IP 安全数据报的 IP 首部都是不加密的。只有使用不加密的 IP 首部,互联网中的各个路由器才能识别 IP 首部中的有关信息,把 IP 安全数据报在不安全的互联网中进行转发,从源点安全地转发到终点。

6.1.2 安全关联 SA

在发送 IP 安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接,即安全关联 SA(Security Association)。这样,传统的互联网中无连接的网络层就变为了具有逻辑连接的一个层。安全关联是从源点到终点的单向连接,它能够提供安全服务。

6.1.3 IP 安全数据报的格式

6.1.4 IPsec 的其他构件

  • 安全关联数据库 SAD:SA 存放的地方。
  • 安全策略数据库 SPD:指明什么样的数据报需要进行 IPsec 处理科。

6.2 运输层安全协议

广泛使用的有两个协议:

  • 安全套接字层 SSL(Secure Socket Layer)
  • 运输层安全 TLS(Transport Layer Security)

SSL 在 TLS 协议的基础上,SSL 增强了 TCP,更安全了。

SSL 提供的安全服务可归纳为以下三种:

  1. SSL 服务器鉴别,允许用户证实服务器的身份。
  2. SSL 客户鉴别,SSL的可选安全服务,允许服务器证实客户的身份。
  3. 加密的 SSL 会话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改。

SSL 的工作过程:

  1. 协商加密算法。浏览器 A 向服务器 B 发送浏览器的 SSL 版本号和一些可选的加密算法。B 从中选定自己所支持的算法(如RSA),并告知 A。
  2. 服务器鉴别。服务器 B 向浏览器 A 发送包含其 RSA 公钥的数字证书。A 使用该证书的认证机构 CA 公开发布的 RSA 公钥对该证书进行验证。
  3. 会话密钥计算。由浏览器 A 随机产生一个秘密数。用服务器 B 的 RSA 公钥进行加密后发送给 B。双方根据协商的算法产生共享的对称会话密钥。
  4. 安全数据传输。双方用会话密钥加密和解密它们之间传送的数据并验证其完整性。

6.3 应用层安全协议(电子邮件的安全协议)

PGP(Pretty Good Privacy)是 Zimmermann 于 1995 年开发的。它是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。

7.防火墙与入侵检测

7.1 防火墙

  • 一种访问控制技术,严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在的入侵风险。(第一道防线)

  • 入侵检测系统 IDS,对进入网络分组的深度分析与检测,发现可疑入侵行为。(第二道防线)

防火墙技术一般分为以下两类:

  1. 分组过滤路由器:是一种具有分组过滤功能的路由器,它根据过滤规则对进出内部网络的分组执行转发或者丢弃(即过滤)。过滤规则是基于分组的网络层或运输层首部的信息。
  2. 应用网关(代理服务器):所有讲出网络的应用程序报文都必须通过应用网关。

7.2 入侵检测系统

入侵检测方法一般可以分为基于特征的入侵检测基于异常的入侵检测两种。

  • 基于特征的 IDS:维护一个所有已知攻击标志性特征的数据库。每个特征是一个与某种入侵活动相关联的规则集。当发现有与某种攻击特征匹配的分组或分组序列时,则认为可能检测到某种入侵行为。
  • 基于异常的 IDS:通过观察正常运行的网络流量,学习正常流量的统计特性和规律,当检测到网络中流量的某种统计规律不符合正常情况时,则认为可能发生了入侵行为。

8.一些未来的发展方向

  1. 椭圆曲线密码(Elliptic Curve Cryptography,简写为ECC)与 AES 这一系统现在已广泛用于电子护照中,也是下一代金融系统使用的加密系统。
  2. 移动安全(Mobile Security)移动通信带来的广泛应用(如移动支付,Mobile Payment)向网络安全提出了更高的要求。
  3. 量子密码(Quantum Cryptography)量子计算机的到来将使得目前许多使用中的密码技术无效,后量子密码学(Post-Quantum Cryptography)的研究方兴未艾。

计算机网络 第七章:网络安全
https://pudding.nousbuild.com/computer-network-7/
作者
Haoning Wu
发布于
2022年7月1日
更新于
2024年10月14日
许可协议