《网络安全教程》由会员分享,可在线阅读,更多相关《网络安全教程(70页珍藏版)》请在金锄头文库上搜索。
1、网络安全教程第第 7 7 章章 网络安全网络安全 7.1 网络安全问题概述7.2 两类密码体制7.3 数字签名7.4 鉴别7.5 密钥分配7.6 因特网使用的安全协议7.7 链路加密与端到端加密7.8 防火墙最早的密码 在古希腊,人们用一条带子缠绕在一根木棍上,沿木棍纵轴方向写好明文,解下来的带子上就只有杂乱无章的密文字母。解密者只需找到相同直径的木棍,再把带子缠上去,沿木棍纵轴方向即可读出有意义的明文。 公元前1世纪,恺撒密码被用于高卢战争中,这是一种简单易行的单字母替代密码。在战前,恺撒设计了一种对重要的军事信息进行加密的方法,即使这些信息被截获,敌方也不一定能看懂。其实,恺撒密码字母移位
2、的位数就是一种简单易行的单字母替代密码。中国古代的密码 在中国,很早就使用一种叫“阴符”的军事密码。它比较简单,使用时双方各执一半,以验真假。宋朝时,官方便将常用的40个军事短语,分别用40个字来代替,然后编出一首40个字的诗,作为破译的“密码本”。 到了明朝,戚继光发明了反切码,他还专门编了两首诗歌,作为“密码本”。这两首诗歌是反切码全部秘密所在,它使用汉字注音方法中的“反切法”,取声母和韵母按照顺序进行编号,再进行读取。其原理与现代密电码的设计原理完全一样,但却比现代密码更难破译。最著名的密码“谜” 世界上最著名的密码叫“谜”。“谜”是世界上第一部机械密码机,其工作原理奠定了当今计算机加密
3、的基础。这种密码融数学、物理、语言、历史、国际象棋原理、纵横填字游戏等为一体,被希特勒称为“神都没办法破译的世界第一密码”。 一份德国报告称:“谜”能产生220亿种不同的密钥组合,假如一个人日夜不停地工作,每分钟测试一种密钥的话,需要约4.2万年才能将所有的密钥可能组合试完。 二战期间,“谜”被德军大量用于铁路、企业当中,令德军保密通讯技术处于领先地位。影视作品反映的密码学问题在20世纪20年代,由工程师阿瑟歇尔皮斯(Arthur Scherbius)发明,在第二次世界大战中被纳粹党使用的英格玛机使用了多电机转子,创造出了那时世界上最为复杂的编码。但是在战争初期联盟国就成功破译了英格玛,这多亏
4、了研究人员在英国布莱奇利公园(Bletchley Park)进行了杰出和不停歇的编码破译工作。在英格玛反编码过程中还发明了一个新的编码,即Ultra。英格玛密码机二战期间盟军使用的密码机7.1 网络安全问题概述 7.1.1 计算机网络面临的安全性威胁 计算机网络上的通信面临以下的四种威胁: (1) 截获从网络上窃听他人的通信内容。 (2) 中断有意中断他人在网络上的通信。 (3) 篡改故意篡改网络上传送的报文。 (4) 伪造伪造信息在网络上传送。 截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。对网络的被动攻击和主动攻击 截获篡改伪造中断被动攻击主 动 攻 击目的站
5、源站源站源站源站目的站目的站目的站被动攻击和主动攻击 在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU 而不干扰信息流。 主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理。 更改报文流 拒绝报文服务 伪造连接初始化 (1) 防止析出报文内容;(2) 防止通信量分析;(3) 检测更改报文流;(4) 检测拒绝报文服务;(5) 检测伪造初始化连接。计算机网络通信安全的目标 (1) 计算机病毒会“传染”其他程序的程序,“传染”是通过修改其他程序来把自身或其变种复制进去完成的。(2) 计算机蠕虫通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。(3) 特洛伊木马一
6、种程序,它执行的功能超出所声称的功能。(4) 逻辑炸弹一种当运行环境满足某种特定条件时执行其他特殊功能的程序。 恶意程序(rogue program) 7.1.2 计算机网络安全的内容1. 保密性2. 安全协议的设计 3. 访问控制 明文 X 截获密文 Y7.1.3 一般的数据加密模型 加密密钥 K明文 X密文 Y截取者篡改ABE 运算加密算法D 运算解密算法因特网解密密钥 K一些重要概念 密码编码学与密码分析学合起来即为密码学(cryptology)。 密码编码学(cryptography)是密码体制的设计学,而密码分析学(cryptanalysis)则是在未知密钥的情况下从密文推演出明文或
7、密钥的技术。 如果不论截取者获得了多少密文,但在密文中都没有足够的信息来唯一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。 如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。 7.2 两类密码体制 7.2.1 对称密钥密码体制 所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。 这种加密系统又称为对称密钥系统。数据加密标准 DES 数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。 在加密前,先对整个明文进行分组。每一个组长为 64 位。 然后对每一个 64 位 二进制数据进行加密处理,产生一组 64 位密文数
8、据。 最后将各组密文串接起来,即得出整个的密文。 使用的密钥为 64 位(实际密钥长度为 56 位,有 8 位用于奇偶校验)。 DES算法的处理流程DES 的保密性 DES 的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。 DES 是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。 目前较为严重的问题是 DES 的密钥的长度。 现在已经设计出来搜索 DES 密钥的专用芯片。 7.2.2 公钥密码体制 公钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是
9、不可行的”密码体制。 公钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。 现有最著名的公钥密码体制是RSA 体制,它基于数论中大数分解问题的体制,由美国三位科学家 Rivest, Shamir 和 Adleman 于 1976 年提出并在 1978 年正式发表的。加密密钥与解密密钥 在公钥密码体制中,加密密钥(即公钥) PK 是公开信息,而解密密钥(即私钥或秘钥) SK 是需要保密的。 加密算法 E 和解密算法 D 也都是公开的。 虽然秘钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。 应当注意 任何加密方法的安
10、全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公钥密码体制并不具有比传统加密体制更加优越之处。 由于目前公钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。 公钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更简单。 公钥算法的特点 发送者 A 用 B 的公钥 PKB 对明文 X 加密(E 运算)后,在接收者 B 用自己的私钥 SKB 解密(D 运算),即可恢复出明文: (7-4) 解密密钥是接收者专用的秘钥,对其他人都保密。 加密密钥是公开的,但不能用它来解密,即 (7-5)公钥算法的特点(续) 加密和解密的运算可以对调,即 在计算机上可容易地产生成对
11、的 PK 和 SK。 从已知的 PK 实际上不可能推导出 SK,即从 PK 到 SK 是“计算上不可能的”。 加密和解密算法都是公开的。(7-6)公钥密码体制 密文Y E 运算加密算法D 运算解密算法加密解密明文 X明文 X ABB 的私钥 SKB密文Y 因特网B 的公钥 PKB7.3 数字签名 数字签名必须保证以下三点:(1) 报文鉴别接收者能够核实发送者对报文的签名;(2) 报文的完整性发送者事后不能抵赖对报文的签名;(3) 不可否认接收者不能伪造对报文的签名。 现在已有多种实现各种数字签名的方法。但采用公钥算法更容易实现。密文 数字签名的实现 D运算明文 X明文 X ABA 的私钥 SK
12、A因特网签名 核实签名E运算密文 A 的公钥 PKA数字签名的实现 因为除 A 外没有别人能具有 A 的私钥,所以除 A 外没有别人能产生这个密文。因此 B 相信报文 X 是 A 签名发送的。 若 A 要抵赖曾发送报文给 B,B 可将明文和对应的密文出示给第三者。第三者很容易用 A 的公钥去证实 A 确实发送 X 给 B。 反之,若 B 将 X 伪造成 X ,则 B 不能在第三者前出示对应的密文。这样就证明了 B 伪造了报文。 具有保密性的数字签名 核实签名解密 加密 签名 E 运算D 运算明文 X明文 X ABA 的私钥 SKA因特网E 运算B 的私钥 SKBD 运算加密与解密签名与核实签名
13、B 的公钥 PKBA 的公钥 PKA密文7.4 鉴别 在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用鉴别(authentication) 。 报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)的真伪。 使用加密就可达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。应当使接收者能用很简单的方法鉴别报文的真伪。 鉴别与授权不同 鉴别与授权(authorization)是不同的概念。 授权涉及到的问题是:所进行的过程是否被允许(如是否可以对某文件进行读或写)。 7.4.1 报文鉴别 许多报文并不需要加密但却需要数字签名,
14、以便让报文的接收者能够鉴别报文的真伪。 然而对很长的报文进行数字签名会使计算机增加很大的负担(需要进行很长时间的运算)。 当我们传送不需要加密的报文时,应当使接收者能用很简单的方法鉴别报文的真伪。报文摘要 MD (Message Digest) A 将报文 X 经过报文摘要算法运算后得出很短的报文摘要 H。然后然后用自己的私钥对 H 进行 D 运算,即进行数字签名。得出已签名的报文摘要 D(H)后,并将其追加在报文 X 后面发送给 B。 B 收到报文后首先把已签名的 D(H) 和报文 X 分离。然后再做两件事。 用A的公钥对 D(H) 进行E运算,得出报文摘要 H 。 对报文 X 进行报文摘要
15、运算,看是否能够得出同样的报文摘要 H。如一样,就能以极高的概率断定收到的报文是 A 产生的。否则就不是。 报文摘要的实现 A比较签名 核实签名报文 XHD 运算D(H)A 的私钥报文 XD(H)B报文摘要报文 XD(H)发送 E 运算H签名的报文摘要H报文摘要运算A 的公钥报文摘要运算报文摘要报文摘要因特网报文摘要算法报文摘要算法就是一种散列函数。这种散列函数也叫做密码编码的检验和。报文摘要算法是防止报文被人恶意篡改。 报文摘要算法是精心选择的一种单向函数。可以很容易地计算出一个长报文 X 的报文摘要 H,但要想从报文摘要 H 反过来找到原始的报文 X,则实际上是不可能的。若想找到任意两个报
16、文,使得它们具有相同的报文摘要,那么实际上也是不可能的。 报文摘要的优点 仅对短得多的定长报文摘要 H 进行数字签名要比对整个长报文进行数字签名要简单得多,所耗费的计算资源也小得多。 但对鉴别报文 X 来说,效果是一样的。也就是说,报文 X 和已签名的报文摘要 D(H) 合在一起是不可伪造的,是可检验的和不可否认的。 7.4.2 实体鉴别 实体鉴别和报文鉴别不同。 报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次。 最简单的实体鉴别过程 A 发送给 B 的报文的被加密,使用的是对称密钥 KAB。 B 收到此报文后,用共享对称密钥 KAB 进行解密,因而鉴别了实体 A 的身份。 ABA, 口令KAB明显的漏洞 入侵者 C 可以从网络上截获 A 发给 B 的报文。C 并不需要破译这个报文(因为这可能很花很多时间)而可以直接把这个由 A 加密的报文发送给 B,使 B 误认为 C 就是 A。然后 B 就向伪装是 A 的 C 发送应发给 A 的报文。 这就叫做重放攻击(replay attack)。C 甚至还可以截获 A