西安电子科技大学出版社高等学校计算机类“十二五”规划教材部级优秀教材计算机操作系统汤小丹梁红兵哲凤屏汤子瀛(第四版)编著2第十二章保护和安全第十二章保护和安全12.1安全环境12.2数据加密技术12.3用户验证12.4来自系统内部的攻击12.5来自系统外部的攻击12.6可信系统(TrustedSystem)习题3第十二章保护和安全 12.1安全环境由于社会的复杂性和某些事物的不可预知性,使得计算机系统的环境往往是不安全的。为此,必须对我们的工作环境采取“保护”措施,使之变成为一个“安全”环境。“保护”和“安全”是有不同含意的两个术语。可以把“保护”定义为:对攻击、入侵和损害系统等的行为进行防御或监视。“安全”是对系统完整性和数据安全性的可信度的衡量。4第十二章保护和安全12.1.1实现“安全环境”的主要目标和面临的威胁1.数据机密性(datasecrecy)数据机密性是指将机密的数据置于保密状态,仅允许被授权用户访问系统中的信息,以避免数据暴露。更确切地说,系统必须保证用户的数据,仅供被授权用户阅读,而不允许未经授权的用户阅读,以保证数据的保密性。5第十二章保护和安全2.数据完整性(dataintegrity)完整性是指对数据或资源的可信赖程度,包括数据的完整性(信息内容)和来源的完整性(数据来源),通常用于表述防止不当或未经授权的修改。信息的来源可能会涉及信息的准确性和可信性,以及人们对此信息的信任程度,因此这种可信性也是系统正确运行的关键。此外,还必须能保持系统中数据的一致性。6第十二章保护和安全3.系统可用性(systemavailability)可用性是指能保证计算机中的资源供授权用户随时访问,系统不会拒绝服务。更明确地说,授权用户的正常请求能及时、正确、安全地得到服务或响应。而攻击者为了达到使系统拒绝的目的,可能通过“修改”合法用户名字的方法,将他变为非法用户,使系统拒绝向该合法用户提供服务。此外,拒绝服务还可能由硬件故障引起,如磁盘故障、电源掉电等,也可能由软件故障引起。7第十二章保护和安全12.1.2系统安全的特征1.多面性在大型系统中通常存在着多个风险点,在这些风险点应从三方面采取措施加以防范:(1)物理安全(2)逻辑安全(3)安全管理8第十二章保护和安全2.动态性由于信息技术不断发展和攻击手段层出不穷,使系统的安全问题呈现出以下的动态性:(1)信息的时效性。(2)攻击手段的不断翻新。9第十二章保护和安全3.层次性大型系统的安全问题是一个相当复杂的问题,因此必需采用系统工程的方法解决。为了简化系统安全的复杂性,系统安全通常采用层次-模块化结构方法:首先将系统安全问题划分为若干个安全主题(功能模块),作为最高层;然后再将其中每一个安全主题功能模块分成若干个安全子功能模块,作为次高层;此后再进一步将一个安全子功能模块分为若干安全孙功能模块,作为第三层;其最低一层是一组最小可选择的安全功能模块,用多个层次的安全功能模块来覆盖整个系统安全的各个方面。10第十二章保护和安全4.适度性当前几乎所有的单位在实现系统安全工程时,都遵循了适度安全准则,即根据实际需要提供适度的安全目标加以实现。这是因为:(1)由于系统安全的多面性,使对安全问题的全面覆盖基本上不可能实现;(2)实现全覆盖所需的成本也是难以令人接受的;(3)由于系统安全的动态性,即使当时实现了安全问题的全覆盖,随着计算机技术的迅速发展,企业规模的不断扩大,必然很快就会出现新的问题。11第十二章保护和安全12.1.3计算机安全的分类1. CC的由来对一个安全产品(系统)进行评估,是件十分复杂的事,需要有一个能被广泛接受的评估标准。12第十二章保护和安全2.计算机安全的分类在“可信任计算机系统评价标准”中将计算机系统的安全程度划分为:D、C、B、A四类。共分为D、C1、C2、B1、B2、B3和A1七个等级。(1) D类,(2) C1级。(3) C2级。(4) B1级。(5) B2级。(6) B3级。(7) A1级。13第十二章保护和安全 12.2数据加密技术12.2.1数据加密原理加密是一种密写科学,用于把系统中的数据(称为明文)转换为密文。使攻击者即使截获到被加密的数据,也无法了解数据的内容,从而有效地保护了系统中信息的安全性。数据加密技术包括:数据加密、数据解密、数字签名、签名识别以及数字证明等。14第十二章保护和安全1.数据加密模型早在几千年前,人类就已经有了通信保密的思想,并先后出现了易位法和置换法等加密方法。但直至进入20世纪60年代,由于科学技术的发展,才使密码学的研究进入了一个新的发展时期。计算机网络的发展,尤其是Internet广泛深入的应用,又推动了数据加密技术的迅速发展。15第十二章保护和安全图12-1数据加密模型16第十二章保护和安全2.基本加密方法1)易位法易位法是按照一定的规则,重新安排明文中的比特或字符的顺序来形成密文,而字符本身保持不变。按易位单位的不同,又可分成比特易位和字符易位两种。17第十二章保护和安全图12-2按字符易位加密算法18第十二章保护和安全2)置换法置换法是按照一定的规则,用一个字符去置换(替代)另一个字符来形成密文。最早由朱叶斯·凯撒(Juliuscaeser)提出的算法非常简单,它是将字母a、b、c、…、x、y、z循环右移三位后,即利用d置换a,用e置换b等。凯撒算法的推广是移动K位。单纯移动K位的置换算法很容易被破译,比较好的置换算法是进行映像。19第十二章保护和安全图12-326个字母的映像20第十二章保护和安全12.2.2对称加密算法与非对称加密算法1.对称加密算法在对称加密算法中,在加密算法和解密算法之间存在着一定的相依关系,即加密和解密算法往往使用相同的密钥;或者在知道了加密密钥Ke后,就很容易推导出解密密钥Kd。最有代表性的对称加密算法是数据加密标准DES(DataEneryptionStandard)。ISO现在已将DES作为数据加密标准。21第十二章保护和安全2.非对称加密算法非对称加密算法的加密密钥Ke和解密密钥Kd不同,而且难以从Ke推导出Kd来,故而可将其中的一个密钥公开而成为公开密钥,故该算法也可称为公开密钥算法。每个用户保存一对密钥,每个人的公开密钥都对外公开。假如某用户要与另一用户通信,他可用公开密钥对数据进行加密,而收信者则用自己的私用密钥进行解密。这样就可以保证信息不会外泄。22第十二章保护和安全12.2.3数字签名和数字证明书1.数字签名在金融和商业等系统中,许多业务都要求在单据上签名或加盖印章,以证实其真实性,备日后查验。在利用计算机网络传送报文时,可将公开密钥法用于电子(数字)签名,来代替传统的签名。而为使数字签名能代替传统的签名,必须满足下述三个条件:(1)接收者能够核实发送者对报文的签名。(2)发送者事后不能抵赖其对报文的签名。(3)接收者无法伪造对报文的签名。23第十二章保护和安全1)简单数字签名在这种数字签名方式中,发送者A可使用私用密钥Kda对明文P进行加密,形成DKda(P)后传送给接收者B。B可利用A的公开密钥Kea对DKda(P)进行解密,得到EKea(DKda(P))=P,如图12-4(a)所示。24第十二章保护和安全图12-4数字签名示意图25第十二章保护和安全2)保密数字签名为了实现在发送者A和接收者B之间的保密数字签名,要求A和B都具有密钥,再按照图12-4(b)所示的方法进行加密和解密:(1)发送者A可用自己的私用密钥Kda对明文P加密,得到密文DKda(P)。(2) A再用B的公开密钥Keb对DKda(P)进行加密,得到EKeb(DKda(P))后送B。(3) B收到后,先用私用密钥Kdb进行解密,即DKdb(EKeb(DKda(P)))=DKda(P)。(4) B再用A的公开密钥Kea对DKda(P)进行解密,得到EKea(DKda(P)) = P。26第十二章保护和安全2.数字证明书(Certificate)虽然可以利用公开密钥方法进行数字签名,但事实上又无法证明公开密钥的持有者是合法的持有者。为此,必须有一个大家都信得过的认证机构CA(CertificationAuthority),由该机构为公开密钥发放一份公开密钥证明书,该公开密钥证明书又称为数字证明书,用于证明通信请求者的身份。27第十二章保护和安全 12.3用户验证验证又称为识别或认证。当用户要登录一台多用户计算机时,操作系统将对该用户进行验证(Authentication),这一过程称为用户验证。用户验证的目的在于确定被验证的对象(包括人和事)是否真实,即确认“你是否是你所声称的你”,以防止入侵者进行假冒、篡改等。通常利用验证技术作为保障网络安全的第一道防线。28第十二章保护和安全12.3.1使用口令验证1.口令用户要上机时系统首先要求用户输入用户名。登录程序利用该名字去查找一张用户注册表,若从中找到匹配的用户名后,再要求用户输入口令,如果输入的口令也与注册表中的口令一致,系统便认为该用户是合法用户,允许该用户进入系统;否则将拒绝该用户登录。29第十二章保护和安全2.提高口令安全性的方法攻击者可通过多种方式来获取用户登录名和口令,其中最常用的方式是直接猜出用户所使用的口令。为提高口令的安全性,必须能防止攻击者猜出口令。为此,口令机制通常应满足以下几点要求:(1)口令应适当长。(2)应采用多种字符。(3)自动断开连接。(4)回送显示的安全性。(5)记录和报告。30第十二章保护和安全3.一次性口令(OnetimePassword)为了防止口令外泄,用户应当经常改变口令,一种极端的情况是采用一次性口令机制,即口令被使用一次后就换另一个口令。在采用该机制时,用户必须给系统提供一张口令表,其中记录有其使用的口令序列。系统为该表设置一指针,用于指示下次用户登录时所应使用的口令。31第十二章保护和安全4.口令文件通常在口令机制中都配置有一份口令文件,用于保存合法用户的口令和与用户的特权。该文件的安全性至关重要,一旦攻击者访问了该文件,将使整个计算机系统无安全性可言。保证口令文件安全性最有效的方法是利用加密技术,其中一个行之有效的方法是选择一个函数来对口令进行加密。该函数f(x)具有这样的特性:在给定了x值后,很容易算出f(x);然而,如果给定了f(x)值,却不能算出x的值。利用f(x)函数去加密所有的口令,再将加密后的口令存入口令文件中。32第十二章保护和安全图12-5对加密口令的验证方法33第十二章保护和安全5.挑战—响应验证在该方法中,由用户自己选择一个算法,算法可以很简单也可较复杂,如X2,并将该算法告知服务器。每当用户登录时,服务器就给用户发来一个随机数,如12,用户收到后,按所选算法对该数据进行平方运算,得到144,并用它作为口令。服务器再将所收到的口令与自己计算(利用X2算法)的结果进行比较,如相同便允许用户上机,否则拒绝用户登录。由于该方法所使用的口令不是一个固定数据,而是基于服务器随机产生的数再经过计算得到的,因此令攻击难于猜测。如果再频繁地改变算法就更为安全。34第十二章保护和安全12.3.2基于物理标志的验证技术1.基于磁卡的验证技术目前广泛使用的银行现金卡、公交卡等,都普遍采用磁卡。这是一块其大小和名片相仿的塑料卡,在其上贴有含若干条磁道的磁条。一般在磁条上有三条磁道,每条磁道可用来记录不同数量的数据。如果在磁条上记录了用户名、用户密码、账号和金额,这就是银行卡;而如果在磁条上记录的是有关用户的信息,该卡便可作为识别用户身份的物理标志。35第十二章保护和安全2.基于IC卡的验证技术在外观上IC卡与磁卡并无明显差异,但在IC卡中可装入CPU和存储器芯片,使该卡具有一定的智能,故又称智能卡。IC卡中的CPU用于对内部数据的访问和与外部数据进行交换,还可用加密算法对数据进行处理,这使IC卡比磁卡具有更强的防伪性和保密性,因而IC卡正在逐步取代磁卡。根据卡中装入芯片的不同,可把IC卡分为以下三种类型:(1)存储器卡。(2)微处理器卡