1、计算机网络第 7 章 网络安全2023-5-12Computer Networks Ling Chuanfan2第 7 章 网络安全 7.1 网络安全问题概述 7.1.1 计算机网络面临的安全性威胁 7.1.2 计算机网络安全的内容 7.1.3 一般的数据加密模型7.2 两类密码体制 7.2.1 对称密钥密码体制 7.2.2 公钥密码体制2023-5-12Computer Networks Ling Chuanfan3第 7 章 网络安全(续)7.3 数字签名7.4 鉴别 7.4.1 报文鉴别 7.4.2 实体鉴别7.5 密钥分配 7.5.1 对称密钥的分配 7.5.2 公钥的分配2023-5
2、-12Computer Networks Ling Chuanfan4第 7 章 网络安全(续)7.6 因特网使用的安全协议 7.6.1 网络层安全协议 7.6.2 运输层安全协议 7.6.3 应用层的安全协议破7.7 链路加密与端到端加密 7.7.1 链路加密 7.7.2 端到端加密7.8 防火墙2023-5-12Computer Networks Ling Chuanfan57.1 网络安全问题概述 7.1.1 计算机网络面临的安全性威胁 n计算机网络上的通信面临以下的四种威胁:(1)截获从网络上窃听他人的通信内容。(2)中断有意中断他人在网络上的通信。(3)篡改故意篡改网络上传送的报文。
3、(4)伪造伪造信息在网络上传送。n截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。2023-5-12Computer Networks Ling Chuanfan6对网络的被动攻击和主动攻击 截获篡改伪造中断被动攻击主 动 攻 击目的站源站源站源站源站目的站目的站目的站2023-5-12Computer Networks Ling Chuanfan7被动攻击和主动攻击n在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU 而不干扰信息流。n主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理。n更改报文流 n拒绝报文服务 n伪造连接初始化 2023-5
4、-12Computer Networks Ling Chuanfan8(1)防止析出报文内容;(2)防止通信量分析;(3)检测更改报文流;(4)检测拒绝报文服务;(5)检测伪造初始化连接。计算机网络通信安全的目标 2023-5-12Computer Networks Ling Chuanfan9(1)计算机病毒会“传染”其他程序的程序,“传染”是通过修改其他程序来把自身或其变种复制进去完成的。(2)计算机蠕虫通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。(3)特洛伊木马一种程序,它执行的功能超出所声称的功能。(4)逻辑炸弹一种当运行环境满足某种特定条件时执行其他特殊功能的
5、程序。恶意程序(rogue program)2023-5-12Computer Networks Ling Chuanfan107.1.2 计算机网络安全的内容n保密性n安全协议的设计 n访问控制 2023-5-12Computer Networks Ling Chuanfan11明文 X 截获密文 Y7.1.3 一般的数据加密模型 加密密钥 K明文 X密文 Y截取者篡改ABE 运算加密算法D 运算解密算法因特网解密密钥 K2023-5-12Computer Networks Ling Chuanfan12替代密码n替代密码(substitution cipher)的原理可用一个例子来说明。(
6、密钥是 3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesar cipherFDHVDU FLSKHU明文密文明文 c 变成了密文 F2023-5-12Computer Networks Ling Chuanfan139.2.1 替代密码与置换密码n替代密码(substitution cipher)的原理可用一个例子来说明。(密钥是 3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesar cipherFDHVDU FLSKHU明文密文明文 a 变成了密文 D202
7、3-5-12Computer Networks Ling Chuanfan149.2.1 替代密码与置换密码n替代密码(substitution cipher)的原理可用一个例子来说明。(密钥是 3)abcdefghijklmnopqrstuvwxyzDEFGHIJKLMNOPQRSTUVWXYZABCcaesar cipherFDHVDU FLSKHU明文密文明文 e 变成了密文 H2023-5-12Computer Networks Ling Chuanfan15一些重要概念 n密码编码学(cryptography)是密码体制的设计学,而密码分析学(cryptanalysis)则是在未知密
8、钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为密码学(cryptology)。n如果不论截取者获得了多少密文,但在密文中都没有足够的信息来唯一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。n如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在计算上是安全的。2023-5-12Computer Networks Ling Chuanfan167.2 两类密码体制 7.2.1 对称密钥密码体制 n所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。n这种加密系统又称为对称密钥系统。2023-5-12Computer N
9、etworks Ling Chuanfan17数据加密标准 DESn数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。n在加密前,先对整个明文进行分组。每一个组长为 64 位。n然后对每一个 64 位 二进制数据进行加密处理,产生一组 64 位密文数据。n最后将各组密文串接起来,即得出整个的密文。n使用的密钥为 64 位(实际密钥长度为 56 位,有 8 位用于奇偶校验)。2023-5-1218DES 加密标准 L0R0L1=R0IPL2=R1L15=R14R1=L0 f(R0,K1)R2=L1 f(R1,K2)R15=L14 f(R14,K15)L16=R15R16=L15 f(R
10、15,K16)IP1fff输出密文 Y(64 bit)明文 X(64 bit)输入K16(48 bit)K2(48 bit)K1(48 bit)X0 的左半边 (32 bit)X0(64 bit)X0 的右半边 (32 bit)R16L16(64 bit)2023-5-12Computer Networks Ling Chuanfan19DES 的保密性nDES 的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。nDES 是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。n目前较为严重的问
11、题是 DES 的密钥的长度。n现在已经设计出来搜索 DES 密钥的专用芯片。2023-5-12Computer Networks Ling Chuanfan207.2.2 公钥密码体制n公钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。n公钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。n现有最著名的公钥密码体制是RSA 体制,它基于数论中大数分解问题的体制,由美国三位科学家 Rivest,Shamir 和 Adleman 于 1976 年提出并在 1978 年正式发表的。2
12、023-5-12Computer Networks Ling Chuanfan21加密密钥与解密密钥 n在公钥密码体制中,加密密钥(即公钥)PK 是公开信息,而解密密钥(即私钥或秘钥)SK 是需要保密的。n加密算法 E 和解密算法 D 也都是公开的。n虽然秘钥 SK 是由公钥 PK 决定的,但却不能根据 PK 计算出 SK。2023-5-12Computer Networks Ling Chuanfan22应当注意 n任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公钥密码体制并不具有比传统加密体制更加优越之处。n由于目前公钥加密算法的开销较大,在可见的将来还看不出来
13、要放弃传统的加密方法。公钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更简单。2023-5-12Computer Networks Ling Chuanfan23公钥算法的特点 n发送者 A 用 B 的公钥 PKB 对明文 X 加密(E 运算)后,在接收者 B 用自己的私钥 SKB 解密(D 运算),即可恢复出明文:(7-4)n解密密钥是接收者专用的秘钥,对其他人都保密。n加密密钥是公开的,但不能用它来解密,即 XXEDYDPKSKSK)()(BBB(7-5)XXEDPKPK)(BB2023-5-12Computer Networks Ling Chuanfan24公钥算法的特点
14、(续)n加密和解密的运算可以对调,即 n在计算机上可容易地产生成对的 PK 和 SK。n从已知的 PK 实际上不可能推导出 SK,即从 PK 到 SK 是“计算上不可能的”。n加密和解密算法都是公开的。XXEDXDEBBBBPKSKSKPK)()((7-6)2023-5-12Computer Networks Ling Chuanfan25公钥密码体制 密文Y E 运算加密算法D 运算解密算法加密解密明文 X明文 X ABB 的私钥 SKB密文Y 因特网B 的公钥 PKB2023-5-12Computer Networks Ling Chuanfan26RSA 公开密钥密码体制nRSA 公开密
15、钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。n每个用户有两个密钥:加密密钥 PK e,n 和解密密钥 SK d,n。n用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的 d 则保密。nN 为两个大素数 p 和 q 之积(素数 p 和 q 一般为 100 位以上的十进数),e 和 d 满足一定的关系。当敌手已知 e 和 n 时并不能求出 d。2023-5-12Computer Networks Ling Chuanfan27(1)加密算法 n若用整数 X 表示明文,用整数 Y 表示密文(X 和 Y 均小于 n),则加密和解密运算为
16、:加密:Y Xe mod n 解密:X Yd mod n 2023-5-12Computer Networks Ling Chuanfan28(2)密钥的产生 计算 n。用户秘密地选择两个大素数 p 和 q,计算出 n pq。n 称为 RSA算法的模数。明文必须能够用小于 n 的数来表示。实际上 n 是几百比特长的数。计算(n)。用户再计算出 n 的欧拉函数 (n)(p 1)(q 1)(n)定义为不超过 n 并与 n 互素的数的个数。选择 e。用户从0,(n)1中选择一个与(n)互素的数 e 作为公开的加密指数。2023-5-12Computer Networks Ling Chuanfan2
17、9(2)密钥的产生(续)计算 d。用户计算出满足下式的 d ed mod(n)1 作为解密指数。得出所需要的公开密钥和秘密密钥:公开密钥(即加密密钥)PK e,n 秘密密钥(即解密密钥)SK d,n2023-5-12Computer Networks Ling Chuanfan30(3)正确性的例子说明 设选择了两个素数,p 7,q 17。计算出 n pq 7 17 119。计算出(n)(p 1)(q 1)96。从0,95中选择一个与 96 互素的数e。选 e 5。然后根据(9-10)式,5d mod 96 1 解出 d。不难得出,d 77,因为 ed 5 77 385 4 96 1,即 38
18、5 mod 96 1。于是,公开密钥 PK (e,n)5,119,秘密密钥 SK 77,119。2023-5-12Computer Networks Ling Chuanfan31(3)正确性的例子说明(续)对明文进行加密。先把明文划分为分组,使每个 明文分组的二进制值不超过 n,即不超过 119。设明文 X 19。用公开密钥加密时,先计算 Xe 195 2476099。再除以 119,得出商为 20807,余数为 66。这就是对应于明文 19 的密文 Y 的值。在用秘密密钥 SK 77,119进行解密时,先计算 Yd 6677 1.27.10140。再除以 119,得出商为 1.06.101
19、38,余数为 19。此余数即解密后应得出的明文 X。2023-5-12Computer Networks Ling Chuanfan32(3)正确性的例子说明(续)对明文进行加密。先把明文划分为分组,使每个 明文分组的二进制值不超过 n,即不超过 119。设明文 X 19。用公开密钥加密时,先计算 Xe 195 2476099。再除以 119,得出商为 20807,余数为 66。这就是对应于明文 19 的密文 Y 的值。在用秘密密钥 SK 77,119进行解密时,先计算 Yd 6677 1.27.10140。再除以 119,得出商为 1.06.10138,余数为 19。此余数即解密后应得出的明
20、文 X。2023-5-12Computer Networks Ling Chuanfan33RSA 算法举例 明文 1919 =20807公开密钥=5,119加密52476099119及余数 66密文 6666 =1.0610秘密密钥=77,119解密771.27.10119及余数 19 明文 191401382023-5-12Computer Networks Ling Chuanfan347.3 数字签名n数字签名必须保证以下三点:(1)报文鉴别接收者能够核实发送者对报文的签名;(2)报文的完整性发送者事后不能抵赖对报文的签名;(3)不可否认接收者不能伪造对报文的签名。n现在已有多种实现各
21、种数字签名的方法。但采用公钥算法更容易实现。2023-5-12Computer Networks Ling Chuanfan35密文)(AXDSK数字签名的实现 D运算明文 X明文 X ABA 的私钥 SKA因特网签名 核实签名E运算密文)(AXDSKA 的公钥 PKA2023-5-12Computer Networks Ling Chuanfan36数字签名的实现n因为除 A 外没有别人能具有 A 的私钥,所以除 A 外没有别人能产生这个密文。因此 B 相信报文 X 是 A 签名发送的。n若 A 要抵赖曾发送报文给 B,B 可将明文和对应的密文出示给第三者。第三者很容易用 A 的公钥去证实
22、A 确实发送 X 给 B。n反之,若 B 将 X 伪造成 X,则 B 不能在第三者前出示对应的密文。这样就证明了 B 伪造了报文。2023-5-12Computer Networks Ling Chuanfan37具有保密性的数字签名)(AXDSK)(AXDSK核实签名解密 加密 签名 E 运算D 运算明文 X明文 X ABA 的私钥 SKA因特网E 运算B 的私钥 SKBD 运算加密与解密签名与核实签名)(ABXDESKPKB 的公钥 PKBA 的公钥 PKA密文2023-5-12Computer Networks Ling Chuanfan387.4 鉴别n在信息的安全领域中,对付被动攻击
23、的重要措施是加密,而对付主动攻击中的篡改和伪造则要用鉴别(authentication)。n报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)的真伪。n使用加密就可达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。应当使接收者能用很简单的方法鉴别报文的真伪。2023-5-12Computer Networks Ling Chuanfan39鉴别与授权不同n鉴别与授权(authorization)是不同的概念。n授权涉及到的问题是:所进行的过程是否被允许(如是否可以对某文件进行读或写)。2023-5-12Computer Networks Ling Ch
24、uanfan407.4.1 报文鉴别 n许多报文并不需要加密但却需要数字签名,以便让报文的接收者能够鉴别报文的真伪。n然而对很长的报文进行数字签名会使计算机增加很大的负担(需要进行很长时间的运算。n当我们传送不需要加密的报文时,应当使接收者能用很简单的方法鉴别报文的真伪。2023-5-12Computer Networks Ling Chuanfan41报文摘要 MD(Message Digest)nA 将报文 X 经过报文摘要算法运算后得出很短的报文摘要 H。然后然后用自己的私钥对 H 进行 D 运算,即进行数字签名。得出已签名的报文摘要 D(H)后,并将其追加在报文 X 后面发送给 B。n
25、B 收到报文后首先把已签名的 D(H)和报文 X 分离。然后再做两件事。n用A的公钥对 D(H)进行E运算,得出报文摘要 H。n对报文 X 进行报文摘要运算,看是否能够得出同样的报文摘要 H。如一样,就能以极高的概率断定收到的报文是 A 产生的。否则就不是。2023-5-12Computer Networks Ling Chuanfan42报文摘要的优点n仅对短得多的定长报文摘要 H 进行数字签名要比对整个长报文进行数字签名要简单得多,所耗费的计算资源也小得多。n但对鉴别报文 X 来说,效果是一样的。也就是说,报文 X 和已签名的报文摘要 D(H)合在一起是不可伪造的,是可检验的和不可否认的。
26、2023-5-12Computer Networks Ling Chuanfan43报文摘要算法n报文摘要算法就是一种散列函数。这种散列函数也叫做密码编码的检验和。报文摘要算法是防止报文被人恶意篡改。n报文摘要算法是精心选择的一种单向函数。n可以很容易地计算出一个长报文 X 的报文摘要 H,但要想从报文摘要 H 反过来找到原始的报文 X,则实际上是不可能的。n若想找到任意两个报文,使得它们具有相同的报文摘要,那么实际上也是不可能的。2023-5-12Computer Networks Ling Chuanfan44报文摘要的实现 A比较签名 核实签名报文 XHD 运算D(H)A 的私钥报文 X
27、D(H)B报文摘要报文 XD(H)发送 E 运算H签名的报文摘要H报文摘要运算A 的公钥报文摘要运算报文摘要报文摘要因特网2023-5-12Computer Networks Ling Chuanfan457.4.2 实体鉴别 n实体鉴别和报文鉴别不同。n报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次。2023-5-12Computer Networks Ling Chuanfan46最简单的实体鉴别过程 nA 发送给 B 的报文的被加密,使用的是对称密钥 KAB。nB 收到此报文后,用共享对称密钥 KAB 进行解密,
28、因而鉴别了实体 A 的身份。ABA,口令KAB2023-5-12Computer Networks Ling Chuanfan47明显的漏洞n入侵者 C 可以从网络上截获 A 发给 B 的报文。C 并不需要破译这个报文(因为这可能很花很多时间)而可以直接把这个由 A 加密的报文发送给 B,使 B 误认为 C 就是 A。然后 B 就向伪装是 A 的 C 发送应发给 A 的报文。n这就叫做重放攻击(replay attack)。C 甚至还可以截获 A 的 IP 地址,然后把 A 的 IP 地址冒充为自己的 IP 地址(这叫做 IP 欺骗),使 B 更加容易受骗。2023-5-12Computer
29、Networks Ling Chuanfan48使用不重数n为了对付重放攻击,可以使用不重数(nonce)。不重数就是一个不重复使用的大随机数,即“一次一数”。2023-5-12Computer Networks Ling Chuanfan49使用不重数进行鉴别 ABA,RARBKABRARBKAB,时间2023-5-12Computer Networks Ling Chuanfan507.5 密钥分配 n密钥管理包括:密钥的产生、分配、注入、验证和使用。本节只讨论密钥的分配。n密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配。n目前常用的密钥分配方式是设立密钥分配中心 KDC
30、(Key Distribution),通过 KDC 来分配密钥。2023-5-12Computer Networks Ling Chuanfan517.5.1 对称密钥的分配n目前常用的密钥分配方式是设立密钥分配中心 KDC(Key Distribution Center)。nKDC 是大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)。n用户 A 和 B 都是 KDC 的登记用户,并已经在 KDC 的服务器上安装了各自和 KDC 进行通信的主密钥(master key)KA 和 KB。“主密钥”可简称为“密钥”。2023-5-12Computer Netw
31、orks Ling Chuanfan52对称密钥的分配AB密钥分配中心KDCA,B,KABKB用户专用主密钥用户 主密钥 A KA B KB A,B,KABKABKBKA,时间A,B2023-5-12Computer Networks Ling Chuanfan537.5.2 公钥的分配n需要有一个值得信赖的机构即认证中心CA(Certification Authority),来将公钥与其对应的实体(人或机器)进行绑定(binding)。n认证中心一般由政府出资建立。每个实体都有CA 发来的证书(certificate),里面有公钥及其拥有者的标识信息。此证书被 CA 进行了数字签名。任何用户
32、都可从可信的地方获得认证中心 CA 的公钥,此公钥用来验证某个公钥是否为某个实体所拥有。有的大公司也提供认证中心服务。2023-5-12Computer Networks Ling Chuanfan547.7 链路加密与端到端加密7.7.1 链路加密 n在采用链路加密的网络中,每条通信链路上的加密是独立实现的。通常对每条链路使用不同的加密密钥。D1E2明文 X结点 1D2E3明文 X结点 2Dn明文 X用户 BE1明文 X用户 A E1(X)链路 1 E2(X)链路 2 En(X)链路 n E3(X)密文密文密文密文相邻结点之间具有相同的密钥,因而密钥管理易于实现。链路加密对用户来说是透明的,
33、因为加密的功能是由通信子网提供的。2023-5-12Computer Networks Ling Chuanfan55链路加密 n由于报文是以明文形式在各结点内加密的,所以结点本身必须是安全的。n所有的中间结点(包括可能经过的路由器)未必都是安全的。因此必须采取有效措施。n链路加密的最大缺点是在中间结点暴露了信息的内容。n在网络互连的情况下,仅采用链路加密是不能实现通信安全的。2023-5-12Computer Networks Ling Chuanfan567.7.2 端到端加密 n端到端加密是在源结点和目的结点中对传送的 PDU 进行加密和解密,报文的安全性不会因中间结点的不可靠而受到影响
34、。结点 1结点 2DK明文 X结点 nEK明文 X结点 0 EK(X)链路 1 EK(X)链路 2 EK(X)链路 n端到端链路传送的都是密文在端到端加密的情况下,PDU 的控制信息部分(如源结点地址、目的结点地址、路由信息等)不能被加密,否则中间结点就不能正确选择路由。2023-5-12Computer Networks Ling Chuanfan577.8 防火墙(firewall)n防火墙是由软件、硬件构成的系统,是一种特殊编程的路由器,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。n防火墙内的网络称为“可信赖的网络”(tr
35、usted network),而将外部的因特网称为“不可信赖的网络”(untrusted network)。n防火墙可用来解决内联网和外联网的安全问题。2023-5-12Computer Networks Ling Chuanfan58防火墙在互连网络中的位置 G内联网可信赖的网络不可信赖的网络分组过滤路由器 R分组过滤路由器 R应用网关外局域网内局域网防火墙因特网2023-5-12Computer Networks Ling Chuanfan59防火墙的功能n防火墙的功能有两个:阻止和允许。n“阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。n“允许”的功能与“阻止”恰好相反。n防火墙必须能够识别通信量的各种类型。不过在大多数情况下防火墙的主要功能是“阻止”。2023-5-12Computer Networks Ling Chuanfan60防火墙技术一般分为两类(1)网络级防火墙用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。(2)应用级防火墙从应用程序来进行接入控制。通常使用应用网关或代理服务器来区分各种应用。例如,可以只允许通过访问万维网的应用,而阻止 FTP 应用的通过。