第6章计算机网络的安全性第6章计算机网络的安全性6.1网络安全概述6.2密码技术6.3防火墙技术6.4WindowsNT/2000的安全保护及模型6.5*常见的黑客工具及攻击方法6.6*黑客攻击的一般步骤和实例6.7*远程入侵Windows20006.8*网络病毒与防治6.9本章小结练习题第6章计算机网络的安全性6.1网络安全概述6.1.1计算机网络的设计缺陷计算机网络的设计缺陷包括两方面的内容:(1)物理结构的设计缺陷。(2)网络系统的漏洞、协议的缺陷与后门。1.物理网络结构易被窃听计算机网络按通信信道类型分为广播式网络和点—点网络,这两种网络都存在安全问题。第6章计算机网络的安全性计算机A可监听计算机AB与C之间的通信计算机B可监听计算机BA与C之间的通信广播式网络共享信道计算机C可监听计算机CA与B之间的通信图6-1广播式网络易被监听第6章计算机网络的安全性1)广播式网络的安全问题当今大多数局域网采用以太网方式,以太网上的所有设备都连在以太网总线上,它们共享同一个通信通道。以太网采用的是广播式通信网络,如图6-1所示。很多网络包括Internet其实就是把无数的局域网连接起来形成较大的网,然后再把较大的网连接成更大的网。第6章计算机网络的安全性2)点—点网络的安全问题Internet和大部分广域网采用点—点方式通信。在这种网络中,任何一段物理链路都惟一连接一对节点,如果不在同一段物理链路的一对节点要通信,则必须通过其他节点进行分组转发。进行分组转发的节点可以窃听网间传送的数据,如图6-2所示。第6章计算机网络的安全性计算机A计算机B局域网局域网监听监听广域网路由器路由器图6-2点—点式网络转发节点易被监听第6章计算机网络的安全性Internet上的信息容易被窃听和劫获的另一个原因是,当某人用一台主机和国外的主机进行通信时,他们之间互相发送的数据包是经过很多机器(如路由器)重重转发的。2.TCT/IP网络协议的设计缺陷网络通信的基础是协议,TCP/IP协议是目前国际上最流行的网络协议,该协议在实现上因力求实效而没有考虑安全因素。因为如果考虑安全因素太多,将会增大代码量,从而降低了TCP/IP的运行效率,所以说TCP/IP本身在设计上就是不安全的。下面是现存的TCP/IP协议的一些安全缺陷。第6章计算机网络的安全性1)容易被窃听和欺骗2)脆弱的TCP/IP服务3)缺乏安全策略4)配置的复杂性6.1.2计算机网络安全性概念计算机网络的重要功能是资源共享和通信。由于用户共处在同一个大环境中,因此信息的安全和保密问题就十分重要,计算机网络上的用户对此也特别关注。第6章计算机网络的安全性安全性主要是指计算机数据和程序等资源的安全性。对资源要进行安全保护,以免受到有意或无意的破坏,或被越权修改与占用。保密性主要是指为维护一些用户的自身利益,对某些资源或信息需要加以保密,不容许泄露给别人。安全性与保密性是两个很复杂的问题,它们借助于法律和社会监督予以保护,必须有健全的管理制度对泄密和可能受到的破坏加以防范。这些内容已超出本章范畴,本章着重讨论的安全与保密技术问题主要是访问控制和密码技术。第6章计算机网络的安全性访问控制是指对网络中的某些资源的访问要进行控制,只有被授予特权的用户才有资格并有可能去访问有关的数据或程序。例如,数据库中保存了一些机密资料,只有少数被授权的人员掌握其保密级和口令,而且可能要通过几级口令才能取出这些资料。为了保护数据的安全性,可限定一些数据资源的读写范围。例如,有的文件只能读不能写,或规定只有少数用户可对其进行修改或写入新的内容。然而,这些方法对于一些机密程度高的信息和资料仍不是非常安全的。实际上,对于资源的访问控制,迄今为止,仍没有一个十分有效的保密方法。有些方法在原理上可行,例如分析指纹或字体,但在技术上难以实现。故通常的办法是经常变换口令,以减少泄密的机会,同时在内部网络与Internet连接之处安装防火墙。第6章计算机网络的安全性更有效的方法是采用密码技术,用户在网络的信道上相互通信,其主要危险是被非法窃听。例如,采用搭线窃听,对线路上传输的信息进行截获;采用电磁窃听,对用无线电传输的信息进行截获等。因此,对网络传输的报文进行数据加密是一种很有效的反窃听手段。通常采用一定的算法对原文进行软加密,然后将密码电文进行传输,这样即使信息被截获,一般也难以一时破译。第6章计算机网络的安全性6.2密码技术密码技术通过信息的变换或编码,将机密的敏感消息变换成黑客难以读懂的乱码文字,以此达到两个目的:其一,使不知道如何解密的黑客不可能从其截获的乱码中得到任何有意义的信息;其二,使黑客不可能伪造任何乱码信息。密码技术有以下五大基本要素。(1)明文:信息的原始形式(Plaintext,通常记为P)。(2)密文:明文经过变换加密后的形式(Ciphertext,通常记为C)。第6章计算机网络的安全性(3)加密:由明文变成密文的过程称为加密(Enciphering,记为E)。加密通常由加密算法来实现的。(4)解密:由密文还原成明文的过程称为解密(Deciphering,记为D)。解密通常由解密算法来实现。(5)密钥:为了有效地控制加密和解密算法的实现,在其处理过程中要有通信双方掌握的专门信息参与,这种专门信息称为密钥(Key,记为K)。第6章计算机网络的安全性一般的加密/解密模型如图6-3所示。把要加密的报文(称为明文,Plaintext)按照以密钥(Key)为参数的函数进行变换,通过加密过程而产生的输出报文称为密文(Cyphertext)或密码文件(Cryptogram)。图中的干扰者假设就是敌人,消极干扰者是指仅窃听通信内容者;积极干扰者不仅窃听内容,而且篡改原报文内容或注入自己的报文。源端用户将明文P以密钥为参数进行了变换,形成的密码文件C在信道上传送,到达目的地后,再按照密钥参数进行解密而还原成明文。破译密码的技术称为密码分析(Cryptoanalysis)。我们把设计密码的技术(加密技术)和破译密码的技术(密码分析)总称为密码技术(Cryptology)。第6章计算机网络的安全性加密方法解密方法明文P加密密钥解密密钥密文C=EK(P)干扰者消极干扰窃听积极干扰改变电文明文P图6-3加密一解密模型第6章计算机网络的安全性6.2.1传统的加密方法传统的加密方法,其密钥是由简单的字符串组成的,它可选择许多加密形式中的一种;只要有必要,就可经常改变密钥。因此,上述基本模型是稳定的,是人所共知的。它的好处就在于可以秘密而又方便地变换密钥,从而达到保密的目的。传统的加密方法可分为两大类:代换密码法和转换密码法。第6章计算机网络的安全性1.代换密码法在代换密码(SubstitutionCipher)中,为了伪装掩饰每一个字母或一组字母,通常都将字母用另一个字母或另一组字母代换。古老的恺撒密码术就是如此,它把a变成D,b变成E,c变为F,依此类推,最后将z变为C,即将明文的字母移位若干字母而形成密文,例如将attack变成DWWDFN。这种方法只移位三个字母,实际上移动几位可由设计者来定。对这种方法的进一步改进是:把明文的每一个字母一一映射到其他字母上,例如:明文:abcdefghijklmnopqrstuvwxyz密文:QWERTYUIOPASDFGHJKLZXCVBNM第6章计算机网络的安全性在此映射表中,明文字母与密文中的字母一一对应,这种对应关系是由密码编制者确定的。该系统称为单个字母代换,其密钥对应于全部26个英文字母的字符串。使用此密钥,attack就变成密文QZZQEA。这种方法还是较安全的,因为尽管人们知道它采用了字母代换字母的方法,但并不知道密钥,如果逐个试探,则共有26!(约为4×1026)个可能使用的密钥。即使采用每猜一次只用1μs的计算机,猜完全部密钥也需用1013年时间。当解出密钥后,也已失去意义。第6章计算机网络的安全性对于短小的密文来说,根据自然语言的统计特性是比较容易破译的。例如,在英语中,最常用的字母是e,其次是t,再其次是a、o、n、i。破译这种密文的方法是先计算密文中所有字母出现的相对频率,并暂时指定一个出现最多的字母为e,其次是t;然后寻找形如tXe结构最多的三字母组合,这时一个有力的假想是X即为h(即密文tXe是英文中经常出现的明文定冠词the)。依此类推,假如thYt型的结构也频繁出现,则可能以a代替Y。根据这个方法,还可找到两个形如aZW结构的频繁出现的三字母组合,其相当大的可能就是and。根据这种猜想和判断,能初步构成一个试探性明文。第6章计算机网络的安全性因此,为防止密码被破译,必须使密文中各字母出现的频率趋于平均,使e、t等字母不那么容易被识破。为此,采用循环使用复式密码字母的方法,亦称之为多字母密码。例如,费杰尔(Vigenere)密码,它由含有26个恺撒字母的方阵构成。第一行(A行)是ABCDE…XYZ,第二行(B行)是BCDEF…YZA,依此类推,最后一行(Z行)是ZABCD…WXY。像单字母密码一样,这种密码技术也有密钥,但不是由26个不同字母所组成的一个字符串,而是一个简短且便于记忆的词或短语。第6章计算机网络的安全性例如,COOKIEMONSTER。为把较长明文译成密码,可重复地把密钥写在明文上方,例如:COOKIEMONSTERCOOKIEMQNSTERCOOKIEMONSTERCOOKIEMOfourscoreandsevenyearsagoourmothersbroughtforth第6章计算机网络的安全性显然,多字母密码要比单字母密码好,但只要给密码分析员足够数量的密文,总还是可以进行破译的。这里加密的关键在于密钥。通常进一步采用的方法是:加长密钥长度或采用随机的二进制串作为密钥。代换密码也并不一定是每次都只研究一个字母。例如,坡他密码(Portacipher)采用26×26的表,每次把明文译成两个字符(偶对)的密码,由第一个字符指示行,第二个字符指示列,由此产生的交叉点的数字或字母偶对就是译出的密码值。第6章计算机网络的安全性2.转换密码法代换密码法的实质就是保持明文的次序,而把明文字符隐藏起来。转换密码法则采用重新安排字母次序的方法,而不是隐藏它们。下面举一个进行列转换的例子:MEGABVCK74512836pleasetransferonemilliondollarstomyswissbankaccountsixtwotwoabcd明文:pleasetransferonemilliondollarstomyswissbankaccountsixtwotwo第6章计算机网络的安全性密文:AFLLSKSOSELAWAIATOOSSCTCLNMOMANTESILYNTWRNNTSOWDPAEDOBUOERIRICXB转换密码法中的密码由无重复字母组成的短语作为密钥。在以上的例子中,MEGABVCK是密钥。密钥的作用是使用“字典序列”对列编号。最接近于英文字母表首端的密钥字母的下面为第一列。如MEGABVCK中的A为第一列,B为第二列,依此类推,V为第八列。首先把明文按横行书写成若干行(每行的长度等于密钥长度,不够一行使用特殊字符,如a、b、c等填充),然后再按照以字母次序号为最小的密钥字母所在的列开始依次读出,就能译成密文。如以上的例子,按照上表列出的1,2,3,…,8列依次读出,就构成密文。第6章计算机网络的安全性6.2.2*数据加密标准DES在传统的加密方法中,要求加密算法和密钥保密,这不利于在密码技术领域使用计算机,因为对每个加密算法都需要编写处理程序,并且该程序必须保密。为此提出了数据加密处理算法标准化的问题。数据加密标准DES(DataEncryptionStandard)由美国国家标准局开始研究,是除国防部以外的其他部门的计算机系统的数据加密标准,是一种通用的现代加密方法。与传统的密码技术相比,它们的基本原理一样,其密钥是保密的,但着重点不同。传统的技术一般采用简单的算法并依靠长密钥,而现代的加密技术其密码算法十分复杂,几乎不能破译。