信息安全技术
信息安全关键技术
加密和解密技术
计算机网络的广泛应用,产生了大量的电子数据,这些电子数据需要传输到网络的许多地方,并存储起来。对于这些数据,有意的计算机犯罪和无意的数据破坏成为最大的威胁。原则上来说,对电子数据的攻击有两种形式:一种称为 $\color{red}{\text{被动攻击}}$ ,就是非法地 $\color{green}{\text{从传输信道上截取信息}}$ ,或 $\color{green}{\text{从存储载体上偷窃}}$ 、 $\color{green}{\text{复制信息}}$ 。另一种称为 $\color{red}{\text{主动进攻}}$ ,就是对传输或存储的数据进行恶意的 $\color{green}{\text{删除}}$ 、 $\color{green}{\text{篡改}}$ 等。实践证明,密码技术是防止数据攻击的一种有效而经济的方法。
我们把消息的发送者称为信源;消息的目的地称为信宿;没有加密的消息称为明文;加密后的消息称为密文;用来传输消息的通道称为信道。通信时,明文M通过变换E得到密文C,即C=E(u, v, …,W; m)。这个过程称为加密,参数u, v, …, w称为密钥。这里所说的变换E,就是加密算法。从密文C恢复到明文M,这个过程称为解密。解密算法D是加密算法E的逆运算。
加密密钥与解密密钥相同,或者加密密钥与解密密钥可以简单相互推导的密码体制称为对称密码体制。现代密码学修正了密钥的对称性,加密、解密密钥是不同的,也是不能(在有效的时间内)相互推导的,称为非对称密码体制。
对称密钥密码体制及典型算法
对称算法(Symmetric Algorithm),有时又称为传统密码算法,在大多数对称算法中,加密密钥和解密密钥是相同的,所以也称秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信至关重要。
对称加密的优点在于算法实现的效率高、速度快。对称加密的缺点在于密钥的管理过于复杂。常用的对称加密算法有DES、IDEA等。
1)DES算法简介
DES (Data Encryption Standard,数据加密标准)是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。
DES是一个分组加密算法,它以64位为分组对数据加密;同时DES也是一个对称算法。它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意56位的数,而且可以任意时候改变。其保密性依赖于密钥。
DES算法分如下3个步骤进行。
(1)对给定的64位的明文x,通过一个初始置换函数IP来排列x,从而构造出长为64位的串X0,记X0为IP(X)=L0R0,L0表示X0的前32位,R0表示X0的后32位。
(2)计算16次迭代,设前i-1次迭代结果为Xi-1=Li-1Ri-1,则第i轮迭代运算为:
Li=Ri-1 Ri=Li-1⊕f(Ri-1, ki)
其中,Li-1表示Xi-1的前32位,Ri-1表示Xi-1的后32位,⊕表示两位串的“异或”运算,f主要是由一个称为S盒的置换构成。Ki是一些由初始的56位经过密钥编排函数产生的48位长的块。
(3)对位串L16R16作逆置换IP-1得密文y,y=IP-1(R16L16),置换IP-1是IP的逆置换。
DES算法的示意图如图11-1所示。
图11-1 DES算法示意图
2)IDEA算法简介
国际数据加密算法(International Data Encryption Algorithm, IDEA)是1992年来学嘉等人设计的算法。该算法的前身是1990年公布的推荐加密标准(Proposed Encryption Standard, PES)算法。
IDEA分组长度为64b,密钥长度为128b。其使用的运算非常简单,只需要异或,模216加和模(216+1)乘,这些算法都很容易使用硬件或者软件实现(而DES算法便于用硬件实现,难以用软件实现),所有运算都是使用基于16b数运行,很容易在现在的16b、32b、64b CPU上实现。由于这一特性,使用软件实现的IDEA算法的运算速度比DES算法要快。由于IDEA算法使用的密钥长度为128b,远远大于DES算法的56b,对于128b密钥来说,使用穷举法攻击的方法是不现实的。
不对称密码加密算法
不对称密码体制又称为双密钥和公钥密码体制,是于1976年由Diffie和Hellman提出的。与对称密码体制相比,非对称密码体制有两个不同的密钥,其中一个密钥称为私钥,该密钥被秘密保存;另一个密钥公开,不需要保密。
公钥密码系统的工作方式为:任何人都可以将自己加密的公钥公布在网络或其他可以公开的地方。其他人欲传送信息给该接收方时,可使用该接收方所公布的公钥将信息加密之后传送给接收方。接收方收到加密后的信息时,就可以利用拥有的与此公钥相对应的私钥,将该加密信息解出来。所以公开密钥密码系统的通信双方,不需要事先通过安全秘密管道交换密钥,即可进行通信。
RSA密码体制是一个常用的非对称的密码体制,它是一个既能用于数据加密也能用于数字签名的算法。
RSA的安全性依赖于大素数分解。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
1)密钥对的产生
(1)选择两个大素数,p和q。
(2)计算n=p*q。
(3)随机选择加密密钥e,e必须满足以下条件:
GCD(e, φ(N))=1
其中,φ为Euler’s Function,φ(N)为小于N、且与N互质的整数的个数。在此,φ(N)=(p-1)(q-1)(也有些做法是取LCM((p-1)(q-1)))。
(4)利用Euclid算法计算解密密钥d,满足d=e-1modφ(N)。
产生出加密公钥e、N与解密密钥d之后,使用者将e及N公开,就可以使用它们来执行加解密的工作了。
2)加密程序
使用者将其欲加密的信息M,在取得对方的公钥e及N之后,执行模(mod,即同余的运算,C=MmodN,C等于M除以N的余数)指数运算,就可获得密文C。
图片详情
3)解密程序
对方在收到密文C后,以自己的私钥执行下面的解密程序,解密时作如下计算:
图片详情
即可获得明文M。
RSA可用于数字签名,方案是用(b)签名,用(a)验证。具体操作时考虑到安全性和M信息量较大等因素,一般是先作HASH运算。
RSA的安全性依赖于大数分解,由于进行的都是大数计算,使得RSA最快的情况也是DES百分之一。无论是软件还是硬件实现,速度慢一直是RSA的缺陷,因此一般来说,RSA只用于少量数据加密。
散列函数与数字签名
MD5散列算法
散列函数是一种公开的数学函数。散列函数运算的输入信息叫做报文,运算后所得到的结果叫做散列码或者叫做消息摘要。散列函数h=H(M)具有如下一些特点。
(1)不同内容的报文具有不同的散列码,给定M,要找到另一消息M,使H(M)=H(M′)很难。
(2)散列函数是单向的,给出M,容易计算出h。给定h,根据h=H(M)反推M却很难。
(3)对于任何一个报文,无法预知它的散列码。
(4)散列码具有固定的长度,不管原始报文的长度如何,通过散列函数运算后的散列码都具有一样的长度。
由于散列函数具有这些特征,因此散列函数可以用来检测报文的可靠性。接收者对收到的报文用与发送者相同的散列函数进行运算,如果得到与发送者相同的散列码,则可以认为报文没有被篡改,否则报文就是不可信的。
常见的散列函数有MD5、SHA和HMAC等。
MD5(Message Digest 5)是一种非常著名的散列算法,已经成为国际标准。它是在MD4的基础上改进的算法,是具有更好的安全性能的散列算法。MD5散列算法对输入的任意长度消息产生128位(16字节)长度的散列值(或称消息摘要)。MD5算法包括以下4个步骤。
(1)附加填充位。首先对输入的报文进行填位补充,使填充后的数据长度模512后余448。如果数据长度正好模512余448,则需增加512个填充位,也就是说填充的个数为1~512位。填充位第一个位为1,其余全部为0。
(2)补足长度。将数据长度表示为二进制,如果长度超过64位,则截取其低64位;如果长度不足64位,则在其高位补0。将这个64位的报文长度补在经过填充的报文后面,使得最后的数据为512位的整数倍。
(3)初始化MD缓存器。MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为:
A:01 23 45 67 B: 89 ab cd ef C: fe dc ba 98 D: 76 54 32 10
(4)处理数据段。首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。对每一个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。
数字签名与数字水印
数字签名
数字签名可以解决否认、伪造、篡改及冒充等问题。具体要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。凡是需要对用户的身份进行判断的情况都可以使用数字签名,例如加密信件、商务信函、订货购买系统、远程金融交易和自动模式处理等。
数字签名方案一般包括三个过程:系统的初始化过程、签名产生过程和签名验证过程。在签名产生的过程中,用户利用给定的算法对消息产生签名;在签名验证过程中,验证者利用公开验证方法对给定消息的签名进行验证,得出签名的有效性。
实现数字签名的方法有很多,目前采用得比较多的是非对称加密技术和对称加密技术。虽然这两种技术的实施步骤不尽相同,但大体的工作程序是一样的。用户首先可以下载或者购买数字签名软件,然后安装在个人计算机上。在产生密钥对后,软件自动向外界传送公开密钥。由于公共密钥的存储需要,所以需要建立一个鉴定中心(Certification Authority, CA)完成个人信息及其密钥的确定工作。用户在获取公开密钥时,首先向鉴定中心请求数字确认,鉴定中心确认用户身份后,发出数字确认,同时鉴定中心向数据库发送确认信息。然后用户使用私有密钥对所传信息签名,保证信息的完整性、真实性,也使发送方无法否认信息的发送,之后发向接收方;接收方接收到信息后,使用公开密钥确认数字签名,在使用这种技术时,签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。如果密钥丢失,应该立即报告鉴定中心取消认证,将其列入确认取消列表之中。其次,鉴定中心必须能够迅速确认用户的身份及其密钥的关系。一旦接收到用户请求,鉴定中心要立即认证信息的安全性并返回信息。
目前已经有大量的数字签名算法,如RSA、E1Gama1、Fiat-Shamir、美国的数字签名标准/算法(DSS/DSA)、椭圆曲线等多种。
数字水印
随着数字技术和因特网的发展,各种形式的多媒体数字作品(如图像、视频和音频等)纷纷以网络形式发表,其版权保护成为一个迫切需要解决的问题。数字水印(Digital Watermarking)是实现版权保护的有效办法,如今已成为多媒体信息安全研究领域的一个热点,也是信息隐藏技术研究领域的重要分支。该技术是通过在原始数据中嵌入秘密信息——水印(Watermark)来证实该数据的所有权。这种被嵌入的水印可以是一段文字、标识或序列号等,而且这种水印通常是不可见或不可察的,它与原始数据(如图像、音频和视频数据)紧密结合并隐藏其中,在经过一些不破坏源数据使用价值或商用价值的操作后仍能保存下来。数字水印技术必须具有较强的鲁棒性、安全性和透明性。
(1)典型数字水印系统模型。
图11-2为水印信号嵌入模型,其功能是将水印信号加入原始数据中;图11-3为水印信号检测模型,用来判断某一数据中是否含有指定的水印信号。
图11-3 水印信号检测模型
数字水印主要应用领域。
①版权保护。即数字作品的所有者可用密钥产生一个水印,并将其嵌入原始数据,然后公开发布他的水印版本作品。当该作品被盗版或出现版权纠纷时,所有者即可利用图11-2或图11-3的方法从盗版作品或水印版作品中获取水印信号作为依据,从而保护所有者的权益。
②加指纹。为避免未经授权的复制制作和发行,出品人可以将不同用户的ID或序列号作为不同的水印(指纹)嵌入作品的合法备份中。一旦发现未经授权的备份,就可以根据此备份所恢复出的指纹来确定它的来源。
③标题与注释。即将作品的标题、注释等内容(如一张照片的拍摄时间和地点等)以水印形式嵌入该作品中,这种隐式注释不需要额外的带宽,且不易丢失。
④篡改提示。当数字作品被用于法庭、医学、新闻及商业时,常需确定它们的内容是否被修改、伪造或特殊处理过。为实现该目的,通常可将原始图像分成多个独立块,再将每个块加入不同的水印。同时可通过检测每个数据块中的水印信号,来确定作品的完整性。与其他水印不同的是,这类水印必须是脆弱的,并且检测水印信号时,不需要原始数据。
⑤使用控制。这种应用的一个典型例子是DVD防复制系统,即将水印信息加入DVD数据中,这样DVD播放机即可通过检测DVD数据中的水印信息而判断其合法性和可复制性。从而保护制造商的商业利益。
典型数字水印算法有空域算法、变换域算法、压缩域算法、NEC算法和生理模型算法等。
密钥分配中心与公钥基础设施
在现代密码系统中,算法本身的保密已经不重要了,对于数据的保密在很大程度上、甚至完全依赖于对密钥的保密。只要密钥能够保密,即使加密算法公开,甚至加密设备丢失,也不会对加密系统的坚固性和正常使用产生多大影响。相反,如果密钥丢失,则不但非法用户可以窃取机密数据,而且合法用户面对密文却如读天书,无法提取有效的信息。因此,在密码系统中,如何高效地分配密钥、安全地管理密钥对保证数据安全来说至关重要。
密钥分配中心
一个信息系统中任意两个用户之间都可以自己协商来选择不同的密钥,显然,对于总共有N个用户的系统,每个用户都要保存N×(N-1)个密钥。在用户数量较少时,这样来分配密钥还是比较简单、易用的,但是一旦用户数量多起来,系统中要保存的密钥会急剧增多,让每个用户自己高效、安全地管理数量庞大的密钥实际上是不可能的。
有一种非常有效的密钥自动分配方案是密钥分配中心(Key Distribution Center, KDC)技术。
在KDC方案中,每一个用户都只保存自己的私钥SK和KDC的公钥PKKDC,而在通信时再从KDC获得其他用户的公钥或者仅仅在某一次通信中可以使用的对称密钥加密算法的临时密钥K。
假设A和B都是KDC的注册用户,他们分别拥有私钥SKA、SKB。设用对称密钥来加密他们之间的这次对话,那么密钥的分配过程如下。
首先,A向密钥分配中心发送SKA(A, B),表示自己想与B会话。该请求用自己的私钥SKA加密,KDC收到A的请求,用A的公钥来验证请求是由A发出的后,根据某种算法来生成供A、B之间会话使用的对称密钥K。KDC向A返回PKA(K, PKB(A, K)),该应答是用A的公钥加密的,只有A能解读。A用自己的私钥解密应答,得到密钥K,并将PKB(A, K)发送给B,表明A欲与B进行会话。B用自己的私钥解密得到会话密钥K。
至此,完成一次密钥分配。
2.数字证书和公开密钥基础设施
数字签名和公钥加密都是基于不对称加密技术的,存在的问题有:如何保证公开密钥的持有者是真实的;大规模信息系统环境下公开密钥如何产生、分发和管理。
要解决以上问题,就要用到数字证书和PKI。
1)数字证书
数字证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的机制。目前最常用的数字证书格式是由国际标准ITU-T X.509 V3版本定义的。
数字证书中采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己保存私钥,用它进行解密和签名;同时设定一个公钥,并由本人公开,为一组用户所共享,用于加密和验证签名。
数字证书是用户在系统中作为确认身份的证据。在通信的各个环节中,参与通信的各方通过验证对方数字证书,从而确认对方身份的真实性和有效性,从而解决相互间的信任问题。
数字证书的内容一般包括:唯一标识证书所有者的名称、唯一标识证书签发者的名称、证书所有者的公开密钥、证书签发者的数字签名、证书的有效期及证书的序列号等。
2)公钥基础设施
PKI(Public Key Infrastructure,公钥基础设施)的目标是向广大的信息系统用户和应用程序提供公开密钥的管理服务。
PKI的结构模型中有三类实体:管理实体、端实体和证书库。管理实体是PKI的核心,是服务的提供者;端实体是PKI的用户,是服务的使用者;证书库是一个分布式的数据库,用于证书和CRL的存放和检索。
CA和RA是两种管理实体。CA是框架中唯一能够发布和撤销证书的实体,维护证书的生命周期;RA负责处理用户请求,在验证了请求的有效性后,代替用户向CA提交。RA可以单独实现,也可以合并在CA中实现。作为管理实体,CA和RA以证书方式向端实体提供公开密钥的分发服务。
持有者和验证者是两种端实体。持有者是证书的拥有者,是证书所声明的事实上的主体。持有者向管理实体申请并获得证书,也可以在需要时请求撤销或更新证书。持有者使用证书声明自己的身份,从而获得相应的权力。验证者确认持有者所提供的证书的有效性和对方是否为该证书的真正拥有者,只有在成功鉴别之后才可与对方进行更进一步的交互。
由于证书库的存取对象为证书和CRL,其完整性由数字签名来保证,因此不需要额外的安全机制。
不同的实体间通过PKI操作完成证书的请求、确认、发布、撤销、更新和获取等过程。PKI操作分为存取操作和管理操作两类。其中,存取操作包括管理实体或端实体把证书和CRL存放到证书库、从证书库中读取证书和CRL;管理操作则是管理实体与端实体之间或管理实体与管理实体之间的交互,是为了完成证书的各项管理任务和建立证书链。
访问控制
访问控制是通过某种途径限制和允许对资源的访问能力以及范围的一种方法。它是针对越权使用系统资源的保护措施,通过限制对文件等资源的访问,防止非法用户的侵入或者合法用户的不当操作造成的破坏,从而保证信息系统资源的合法使用。
访问控制技术可以通过对计算机系统的控制,自动、有效地防止对系统资源进行非法访问或者不当的使用,检测出一部分安全侵害,同时可以支持应用和数据的安全需求。
访问控制技术并不能取代身份认证,它是建立在身份认证的基础之上的。
身份认证技术
在网络通信中,需要确定通信双方的身份,这就需要身份认证技术。在有安全需求的应用系统中,识别用户的身份是系统的基本要求,认证是安全系统中不可缺少的一部分。识别用户的身份有两种不同的形式:一种是身份认证,要求对用户所有的权限角色或自身的身份进行认证;一种是身份鉴定,要求对使用者本身的身份进行检查。
认证的方法多种多样,其安全强度也不相同。具体方法可归结为3大类:根据用户知道什么、拥有什么、是什么来进行认证。用户知道什么,一般就是口令;用户拥有什么,通常为私钥或令牌:用户是什么,这是一种基于生物识别技术的认证。
1)用户名和口令认证
简单认证方式主要是通过一个客户与服务器共知的口令(或与口令相关的数据,如散列、密文等)进行验证。根据处理形式的不同,有3种简单认证的方式:验证数据的明文传送、利用单向散列函数处理验证数据、利用单向散列函数和随机数处理验证数据,这3种方式的安全强度依次增加,处理复杂度也依次增高。
2)使用令牌认证
在使用令牌进行认证的系统中,进行验证的密钥存储于令牌中。对密钥的访问用口令进行控制。令牌是一个像IC卡一样可以加密存储并运行相应加密算法的设备,这种简单认证可以快速、方便地实现用户身份认证,但是认证的安全强度不高。通过令牌可以完成对用户必须拥有某物的验证。令牌的实现分为质询响应令牌和时间戳令牌,其中使用较多的是时间戳令牌。
质询响应令牌的工作原理是:在进行身份认证时,认证服务器首先发送一个随机数到客户机的登录程序。用户将这个随机数读出,输入令牌,并输入令牌的PIN码(实际就是口令),得以访问令牌。令牌对输入的随机数用存储的私钥进行签名,并把结果用Base64编码输出。用户把令牌的输出填入客户机的验证程序中,数据传输到认证的服务器端,在服务器端将使用用户的公钥对签名进行验证,以确定是否允许客户通过登录认证。在该方案中,由于使用数字签名进行登录认证,系统的安全强度大大增加:私钥采用令牌存储的方式解决了私钥自身的安全问题。令牌是一个可移动的设备,可以随身携带,而且令牌有PIN码保护,对令牌的非法访问超过一定的次数后,令牌会死锁。
时间戳令牌解决了质询响应令牌中随机数的问题,时间戳令牌利用时间代替上面的随机数。时间戳令牌每时每刻都在工作,一般每分钟产生一个登录数据,用户只需输入PIN码。登录数据被传送到认证的服务器端,服务器利用当前时间对登录数据进行验证,完成用户的登录过程。使用时间戳令牌需要重点考虑时间同步问题,由于令牌的时钟和认证服务器的时钟不同步,产生的验证码并不会通过验证。解决方法是在验证服务器上进行多次试探验证,在一个时间范围内试探,如果成功则在服务器上存储令牌时钟与服务器时钟的偏移量,以便下次登录时使用。目前,在安全性要求较高的认证系统中,多是采用这种方案。
采用PIN码与令牌实现了双因素验证,根据用户知道什么、拥有什么进行认证,也提供了一个保密认证密钥的方法。但是实现双因素验证需要用户输入数据,给用户的操作增加了麻烦。
3)生物识别与三因素认证
现在兴起了一种基于生物识别技术的认证,主要是根据认证者的图像、指纹、气味和声音等作为认证数据。基于用户知道什么(口令)、拥有什么(私钥和令牌)、是什么(生物特征)的3因素认证是目前强认证中使用最多的手段。在安全性要求较高的系统中,认证必须能对用户进行身份鉴定。要将用户知道什么、拥有什么、是什么结合起来,同时对认证用的密钥进行保护。
访问控制技术
根据控制手段和具体目的的不同,通常将访问控制技术划分为如下几个方面:入网访问控制、网络权限控制、目录级安全控制、属性安全控制以及网络服务器的安全控制等。
入网访问控制为网络访问提供了第一层访问控制。它控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许入网的工作站等。基于用户名和口令的用户的入网访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的默认限制检查。三个步骤中只要任何一个未通过校验,该用户便不能进入该网络。可以说,对网络用户的用户名和口令进行验证是防止非法访问的第一道防线。但由于用户名口令验证方式容易被攻破,目前很多网络都开始采用基于数字证书的验证方式。
网络权限控制是针对网络非法操作所提出的一种安全保护措施。能够访问网络的合法用户被划分为不同的用户组,用户和用户组被赋予一定的权限。访问控制机制明确了用户和用户组可以访问哪些目录、子目录、文件和其他资源;以及指定用户对这些文件、目录、设备能够执行哪些操作。它有两种实现方式,“受托者指派”和“继承权限屏蔽”。“受托者指派”控制用户和用户组如何使用网络服务器的目录、文件和设备;“继承权限屏蔽”相当于一个过滤器,可以限制子目录从父目录那里继承哪些权限。可以根据访问权限将用户分为以下几类:特殊用户(即系统管理员);一般用户,系统管理员根据他们的实际需要为他们分配操作权限;审计用户,负责网络的安全控制与资源使用情况的审计。用户对网络资源的访问权限可以用访问控制表来描述。
目录级安全控制是针对用户设置的访问控制,控制用户对目录、文件、设备的访问。用户在目录一级指定的权限对所有文件和子目录有效,用户还可以进一步指定对目录下的子目录和文件的权限。对目录和文件的访问权限一般有8种:系统管理员权限、读权限、写权限、创建权限、删除权限、修改权限、文件查找权限和访问控制权限。8种访问权限的有效组合可以让用户有效地完成工作,同时又能有效地控制用户对服务器资源的访问,从而加强了网络和服务器的安全性。
属性安全控制在权限安全控制的基础上提供更进一步的安全性。当用户访问文件、目录和网络设备时,网络系统管理员应该给出文件、目录的访问属性,网络上的资源都应预先标出安全属性,用户对网络资源的访问权限对应一张访问控制表,用以表明用户对网络资源的访问能力。属性设置可以覆盖已经指定的任何受托者指派和有效权限。属性能够控制以下几个方面的权限:向某个文件写数据、复制文件、删除目录或文件、查看目录和文件、执行文件、隐含文件、共享、系统属性等,避免发生非法访问的现象。
因为网络允许用户在服务器控制台上执行一系列操作,所以用户使用控制台就可以执行装载和卸载模块、安装和删除软件等操作,这就需要网络服务器有安全控制。网络服务器的安全控制包括可以设置口令锁定服务器控制台,从而防止非法用户修改、删除重要信息或破坏数据。具体包括设定服务器登录时间限制、非法访问者检测和关闭的时间间隔等。
安全协议
IPSec协议简述
为了满足Internet的安全需求,因特网工程任务组( $\color{green}{\text{IETF}}$ )于1998年11月颁布IP层安全标准IP SECURITY协议(IPSec),IPSec在IP层上对数据包进行高强度的安全处理提供数据源验证、无连接数据完整性、数据机密性、抗重播和有限通信流机密性等安全服务。
1)IPSec协议工作原理
IPSec通过使用两种通信安全协议来为数据报提供高质量的安全性:认证头(AH)协议和封装安全载荷(ESP)协议,以及像Internet密钥交换(Internet Key Exchange, IKE)协议这样的密钥管理过程和协议。其中AH协议提供数据源认证、无连接的完整性以及一个可选的抗重放服务。ESP协议提供数据保密性、有限的数据流保密性、数据源验证、无连接的完整性以及抗重放服务。IPSec允许系统或网络用户控制安全服务提供的粒度。IPSec的安全服务是由通信双方建立的安全关联(Security Association, SA)来提供的,SA为通信提供了安全协议、模式、算法和应用于单向IP流的密钥等安全信息。每一个IPSec节点包含一个局部的安全策略库(Security Polioy Database, SPD),系统在处理输入、输出IP流时必须参考该策略库,并根据从SPD中提取的策略对IP流进行不同的处理:拒绝、绕过、进行IPSec保护。如果策略决定IP流需要经过IPSec处理,则根据SPD与SAD的对应关系,找到相应的SA,并对IP包进行指定的IPSec处理。SA由一个三元组唯一地标识,该三元组包含一个安全参数索引(Security Parameter Index, SPI),一个用于输出处理SA的目的IP地址或者一个用于输入处理SA的源IP地址以及一个特定的协议(例如AH或者ESP)。SPI是为了唯一标识SA而生成的一个32位整数。它在AH和ESP头中传输,IPSec数据报的接收方易于识别SPI并利用它连同源或者目的IP地址和协议来搜索SAD,以确定与该数据报相关联的SA或者SA束。SA中所选用的安全协议、SA模式、SA的两端及安全协议内所要求的服务等具体地决定了怎样为通信流提供安全服务。但是,最终安全服务的具体实施是通过使用AH和ESP协议。
2)IPSec协议实现模式
IPSec协议既可用来保护一个完整的IP载荷,也可用来保护某个IP载荷的上层协议。这两方面第11章 信息安全技术
11.1 信息安全关键技术
11.1.1 加密和解密技术
计算机网络的广泛应用,产生了大量的电子数据,这些电子数据需要传输到网络的许多地方,并存储起来。对于这些数据,有意的计算机犯罪和无意的数据破坏成为最大的威胁。原则上来说,对电子数据的攻击有两种形式:一种称为被动攻击,就是非法地从传输信道上截取信息,或从存储载体上偷窃、复制信息。另一种称为主动进攻,就是对传输或存储的数据进行恶意的删除、篡改等。实践证明,密码技术是防止数据攻击的一种有效而经济的方法。
我们把消息的发送者称为信源;消息的目的地称为信宿;没有加密的消息称为明文;加密后的消息称为密文;用来传输消息的通道称为信道。通信时,明文M通过变换E得到密文C,即C=E(u, v, …,W; m)。这个过程称为加密,参数u, v, …, w称为密钥。这里所说的变换E,就是加密算法。从密文C恢复到明文M,这个过程称为解密。解密算法D是加密算法E的逆运算。
加密密钥与解密密钥相同,或者加密密钥与解密密钥可以简单相互推导的密码体制称为对称密码体制。现代密码学修正了密钥的对称性,加密、解密密钥是不同的,也是不能(在有效的时间内)相互推导的,称为非对称密码体制。
1.对称密钥密码体制及典型算法
对称算法(Symmetric Algorithm),有时又称为传统密码算法,在大多数对称算法中,加密密钥和解密密钥是相同的,所以也称秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信至关重要。
对称加密的优点在于算法实现的效率高、速度快。对称加密的缺点在于密钥的管理过于复杂。常用的对称加密算法有DES、IDEA等。
1)DES算法简介
DES (Data Encryption Standard,数据加密标准)是由IBM公司研制的一种加密算法,美国国家标准局于1977年公布把它作为非机要部门使用的数据加密标准。二十年来,它一直活跃在国际保密通信的舞台上,扮演了十分重要的角色。
DES是一个分组加密算法,它以64位为分组对数据加密;同时DES也是一个对称算法。它的密匙长度是56位(因为每个第8位都用作奇偶校验),密匙可以是任意56位的数,而且可以任意时候改变。其保密性依赖于密钥。
DES算法分如下3个步骤进行。
(1)对给定的64位的明文x,通过一个初始置换函数IP来排列x,从而构造出长为64位的串X0,记X0为IP(X)=L0R0,L0表示X0的前32位,R0表示X0的后32位。
(2)计算16次迭代,设前i-1次迭代结果为Xi-1=Li-1Ri-1,则第i轮迭代运算为:
Li=Ri-1 Ri=Li-1⊕f(Ri-1, ki)
其中,Li-1表示Xi-1的前32位,Ri-1表示Xi-1的后32位,⊕表示两位串的“异或”运算,f主要是由一个称为S盒的置换构成。Ki是一些由初始的56位经过密钥编排函数产生的48位长的块。
(3)对位串L16R16作逆置换IP-1得密文y,y=IP-1(R16L16),置换IP-1是IP的逆置换。
DES算法的示意图如图11-1所示。
alt
图11-1 DES算法示意图
2)IDEA算法简介
国际数据加密算法(International Data Encryption Algorithm, IDEA)是1992年来学嘉等人设计的算法。该算法的前身是1990年公布的推荐加密标准(Proposed Encryption Standard, PES)算法。
IDEA分组长度为64b,密钥长度为128b。其使用的运算非常简单,只需要异或,模216加和模(216+1)乘,这些算法都很容易使用硬件或者软件实现(而DES算法便于用硬件实现,难以用软件实现),所有运算都是使用基于16b数运行,很容易在现在的16b、32b、64b CPU上实现。由于这一特性,使用软件实现的IDEA算法的运算速度比DES算法要快。由于IDEA算法使用的密钥长度为128b,远远大于DES算法的56b,对于128b密钥来说,使用穷举法攻击的方法是不现实的。
2.不对称密码加密算法
不对称密码体制又称为双密钥和公钥密码体制,是于1976年由Diffie和Hellman提出的。与对称密码体制相比,非对称密码体制有两个不同的密钥,其中一个密钥称为私钥,该密钥被秘密保存;另一个密钥公开,不需要保密。
公钥密码系统的工作方式为:任何人都可以将自己加密的公钥公布在网络或其他可以公开的地方。其他人欲传送信息给该接收方时,可使用该接收方所公布的公钥将信息加密之后传送给接收方。接收方收到加密后的信息时,就可以利用拥有的与此公钥相对应的私钥,将该加密信息解出来。所以公开密钥密码系统的通信双方,不需要事先通过安全秘密管道交换密钥,即可进行通信。
RSA密码体制是一个常用的非对称的密码体制,它是一个既能用于数据加密也能用于数字签名的算法。
RSA的安全性依赖于大素数分解。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。
1)密钥对的产生
(1)选择两个大素数,p和q。
(2)计算n=p*q。
(3)随机选择加密密钥e,e必须满足以下条件:
GCD(e, φ(N))=1
其中,φ为Euler’s Function,φ(N)为小于N、且与N互质的整数的个数。在此,φ(N)=(p-1)(q-1)(也有些做法是取LCM((p-1)(q-1)))。
(4)利用Euclid算法计算解密密钥d,满足d=e-1modφ(N)。
产生出加密公钥e、N与解密密钥d之后,使用者将e及N公开,就可以使用它们来执行加解密的工作了。
2)加密程序
使用者将其欲加密的信息M,在取得对方的公钥e及N之后,执行模(mod,即同余的运算,C=MmodN,C等于M除以N的余数)指数运算,就可获得密文C。
alt
然后通过网络传送至通信的对方。
3)解密程序
对方在收到密文C后,以自己的私钥执行下面的解密程序,解密时作如下计算:
alt
即可获得明文M。
RSA可用于数字签名,方案是用(b)签名,用(a)验证。具体操作时考虑到安全性和M信息量较大等因素,一般是先作HASH运算。
RSA的安全性依赖于大数分解,由于进行的都是大数计算,使得RSA最快的情况也是DES百分之一。无论是软件还是硬件实现,速度慢一直是RSA的缺陷,因此一般来说,RSA只用于少量数据加密。
11.1.2 散列函数与数字签名
1.MD5散列算法
散列函数是一种公开的数学函数。散列函数运算的输入信息叫做报文,运算后所得到的结果叫做散列码或者叫做消息摘要。散列函数h=H(M)具有如下一些特点。
(1)不同内容的报文具有不同的散列码,给定M,要找到另一消息M,使H(M)=H(M′)很难。
(2)散列函数是单向的,给出M,容易计算出h。给定h,根据h=H(M)反推M却很难。
(3)对于任何一个报文,无法预知它的散列码。
(4)散列码具有固定的长度,不管原始报文的长度如何,通过散列函数运算后的散列码都具有一样的长度。
由于散列函数具有这些特征,因此散列函数可以用来检测报文的可靠性。接收者对收到的报文用与发送者相同的散列函数进行运算,如果得到与发送者相同的散列码,则可以认为报文没有被篡改,否则报文就是不可信的。
常见的散列函数有MD5、SHA和HMAC等。
MD5(Message Digest 5)是一种非常著名的散列算法,已经成为国际标准。它是在MD4的基础上改进的算法,是具有更好的安全性能的散列算法。MD5散列算法对输入的任意长度消息产生128位(16字节)长度的散列值(或称消息摘要)。MD5算法包括以下4个步骤。
(1)附加填充位。首先对输入的报文进行填位补充,使填充后的数据长度模512后余448。如果数据长度正好模512余448,则需增加512个填充位,也就是说填充的个数为1~512位。填充位第一个位为1,其余全部为0。
(2)补足长度。将数据长度表示为二进制,如果长度超过64位,则截取其低64位;如果长度不足64位,则在其高位补0。将这个64位的报文长度补在经过填充的报文后面,使得最后的数据为512位的整数倍。
(3)初始化MD缓存器。MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为:
A:01 23 45 67 B: 89 ab cd ef C: fe dc ba 98 D: 76 54 32 10
(4)处理数据段。首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。对每一个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。
2.数字签名与数字水印
1)数字签名
数字签名可以解决否认、伪造、篡改及冒充等问题。具体要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。凡是需要对用户的身份进行判断的情况都可以使用数字签名,例如加密信件、商务信函、订货购买系统、远程金融交易和自动模式处理等。
数字签名方案一般包括三个过程:系统的初始化过程、签名产生过程和签名验证过程。在签名产生的过程中,用户利用给定的算法对消息产生签名;在签名验证过程中,验证者利用公开验证方法对给定消息的签名进行验证,得出签名的有效性。
实现数字签名的方法有很多,目前采用得比较多的是非对称加密技术和对称加密技术。虽然这两种技术的实施步骤不尽相同,但大体的工作程序是一样的。用户首先可以下载或者购买数字签名软件,然后安装在个人计算机上。在产生密钥对后,软件自动向外界传送公开密钥。由于公共密钥的存储需要,所以需要建立一个鉴定中心(Certification Authority, CA)完成个人信息及其密钥的确定工作。用户在获取公开密钥时,首先向鉴定中心请求数字确认,鉴定中心确认用户身份后,发出数字确认,同时鉴定中心向数据库发送确认信息。然后用户使用私有密钥对所传信息签名,保证信息的完整性、真实性,也使发送方无法否认信息的发送,之后发向接收方;接收方接收到信息后,使用公开密钥确认数字签名,在使用这种技术时,签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。如果密钥丢失,应该立即报告鉴定中心取消认证,将其列入确认取消列表之中。其次,鉴定中心必须能够迅速确认用户的身份及其密钥的关系。一旦接收到用户请求,鉴定中心要立即认证信息的安全性并返回信息。
目前已经有大量的数字签名算法,如RSA、E1Gama1、Fiat-Shamir、美国的数字签名标准/算法(DSS/DSA)、椭圆曲线等多种。
2)数字水印
随着数字技术和因特网的发展,各种形式的多媒体数字作品(如图像、视频和音频等)纷纷以网络形式发表,其版权保护成为一个迫切需要解决的问题。数字水印(Digital Watermarking)是实现版权保护的有效办法,如今已成为多媒体信息安全研究领域的一个热点,也是信息隐藏技术研究领域的重要分支。该技术是通过在原始数据中嵌入秘密信息——水印(Watermark)来证实该数据的所有权。这种被嵌入的水印可以是一段文字、标识或序列号等,而且这种水印通常是不可见或不可察的,它与原始数据(如图像、音频和视频数据)紧密结合并隐藏其中,在经过一些不破坏源数据使用价值或商用价值的操作后仍能保存下来。数字水印技术必须具有较强的鲁棒性、安全性和透明性。
(1)典型数字水印系统模型。
图11-2为水印信号嵌入模型,其功能是将水印信号加入原始数据中;图11-3为水印信号检测模型,用来判断某一数据中是否含有指定的水印信号。
alt
图11-3 水印信号检测模型
(2)数字水印主要应用领域。
①版权保护。即数字作品的所有者可用密钥产生一个水印,并将其嵌入原始数据,然后公开发布他的水印版本作品。当该作品被盗版或出现版权纠纷时,所有者即可利用图11-2或图11-3的方法从盗版作品或水印版作品中获取水印信号作为依据,从而保护所有者的权益。
②加指纹。为避免未经授权的复制制作和发行,出品人可以将不同用户的ID或序列号作为不同的水印(指纹)嵌入作品的合法备份中。一旦发现未经授权的备份,就可以根据此备份所恢复出的指纹来确定它的来源。
③标题与注释。即将作品的标题、注释等内容(如一张照片的拍摄时间和地点等)以水印形式嵌入该作品中,这种隐式注释不需要额外的带宽,且不易丢失。
④篡改提示。当数字作品被用于法庭、医学、新闻及商业时,常需确定它们的内容是否被修改、伪造或特殊处理过。为实现该目的,通常可将原始图像分成多个独立块,再将每个块加入不同的水印。同时可通过检测每个数据块中的水印信号,来确定作品的完整性。与其他水印不同的是,这类水印必须是脆弱的,并且检测水印信号时,不需要原始数据。
⑤使用控制。这种应用的一个典型例子是DVD防复制系统,即将水印信息加入DVD数据中,这样DVD播放机即可通过检测DVD数据中的水印信息而判断其合法性和可复制性。从而保护制造商的商业利益。
典型数字水印算法有空域算法、变换域算法、压缩域算法、NEC算法和生理模型算法等。
11.1.3 密钥分配中心与公钥基础设施
在现代密码系统中,算法本身的保密已经不重要了,对于数据的保密在很大程度上、甚至完全依赖于对密钥的保密。只要密钥能够保密,即使加密算法公开,甚至加密设备丢失,也不会对加密系统的坚固性和正常使用产生多大影响。相反,如果密钥丢失,则不但非法用户可以窃取机密数据,而且合法用户面对密文却如读天书,无法提取有效的信息。因此,在密码系统中,如何高效地分配密钥、安全地管理密钥对保证数据安全来说至关重要。
1.密钥分配中心
一个信息系统中任意两个用户之间都可以自己协商来选择不同的密钥,显然,对于总共有N个用户的系统,每个用户都要保存N×(N-1)个密钥。在用户数量较少时,这样来分配密钥还是比较简单、易用的,但是一旦用户数量多起来,系统中要保存的密钥会急剧增多,让每个用户自己高效、安全地管理数量庞大的密钥实际上是不可能的。
有一种非常有效的密钥自动分配方案是密钥分配中心(Key Distribution Center, KDC)技术。
在KDC方案中,每一个用户都只保存自己的私钥SK和KDC的公钥PKKDC,而在通信时再从KDC获得其他用户的公钥或者仅仅在某一次通信中可以使用的对称密钥加密算法的临时密钥K。
假设A和B都是KDC的注册用户,他们分别拥有私钥SKA、SKB。设用对称密钥来加密他们之间的这次对话,那么密钥的分配过程如下。
首先,A向密钥分配中心发送SKA(A, B),表示自己想与B会话。该请求用自己的私钥SKA加密,KDC收到A的请求,用A的公钥来验证请求是由A发出的后,根据某种算法来生成供A、B之间会话使用的对称密钥K。KDC向A返回PKA(K, PKB(A, K)),该应答是用A的公钥加密的,只有A能解读。A用自己的私钥解密应答,得到密钥K,并将PKB(A, K)发送给B,表明A欲与B进行会话。B用自己的私钥解密得到会话密钥K。
至此,完成一次密钥分配。
2.数字证书和公开密钥基础设施
数字签名和公钥加密都是基于不对称加密技术的,存在的问题有:如何保证公开密钥的持有者是真实的;大规模信息系统环境下公开密钥如何产生、分发和管理。
要解决以上问题,就要用到数字证书和PKI。
1)数字证书
数字证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的机制。目前最常用的数字证书格式是由国际标准ITU-T X.509 V3版本定义的。
数字证书中采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己保存私钥,用它进行解密和签名;同时设定一个公钥,并由本人公开,为一组用户所共享,用于加密和验证签名。
数字证书是用户在系统中作为确认身份的证据。在通信的各个环节中,参与通信的各方通过验证对方数字证书,从而确认对方身份的真实性和有效性,从而解决相互间的信任问题。
数字证书的内容一般包括:唯一标识证书所有者的名称、唯一标识证书签发者的名称、证书所有者的公开密钥、证书签发者的数字签名、证书的有效期及证书的序列号等。
2)公钥基础设施
PKI(Public Key Infrastructure,公钥基础设施)的目标是向广大的信息系统用户和应用程序提供公开密钥的管理服务。
PKI的结构模型中有三类实体:管理实体、端实体和证书库。管理实体是PKI的核心,是服务的提供者;端实体是PKI的用户,是服务的使用者;证书库是一个分布式的数据库,用于证书和CRL的存放和检索。
CA和RA是两种管理实体。CA是框架中唯一能够发布和撤销证书的实体,维护证书的生命周期;RA负责处理用户请求,在验证了请求的有效性后,代替用户向CA提交。RA可以单独实现,也可以合并在CA中实现。作为管理实体,CA和RA以证书方式向端实体提供公开密钥的分发服务。
持有者和验证者是两种端实体。持有者是证书的拥有者,是证书所声明的事实上的主体。持有者向管理实体申请并获得证书,也可以在需要时请求撤销或更新证书。持有者使用证书声明自己的身份,从而获得相应的权力。验证者确认持有者所提供的证书的有效性和对方是否为该证书的真正拥有者,只有在成功鉴别之后才可与对方进行更进一步的交互。
由于证书库的存取对象为证书和CRL,其完整性由数字签名来保证,因此不需要额外的安全机制。
不同的实体间通过PKI操作完成证书的请求、确认、发布、撤销、更新和获取等过程。PKI操作分为存取操作和管理操作两类。其中,存取操作包括管理实体或端实体把证书和CRL存放到证书库、从证书库中读取证书和CRL;管理操作则是管理实体与端实体之间或管理实体与管理实体之间的交互,是为了完成证书的各项管理任务和建立证书链。
11.1.4 访问控制
访问控制是通过某种途径限制和允许对资源的访问能力以及范围的一种方法。它是针对越权使用系统资源的保护措施,通过限制对文件等资源的访问,防止非法用户的侵入或者合法用户的不当操作造成的破坏,从而保证信息系统资源的合法使用。
访问控制技术可以通过对计算机系统的控制,自动、有效地防止对系统资源进行非法访问或者不当的使用,检测出一部分安全侵害,同时可以支持应用和数据的安全需求。
访问控制技术并不能取代身份认证,它是建立在身份认证的基础之上的。
1.身份认证技术
在网络通信中,需要确定通信双方的身份,这就需要身份认证技术。在有安全需求的应用系统中,识别用户的身份是系统的基本要求,认证是安全系统中不可缺少的一部分。识别用户的身份有两种不同的形式:一种是身份认证,要求对用户所有的权限角色或自身的身份进行认证;一种是身份鉴定,要求对使用者本身的身份进行检查。
认证的方法多种多样,其安全强度也不相同。具体方法可归结为3大类:根据用户知道什么、拥有什么、是什么来进行认证。用户知道什么,一般就是口令;用户拥有什么,通常为私钥或令牌:用户是什么,这是一种基于生物识别技术的认证。
1)用户名和口令认证
简单认证方式主要是通过一个客户与服务器共知的口令(或与口令相关的数据,如散列、密文等)进行验证。根据处理形式的不同,有3种简单认证的方式:验证数据的明文传送、利用单向散列函数处理验证数据、利用单向散列函数和随机数处理验证数据,这3种方式的安全强度依次增加,处理复杂度也依次增高。
2)使用令牌认证
在使用令牌进行认证的系统中,进行验证的密钥存储于令牌中。对密钥的访问用口令进行控制。令牌是一个像IC卡一样可以加密存储并运行相应加密算法的设备,这种简单认证可以快速、方便地实现用户身份认证,但是认证的安全强度不高。通过令牌可以完成对用户必须拥有某物的验证。令牌的实现分为质询响应令牌和时间戳令牌,其中使用较多的是时间戳令牌。
质询响应令牌的工作原理是:在进行身份认证时,认证服务器首先发送一个随机数到客户机的登录程序。用户将这个随机数读出,输入令牌,并输入令牌的PIN码(实际就是口令),得以访问令牌。令牌对输入的随机数用存储的私钥进行签名,并把结果用Base64编码输出。用户把令牌的输出填入客户机的验证程序中,数据传输到认证的服务器端,在服务器端将使用用户的公钥对签名进行验证,以确定是否允许客户通过登录认证。在该方案中,由于使用数字签名进行登录认证,系统的安全强度大大增加:私钥采用令牌存储的方式解决了私钥自身的安全问题。令牌是一个可移动的设备,可以随身携带,而且令牌有PIN码保护,对令牌的非法访问超过一定的次数后,令牌会死锁。
时间戳令牌解决了质询响应令牌中随机数的问题,时间戳令牌利用时间代替上面的随机数。时间戳令牌每时每刻都在工作,一般每分钟产生一个登录数据,用户只需输入PIN码。登录数据被传送到认证的服务器端,服务器利用当前时间对登录数据进行验证,完成用户的登录过程。使用时间戳令牌需要重点考虑时间同步问题,由于令牌的时钟和认证服务器的时钟不同步,产生的验证码并不会通过验证。解决方法是在验证服务器上进行多次试探验证,在一个时间范围内试探,如果成功则在服务器上存储令牌时钟与服务器时钟的偏移量,以便下次登录时使用。目前,在安全性要求较高的认证系统中,多是采用这种方案。
采用PIN码与令牌实现了双因素验证,根据用户知道什么、拥有什么进行认证,也提供了一个保密认证密钥的方法。但是实现双因素验证需要用户输入数据,给用户的操作增加了麻烦。
3)生物识别与三因素认证
现在兴起了一种基于生物识别技术的认证,主要是根据认证者的图像、指纹、气味和声音等作为认证数据。基于用户知道什么(口令)、拥有什么(私钥和令牌)、是什么(生物特征)的3因素认证是目前强认证中使用最多的手段。在安全性要求较高的系统中,认证必须能对用户进行身份鉴定。要将用户知道什么、拥有什么、是什么结合起来,同时对认证用的密钥进行保护。
2.访问控制技术
根据控制手段和具体目的的不同,通常将访问控制技术划分为如下几个方面:入网访问控制、网络权限控制、目录级安全控制、属性安全控制以及网络服务器的安全控制等。
入网访问控制为网络访问提供了第一层访问控制。它控制哪些用户能够登录到服务器并获取网络资源,控制准许用户入网的时间和准许入网的工作站等。基于用户名和口令的用户的入网访问控制可分为三个步骤:用户名的识别与验证、用户口令的识别与验证、用户账号的默认限制检查。三个步骤中只要任何一个未通过校验,该用户便不能进入该网络。可以说,对网络用户的用户名和口令进行验证是防止非法访问的第一道防线。但由于用户名口令验证方式容易被攻破,目前很多网络都开始采用基于数字证书的验证方式。
网络权限控制是针对网络非法操作所提出的一种安全保护措施。能够访问网络的合法用户被划分为不同的用户组,用户和用户组被赋予一定的权限。访问控制机制明确了用户和用户组可以访问哪些目录、子目录、文件和其他资源;以及指定用户对这些文件、目录、设备能够执行哪些操作。它有两种实现方式,“受托者指派”和“继承权限屏蔽”。“受托者指派”控制用户和用户组如何使用网络服务器的目录、文件和设备;“继承权限屏蔽”相当于一个过滤器,可以限制子目录从父目录那里继承哪些权限。可以根据访问权限将用户分为以下几类:特殊用户(即系统管理员);一般用户,系统管理员根据他们的实际需要为他们分配操作权限;审计用户,负责网络的安全控制与资源使用情况的审计。用户对网络资源的访问权限可以用访问控制表来描述。
目录级安全控制是针对用户设置的访问控制,控制用户对目录、文件、设备的访问。用户在目录一级指定的权限对所有文件和子目录有效,用户还可以进一步指定对目录下的子目录和文件的权限。对目录和文件的访问权限一般有8种:系统管理员权限、读权限、写权限、创建权限、删除权限、修改权限、文件查找权限和访问控制权限。8种访问权限的有效组合可以让用户有效地完成工作,同时又能有效地控制用户对服务器资源的访问,从而加强了网络和服务器的安全性。
属性安全控制在权限安全控制的基础上提供更进一步的安全性。当用户访问文件、目录和网络设备时,网络系统管理员应该给出文件、目录的访问属性,网络上的资源都应预先标出安全属性,用户对网络资源的访问权限对应一张访问控制表,用以表明用户对网络资源的访问能力。属性设置可以覆盖已经指定的任何受托者指派和有效权限。属性能够控制以下几个方面的权限:向某个文件写数据、复制文件、删除目录或文件、查看目录和文件、执行文件、隐含文件、共享、系统属性等,避免发生非法访问的现象。
因为网络允许用户在服务器控制台上执行一系列操作,所以用户使用控制台就可以执行装载和卸载模块、安装和删除软件等操作,这就需要网络服务器有安全控制。网络服务器的安全控制包括可以设置口令锁定服务器控制台,从而防止非法用户修改、删除重要信息或破坏数据。具体包括设定服务器登录时间限制、非法访问者检测和关闭的时间间隔等。
11.1.5 安全协议
1.IPSec协议简述
为了满足Internet的安全需求,因特网工程任务组(IETF)于1998年11月颁布IP层安全标准IP SECURITY协议(IPSec),IPSec在IP层上对数据包进行高强度的安全处理提供数据源验证、无连接数据完整性、数据机密性、抗重播和有限通信流机密性等安全服务。
1)IPSec协议工作原理
IPSec通过使用两种通信安全协议来为数据报提供高质量的安全性:认证头(AH)协议和封装安全载荷(ESP)协议,以及像Internet密钥交换(Internet Key Exchange, IKE)协议这样的密钥管理过程和协议。其中AH协议提供数据源认证、无连接的完整性以及一个可选的抗重放服务。ESP协议提供数据保密性、有限的数据流保密性、数据源验证、无连接的完整性以及抗重放服务。IPSec允许系统或网络用户控制安全服务提供的粒度。IPSec的安全服务是由通信双方建立的安全关联(Security Association, SA)来提供的,SA为通信提供了安全协议、模式、算法和应用于单向IP流的密钥等安全信息。每一个IPSec节点包含一个局部的安全策略库(Security Polioy Database, SPD),系统在处理输入、输出IP流时必须参考该策略库,并根据从SPD中提取的策略对IP流进行不同的处理:拒绝、绕过、进行IPSec保护。如果策略决定IP流需要经过IPSec处理,则根据SPD与SAD的对应关系,找到相应的SA,并对IP包进行指定的IPSec处理。SA由一个三元组唯一地标识,该三元组包含一个安全参数索引(Security Parameter Index, SPI),一个用于输出处理SA的目的IP地址或者一个用于输入处理SA的源IP地址以及一个特定的协议(例如AH或者ESP)。SPI是为了唯一标识SA而生成的一个32位整数。它在AH和ESP头中传输,IPSec数据报的接收方易于识别SPI并利用它连同源或者目的IP地址和协议来搜索SAD,以确定与该数据报相关联的SA或者SA束。SA中所选用的安全协议、SA模式、SA的两端及安全协议内所要求的服务等具体地决定了怎样为通信流提供安全服务。但是,最终安全服务的具体实施是通过使用AH和ESP协议。
2)IPSec协议实现模式
IPSec协议既可用来保护一个完整的IP载荷,也可用来保护某个IP载荷的上层协议。这两方面的保护分别由IPSec的两种不同“模式”来提供,如图11-4所示。
图11-4 IPSec数据报结构
其中,传输模式用来保护上层协议,而隧道模式用来保护整个IP数据报。在传输模式中,IP头与上层协议头之间需插入一个特殊的IPSec头:而在隧道模式中,要保护的整个IP包都需封装到另一个IP数据包里,同时在外部与内部IP头之间插入一个IPSec头。两种IPSec协议(AH和ESP)均能同时以传输模式或隧道模式工作。由构建方法所决定,对传输模式所保护的数据包而言,其通信终点必须是一个加密的终点。在后一种情况下,通信终点便是由受保护的内部头指定的地点,而加密终点则是那些由外部IP头指定的地点。在IPSec处理结束的时候,安全网关会剥离出内部IP包,再将那个包转发到它最终的目的地。
3)IPsec协议安全性分析
IPSec的安全性可以归纳为如下方面。
(1)当IPSec在路由器或防火墙中实现时,它提供很强的安全保证,可以应用于所有跨越网络边界的通信。一个实体内部的通信量不会引起与安全处理相关的开销。
(2)如果所有来自外部的通信必须使用IP,且防火墙是Internet与组织的唯一入口,则IPSec是不能被绕过的。
(3)IPSec位于传输层(TCP、UDP)之下,因此对应用程序是透明的。当IPSec在防火墙或是路由器上实现时,没有必要在用户或是服务器上更改软件。即使IPSec在末端系统、更高层软件(包括应用程序)上运行,也不会受到影响。
(4)IPSec对最终用户是透明的。没有必要培训用户掌握安全机制,也没有必要基于每个用户来发行关键资料,在用户离开组织时再撤回关键资料。
如果需要,IPSec可以为单个用户提供安全保证。这适用于站点外的工作人员,并适用于在组织内设置保密的专用子网,以用于敏感的应用程序。
SSL协议
SSL协议(Secure Socket Layer)是Natscape推出的一种网络安全协议,是在传输过程通信协议(TCP/IP)上实现的一种安全协议。在SSL中,采用了公开密钥和私有密钥两种加密方式,它对计算机之间的整个会话进行加密。SSL的安全服务位于TCP和应用层之间,可为应用层,如HTTP、FPT、SMTP提供安全业务,服务对象主要是Web应用,即客户浏览器和服务器。它的基本目标是在通信双方之间建立安全的连接,可运行在任何可靠的通信协议之上、应用层协议之下。
1)SSL协议工作原理
在SSL中,所有数据被封装在记录中,记录层把从上层获得的数据分成可管理的块、可选的压缩数据、应用MAC(Message Authentication Code)、加密、增加SSL首部、在TCP报文段中传输结果单元。被接收的数据被解密、验证、解压和重新装配,然后交付给更高级的用户。SSL中两个重要的概念是SSL连接和SSL会话。
连接是提供恰当类型服务的传输。对于SSL,这样的连接是点到点的关系。连接是短暂的,每个连接与一个会话相联系。连接状态由服务器和客户的随机数、服务器写MAC密码、客户写MAC密码、服务器写密钥、客户写密钥、初始化向量、序号等参数来定义。
SSL的会话是客户和服务器之间的关联,会话通过握手协议来创建。会话定义了加密安全参数的一个集合,该集合可以被多个连接所共享。会话可以用来避免为每个连接进行昂贵的新安全参数的协商。每个会话由会话标识符、对方的证书、压缩方法、密文规约、主密钥和可重用标志等参数来定义。
2)SSL协议工作过程
SSL客户和服务器首次开始通信时,它们就协议版本、加密算法、是否验证及密钥等进行协商,这一过程由握手协议完成。握手过程结束后,客户端与服务器端开始交换应用层数据。握手协商过程主要包括以下几个阶段:
(1)建立安全能力
(2)服务器身份验证和密钥交换
(3)客户机验证和密钥交换
(4)完成
该阶段完成安全连接的建立。
3)SSL协议安全性分析
(1)防止窃听及中间人攻击。
(2)防止剪贴攻击。
(3)防止重放攻击及短包攻击。
PGP协议
PGP(Pretty Good Privacy)是由Hil Zimmermann提出的方案,是针对电子邮件在Internet上通信的安全问题而设计的一种混合加密系统。PGP包含4个密码单元,即单钥密码(IDEA)、双钥密码(RSA)、单向杂凑算法(MD-5)和一个随机数生成算法。该协议规定公钥密码和分组密码是在同一个系统中。PGP的用户拥有一张公钥列表,列出了所需要通信的用户及其公钥。PGP应用程序具有很多优点,如速度快、效率高,同时具有很好的可移植性。
2)PGP协议的加密过程
PGP的加密过程是:先根据一些随机的环境数据(例如键盘的敲击间隔)产生一个密钥,用IDEA算法对明文加密。接着用接收者的RSA公钥对这个IDEA密钥进行加密,然后把这两种加密的结果作为密文发送出去。接收方接到密文后,先用自己的RSA私钥解密得到IDEA密钥,再用这个IDEA密钥对密文进行解密。也就是说,PGP没有用RSA算法直接对明文加密,而是对IDEA密钥进行加密。
对于数字签名,PGP先根据明文的内容利用Hash函数(散列算法)计算出一个128位的摘要,这个摘要就像是明文的一个精华,明文中任何改变都会导致这个精华的改变,并且从这个精华无法推导出明文的内容。发送者用自己的私钥对这个精华进行签名。因此在邮件传送过程中,任何对明文内容的改变都会导致摘要内容与签名的摘要内容不相符,以至签名的内容无效。由于IDEA算法的速度很快,所以不会因为邮件的数据量大而耽误时间;而IDEA的密钥位数较少,所以对它使用RSA算法在速度上也不会有太大影响。又因为IDEA的密码是以RSA加密的形式传送的,使得PGP既避免了IDEA的密钥管理缺陷,又避免了RSA的大量运算。 $\color{green}{\text{PGP}}$ 的这些优点使其在 $\color{green}{\text{邮件发送领域}}$ 具有广泛的应用。
使用PGP传递公钥的过程如下:假设用户A拥有用户B和用户C的公钥,用户B只拥有用户A的公钥,用户C也只拥有用户A的公钥。因为用户A和用户B、用户A和用户C都拥有对方的公钥,所以他们之间可以安全通信。但是用户B和用户C是不能直接通信的。用户B和用户C都知道用户A拥有对方的公钥,如果他们都同时信任用户A,可以从用户A处获得对方的公钥。即用户A利用自己的私钥分别对用户B和用户C的公钥签名,然后分别发给用户B和用户C,这样用户B和用户C就可以安全通信了。这是一个比较简单的情况,如果用户B和用户C要经过多个用户才能获得对方的公钥,这就给用户B和用户C的正常通信带来了麻烦。同时,安全也会随着链式信任网的扩大而急速下降。
数据备份
备份的类型
随着计算机的日益普及以及信息技术的飞速发展,人们已经逐渐认识到信息安全的重要性。但是作为信息安全的重要成员——数据备份却常常被人们遗忘,这样导致的后果就是大量的有用信息被丢失,造成的后果有时是毁灭性的。
导致数据被破坏、丢失的原因很多,如硬盘的损坏、病毒的侵入等。而作为一名合格的系统管理员,关键要做到的就是保证数据的完整性以及准确性。如何才能真正做到这一点呢,这是一项非常艰巨但又非常重要的工作。一般情况下,采取的措施包括安装防火墙、杀毒软件等。但是,事情总不像人们想象的那么完美,数据的安全性和准确性一直都面临着极大的考验。因此,数据备份就显得十分有必要,同时它也是防止“主动攻击”的最重要一道防线。
数据备份包括以下几种类型,在不同的情况下,应该根据具体情况,选出最合适的方法。
(1)完全备份。是指备份全部选中的文件夹,并不依赖文件的存档属性来确定备份哪些文件(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份。换言之,即清除存档属性)。完全备份的特点是备份所需时间最长,但恢复时间最短,操作最方便可靠。
(2)差异备份。也称差分备份,它是针对完全备份的,即备份上一次的完全备份后发生变化的所有文件。换句话说,没有发生变化的就不需要备份(差异备份过程中,只备份有标记的那些选中的文件和文件夹。它不清除标记,即备份后不标记为已备份文件。换言之,不清除存档属性)。差异备份的特点是备份时间较长,占用空间较多,但恢复时间较短。
(3)增量备份。是针对上一次备份(无论是哪种备份,这也是与差分备份不同的),即上一次备份后,所有发生变化的文件(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,即备份后标记文件。换言之,清除存档属性)。增量备份的特点是备份时间较短,占用空间较少,但恢复时间较长。
(4)按需备份。也就是说,它是根据需要有选择地进行数据备份。很明显,它的特点就是有很好的选择性。
异地备份
数据异地备份是容灾系统的核心技术,它不同于上述介绍的备份方法,它的特点是具有异地性。它对于保证数据的一致性、可靠性及系统的可扩展性具有举足轻重的作用,通过有效的数据复制,实现远程的业务数据与本地业务数据的同步,确保一旦本地系统出现故障,远程的容灾中心能够迅速进行完整的业务接管。
异地备份在金融业中有着典型的应用,它为保证金融业的正常运行做出了巨大的贡献。在“9.11”期间,美国的金融业虽然遭受了巨大的损失,但是还能够正常运行,为什么这么巨大的灾难也没有给美国金融业带来致命的打击呢?就是因为他们对数据的异地备份做得非常好,才没有导致金融业的全面崩溃。
在进行异地备份时,要注意以下几个问题。
(1)在进行异地备份前,要集中精力进行杀毒查毒工作,避免让备份带上病毒。
(2)对于软盘,要保证磁片质量,非常有必要定期对其进行质量检查。
(3)对于CD-RW光盘,它的一个最大的缺点就是兼容性不好,因此最好就是由哪台刻录机刻录的盘片,就在哪台刻录机上继续刻录、改写等操作。
(4)对于移动硬盘,要做磁盘检查,保证其性能良好。
自动备份软件
随着人们对数据备份意识的逐渐增强,各种自动备份软件也应运而生,给我们提供了很多数据备份的选择方案,下面主要介绍几种。
1)自动备份精灵
自动备份精灵是为方便我们的备份工作而特别设计开发的软件,其最大的优点是支持网络自动备份和本机自动备份。一方面,自动备份精灵可以帮助我们定时备份数据,可以设置关机备份数据,也可以手动备份。另一方面,它也允许我们自由地选择需要备份文件的源路径和目的路径,可以查看备份日志等。
2)利用GHOST实现自动备份
Ghost是最著名的硬盘复制备份工具,因为它可以将一个硬盘中的数据完全相同地复制到另一个硬盘中,因此大家就将Ghost这个软件称为“硬盘克隆”。Ghost不但有硬盘到硬盘的克隆功能,还有硬盘分区、硬盘备份、系统安装、网络安装和升级系统等功能。1998年6月,出品Ghost的Binary公司被著名的Symantec公司并购,因此该软件的后续版本就改称为Norton Ghost,成为Norton系列工具软件中的一员。
3)使用DiskWin实现自动备份
DiskWin主要是针对企业的备份软件。它很好地解决了企业数据备份问题。将所有员工机的文件自动备份到服务器;管理员定义每一员工机强制备份的工作文件类型和备份时间。可规定公司不同的部门备份不同的文件类型,如公司销售部备份Word文件和电子邮件,公司软件开发部备份程序代码文件,设计部备份PhotoShop设计图片等;全盘搜索每一员工机变化的文件,保证每天新增或者变化的工作文件一个不多,一个不少,全部压缩打包,自动上传到服务器。具备多个备份的文件无论怎样重命名都只备份一个;客户端可以设置隐藏运行,无论是搜索文件还是上传备份可以不出现任何提示,对员工正常工作无任何干扰,就好像这个软件根本不存在一样。
几种新型的备份解决方案
对重要数据进行备份,就是为了在发生意外时能够及时进行恢复,使损失降低到最低。但是,如果备份文件存放不好,或者是备份策略不恰当,所付出的努力将付之东流。为了避免发生这种情况,我们就应该采取正确的备份方案。
一个优秀的备份解决方案应该做到以下几点。
(1)最大限度地降低对应用数据流量的影响,从而保证通信性能。
(2)最大限度地降低服务器的负载,保证服务器的性能;
(3)优化备份资源的使用,包括服务器、驱动器等。
在现代化的企业环境中,随着应用系统负载的增加,服务器的数量也在增加。但是由于磁带设备的分散特性,并且它们相互独立、不能执行全局统一的备份策略;需要的磁带机数量与应用服务器的数量成正比,所以要花费很高的维护成本。
下面介绍几种新型的备份解决方案。
1)网络备份模式
网络备份模式的原理是把一个磁带设备放置在LAN上,供多个服务器共享。由于网络设备模式对磁带进行统一的调度和使用,因此可以提高磁带的利用率和可管理性。需要管理的磁带驱动器的大幅度减少有助于降低成本,网络备份是一种非常好的企业备份模式。
如果普通备份的时间比较长,则可以安装一套独立的局域网,并在每套要备份的系统中连接一网卡,从而可以使备份数据与生产数据相互独立,互不影响。
在一个典型的基于LAN的备份模式中,生产数据和备份数据都是通过相同的LAN进行传输,这样需要备份的海量数据就会增加LAN上的流量,导致应用性能的降低。备份通常是在下班的时间进行,这样可以最大限度地减少对生产流量的影响。然而不断增长的数据量会导致备份时间的延长,而且随着企业业务的全球化,对系统的正常运行的要求也越来越高,可以用来备份的时间也越来越短。
为了在一个共同的LAN中消除这些潜在的冲突,可以将应用和备份隔离开来,这就是利用存储网络的方法。
另外,备份需要增加服务器的操作。服务器通常忙于处理大量对延迟和性能非常敏感的数据,数据的移动和调度需要占用额外的CPU周期,而进行备份通常会对应用本身的性能造成很大的影响,因此可以采用SCSI扩展复制命令的备份方法加以解决。
2)用存储网络备份
这个方案是让每个应用服务器都可以通过一个专用的存储网络,直接将数据备份到某个磁带设备,而不需要经过专门的备份服务器。利用通用的共享存储设备,每个应用服务器都可以充当一个介质服务器,因为它们可以直接将数据发送到磁带。每个服务器确定一个专门的磁带驱动器,并在备份过程中独自占有该磁带驱动器。用户还可以利用对磁带库中磁带驱动器的专有访问权限对应用服务器进行配置,而不是使用共享过程。
经过存储网络传输的数据可以隔离备份数据和应用数据,从而减少LAN上的流量。一个磁带也可以被多个应用共享,并且可以将多个备份流量合并到所管理的磁带库和驱动器中。此时,LAN仍可以用于在备份的服务器和客户端之间传输元数据和跟踪数据备份的状态,但是实际的备份数据将通过存储网络传输。利用网络存储备份可以隔离应用数据和备份数据,但是不能减轻服务器的CPU负载,因为它们仍然需要从磁带读取备份数据。
3)磁带和磁带之间直接传输数据的备份
为了减轻服务器在备份时的CPU负载,需要在数据不经过服务器本身的情况下,将备份数据从磁盘发送到磁带,这是通过在磁盘和磁带之间直接传输数据的机制(即SCSI扩展复制命令的方法)来实现的。在这种方式中,执行SCSI扩展复制命令的组件可能位于存储网络的交换阵列或者是服务器软件中,数据的副本会智能地从磁盘发送到磁带,而不需要经过服务器。复制并传输所要备份的数据对服务器CPU的负载影响非常小,这是因为服务器并不需要参与备份数据的任何具体操作,可以大大地减轻服务器的负担,保证服务器的性能不会受到备份的影响。
计算机病毒与免疫
计算机病毒
从计算机病毒刚诞生之际,它就给人们带来了麻烦,随着网络的发展,其破坏力越来越强,计算机病毒已成为危害个人系统及网络安全的一大隐患,正如生物学上的病毒能够使我们生病一样,计算机病毒会破坏计算机的正常工作。计算机病毒的一些典型破坏包括影响用户的工作(如妨碍鼠标、键盘的操作,间隔性地在用户的屏幕上显示一段文字或播放一段音乐),破坏用户系统上的一些程序(如使得Microsoft Word不能正常运行),大量占用系统的资源,使系统无法正常工作(蠕虫病毒的典型做法),破坏用户的数据(如删除用户的文件,格式化硬盘),有时也会破坏系统的硬件。
1)计算机病毒的定义
提到病毒,人们通常就会想到一些恶意的、时常破坏机器上的程序、数据的小程序。但如何给病毒下一个科学的、精确的定义呢?病毒的定义最早由F.B.Cohen于1984年提出,在他的经典文章Computer Viruses-Theory and Experiments(计算机病毒一理论与实践)中,描述如下:
“计算机病毒是这样的一种程序,它通过修改其他程序使之含有该程序本身或它的一个变体。病毒具有感染力,它可借助其使用者的权限感染他们的程序,在一个计算机系统中或网络中得以繁殖、传播。每个被感染的程序也像病毒一样可以感染其他程序,从而使更多的程序受到感染。”
2)病毒的基本特征
● 感染性
● 潜伏性
● 可触发性
● 破坏性
● 人为性
● 衍生性
3)计算机病毒的分类
分类的方式、角度是多种多样的,从病毒的工作机制角度主要分为以下5类。
● 引导区病毒(boot sector virus)
● 文件感染病毒(file infector virus)
● 宏病毒(Marco virus)
● 特洛伊木马(Trojan/Trojan Horse)
● 蠕虫病毒(Worm)
计算机病毒免疫的原理
我们知道,计算机病毒的传染模块一般包括传染条件判断和实施传染两个部分,在病毒被激活的状态下,病毒程序通过判断传染条件的满足与否,以决定是否对目标对象进行传染。一般情况下,病毒程序在传染完一个对象后,都要给被传染对象加上传染标识,传染条件的判断就是检测被攻击对象是否存在这种标识,若存在这种标识,则病毒程序不对该对象进行传染;若不存在这种标识,则病毒程序就对该对象实施传染。由于这种原因,人们自然会想到是否能在正常对象中加上这种标识,就可以不受病毒的传染,起到免疫的作用呢?
从实现计算机病毒免疫的角度看病毒的传染,可以将病毒的传染分成两种。第一种是像香港病毒、1575病毒这样,在传染前先检查待传染的扇区或程序里是否含有病毒代码,如果没有找到则进行传染,如果找到了则不再进行传染。这种用作判断是否为病毒自身的病毒代码被称作传染标志或免疫标志。第二种是在传染时不判断是否存在免疫标志,病毒只要找到一个可传染对象就进行一次传染。就像黑色星期五那样,一个文件可能被黑色星期五反复传染多次,滚雪球一样越滚越大(需要说明的是,黑色星期五病毒的程序中具有判别传染标志的代码,由于程序设计错误,使判断失败,形成现在的情况,对文件会反复感染,传染标志形同虚设)。
目前常用的免疫方法有如下两种。
1)针对某一种病毒进行的计算机病毒免疫
例如对小球病毒,在DOS引导扇区的1FCH处填上1357H,小球病毒一旦检查到这个标志就不再对它进行传染了。对于1575文件型病毒,免疫标志是文件尾的内容为0CH和OAH的两个字节,1575病毒若发现文件尾含有这两个字节,则不进行传染。这种方法的优点是可以有效地防止某一种特定病毒的传染。但缺点很严重,主要有以下几点。
(1)对于没有设感染标识的病毒不能达到免疫的目的。有的病毒只要在激活的状态下,会无条件的把病毒传染给被攻击对象,而不论这种对象是否已经被感染过或者是否具有某种标识。
(2)当出现这种病毒的变种不再使用这个免疫标志时或出现新病毒时,免疫标志发挥不了作用。
(3)某些病毒的免疫标志不容易仿制,非要加上这种标志不可,则对原来的文件要做大的改动。例如对大麻病毒就不容易做免疫标志。
(4)由于病毒的种类较多,又由于技术上的原因,不可能对一个对象加上各种病毒的免疫标识,这就使得该对象不能对所有的病毒具有免疫作用。
(5)这种方法能阻止传染,却不能阻止病毒的破坏行为,仍然放任病毒驻留在内存中。目前使用这种免疫方法的商品化反病毒软件已不多见了。
2)基于自我完整性检查的计算机病毒的免疫方法
目前这种方法只能用于文件而不能用于引导扇区。这种方法的原理是:为可执行程序增加一个免疫外壳,同时在免疫外壳中记录有关用于恢复自身的信息。免疫外壳占1~3KB。执行具有这种免疫功能的程序时,免疫外壳首先得到运行,检查自身的程序大小、校验生成日期和时间等情况,没有发现异常时才转去执行受保护的程序。
但是,它仍存在如下一些缺点和不足。
(1)每个受到保护的文件都要增加1~3KB,需要额外的存储空间。
(2)现在使用中的一些校验码算法不能满足防病毒的需要,被某些种类的病毒感染的文件不能被检查出来。
(3)无法对付覆盖方式的文件型病毒。
(4)有些类型的文件不能使用外加免疫外壳的防护方法,这样将使那些文件不能正常执行。
当某些尚不能被病毒检测软件检查出来的病毒感染了文件,而该文件又被免疫外壳包在里面时,这个病毒就像穿了“保护盔甲”,使查毒软件查不到它,而它却能在得到运行机会时跑出来继续传染扩散。
信息安全管理和评估
安全管理技术
由于数据在网络上进行传输时,可能会存在各种攻击,因此,必须加强对网络安全的管理。概括性地说,安全管理技术就是监督、组织和控制网络通信服务以及信息处理所必需的各种技术手段和措施的总称。其目标是确保计算机网络的持续正常运行,并在计算机网络运行出现异常时能及时响应和排除故障。
安全管理的发展现状
在20世纪90年代中后期,随着因特网的发展以及社会信息化程度越来越高,各种安全设备在网络中的应用也越来越多,市场上开始出现了独立的安全管理产品。
相对而言,国外计算机网络安全管理的需求多样,起步较早,已经形成了较大规模的市场,有一部分产品逐渐在市场上获得了用户的认可。近年来,国内厂商也开始推出网络安全管理产品,但一般受技术实力限制,大多是针对自己的安全设备开发的集中管理软件、安全审计系统等。
由于各种网络安全产品的作用体现在网络中的不同方面,统一的网络安全管理平台必然要求对网络中部署的安全设备进行协同管理,这是统一安全管理平台的最高追求目标。
网络安全管理技术简介
安全管理(Security Management, SM),不管是对于个人管理,还是对企业管理(Enterprise Management),都是十分重要的。从信息管理的角度看,安全管理涉及到策略与规程、安全缺陷以及保护所需的资源、防火墙、密码加密问题、鉴别与授权、客户机/服务器认证系统、报文传输安全以及对病毒攻击的保护等。
实际上,安全管理不是一个简单的软件系统,它包括的内容非常多,主要涵盖了安全设备的管理、安全策略管理、安全风险控制和安全审计等几个方面。
(1)安全设备管理:是指对网络中所有的安全产品,如防火墙、VPN、防病毒、入侵检测(网络、主机)和漏洞扫描等产品实现统一管理、统一监控。
(2)安全策略管理:是指管理、保护及自动分发全局性的安全策略,包括对安全设备、操作系统及应用系统的安全策略的管理。
(3)安全分析控制:确定、控制并消除或缩减系统资源的不定事件的总过程,包括风险分析、选择、实现与测试、安全评估及所有的安全检查(含系统补丁程序检查)。
(4)安全审计:对网络中的安全设备、操作系统及应用系统的日志信息收集汇总,实现对这些信息的查询和统计;并通过对这些集中信息的进一步分析,可以得出更深层次的安全分析结果。
安全管理主要解决以下问题
1)集中化的安全策略管理(Centralized Security Policy Management, CSPM)
企业的安全保障需要自上而下地制定安全策略,这些安全策略会被传送并装配到不同的执行点(Enforcement Point)中。
2)实时安全监视(Real-Time Security Awareness, RTSA)
企业用户实时了解企业网络内的安全状况。
3)安全联动机制(Contain Mechanism, CM)
安全设备之间需要具备有中心控制或无中心控制的安全联动机制,即当IDS发现在某网段有入侵动作时,它需要通知防火墙阻断此攻击。
4)配置与补丁管理(Configuration and Patching Management)
企业用户可以通过对已发现的安全缺陷快速反应,大大提高自己抵抗风险的能力。
5)统一的权限管理(Privilege Management across the Enterprise)
通过完善的权限管理和身份认证实现对网络资源使用的有效控制和审计。
安全性规章
信息系统安全制度
一段时间以来,国际和国内一些著名网站被“黑”的事件引起了社会多方的关注。计算机信息系统的安全问题越来越受到重视,因为安全问题将影响到电子商务、国家信息甚至是国防等各个方面。针对大幅度上升的黑客攻击、病毒传播和有害信息传播等计算机违法犯罪活动,有关部门出台了一系列的信息系统安全法规与制度,从而进一步保证了信息系统的安全运行。
1)计算机信息系统安全保护等级划分标准
《计算机信息系统安全保护等级划分标准》规定,从2001年1月1日起对计算机信息系统安全保护实行等级划分,此举标志着我国计算机信息系统安全保护纳入了等级管理的轨道。
由公安部提出并组织制定、国家质量技术监督局发布的强制性国家标准《计算机信息系统安全保护等级划分准则》,将计算机信息系统的安全保护等级划分为用户自主保护级、系统审计保护级、安全标记保护级、结构化保护级和访问验证保护级5个级别。用户可以根据自己计算机信息系统的重要程度确定相应的安全保护级别,并针对相应级别进行建设。
实行安全等级保护制度后,公安机关能够通过规范、科学、公正的评定和监督管理,全面、及时地预防和发现计算机信息系统建设和使用中存在的安全风险和安全漏洞,有利于提高公安机关对计算机信息系统安全保护的监督管理水平。此外,实行这一制度还有利于提高信息安全产业化发展水平,为安全产品的普及使用提供广阔的市场和发展空间。
2)计算机信息安全保护条例
根据公安部的有关规定,计算机信息系统安全保护包括以下几个方面。
(1)实体安全:包括周围危险建筑与设施、监控系统、防火措施、防水措施、机房环境、防雷措施、备用电源、防静电措施、用电质量和防盗措施等。
(2)网络通信安全:包括通信设备的场所标志、重要的通信线路及通信控制装置备份、加密措施、网络运行状态安全审计跟踪措施、网络系统访问控制措施和工作站身份识别措施等。
(3)软件与信息安全:包括操作系统及数据库访问控制措施、应用软件、系统信息能防止恶意攻击和非法存取、数据库及系统状态监控、防护措施、用户身份识别措施、系统用户信息异地备份等。
(4)管理组织与制度安全:包括专门的安全防范组织和计算机安全员、健全的安全管理规章制度、详尽的工作手册和完整的工作记录、定期进行风险分析,制定灾难处理对策、建立安全培训制度、制定人员的安全管理制度等。
(5)安全技术措施:包括灾难恢复的技术措施、开发工作与业务工作分离的措施、应用业务、系统安全审计功能、系统操作日志、服务器备份措施、计算机防病毒措施等。
计算机防毒制度
为了加强计算机病毒的防治管理工作,2000年公安部发布了《计算机病毒防治管理办法》,规定各级公安机关负责本行政区域内的计算机病毒防治管理工作。
规定禁止制作、传播计算机病毒,向社会发布虚假计算机病毒疫情,承担计算机病毒的认定工作的机构应由公安部公共信息网络安全监察部门批准,计算机信息系统的使用单位应当履行防治计算机病毒的职责。
信息安全保障体系
对一个信息网络,必须从总体上规划,建立一个科学全面的信息安全保障体系,从而实现信息系统的整体安全。一个全面的信息安全保障体系,应该能够解决信息系统存在的大部分安全威胁。目前的信息安全威胁主要有:针对系统稳定性和可靠性的破坏行为,包括从外部网络针对内部网络的攻击入侵行为和病毒破坏等;大量信息设备的使用、维护和管理问题,包括违反规定的计算机、打印机和其他信息基础设施的滥用,以及信息系统违规使用软件和硬件的行为;知识产权和内部机密材料等有价值信息存储、使用和传输的保密性、完整性和可靠性存在可能的威胁,其中尤其以信息的保密性存在威胁的可能性最大。
针对这些复杂且技术手段各异的信息安全威胁,要建立一个完整的信息安全保障体系,包含以下几个方面的内容。
1)建立统一的身份认证体系
身份认证是信息交换最基础的要素,如果不能确认交换双方的实体身份,那么信息的安全就根本无从得到保证。身份认证的含义是广泛的,其泛指一切实体的身份,包括人、计算机、设备和应用程序等,只有确认了所有这些信息在存储、使用和传输中可能涉及的实体,信息的安全性才有可能得到基本保证。
2)建立统一的信息安全管理体系
建立对所有信息实体有效的信息安全管理体系,对信息网络系统中的所有计算机、输出端口、存储设备、网络、应用程序和其他设备进行有效集中的管理,从而有效管理和控制信息网络中存在的安全风险。信息安全管理体系的建立主要集中在技术性系统的建立上,同时,也应该建立相应的管理制度,才能使信息安全管理系统得到有效实施。
3)建立规范的信息安全保密体系
信息的保密性是一个大型信息应用网络不可缺少的需求,所以,必须建立符合规范的信息安全保密体系。这个体系不仅仅应该提供完善的技术解决方案,也应该建立相应的信息保密管理制度。
4)建立完善的网络边界防护体系
重要的信息网络一般会跟公共的互联网进行一定程度的分离,在内部信息网络和互联网之间存在一个网络边界。必须建立完善的网络边界防护体系,使得内部网络既能够与外部网络进行信息交流,同时也能防止从外网发起的对内部网络的攻击等安全威胁。
此外,要加快信息安全立法,建立信息安全法制体系,这样才能做到有法可依、有法必依。建立国家信息安全组织管理体系,加强国家信息安全机构及职能;建立高效能的、职责分工明确的行政管理和业务组织体系;建立信息安全标准和评估体系;建立国家信息安全技术保障体系,使用科学技术实施安全的防护保障。
网课
信息系统安全属性
图片详情
不可抵赖性:数字签名
对称加密和非对称加密
对称加密
图片详情
rar加密是对称加密,解密输入的密码和加密的密码一致
非对称加密
图片详情
加密速度慢,适合小数据
信息摘要
图片详情
原始信息发生变化,摘要也会发生变化
使用单向散列函数
数字签名
图片详情
用A的私钥加密,叫数字签名,A的公钥解密叫做验证过程
数字签名+信息摘要结合起来使用
数字证书与PGP
图片详情
传公钥的时候被截获
设计邮件加密系统
要求邮件以加密方式传输,邮件最大附件内容可达50OMB,发送者不可抵赖,若邮件被第三方截获,第三方无法篡改。
信息摘要+数字签名+数据证书
图片详情
PKI公钥体系
图片详情
基于非对称,类似数字证书
- 证书颁发机构(CA, Certificate Authority)
PKI公钥系分层情况
图片详情
- 密匙管理中心,(kmc,key management center)
- 公钥基础设施 (pki,Public Key Infrastructure )
- 注册机构(RA,register Authority)
信息系统安全保证层次
图片详情
访问控制:权限这一层
强制访问控制:分层
基于任务的访问控制:OA
安全审核与安全系统设计原则
图片详情
安全审计:从日志了解
各个网络层次的安全保障
图片详情
网络威胁与共计
图片详情
业务流分析:跟窃听比有分析的成分
图片详情
DOS和DDOS共计
破坏可用性