1第九章第九章计算机网络安全和网络管理计算机网络安全和网络管理29.19.1网络安全简介网络安全简介11计算机网络面临的安全性威胁计算机网络面临的安全性威胁计算机网络上的通信面临以下的四种威胁:计算机网络上的通信面临以下的四种威胁:(1)(1)截获截获————从网络上窃听他人的通信内容。从网络上窃听他人的通信内容。(2)(2)中断中断————有意中断他人在网络上的通信。有意中断他人在网络上的通信。(3)(3)篡改篡改————故意篡改网络上传送的报文。故意篡改网络上传送的报文。(4)(4)伪造伪造————伪造信息在网络上传送。伪造信息在网络上传送。截获信息的攻击称为截获信息的攻击称为被动攻击被动攻击,而更改信息和拒绝用户使,而更改信息和拒绝用户使用资源的攻击称为用资源的攻击称为主动攻击主动攻击。。3对网络的被动攻击和主动攻击对网络的被动攻击和主动攻击截获篡改伪造中断被动攻击主动攻击目的站源站源站源站源站目的站目的站目的站4被动攻击和主动攻击被动攻击和主动攻击在被动攻击中,攻击者只是观察和分析某一个协议数据单在被动攻击中,攻击者只是观察和分析某一个协议数据单元元PDUPDU而不干扰信息流。而不干扰信息流。主动攻击是指攻击者对某个连接中通过的主动攻击是指攻击者对某个连接中通过的PDUPDU进行各种进行各种处理。处理。更改报文流更改报文流拒绝报文服务拒绝报文服务伪造连接初始化伪造连接初始化5计算机网络通信安全的目标计算机网络通信安全的目标(1)(1)防止析出报文内容;防止析出报文内容;(2)(2)防止通信量分析;防止通信量分析;(3)(3)检测更改报文流;检测更改报文流;(4)(4)检测拒绝报文服务;检测拒绝报文服务;(5)(5)检测伪造初始化连接。检测伪造初始化连接。6计算机网络安全的内容计算机网络安全的内容保密性保密性为用户提供安全可靠的保密通信为用户提供安全可靠的保密通信安全协议的设计安全协议的设计协议的安全性是不可判定的,对于复杂的通信协议,主协议的安全性是不可判定的,对于复杂的通信协议,主要采用找漏洞的分析方法要采用找漏洞的分析方法接入控制接入控制访问控制或存取控制,只能在给定权限范围内访问控制或存取控制,只能在给定权限范围内7一般的数据加密模型一般的数据加密模型E加密算法E加密算法D解密算法D解密算法加密密钥K解密密钥K明文X明文X密文Y=EK(X)截取者截获篡改密钥源密钥源安全信道89.29.2数据加密技术数据加密技术密码编码学密码编码学(cryptography)(cryptography)是密码体制的设计学,而是密码体制的设计学,而密码分密码分析学析学(cryptanalysis)(cryptanalysis)则是在未知密钥的情况下从密文推演出则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为明文或密钥的技术。密码编码学与密码分析学合起来即为密码学密码学(cryptology)(cryptology)。。911常规密钥密码体制常规密钥密码体制所谓常规密钥密码体制,即加密密钥与解密密钥是相同的所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。密码体制。这种加密系统又称为这种加密系统又称为对称密钥系统对称密钥系统。我们先介绍在常规密。我们先介绍在常规密钥密码体制中的两种最基本的密码。钥密码体制中的两种最基本的密码。10数据加密标准数据加密标准DESDES数据加密标准数据加密标准DESDES属于常规密钥密码体制,是一种分组密属于常规密钥密码体制,是一种分组密码。码。在加密前,先对整个明文进行分组。每一个组长为在加密前,先对整个明文进行分组。每一个组长为64bit64bit。。然后对每一个然后对每一个64bit64bit二进制数据进行加密处理,产生一组二进制数据进行加密处理,产生一组64bit64bit密文数据。密文数据。最后将各组密文串接起来,即得出整个的密文。最后将各组密文串接起来,即得出整个的密文。使用的密钥为使用的密钥为64bit64bit(实际密钥长度为(实际密钥长度为56bit56bit,有,有8bit8bit用于用于奇偶校验奇偶校验))。。DESDES加密标准加密标准encryptdecryptencryptdecryptstandardstandardK16(48bit)K2(48bit)K1(48bit)L0R0L1=R0IPL2=R1L15=R14R1=L0⊕f(R0,K1)R2=L1⊕f(R1,K2)R15=L14⊕f(R14,K15)L16=R15R16=L15⊕f(R15,K16)IP−1f⊕⊕⊕ff输出密文Y(64bit)明文X(64bit)输入X0的左半边(32bit)X0(64bit)X0的右半边(32bit)R16L16(64bit)12DESDES的明显缺点的明显缺点DESDES实际上就是一种单字符替代,而这种字符的长度是实际上就是一种单字符替代,而这种字符的长度是6464bitbit。。也就是说,对于也就是说,对于DESDES算法,相同的明文就产生相同的密文。算法,相同的明文就产生相同的密文。这对这对DESDES的安全性来说是不利的。的安全性来说是不利的。为了提高为了提高DESDES的安全性,可采用加密分组链接的方法。的安全性,可采用加密分组链接的方法。13加密分组的链接加密分组的链接⊕X0Y0⊕X1Y1⊕X2Y2⊕X3Y3⊕X0Y0⊕X1Y1⊕X2Y2⊕X3Y3……初始向量初始向量密钥密钥明文明文密文密文加密解密EEEEEEEEDDDDDDDD14三重三重DESDES(TripleDES)(TripleDES)三重三重DESDES使用两个密钥,执行三次使用两个密钥,执行三次DESDES算法。下图中的算法。下图中的方框方框EE和和DD分别表示执行加密和解密算法。因此分别表示执行加密和解密算法。因此加密时是加密时是E-D-EE-D-E,解密时是,解密时是D-E-DD-E-D。。EEDDEEK1K2K1明文密文DDEEDDK1K2K1密文明文加密解密15DESDES的保密性的保密性DESDES的保密性仅取决于对密钥的保密,而算法是公开的。的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译尽管人们在破译DESDES方面取得了许多进展,但至今仍未能方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。找到比穷举搜索密钥更有效的方法。1622公开密钥密码体制公开密钥密码体制公开密钥密码体制使用公开密钥密码体制使用不同的加密密钥与解密密钥不同的加密密钥与解密密钥,是一,是一种种““由已知加密密钥推导出解密密钥在计算上是不可行的由已知加密密钥推导出解密密钥在计算上是不可行的””密码体制。密码体制。公开密钥密码体制的产生主要是因为两个方面的原因,一公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于是由于常规密钥密码体制的密钥分配问题,另一是由于对对数字签名的需求数字签名的需求。。现有三种公开密钥密码体制,其中最著名的是现有三种公开密钥密码体制,其中最著名的是RSARSA体制,体制,它基于数论中大数分解问题的体制,由美国三位科学家它基于数论中大数分解问题的体制,由美国三位科学家RivestRivest,,ShamirShamir和和AdlemanAdleman于于19761976年提出并在年提出并在19781978年正式年正式发表的发表的RSARSA体制。体制。17公开密钥与秘密密钥公开密钥与秘密密钥在公开密钥密码体制中,加密密钥在公开密钥密码体制中,加密密钥((即公开密钥即公开密钥))PK(publicPK(publickeykey))是公开信息,而解密密钥是公开信息,而解密密钥((即秘密密钥即秘密密钥))SKSK((secretkeysecretkey))是需要保密的。是需要保密的。加密算法加密算法EE和解密算法和解密算法DD也都是公开的。也都是公开的。虽然秘密密钥虽然秘密密钥SKSK是由公开密钥是由公开密钥PKPK决定的,但却不能根决定的,但却不能根据据PKPK计算出计算出SKSK。。18公开密钥算法的特点公开密钥算法的特点(1)(1)发送者用公开密钥发送者用公开密钥PKPK对明文对明文XX加密后,在接收者用秘加密后,在接收者用秘密密钥密密钥SKSK解密,即可恢复出明文,或写为:解密,即可恢复出明文,或写为:DSK(EPK(X))DSK(EPK(X))��X(9-5)X(9-5)解密密钥是接收者专用的秘密密钥,对其他人都保密。解密密钥是接收者专用的秘密密钥,对其他人都保密。此外,加密和解密的运算可以对调,即此外,加密和解密的运算可以对调,即••EPK(DSK(X))EPK(DSK(X))��XX(2)(2)公开密钥是公开的,但不能用它来解密,即公开密钥是公开的,但不能用它来解密,即DPK(EPK(X))DPK(EPK(X))��X(9-6)X(9-6)(3)(3)在计算机上可容易地产生成对的在计算机上可容易地产生成对的PKPK和和SKSK。。(4)(4)从已知的从已知的PKPK实际上不可能推导出实际上不可能推导出SKSK,即从,即从PKPK到到SKSK是是““计算上不可能的计算上不可能的””。。(5)(5)加密和解密算法都是公开的。加密和解密算法都是公开的。19公开密钥密码体制公开密钥密码体制接收者发送者E加密算法E加密算法D解密算法D解密算法公开密钥PK秘密密钥SK明文X密文Y=EPK(X)密钥对产生源密钥对产生源明文X=DSK(EPK(X))2033数字签名数字签名数字签名必须保证以下三点:数字签名必须保证以下三点:(1)(1)接收者能够核实发送者对报文的签名;接收者能够核实发送者对报文的签名;(2)(2)发送者事后不能抵赖对报文的签名;发送者事后不能抵赖对报文的签名;(3)(3)接收者不能伪造对报文的签名。接收者不能伪造对报文的签名。现在已有多种实现各种数字签名的方法。但采用公开密钥现在已有多种实现各种数字签名的方法。但采用公开密钥算法要比采用常规密钥算法更容易实现。算法要比采用常规密钥算法更容易实现。21DDSKPK用公开密钥核实签名用秘密密钥进行签名X发送者A接收者BDSK(X)XEE2244报文鉴别报文鉴别报文鉴别使得通信的接收方能够验证所收到的报文(发送报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)的真伪。者和报文内容、发送时间、序列等)的真伪。使用加密就可达到报文鉴别的目的。但在网络的应用中,使用加密就可达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。应当使接收者能用很简单的方法许多报文并不需要加密。应当使接收者能用很简单的方法鉴别报文的真伪。鉴别报文的真伪。报文摘要报文摘要MD(MessageDigest)MD(MessageDigest)报文报文mm经过报文摘要算法运算后得出固定长度的报文经过报文摘要算法运算后得出固定长度的报文摘要摘要H(mH(m))。。23报文摘要算法必须满足以下两个条件报文摘要算法必须满足以下两个条件内容不同的明文,通过散列算法内容不同的明文,通过散列算法((hashhash函数函数))得出的结果得出的结果(密码学称为信息摘要)相同,就称为发生了(密码学称为信息摘要)相同,就称为发生了““碰撞碰撞””(1)(1)弱无碰撞弱无碰撞::任给一个报文摘要值任给一个报文摘要值xx,若想找到一个报,若想找到一个报文文yy使得使得H(yH(y)=x)=x,则在计算上是不可行的。,则在计算上是不可行的。(2)(2)强无碰撞强无碰撞::若想找到任意两个报文若想找到任意两个报文xx和和yy,使得,使得H(xH(x)=)=H(yH(y)),则在计算上是不可行的。,则在计算上是不可行的。24发送端将报文发送端将报文mm经过报文摘要算法运算后得出固定长度的经过报文摘要算法运算后得出固定长度的报文摘要报文摘要H(mH(m))。然后对。然后对H(mH(m))进行加密,得出进行加密,得出EEKK(H(m(H(m)