1.网络安全问题概述
随着计算机网络的发展,网络中的安全问题也日趋严重。本节讨论计算机网络面临的安全性威胁、安全的内容和一般的数据加密模型。
1.1 计算机网络面临的安全性威胁
计算机网络上的通信面临以下两大类威胁:被动攻击和主动攻击。
被动攻击
- 指攻击者从网络上窃听他人的通信内容。
- 通常把这类攻击称为截获。
- 在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU,以便了解所交换的数据的某种性质。但不干扰信息流。
- 这种被动攻击又称为流量分析 (traffic analysis)。
主动攻击
- 篡改——故意篡改网络上传送的报文。这种攻击方式有时也称为更改报文流。
- 恶意程序——种类繁多,对网络安全威胁较大的主要包括:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、后门入侵、流氓软件等。
- 拒绝服务——指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。
⑴.分布式拒绝服务 DDoS
若从互联网上的成百上千的网站集中攻击一个网站,则称为分布式拒绝服务 DDoS (Distributed Denial of Service)。
有时也把这种攻击称为网络带宽攻击或连通性攻击。
⑵.计算机网络通信安全的目标
对于主动攻击,可以采取适当措施加以检测。
对于被动攻击,通常却是检测不出来的。
根据这些特点,可得出计算机网络通信安全的目标:
- 防止分析出报文内容和流量分析。
- 防止恶意程序。
- 检测更改报文流和拒绝服务。
对付被动攻击可采用各种数据加密技术。
对付主动攻击则需将加密技术与适当的鉴别技术相结合。
1.2 安全的计算机网络
网络的安全性是不可判定的。
一个安全的计算机网络应达到四个目标:
- 保密性:只有信息的发送方和接收方才能懂得所发送信息的内容。
是网络安全通信的最基本的内容,也是对付被动攻击必须具备的功能。
为了使网络具有保密性,需要使用各种密码技术。 - 端点鉴别:鉴别信息的发送方和接收方的真实身份。
在对付主动攻击中是非常重要的。 - 端点鉴别:信息的内容未被篡改过。
在应对主动攻击中是必不可少的。
信息的完整性与端点鉴别往往是不可分割的。
在谈到“鉴别”时,也同时包含了端点鉴别和报文完整性。 - 端点鉴别:系统能正常运行并提供服务。
访问控制 (access control) 对计算机系统的安全性是非常重要的。必须对访问网络的权限加以控制,并规定每个用户的访问权限
1.3 数据加密模型
⑴.密钥
加密和解密用的密钥K (key) 是一串秘密的字符串(即比特串)。
明文通过加密算法 E 和加密密钥 K 变成密文:
接收端利用解密算法 D 运算和解密密钥 K 解出明文 X。解密算法是加密算法的逆运算。
加密密钥和解密密钥可以一样,也可以不一样。
密钥通常由密钥中心提供。
当密钥需要向远地传送时,一定要通过另一个安全信道。
⑵.一些重要概念
密码编码学 (cryptography) 是密码体制的设计学。
密码分析学 (cryptanalysis) 则是在未知密钥的情况下从密文推演出明文或密钥的技术。
密码编码学与密码分析学合起来即为密码学 (cryptology)。
如果不论截取者获得了多少密文,但在密文中都没有足够的信息来唯一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。
如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。
2.两类密码体制
2.1 对称密钥密码体制
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。这种加密系统又称为对称密钥系统。
⑴.数据加密标准 DES
数据加密标准 DES 属于对称密钥密码体制,是一种分组密码。
在加密前,先对整个明文进行分组。每一个组长为 64 位。
然后对每一个 64 位 二进制数据进行加密处理,产生一组 64 位密文 数据。
最后将各组密文串接起来,即得出整个的密文。
使用的密钥为 64 位(实际密钥长度为 56 位,有 8 位用于奇偶校验)。
⑵.DES 的保密性
DES 的保密性仅取决于对密钥的保密,其算法是公开的。目前较为严重的问题是 DES 的密钥的长度。现在已经设计出搜索 DES 密钥的专用芯片。56位 DES 已不再认为是安全的了。
⑶.三重 DES
使用两个 56 位的密钥。
把一个 64 位明文用一个密钥加密,再用另一个密钥解密,然后再使用第一个密钥加密,即
2.2 公钥密码体制
公钥密码体制(又称为公开密钥密码体制)使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
公钥密码体制产生的主要原因:
- 常规密钥密码体制的密钥分配问题。
- 对数字签名的需求。
⑴.加密密钥与解密密钥
在公钥密码体制中,加密密钥 PK(public key,即公钥)是向公众公开的,而解密密钥 SK(secret key,即私钥或秘钥)则是需要保密的。加密算法 E 和解密算法 D 也都是公开的。虽然私钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。
应当注意
任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公钥密码体制并不具有比传统加密体制更加优越之处。
由于目前公钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。
公钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更简单。
⑵.公钥算法的特点
密钥对产生器产生出接收者 B 的一对密钥:加密密钥 PKB 和解密密钥 SKB 。
加密密钥 PKB 就是接收者B的公钥,它向公众公开。
解密密钥 SKB 就是接收者B的私钥,对其他人都保密。
发送者 A 用 B 的公钥 PKB 对明文 X 加密(E 运算)后,接收者 B 用自己的私钥 SKB 解密(D 运算),即可恢复出明文:
加密密钥是公开的,但不能用它来解密,即:
加密和解密运算可以对调,即加密和解密是互逆的:
⑶.公钥密码体制
⑷.公开密钥与对称密钥的区别
在使用对称密钥时,由于双方使用同样的密钥,因此在通信信道上可以进行一对一的双向保密通信,每一方既可用此密钥加密明文,并发送给对方,也可接收密文,用同一密钥对密文解密。这种保密通信仅限于持有此密钥的双方(如再有第三方就不保密了)。
在使用公开密钥时,在通信信道上可以是多对一的单向保密通信。
⑸.公钥密码体制
如果某一信息用公开密钥加密,则必须用私有密钥解密,这就是实现保密的方法
如果某一信息用私有密钥加密,那么,它必须用公开密钥解密。这就是实现数字签名的方法
3.数字签名
用于证明真实性。
数字签名必须保证以下三点:
- 报文鉴别——接收者能够核实发送者对报文的签名(证明来源)
- 报文的完整性——发送者事后不能抵赖对报文的签名(防否认)
- 不可否认——接收者不能伪造对报文的签名(防伪造)
- 现在已有多种实现各种数字签名的方法。但采用公钥算法更容易实现。
⑴.基于公钥的数字签名的实现