资源描述
, , , , , ,第 8 章 网络安全,第 8 章 网络安全,第 8 章,网络安全,8.1 密码学,8.2 对称密钥密码体制,8.3 公开密钥密码体制,8.4 数字签名,8.5 公钥管理,8.6 通信安全,8.7 认证协议,8.8 电子邮件安全,8.9 Web安全,8.10 社会问题,第 8 章 网络安全8.1 密码学,* 网络安全问题概述,计算机网络上的通信面临以下的四种威胁:,(1) 截获从网络上窃听他人的通信内容。,(2) 中断有意中断他人在网络上的通信。,(3) 篡改故意篡改网络上传送的报文。,(4) 伪造伪造信息在网络上传送。,截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击。,截获,篡改,伪造,中断,被动攻击,主 动 攻 击,源站,源站,源站,源站,目的站,目的站,目的站,目的站,* 网络安全问题概述计算机网络上的通信面临以下的四种威胁:截,本章集中在网络有关的问题,而不是操作系统,和应用系统有关的问题。不讨论以下内容:,基于生物统计学的用户认证,口令安全、缓冲区溢出攻击、,特洛伊木马、登录欺骗、,跨点脚本代码注入,病毒、蠕虫等,保密性 认证、不可否认、完整性控制,本章集中在网络有关的问题,而不是操作系统保密性 认证,8.1 密码学概论,密码编码学(cryptography),是密码体制的设计学,而,密码分析学(cryptanalysis),则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为,密码学(cryptology),。,如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为,无条件安全的,,或称为理论上是不可破的。,如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在,计算上是安全的,。,8.1 密码学概论 密码编码学(cryptography),8.1.1 一般的数据加密模型,E,加密算法,D,解密算法,加密密钥 K,解密密钥 K,明文 X,明文 X,密文 Y = E,K,(X),截取者,截获,篡改,密钥源,安全信道,8.1.1 一般的数据加密模型 ED加密密钥 K解密密钥 K,8.1.2 置换密码,置换密码(substitution cipher)的最古老的例子是凯撒密码,其原理用例子来说明:密钥是 3,abcdefghijklmnopqrstuvwxyz,DEFGHIJKLMNOPQRSTUVWXYZABC,caesar cipher,FDHVDU FLSKHU,明文,密文,明文 c 变成了密文 F,其他字母依此类推,8.1.2 置换密码置换密码(substitution ci,CIPHER,145326,attack,begins,atfour,8.1.3 替代密码,替代密码(transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。,密钥,顺序,明文,根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。同理,E 为第 2,H 为第 3,,R 为第 6。于是得出密钥字母的相对先后顺序为 145326。,CIPHER8.1.3 替代密码替代密码(transposi,CIPHER,145326,attack,begins,atfour,密文的得出,密钥,顺序,明文,先读顺序为 1 的明文列,即,aba,再读顺序为 2 的明文列,即,cnu,再读顺序为 3 的明文列,即,aio,再读顺序为 4 的明文列,即,tet,再读顺序为 5 的明文列,即,tgf,最后读顺序 6 的明文列,即,ksr,因此密文就是:,abacnuaiotettgfksr,CIPHER密文的得出密钥先读顺序为 1 的明文列,即 ab,接收端从密文解出明文,收到的密文:,abacnuaiotettgfksr,CIPHER,145326,attack,begins,atfour,密钥,顺序,明文,最后按行读出明文,得出明文:,attackbeginsatfour,接收端从密文解出明文收到的密文:abacnuaiotettg,8.1.4 一次性密钥,一次性密钥(one-time pad),选择随机位串作密钥与转变成位串的明文异或,量子密码,8.1.5 两个基本密码学原则,冗余度,新鲜度,8.1.4 一次性密钥一次性密钥(one-time pad,8.2 对称密钥系统,对称密码算法:加密密钥与解密密钥是相同的密码体制。,乘积密码、分组密码,P盒、S盒,轮,8.2 对称密钥系统 对称密码算法:加密密钥与解密密钥是,分组密码体制,输入,输出,加密,算法,密钥,明文,输入,输出,解密,算法,密钥,明文,n,bit,n,bit,n,bit,n,bit,密文,密文,分组密码体制 输入输出加密密钥明文输入输出解密密钥明文n b,8.2.1 数据加密标准 DES,数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。,在加密前,先对整个明文进行分组。每一个组长为 64 bit。,然后对每一个 64 bit 二进制数据进行加密处理,产生一组 64 bit 密文数据。,最后将各组密文串接起来,即得出整个的密文。,使用的密钥为 64 bit(实际密钥长度为 56 bit,有 8 bit 用于奇偶校验)。,8.2.1 数据加密标准 DES数据加密标准 DES 属于,DES 加密标准,L,0,R,0,L,1,= R,0,IP,L,2,= R,1,L,15,= R,14,R,1,= L,0,f,(R,0, K,1,),R,2,= L,1,f,(R,1, K,2,),R,15,= L,14,f,(R,14, K,15,),L,16,= R,15,R,16,= L,15,f,(R,15, K,16,),IP,1,f,f,f,输出,密文 Y (64 bit),明文 X (64 bit),输入,K,16,(48 bit),K,2,(48 bit),K,1,(48 bit),X,0,的左半边,(32 bit),X,0,(64 bit),X,0,的右半边,(32 bit),R,16,L,16,(64 bit),DES 加密标准 L0R0L1 = R0IPL2 = R1L,DES 的明显缺点,DES 实际上就是一种单字符替代,而这种字符的长度是 64 bit。,也就是说,对于 DES 算法,相同的明文就产生相同的密文。这对 DES 的安全性来说是不利的。,为了提高 DES 的安全性,可采用加密分组链接的方法。,DES 的明显缺点 DES 实际上就是一种单字符替代,而这种,三重 DES,(Triple DES),三重 DES 使用两个密钥,执行三次 DES 算法。下图中的方框 E 和 D 分别表示执行加密和解密算法。因此加密时是 E-D-E,解密时是 D-E-D。,E,D,E,K,1,K,2,K,1,明文,密文,D,E,D,K,1,K,2,K,1,密文,明文,加密,解密,三重 DES (Triple DES) 三重 DES 使用两,DES,的保密性、AES,DES,的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。,DES 是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。,目前较为严重的问题是 DES 的密钥的长度。,1997年,提出了高级加密标准 AES,DES 的保密性、AESDES 的保密性仅取决于对密钥的保密,8.3 公开密钥密码体制,公开密钥密码体制使用,不同的加密密钥与解密密钥,,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。,公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。,现有三种公开密钥密码体制,其中最著名的是RSA 体制,它基于数论中大数分解问题的体制,由美国三位科学家 Rivest, Shamir 和 Adleman 于 1976 年提出并在 1978 年正式发表的。,8.3 公开密钥密码体制公开密钥密码体制使用不同的加密密钥,8.2.3 密码模式,电码本模式,密码块链模式,密码反馈模式,流密码模式,计数器模式,8.2.4 其他密码模式(p614图),8.2.5 密码分析,区分密码分析(差分攻击),线性密码分析,电子功率消耗分析,8.2.3 密码模式电码本模式,8.3 公开密钥算法,在公开密钥密码体制中,加密密钥(即公开密钥) PK 是公开信息,而解密密钥(即秘密密钥) SK 是需要保密的,加密算法 E 和解密算法 D 也都是公开的。,虽然秘密密钥 SK 是由公开密钥 PK 决定的,但却不能根据 PK 计算出 SK。,任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。,由于目前公开密钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。公开密钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更为简单。,8.3 公开密钥算法 在公开密钥密码体制中,加密密钥(即公,公开密钥密码体制,接收者,发送者,E,加密算法,D,解密算法,加密密钥 PK,解密密钥 SK,明文 X,密文 Y = E,PK,(X),密钥对,产生源,明文 X = D,SK,(E,PK,(X),公开密钥密码体制 接收者发送者ED加密密钥 PK解密密钥 S,8.3.1 RSA 公开密钥密码体制,RSA 公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。,每个用户有两个密钥:加密密钥 PK,e,n, 和解密密钥 SK,d,n,。,用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的,d,则保密。,N,为两个大素数,p,和,q,之积(素数,p,和,q,一般为 100 位以上的十进数),,e,和,d,满足一定的关系。当敌手已知,e,和,n,时并不能求出,d,。,8.3.1 RSA 公开密钥密码体制RSA 公开密钥密码体,(1) 加密算法,若用整数 X 表示明文,用整数 Y 表示密文(X 和 Y 均小于,n,),则加密和解密运算为:,加密:Y,X,e,mod,n,(9-7),解密:X,Y,d,mod,n,(9-8),(1) 加密算法 若用整数 X 表示明文,用整数 Y 表示密,(2) 密钥的产生, 计算,n,。用户秘密地选择两个大素数,p,和,q,,计算出,n,pq,。,n,称为 RSA算法的模数。明文必须能够用小于,n,的数来表示。实际上,n,是几百比特长的数。, 计算,(,n,)。用户再计算出,n,的欧拉函数,(,n,),(,p,1)(,q,1) (9-9),(,n,) 定义为不超过,n,并与,n,互素的数的个数。,选择,e,。用户从0,(,n,),1中选择一个与,(,n,)互素的数,e,作为公开的加密指数。,(2) 密钥的产生 计算 n。用户秘密地选择两个大素数 p,(2) 密钥的产生(续), 计算,d,。用户计算出满足下式的,d,ed,1 mod,(,n,) (8-10),作为解密指数。, 得出所需要的公开密钥和秘密密钥:,公开密钥(即加密密钥)PK,e,n,秘密密钥(即解密密钥)SK,d,n,(2) 密钥的产生(续) 计算 d。用户计算出满足下式的,(3) 正确性的例子说明,设选择了两个素数,,p,7,q,17。,计算出,n,pq,7,17,119。,计算出,(,n,),(,p,1)(,q,1),96。,从0, 95中选择一个与 96 互素的数,e,。,选,e,5。然后根据(9-10)式,,5,d,1 mod 96,解出,d,。不难得出,,d,77, 因为,ed,5,77,385,4,96,1,1 mod 96。,于是,公开密钥 PK,(,e,n,),5, 119,秘密密钥 SK,77, 119。,(3) 正确性的例子说明 设选择了两个素数,p 7, q,(3) 正确性的例子说明(续),对明文进行加密。先把明文划分为分组,使每个 明文分组的二进制值不超过,n, 即不超过 119。,设明文 X,19。用公开密钥加密时,先计算,X,e,19,5,2476099。,再除以 119,得出商为 20807,余数为 66。这就是对应于明文 19 的密文 Y 的值。,在用秘密密钥 SK,77, 119进行解密时,先计算,Y,d,66,77,1.27.,10,140,。,再除以 119,得出商为 1.06.,10138,余数为 19。,此余数即解密后应得出的明文 X。,(3) 正确性的例子说明(续) 对明文进行加密,RSA 算法举例,明文,19,19 = = 20807,公开密钥 = 5, 119,加密,5,2476099,119,及余数,66,密文,66,66 = = 1.06,10,秘密密钥 = 77, 119,解密,77,1.27., 10,119,及余数,19,明文,19,140,138,RSA 算法举例 明文19 =,8.4 数字签名,数字签名必须保证以下三点:,(1) 接收者能够核实发送者对报文的签名;,(2) 发送者事后不能抵赖对报文的签名;,(3) 接收者不能伪造对报文的签名。,现在已有多种实现各种数字签名的方法。但采用公开密钥算法要比采用常规密钥算法更容易实现。,8.4 数字签名数字签名必须保证以下三点:,数字签名的实现,D,SK,PK,用公开密钥,核实签名,用秘密密钥,进行签名,X,发送者 A,接收者 B,D,SK,(X),X,E,数字签名的实现 DSKPK用公开密钥用秘密密钥X发送者 A接,数字签名的实现,B 用已知的 A 的公开加密密钥得出 E,PKA,(D,SKA,(X),X。因为除 A 外没有别人能具有 A 的解密密钥 SKA,所以除 A 外没有别人能产生密文 D,SKA,(X)。这样,B 相信报文 X 是 A 签名发送的。,若 A 要抵赖曾发送报文给 B,B 可将 X 及D,SKA,(X)出示给第三者。第三者很容易用 PKA去证实 A 确实发送 X 给 B。反之,若 B 将 X 伪造成 X,则 B 不能在第三者前出示DSKA(X)。这样就证明了 B 伪造了报文。,数字签名的实现B 用已知的 A 的公开加密密钥得出 EPKA,8.4.3 消息摘要,散列函数,SHA-1和SHA-2,MD5,8.4.4 生日攻击,8.4.3 消息摘要散列函数,8.5 公钥管理:密钥分配,密钥管理包括:密钥的产生、分配、注入、验证和使用。本节只讨论密钥的分配。,密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配。,目前常用的密钥分配方式是设立,密钥分配中心,KDC (Key Distribution),通过 KDC 来分配密钥。,8.5 公钥管理:密钥分配 密钥管理包括:密钥的产生、分,8.5.1 证书,用户B,用户 主密钥,A,KA,B,KB,用户私有主密钥文件,KDC,用户A,A 和 B 用密钥 R,1,通信, E,KB,(A, R,1,),B 知道了,密钥 R,1, E,KA,(A, B), E,KA,(R,1, E,KB,(A, R,1,),A 知道了,密钥 R,1,8.5.1 证书 用户B用户 主密钥用户私有主密钥文件,8.6 通信安全,网络层安全协议族 IPsec,IPsec 就是“IP安全(Security)协议”的缩写。,网络层保密是指所有在,IP,数据报中的数据都是加密的。此外,网络层还应提供源站鉴别,即当目的站收到 IP 数据报时,能确信这是从该数据报的源IP地址的主机发来的。,鉴别首部 AH (Authentication Header): AH提供源站鉴别和数据完整性,但不能保密。,封装安全有效载荷 ESP (Encapsulation Security Payload):ESP 比 AH 复杂得多,它提供源站鉴别、数据完整性和保密。,8.6 通信安全网络层安全协议族 IPsec,安全关联 SA,(Security Association),使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接-叫做安全关联 SA。,IPsec,就将传统的因特网无连接的网络层转换为具有逻辑连接的层安全关联是一个单向连接。它由一个三元组惟一地确定,包括:,(1) 安全协议(使用 AH 或 ESP)的标识符,(2) 此单向连接的源 IP 地址,(3) 一个 32 bit 的连接标识符,称为安全参数索引 SPI (Security Parameter Index),对于一个给定的安全关联 SA,每一个 Ipsec 数据报都有一个存放 SPI 的字段。通过此 SA 的所有数据报都使用同样的 SPI 值。,安全关联 SA(Security Association),2. 鉴别首部 AH,在使用鉴别首部 AH 时,将 AH 首部插在原数据报数据部分的前面,同时将 IP 首部中的协议字段置为 51。,在传输过程中,中间的路由器都不查看 AH 首部。当数据报到达目的站时,目的站主机才处理 AH 字段,以鉴别源主机和检查数据报的完整性。,IP,首部,AH,首部,TCP/UDP,报文段,协议 = 51,可鉴别的 IP 数据报,原,数据报的数据部分,2. 鉴别首部 AH 在使用鉴别首部 AH 时,将 AH,AH 首部,(1) 下一个首部(8 bit)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。,(2) 有效载荷长度(8 bit),即鉴别数据字段的长度,以 32 bit 字为单位。,(3) 安全参数索引 SPI (32 bit)。标志安全关联。,(4) 序号(32 bit)。鉴别数据字段的长度,以32 bit字为单位。,(5) 保留(16 bit)。为今后用。,(6) 鉴别数据(可变)。为 32 bit 字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。,AH 首部 (1) 下一个首部(8 bit)。标志紧接着本首,3. 封装安全有效载荷 ESP,在 ESP 首部中有标识一个安全关联的安全参数索引 SPI (32 bit),和序号(32 bit)。,在 ESP 尾部中有下一个首部(8 bit,作用和 AH 首部的一样)。ESP 尾部和原来数据报的数据部分一起进行加密,因此攻击者无法得知所使用的运输层协议。,ESP 的鉴别数据和 AH 中的鉴别数据是一样的。因此,用 ESP 封装的数据报既有鉴别源站和检查数据报完整性的功能,又能提供保密。,3. 封装安全有效载荷 ESP在 ESP 首部中有标识一个,在 IP 数据报中的ESP 的各字段,IP,首部,ESP,首部,TCP/UDP,报文段,协议 = 50,可鉴别的保密的 IP 数据报,原,数据报的数据部分,ESP,尾部,ESP,鉴别数据,加密,的部分,鉴别,的部分,在 IP 数据报中的ESP 的各字段 IP 首部ESP 首部,8.6.2 防火墙(firewall),防火墙是由软件、硬件构成的系统,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。,防火墙内的网络称为“可信赖的网络”(trusted network),而将外部的因特网称为“不可信赖的网络”(untrusted network)。,防火墙可用来解决内联网和外联网的安全问题,8.6.2 防火墙(firewall)防火墙是由软件、硬件,防火墙在互连网络中的位置,G,内联网,可信赖的网络,不可信赖的网络,分组过滤,路由器,R,分组过滤,路由器,R,应用网关,外局域网,内局域网,防火墙,因特网,防火墙在互连网络中的位置 G内联网可信赖的网络不可信赖的网络,防火墙技术一般分为两类,(1) 网络级防火墙用来防止整个网络出现外来非法入侵。属于这类的有分组过滤和授权服务器。前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。,(2) 应用级防火墙从应用程序来进行接入控制。通常使用应用网关或代理服务器来区分各种应用。例如,可以只允许通过访问万维网的应用,而阻止 FTP 应用的通过,8.6.3 虚拟专用网 VPN,8.6.4 无线网安全,802.11安全性,蓝牙安全性,防火墙技术一般分为两类 (1) 网络级防火墙用来防止整个网,8.7 认证协议,基于共享密钥的认证,建立共享密钥:Diffie-Hellman密钥交换,使用密钥分发中心的认证,使用Kerberos的身份认证,使用公开密钥密码学的认证,8.7 认证协议基于共享密钥的认证,8.8 电子邮件的加密,PGP (Pretty Good Privacy),PGP 是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。,PGP 并没有使用什么新的概念,它只是将现有的一些算法如 MD5,RSA,以及 IDEA 等综合在一起而已。,虽然 PGP 已被广泛使用,但 PGP 并不是因特网的正式标准。,8.8 电子邮件的加密 PGP (Pretty Good,PGP 的加密过程,MD5,RSA,ZIP,IDEA,base,64,RSA,A 的,明文 P,P,P1,P1,.,Z,K,M,至因特网,ASCII,文本,B 的 RSA,公开密钥,E,B,K,M,:IDEA 的加密密钥(一次一密),:拼接,P 与 H 拼接,H,压缩后的 P1,用密钥 K,M,加密后的 P1,.,Z 与,用密钥 E,B,加密后的 K,M,拼接,A 的 RSA,秘密密钥,D,A,PGP 的加密过程 MD5RSAZIPIDEAbaseR,8.9 WEB 安全性,8.9.1 威胁,8.9.2 安全命名: DNS,8.9.3 安全插口层 SSL,SSL 又称为安全套接层 (Secure Socket Layer),可对万维网客户与服务器之间传送的数据进行加密和鉴别。,SSL 在双方的联络阶段协商将使用的加密算法和密钥,以及客户与服务器之间的鉴别。,在联络阶段完成之后,所有传送的数据都使用在联络阶段商定的会话密钥。,SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport Layer Security)的基础。,8.9 WEB 安全性8.9.1 威胁,SSL 提供以下三个功能,(1) SSL,服务器鉴别 允许用户证实服务器的身份。具有 SS L功能的浏览器维持一个表,上面有一些可信赖的认证中心 CA (Certificate Authority)和它们的公开密钥。,(2) 加密的 SSL 会话 客户和服务器交互的所有数据都在发送方加密,在接收方解密。,(3) SSL 客户鉴别 允许服务器证实客户的身份。,SSL 提供以下三个功能 (1) SSL 服务器鉴别,8.10 社会问题,隐私,匿名邮件转发器,加密朋克邮件转发器,言论自由,信息隐藏学,版权,8.10 社会问题隐私,8.11 本章总结与习题,密码学:对称密钥算法 与公开密钥算法,数字签名,公钥管理与证书,网络与WEB安全,习题布置(p678),2,7,12,13,17,8.11 本章总结与习题密码学:对称密钥算法 与公开密钥算法,
展开阅读全文