1、第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.1网络安全的基本概念9.2数据加密技术9.3防火墙9.4网络管理9.5区块链9.6常用网络命令9.7 本章小结1第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.1 计算机网络安全的基本概念在计算机网络出现之后大约一二十年时间之内,对计算机网络的使用主要集中在高等院校的科研人员使用计算机网络发送电子邮件以及公司员工使用计算机网络共享打印机这些方面。在这种比较单纯的网络使用环境下,计算机网络安全问题并不突出,因此网络安全没有得到人们的关注。今天,随着计算机网络
2、的飞速发展,成千上百万的普通网络用户每天都在通过计算机网络办理各种金融业务,进行网上购物,处理各种税务活动。在人们享用计算机网络带来的种种便利的同时,各种计算机网络安全问题也不断暴露出来,网络安全逐渐引起人们的广泛关注,成为当今计算机网络技术研究的一个重点领域。计算机网络安全是指利用技术手段和管理措施对计算机网络系统的硬件、软件和数据进行保护,使其不因恶意或偶然的原因而遭到更改、泄露或者破坏,保证计算机网络连续可靠地正常地运行,网络服务不中断。从本质上来讲,网络安全是指网络中的信息安全。从广义的角度讲,凡是涉及计算机网络信息的可用性、完整性、真实性、保密性和可控性的相关技术和理论都是计算机网络
3、安全的研究内容。计算机网络安全是一门涉及计算机科学计算机科学、网络技术网络技术、通信技术通信技术、密码技术密码技术、信息安全技术信息安全技术、应用数学应用数学、数论和信息论数论和信息论等多个学科的综合性学科。2第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.1.1 计算机网络的不安全因素计算机网络的不安全因素绝对安全的计算机网络系统是不存在的,要提高计算机网络的安全性,就必须了解影响计算机网络安全的因素,从而根据实际情况加以防范。提高计算机网络系统的安全性需要依靠完善的监控、分析和管理手段,采取相应的安全防范措施,及时发现安全隐患,避免计算机网络系统遭受攻击和破坏。计算机网络的
4、不安全因素有很多,主要可以归纳为两个方面:自然环境因素和人为因素。(1)自然环境因素自然环境因素:地震、水灾、火灾等自然灾害以及过高或过低的环境温度、不适宜的湿度、不满足要求的电磁环境和电源环境等都会对计算机网络造成破坏。尽管自然环境因素造成的对计算机网络的破坏往往难以避免,但是可以通过一些预防措施尽量减少此类破坏带来的损失。(2)人为因素人为因素:对计算机网络安全造成破坏的人为因素是指一些别有用心的人利用计算机网络中的漏洞或缺陷蓄意地破坏网络,干扰计算机网络的正常运行,例如编写传播计算机病毒,非法获取重要数据或者篡改系统数据,盗用计算机系统资源,破坏网络硬件设备等等。在自然环境因素和人为因素
5、这两种因素中,人为因素是对计算机网络安全威胁最大的因素。大多数的计算机网络安全问题都是由别有用心的人故意而为造成的,这些人进行网络攻击和破坏的目的主要集中在以下几个方面:获取非法利益、对某些人实施非法伤害、获得社会关注。3第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 我们常常会看到一些关于网站安全的新闻,许多机构和组织的主页遭到黑客(hacker)的攻击,主页被替换成黑客选择的新的主页。遭到过黑客攻击的知名网站包括:雅虎(Yahoo)、美国国家航空航天局(NASA:National Aeronautics and Space Administration)、纽约时报(New Yo
6、rk Times)等等。在对网站的攻击中,大多数情况是黑客在主页上显示一些自己想要表达的文字信息,在随后的若干小时内网站被修复,主页恢复正常。比篡改主页更加严重的另外一种网络攻击方式是拒绝服务攻击拒绝服务攻击(DoS:Denial of Service)。目前,已经有大量的网站遭到拒绝服务攻击,黑客向目标主机发送数量巨大的服务请求数据包,制造大流量的无用数据,造成网络通信拥塞。这些数据包经过黑客的伪装,目标主机无法识别其真实来源,这些数据包所请求的服务通常需要消耗大量的网络系统资源,使目标主机无法正常和外界通信,无法为合法用户提供正常的网络服务,甚至导致网络系统的崩溃。此外,还有分布式拒绝服务
7、攻击分布式拒绝服务攻击(DDoS:Distributed Denial of Service),黑客借助成百上千台分布在不同地方的被入侵后并且安装了攻击进程的主机同时向目标主机发起DoS攻击,相对于一对一方式的DoS攻击,这种分布式网络攻击危害性更大,往往会给被攻击的网站造成相当大的经济损失。4第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.1.2 人为计算机网络攻击人为计算机网络攻击随着计算机网络技术的高速发展和计算机网络应用的不断普及,网络安全事件频频发生,以下是一些人为计算机网络攻击的真实案例:案例案例1:一个年仅19岁的俄罗斯黑客侵入一家电商的网站,盗取了30万张信用卡
8、的号码,然后向该网站的经营者索要10万美元,并威胁如果不答应其条件就将这些信用卡号码公布到Internet上。网站经营者最终没有让步,该黑客真的在Internet上公布了这些信用卡号码,导致大批无辜的信用卡用户遭受极大的经济损失。案例案例2:一个23岁的美国加利福尼亚州的学生以新闻通稿的形式向某新闻社发出一封电子邮件,谎称美国Emulex公司(Emulex Corporation)即将发布巨额季度亏损公告,并且该公司的首席执行官也很快要辞职。消息一出,该公司股票在数小时内暴跌60%,造成股民超过20亿美元的损失。在发出假消息之前,该黑客抛售Emulex公司的股票,利用这个事件赚取了25万美元。
9、尽管这不是一个网站入侵的案例,但是可以设想如果类似的假消息被黑客公布在某个大公司的主页上,势必会引发类似的后果。5第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 案例案例3:1999年,一个瑞典黑客侵入美国微软公司的Hotmail网站,构建了一个该网站的镜像网站(mirror site),允许任何人只要输入某个Hotmail用户的用户名就可以阅读该用户的所有电子邮件。案例案例4:自2017年5月12日起,全球爆发大规模WannaCry勒索病毒事件。WannaCry勒索病毒是传统蠕虫病毒与勒索软件的结合体,同时拥有蠕虫病毒的扩散传播和勒索软件的文件加密功能,攻击目标主机并加密目标主机
10、内存储的文件,要求以比特币的形式支付赎金。该病毒爆发后,上百个国家超过30万名用户遭到攻击,波及金融、能源、医疗、公安、教育等重要行业,造成的损失约为80亿美元。中国部分Windows操作系统用户遭受该病毒感染,校园网用户首当其冲,损失严重,大量实验数据和学生教学文档被锁定加密。部分大型企业的应用系统和数据库文件被加密后无法正常工作,造成巨大的影响。6第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 像这样的人为计算机网络攻击时有发生,不胜枚举。网络安全研究人员归纳了一些常见网络攻击实施者的类型及其主要目的,如表9.1所示。从表9.1所列举的网络攻击实施者类型及其主要目的可以看出,确
11、保计算机网络安全远远不是保证网络软件程序没有错误那么简单。要维护计算机网络安全,往往需要和那些专业的、高智商的、装备精良的网络攻击实施者进行斗争。值得注意的是,一般性的网络安全防范措施对于那些别有用心、处心积虑的网络攻击者影响甚微。警方的资料表明,大多数破坏性的计算机网络攻击并非单位或机构外部人员所为,而是由内部人员图谋报复,蓄意而为。人们应该基于对网络攻击实施者类型及其目的的全面了解和清晰认识,有针对性地设计计算机网络安全系统。7第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.1.3 计算机网络安全通信的主要目标计算机网络安全通信的主要目标计算机网络安全的核心内容是保证网络通
12、信的安全,安全网络通信应设法达到以下四个方面的目标:保密性保密性、身份认证身份认证、不可否认性不可否认性和完整性完整性。(1)保密性保密性:保密性(secrecy)也被称为机密性(confidentiality),是指只有信息的发送方和真正的接收方才能理解所发送的信息内容。由于信息在传输过程中可能会遭到窃听者的拦截,为了确保通信的保密性,必须对传输的信息进行加密处理,导致窃听者无法解密所拦截的信息。保密性是计算机网络安全通信最基本的要求,同时也是人们通常在讨论计算机网络安全问题时首先想到的一个方面。(2)身份认证身份认证:身份认证(authentication)是指在进行商业交易或者透漏个人私
13、密信息之前首先要确认对方的真实身份。在通信的过程中,信息的发送方和接收方都应该核实并确认对方的真实身份,即通信的另一方确实是其宣称的身份。在日常生活的面对面交流中,人们可以通过视觉识别很容易地进行身份认证。但是,在计算机网络通信中,通信的实体是通过网络传输介质传输信息,无法真正地看到通信的另一方,在这种情况下身份认证就不是那么容易。例如,当你收到一封电子邮件,邮件正文里写着该邮件来自于你的一个朋友,那么该邮件就一定真的是你的朋友发来的吗?再如,当你收到短信声称来自某银行,询问你的银行账户私密信息,对方真的是银行的工作人员吗?这些都是身份认证要解决的问题。8第第9章计算机网络安全与网络管理章计算
14、机网络安全与网络管理 (3)不可否认性不可否认性:不可否认性(nonrepudiation)也被称为不可抵赖性,是指在计算机网络的信息交换过程中,信息交换的双方不能否认其在交换过程中发送信息或接收信息的行为。不可否认性的核心是确保通信参与者的真实同意性,即通信的所有参与方都不能否认或抵赖曾经做出的承诺和完成的操作。可以使用信息源证据防止信息的发送方否认已发送过的信息,使用提交接收证据防止接收方否认已经接收到的信息。例如,某个客户下了一个订单,要以单价100元的价格购买1000顶帽子,但是后来该客户却声称单价为80元,如何证明该客户确实下过单价为100元的原始订单?还有,如果该客户否认曾经下过该
15、订单怎么办?诸如此类的问题都属于不可否认性的研究范畴。(4)完整性完整性:完整性(integrity)是指网络信息交换过程中所传输的信息的完整性,即如何确保所接收到的信息确实是发送方发送的原始信息,信息在网络传输过程中既不受恶意的篡改,也不因偶然因素的影响产生改变。9第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 以上我们从四个方面介绍了安全网络通信的主要目标,下面介绍什么是不安全的通信信道不安全的通信信道,如图9.1所示。我们结合图9.1说明网络信息入侵者可以截获哪些信息,信息截获者对通信信道中传输的数据可以进行哪些操作。在图9.1中,数据的发送方通过通信信道向接收方发送数据。为
16、了安全地进行数据交换,在满足上述保密性、身份认证以及消息完整性等要求的前提下,通信双方进行信息的交换,包括控制信息和数据消息。为了达到安全传输的目的,通信双方交换的部分信息(有时是全部信息)通常要进行加密处理。对于不安全通信信道,除了信息的发送方和接收方,信息在通信信道传输的过程中还可能受到入侵者的拦截和破坏。网络信息入侵者可以分为两种类型:被动入侵者(passive intruder)和主动入侵者(active intruder)。被动入侵者能够侦听并记录通信信道上传输的控制信息和数据消息。主动入侵者不仅能够将信息从通信信道上移除,还能够向通信信道加入信息。显然,无论是被动入侵还是主动入侵,
17、都会对安全网络通信的四个目标构成破坏。10第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.2 数据加密技术数据加密技术是计算机网络安全的核心,是维护计算机网络信息安全的关键。数据加密的主要目的是提高计算机网络系统及数据的安全性,防止私密数据被破译,维护网络信息的保密性。本节介绍数据加密的基本概念与数据加密模型、对称密钥加密技术和非对称密钥加密技术。9.2.1 数据加密概述数据加密概述1.密码学的基本概念数据加密的核心是密码学(cryptology),其名称源于希腊语“krypts”和“lgos”,“krypts”意为“隐秘的”,“lgos”意为“文字”。密码学距今已有数千年的历
18、史,最早可以追溯到古罗马尤利乌斯恺撒的时代。尽管密码学历史悠久,但是现代密码学起源于20世纪末出现的相关理论,这些理论使现代密码学成为一门系统、严格的科学,许多今天Internet上正在使用的数据加密技术大都是基于现代密码学近四五十年内取得的进展。11第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 密码学是研究在面临第三方的窃取和破坏的情况下如何保证数据通信及存储安全的学科。密码学包括两个方面:密码编码学密码编码学(cryptography)和密码分析学密码分析学(cryptanalysis)。最初,密码编码学是指关于如何将信息转换成密码形式以供合法用户通过密钥访问的原理和技术。现
19、在,密码编码学泛指基于密钥的密码体制设计学,研究如何将信息转换为某种密码形式,使得非授权用户从理论上不可能破解它,或者破解它从计算上是不可行的。密码分析学是指在不知道密钥的情况下,从密文反向推演出明文或者密钥的技术。密码学经常被错误地认为是密码编码学的同义词,密码学有时也被错误地等同于密码分析学。事实上,密码学是一个内涵很广的领域,它涵盖了密码编码学和密码分析学这两个分支。数据加密技术是计算机网络系统对信息进行保护的一种基本处理,它利用密码学的相关技术对信息进行加密,实现信息隐蔽,起到保护信息安全的作用。数据加密技术通过加密算法和密钥将明文转变为密文;数据解密技术是指通过相应的解密算法和密钥将
20、密文恢复为明文。在密码学中,把能够正常阅读和理解的普通信息称为明文(plaintext),把明文经过加密处理之后的信息称为密文(ciphertext)。对明文进行某种变换处理,将可读的明文信息隐匿起来,使其在缺少特殊信息时不可读的过程称为加密(encryption)。将密文还原为正常可读的内容,恢复成原来的明文的过程称为解密(decryption)。密钥(key),也称为秘钥,是指某个用来完成加密、解密、数据完整性验证等密码学应用的秘密信息,它是数据加密和解密过程中的关键参数。12第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 2.数据加密模型在密码学中,加密和解密是相辅相成的两个
21、组成部分,加密是把明文转换成密文的过程,解密是把密文还原成明文的过程,一般的数据加密模型如图9.2所示。13第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 如图9.2所示,假设用户A向用户B发送信息。首先,用户A向用户B发送明文P,通过加密算法E运算处理后,得到密文C,这是加密过程。加密过程中使用的加密密钥K是一串秘密的数字或字符串(比特串),它是加密算法的输入参数。将明文通过加密算法转换为密文的一般表示方法如公式(9-1)所示:C=Ek(P)(9-1)公式(9-1)的含义是,加密算法E以明文P和加密密钥K为输入,经过加密算法运算处理,得到密文C作为加密算法的输出。加密过程的输出结
22、果,即密文C,通过通信信道传输给数据的接收方用户B。当密文C到达用户B时,密文C经过解密算法运算处理,还原得到用户A发送的原始明文P,这是解密过程。将密文通过解密算法恢复为明文的一般表示方法如公式(9-2)所示:Dk(C)=Dk(Ek(P)=P(9-2)公式(9-2)的含义是,解密算法D以密文C和解密密钥K为输入,经过解密算法运算处理,还原得到明文P作为解密算法的输出。解密过程的输出结果,即明文P,提交给数据的接收方用户B。显然,从公式(9-2)可以看出解密算法是加密算法的逆运算。密文C在计算机网络传输的过程中,可能会受到网络信息截取者(或攻击者、入侵者)的截获和篡改,被动入侵者会侦听和记录数
23、据,主动入侵者能够对数据进行移除和篡改。有了如图9.2所示的基于密钥的数据加密和解密机制,虽然信息截取者有可能截获密文C,但是,由于截取者不是信息真正的接收者,因此截取者没有解密密钥K,无法轻易地对密文C进行解密处理将其还原成明文P,从而保证了数据传输的安全性。14第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.2.2 对称密钥加密对称密钥加密从本质上讲,所有的加密算法都涉及数据的替换,比如将一部分明文经过加密计算替换成相应的密文,生成加密消息。对称密钥加密算法是应用比较早的一类加密算法,技术相对比较成熟。在对称密钥加密算法中,数据发送方将明文和加密密钥作为输入,经过加密算法运
24、算处理后,把明文转换为密文发送给接收方。接收方收到密文后,如果要解读原文,需要使用加密算法的逆算法和加密过程中使用的密钥对密文进行解密处理,才能将密文还原为原始的明文。在对称密钥加密算法中,加密和解密运算使用的密钥只有一个,数据的发送方和接收方都使用这个相同的密钥对数据进行加密和解密处理,这要求接收方在进行解密运算时必须知道加密密钥。15第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 1.恺撒加密算法在介绍现代复杂的对称密钥加密算法之前,我们首先介绍一个古老而又简单的对称密钥加密算法:恺撒加密(Caesar Cipher)算法。传说古罗马帝国的尤利乌斯尤利乌斯恺撒恺撒是最早使用加密
25、方法的古代将领之一,据说恺撒用恺撒加密算法保护重要军事情报,这种加密算法也被称为恺撒密码(Caesar Code)。以英语文字为例,恺撒加密算法是将字母按字母表顺序向后推移k位,以该字母替换原来的字母,从而起到对原文进行加密的作用。例如,如果取k=3,那么明文中的字母“A”将被替换为“D”作为密文,明文中的字母“C”将被替换为“F”作为密文,以此类推,可以得到如表9.2所示的恺撒加密算法明文-密文对照表:假设恺撒向他的部下布鲁图斯发出了这样一条命令:BRUTUS,RETURN TO ROME.该命令的明文经过恺撒加密算法(假定取k=3)加密后转换为以下的密文:EUXWXV,UHWXUQ WR
26、URPH.加密之后的密文命令杂乱无章、毫无头绪,从字面上看不出任何意义,即使被敌军截获,也不会泄密。16第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 使用恺撒加密算法进行加密和解密的过程如图9.3所示。在上面的例子中,我们假定取k=3,实际上,恺撒加密算法可以根据字母向后移位k值的不同产生很多种变化。例如,如果取k=6,即每个字母向后推移6位,会得到如表9.3所示的明文-密文对照表:17第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 按照表9.3所示的明文-密文对照表,前面例子中的明文“BRUTUS,RETURN TO ROME.”将会被加密为如下的密文:HXAZAY
27、,XKZAXT ZU XUSK.同样,当k=6时,使用恺撒加密算法加密之后的密文也是杂乱无章、毫无头绪,从字面上看不出任何意义。值得注意的是,恺撒加密算法是一个典型的对称密钥加密算法。在恺撒加密算法中,字母向后推移的位数k的值就是加密和解密运算共同使用的密钥。加密方使用k值进行加密运算,解密方使用相同的k值进行解密运算,加密密钥和解密密钥都是k值,在图9.3中所示的例子中,这个共同的密钥就是“k=3”这一关键信息。从上面的例子可以看出,无论是取k=3,还是取k=6,恺撒加密算法都能够将明文加密转换为晦涩难懂的密文,起到一定的数据加密作用。但是,值得指出的是,恺撒密码是相对比较容易破解的。如果密
28、码破解者知道加密方使用的是恺撒加密算法,这一点尤为明显。因为作为加密密钥和解密密钥的k值总共只有25种可能的取值情况,密码破解者只需采用穷举法,逐个去尝试所有可能的k值,就一定能够在不太长的时间内破解恺撒密码。18第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 2.单表加密算法和恺撒加密算法一样,单表加密(Monoalphabetic Cipher),也被称为单表替换加密(Monoalphabetic Substitution Cipher),也是一种替换型加密算法,它通过使用字母表中的一个字母替换字母表中的另一个字母进行加密。与恺撒加密算法不同的是,单表加密算法不是按照固定的规律
29、进行字母替换(例如字母表中的所有字母都按照固定的k值进行位移替换),而是字母表中的任何一个字母可以由字母表中的任何一个其他字母进行替换,只要字母表中的每个字母都有唯一的字母与之对应替换。表9.4给出一种可能的单表加密算法明文-密文对照表:按照表9.4所示的替换规则,前面例子中的明文“BRUTUS,RETURN TO ROME.”将会被转换为如下的密文:UPSESR,PBESPH EJ PJFB.可以看出,和使用恺撒加密算法的效果一样,使用单表加密算法加密之后的密文也是晦涩难懂,从字面上看不出任何意义。19第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 在恺撒加密算法中,作为密钥的k
30、值一共有25种可能的取值情况。在单表加密算法中,由于字母表中的任何一个字母可以由字母表中的任何一个其他字母进行替换,所以一共有26!种可能的情况,这个数字非常大,大约是1026这个数量级。如果密码破解者试图采用穷举法破解单表加密算法,逐个去试所有可能的26!种情况,将会耗费极其巨大的代价,不是可行的方法。显然,相比恺撒加密算法,单表加密算法的加密性能有很大的提高,密码更难被破解。尽管单表加密算法相对于恺撒加密算法而言加密性能有很大的提高,但是,通过一些对明文的统计分析,单表加密算法也是相对比较容易破解的。首先,如果密码破解者知道在英语文字中字母“e”和“t”是出现频率最高的两个字母,分别占13
31、%和9%,这会对破解单表加密算法有所帮助。其次,如果密码破解者知道在英语文字中有些字母经常组合在一起出现,例如:“re”、“er”、“it”、“ing”、“in”和“ion”等等,这会进一步对破解单表加密算法提供有用信息。最后,如果密码破解者对明文消息的内容有一定的了解的话,对单表加密算法的破解将会更加容易。比如,在上面“BRUTUS,RETURN TO ROME.”这个例子中,如果密文截获者知道在明文消息中一定包含“ROME”这个词,那么原先对26个字母进行破解就简化为对22个字母进行破解,破解单表加密算法的搜索空间进一步缩减。事实上,如果密码破解者还知道恺撒的这条命令和布鲁图斯有关,明文消
32、息中包含“BRUTUS”这个词的话,对单表加密算法的破解会变得更加容易。20第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 3.DES前面介绍的恺撒加密算法和单表加密算法都属于传统的对称密钥加密算法,距今已有几千年的历史。接下来,我们介绍一种现代的对称密钥加密算法:DES。美国国家标准局(NBS:National Bureau of Standards)于1973年和1974年两次向社会征求适用于商业和非机密政府部门的加密算法。在征集到的算法中,IBM公司设计的Lucifer算法被选中,该算法于1976年11月被美国政府采用,随后获得美国国家标准局和美国国家标准协会(ANSI:Am
33、erican National Standard Institute)的承认,并于1977年1月以“数据加密标准”(DES:Data Encryption Standard)的名称正式向社会公布。DES是一种用于电子数据加密的对称密钥加密算法,它采用固定长度(64位)的明文比特字符串,通过一系列复杂的操作将其转换成相同长度的密文比特字符串。DES使用密钥来定制对明文的加密变换,只有知道加密运算使用的特定密钥才能完成相应的解密运算。DES的密钥长度为64位,其中8位是奇校验位(odd parity bits),每个字节对应一个校验位,用于进行奇偶校验,因此,DES密钥的实际有效长度有56位。21
34、第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 DES算法使用8个字节共64位的密钥,对8个字节共64位的需要被加密的明文数据块进行加密运算,将其转换为长度为64位的密文。DES算法的解密运算和加密运算使用相同的密钥,这是所有对称密钥加密算法都必须具备的属性。DES算法的解密运算是加密运算的逆运算,即解密运算是将加密运算中的每一个步骤按照从后向前的顺序逐个执行一遍。DES算法的基本运算过程总体上分为:初始置换(initial transposition)、16轮中间迭代运算、32位交换、逆置换(inverse transposition)等四个主要部分,总共包括19个具体的步骤,如
35、图9.4所示。22第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 DES算法的第一个步骤是初始置换,按照规则把64位原始明文数据顺序打乱,重新排列,例如:将输入的64位明文的第1位置换到第40位,第2位置换到第8位,第3位置换到第48位,以此类推。注意,初始置换的数据置换规则是规定好的,初始置换处理与密钥无关。DES算法的最后一个步骤是逆置换,逆置换是初始置换的逆运算,即逆置换的数据置换规则和初始置换正好相反,例如:将第40位置换到第1位,第8位置换到第2位,第48位置换到第3位,以此类推。DES算法的倒数第二个步骤是32位交换,将64位数据中的左半边32位和右半边32位进行交换。
36、在DES算法整体19个步骤中,中间的16轮迭代运算(如图9.4中所示的第1轮迭代运算到第16轮迭代运算)从功能上是完全相同的,但是每一轮迭代运算使用不同的密钥Ki作为参数。如图9.4(b)所示,在DES算法中间的每一轮迭代运算,以两个32位数据作为输入(左边32位和右边32位),经过运算处理,产生两个32位数据作为本轮迭代运算的输出。左边32位的输出很简单,就是把右边32位的输入复制过来,即:Li=Ri-1。右边32位的输出比较复杂,它是将左边32位输入Li-1与右边32位输入Ri-1和本轮迭代运算的密钥Ki的一个函数执行按位异或(bitwise exclusive OR)运算得到的结果,即图
37、9.4(b)中所示的:Ri=Li-1 XOR f(Ri-1,Ki),其中XOR表示按位异或运算。在DES算法中,计算右边32位输出Ri所使用的函数f()比较复杂,篇幅关系,这里不详细介绍,其详细运算细节可以参考相关算法资料。值得指出的是,整个DES算法的复杂度也正是源于这个f()函数。23第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 上面介绍了DES算法的基本思路和运算过程,那么,DES算法的加密效果究竟怎么样?使用DES算法加密的数据到底有多安全?1997年,一家网络安全公司,RSA数据安全公司(RSA Data Security Inc.),发起了首届“DES算法挑战赛”(D
38、ES Challenge),看谁能够破解使用DES算法加密的一段信息“Strong cryptography makes the world a safer place.”在首届挑战赛上,一个由罗克维瑟(Rocke Verser)领导的团队用了不到四个月的时间成功破解了这段密码,获得一万美元的奖金。该团队在Internet上召集了许多密码破解志愿者,以分布式计算的方式系统地对DES密码的解空间进行搜索。由于DES算法密钥的实际有效长度是56位,因此所有可能的密钥的总数是256个,大约是72千万亿(quadrillion)个,该团队的密码破解志愿者采用穷举法(brute force)逐个去试每一
39、个可能的密码。事实上,该团队在搜索了大约四分之一的密码解空间,即18千万亿个密码时,就成功破解了该密码。在1999年的第三届DES挑战赛(DES Challenge III)上,密码破解者借助一台专用的计算机,仅仅用了22小时多一点的时间就成功破解了DES密码。随着计算机运算速度的不断提高,如果认为使用56位密钥的DES算法还不够安全的话,可以反复多次使用该算法,从而提高数据加密性能。以上一次DES算法的64位输出结果作为输入,进行下一次DES运算,每次运算时使用不同的密钥,比如三重DES运算(triple DES,或称为3DES)。24第第9章计算机网络安全与网络管理章计算机网络安全与网络管
40、理 9.2.3 非对称密钥加密非对称密钥加密1976年,美国斯坦福大学的两位密码学研究人员迪菲(W.Diffie)和赫尔曼(M.Hellman)在IEEE Transactions on Information上发表了论文密码编码学的新方向(“New Direction in Cryptography”),提出了“非对称密钥加密体制即公开密钥加密体制”的概念,开创了密码学研究的新方向。在非对称密钥加密体制下,不仅加密算法可以公开,甚至加密密钥也可以是公开的,因此非对称密钥加密也被称为公开密钥加密(public key encryption)。公开密钥并不会导致保密程度降低,因为加密密钥和解密密
41、钥不一样。非对称密钥加密算法使用两把完全不同但完全匹配的一对密钥:公开密钥(public key)和私人密钥(private key)。公开密钥简称公钥,对外公开;私人密钥简称私钥,秘密保存。在非对称密钥加密算法中,加密密钥不同于解密密钥,加密密钥是公开的,谁都知道,甚至包括信息截取者(或攻击者、入侵者),而解密密钥只有解密人自己知道。在使用非对称密钥加密算法进行数据加密时,只有使用匹配的一对公钥和私钥,才能完成对数据的加密和解密。25第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 非对称密钥加密算法的基本思想是,通信双方在发送信息之前,接收方必须将自己的公钥告知发送方,自己保留私
42、钥。由于发送方知道接收方的公钥,它利用接收方的公钥对原始明文进行加密,得到密文,然后将密文发送给接收方。接收方收到密文后,使用自己的私钥对密文进行解密,还原得到原始的明文。非对称密钥加密算法的基本工作原理可以归纳为以下五个步骤:(1)用户A要向用户B发送信息,用户A和用户B都要产生一对匹配的用于加密和解密的公钥和私钥。(2)用户A将自己的公钥告诉用户B,私钥保密;用户B将自己的公钥告诉用户A,私钥保密。(3)用户A要给用户B发送信息时,由于用户A已经知道用户B的公钥,用户A以用户B的公钥作为输入参数对原始明文进行加密处理,得到相应的密文。(4)用户A将密文发送给用户B。(5)用户B收到密文后,
43、用自己的私钥进行解密。其他收到密文的人,例如信息截取者(或攻击者、入侵者),无法解密,因为只有用户B知道自己的私钥。26第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 非对称密钥加密算法的基本工作过程如图9.5所示。如图9.5所示,在非对称密钥加密算法中,用户A发出的明文通过加密算法转换为密文的过程如公式(9-3)所示:C=Eke(P)(9-3)公式(9-3)的含义是,加密算法E以明文P和加密用的公钥Ke为输入,经过加密算法运算处理,得到密文C作为加密算法的输出。如图9.5所示,在非对称密钥加密算法中,将密文通过解密算法还原为明文的过程如公式(9-4)所示:Dkd(C)=Dkd(E
44、ke(P)=P (9-4)公式(9-4)的含义是,解密算法D以密文C和解密用的私钥Kd为输入,经过解密算法运算处理,还原得到明文P作为解密算法的输出。27第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 根据上述的非对称密钥加密算法的基本思想和工作原理,我们可以看出非对称密钥加密算法的显著优点:通信双方为了安全地传输私密信息无需互相传送解密算法所需的私钥。在整个数据传输过程中,公开传输的只有通信双方的公钥,而公钥本来就是公开的信息,不存在泄密的问题。通信双方各自的私钥始终由各方自己掌握,没有公开传输,因此避免了泄密的风险。非对称密钥加密算法的典型代表有RSA算法和美国国家标准局提出的
45、DSA算法(Digital Signature Algorithm)。RSA算法是1977年由Ron Rivest、Adi Shamir和Leonard Adleman在美国麻省理工学院开发的,算法的名称来自三位开发者姓名的缩写。RSA算法是目前最有影响力的公开密钥加密算法,它能够抵抗到目前为止几乎所有已知的密码攻击,被国际标准化组织ISO推荐为公开密钥数据加密标准。由于非对称密钥加密算法有两个密钥,因此适用于分布式系统中的数据加密。以非对称密钥加密算法为基础的加密技术应用非常广泛,通常用于会话密钥加密、数字签名验证等领域。28第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.3
46、防火墙计算机网络的目的是能够将任何地方的一台计算机与任何地方的另一台计算机进行互连互通。事实上,计算机网络的这种互连能力是一把双刃剑。对于普通家庭网络用户而言,能够自由地在Internet上漫游确实非常方便,也十分有趣。但是,对于公司和单位的网络安全管理人员而言,计算机网络广泛而便捷的互连互通能力却是一个梦魇。因为,大多数的公司和单位都有大量的在线机密信息,例如:财务分析报表、产品研发计划、交易信息、市场营销方案等等,这些涉密信息一旦泄露给竞争对手,无疑会引发严重的后果。除了上述的机密信息向外部网络泄露所带来的危险,有害信息渗入内部网络也会带来危险,此类风险往往是由内部员工不经意间引入内部网络
47、的,比如网络病毒、网络蠕虫等突破网络安全防范措施,盗取内部网络的机密信息,破坏内部网络的重要数据。29第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 为了维护计算机网络的信息安全,人们需要某种机制,它能够使“好的”信息顺畅流入内部网络,同时将“坏的”信息阻挡在内部网络之外,这就是计算机网络的安全防御系统:防火墙(firewall)。防火墙的概念最早起源于中世纪,那时的人们为了保护城堡的安全,通常沿城堡四周挖一条护城河,护城河上架设一个吊桥,每个进入或者离开城堡的人都必须经过这个吊桥,在那里接受城堡守卫的检查。在计算机网络中,人们借鉴了传统防火墙的思想,在内部网络和外部网络之间构建起
48、一个维护网络安全的防火墙,所有流出和流入内部网络的信息都必须经过这个电子的吊桥(即防火墙),除此之外,别无其他途径。防火墙在计算机网络中的地位如图9.6所示。30第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 9.3.1 防火墙的基本概念防火墙的基本概念计算机网络的防火墙是硬件和软件的某种组合,它将一个组织机构的内部网络与外部网络(比如Internet)隔离开。按照一定的规则,防火墙允许某些符合规定的数据包流入和流出内部网络,阻挡那些不符合规定的数据包流入和流出内部网络。防火墙能够根据网络的安全策略控制流入和流出内部网络的信息流,而且防火墙自身通常具有较强的抗攻击能力。防火墙是提供
49、计算机网络信息安全服务、实现计算机网络信息安全的基础设施。使用计算机网络防火墙能够完成以下几个方面的主要功能主要功能:(1)使用防火墙能够有效阻止网络攻击者干扰内部网络的日常运转。一个组织机构的竞争对手可能会选择时机对该组织机构的内部网络发起网络攻击,比如采用前述的DoS攻击,大量占用甚至完全垄断该网络的关键系统资源,使该网络无法正常运转,最终导致网络崩溃。(2)使用防火墙能够有效阻止网络攻击者非法删除或者恶意篡改存储在内部网络中的信息。例如,网络攻击者会对某个组织机构的Web服务器发起攻击,试图损害该组织机构的公众形象,这种攻击通常能够在极短的时间内被成千上万的人看到,产生相当大的负面影响。
50、(3)使用防火墙能够有效阻止网络攻击者从内部网络中获取机密信息。大多数组织机构都有一些机密信息或者涉及个人隐私的信息存储在内部网络的计算机中,这些信息包括:机密交易信息、财务报表、金融分析报告、员工个人信息、市场营销策略等等。31第第9章计算机网络安全与网络管理章计算机网络安全与网络管理 从逻辑上讲,防火墙既是一个网络信息的隔离器,也是一个网络信息的分析器,它能够有效地监督和控制内部网络和外部网络之间的信息流,维护内部网络的安全。防火墙具有以下几个方面的优点优点:(1)防火墙能够集中并强化网络安全策略。通过以防火墙为中心的安全方案配置,可以把所有安全措施都集中配置在防火墙上,比如:密码、加密、