第二节 计算机信息安全技术
2.1 信息安全的概念、威胁、服务与机制
2.1.1 信息安全的概念及目标
我们生活在信息时代,在生活的各方面都需要保持信息通畅。换句话说,信息是一种资产,它和其他任何资产一样具有价值,需要被保护以避免攻击。
为了安全起见,信息要被隐藏起来以避免未授权的访问(机密性),被保护起来以避免未经授权的更改(完整性),还要保证对授权实体随时可用(可用性)。
过去的20年中,计算机网络在信息应用上掀起了一场革命。信息是分散的,利用计算机网络,一个被授权的人可以从很远的地方发送或接收信息。上述3种要求(机密性、完整性和可用性)不但并未改变,而且具有了新的含义。不仅信息被保存在计算机当中要确保其机密性,而且应当有一种方法,能使信息在由一台计算机被发送到另一台计算机的过程中,也能保证其机密性。
由此可见,信息的机密性、完整性和可用性是信息安全的目标。
1.机密性
在信息安全中,机密性也许是最为普通的一个要求。我们都需要确保信息的机密性,一个组织也要预防那些威胁信息机密性的恶意行为。在军事上,隐藏敏感信息是生死攸关的;在工业上,向竞争对手隐藏某些信息也是机构运作的关键所在;在银行中,客户的账户信息也需要保密。机密性技术不仅应用于信息的存储中,也应用于信息的传输中。当用户要从远程计算机上发送或接收一则信息时,就需要将该信息隐藏起来。
2.完整性
信息需要经常变更。当一个客户在银行存钱或取钱时,其个人账户余额就要变更。完整性是指这种变更只能由授权的实体通过授权的机制来完成。完整性被侵害并不一定是由恶意行为造成的,像网络使用高峰期的系统中断,也可能会对信息造成不应有的改变。
3.可用性
信息安全的第三方面就是可用性。被某一组织创建并储存起来的信息对授权实体必须可用,如果不可用那就毫无价值了。信息需要经常变更,这就意味着授权实体要能够对信息随时进行访问。对于一个组织来说,信息不可用性的危害与缺少了机密性和完整性的危害一样严重,这就像银行的一个客户不能访问其交易账户一样。
2.1.2 威胁信息安全的攻击
我们生活在信息时代,在生活的各方面都需要保持信息通畅。换句话说,信息是一种资产,它和其他任何资产一样具有价值,需要被保护以避免攻击。
信息的机密性、完整性、可用性会被安全攻击所威胁。可结合这三个安全目标将攻击分为三类,如图2—1所示。
图2—1 基于安全目标的攻击分类
1.威胁机密性的攻击
通常,有两种威胁信息的机密性的攻击:窃听和流量分析。
(1)窃听。
窃听是指在未经授权的情况下访问或拦截信息,例如,一个在网络上传输的文件可能含有机密信息,某未经授权的实体就有可能拦截该传输并利用其内容用以谋利。为避免被窃听,通过使用在本章中讨论的加密技术,就可以使文件成为对拦截者不可解的信息。
(2)流量分析。
虽然通过加密可使文件变为对拦截者不可解的信息,但是他还可以通过在线监测流量获得一些其他形式的信息。例如,他可以获得发送者或接收者的电子地址(如电子邮箱地址),也可以通过收集通信双方的信息来猜测交易的本质。
2.威胁完整性的攻击
有几种类型的攻击可能威胁信息的完整性,即篡改、伪装、重放和否认。
(1)篡改。
拦截或访问信息后,攻击者可以修改信息使其对自己有利。例如,某客户为一笔交易给银行发送信息,攻击者即可拦截信息并将其改变为对自己有利的交易形式。
(2)伪装。
伪装或欺骗就是攻击者假扮成某人。例如,攻击者伪装为银行的客户,从而盗取银行客户的银行卡密码和个人身份号码。有时攻击者也可能伪装为接收方。例如,当用户设法联系某银行的时候,另外一个地址伪装为银行,从用户那里得到某些相关的信息。
(3)重放。
重放是又一种攻击方式,即攻击者获得用户所发信息的拷贝后再重放这些信息。例如,某人向银行发送一项请求,要求向为他工作过的攻击者支付酬金。攻击者拦截这一信息后,重新发送该信息,就会从银行再得到一笔酬金。
(4)否认。
这种攻击和其他几种攻击都不一样,因为这种攻击是由信息传输双方当中的一方实施的:发送者或接收者。可能信息的发送者会否认曾经发送这种信息;也可能信息的接收者会否认曾经接收过这种信息。
3.威胁可用性的攻击
这里只介绍一种威胁可用性的攻击:拒绝服务。拒绝服务(DoS)是一种非常普遍的攻击方式,可能减缓或完全中断系统的服务。攻击者可以通过集中策略来实现其目的。他可能发送大量的虚假请求,以致服务器由于超负荷而崩溃;攻击者或许会拦截并删除服务器对客户的答复,使客户认为服务器没有做出反应等等。
除以上分类外,还可以将攻击分为主动攻击和被动攻击。主动攻击可能改变信息或危害系统。威胁信息完整性和有效性的攻击就是主动攻击。在被动攻击中,攻击者的目的只是获取信息,这就意味着攻击者不会篡改信息或危害系统,系统可以不中断其正常运行。
2.1.3 安全服务与安全机制
我们生活在信息时代,在生活的各方面都需要保持信息通畅。换句话说,信息是一种资产,它和其他任何资产一样具有价值,需要被保护以避免攻击。
1.安全服务
ITU-T(X.800)定义了5种和安全目标及攻击有关的服务,这些安全服务如下:
(1)信息的机密性。
信息的机密性在于保护信息免于被暴露攻击。正像X.800给服务下的定义那样,服务的内容非常宽泛,包含信息的整体和部分机密性,也包含信息免于被进行流量分析,即它可以保护信息免于窃听和流量分析。
(2)信息的完整性。
信息的完整性在于保护信息免于被对方篡改、插入、删除和重放。它可以保护信息的整体和部分。
(3)身份认证。
服务还可以提供远在另一端的实体的身份认证,也就是提供发送方或接收方的身份认证。在有通信连接的时候认证发送方和接收方的身份(对等实体身份认证),在没有通信连接的时候,认证信息的来源(数据源身份认证)。
(4)不可否认性。
不可否认性在于保护信息免于被信息发送方或接收方否定。在带有原证据的不可否认性中,如果信息的发送方否认,信息的接收方过后可以检验其身份;在带有交接证据的不可否认性中,信息的发送者过后可以检验发送给预定接收方的信息。
(5)访问控制。
访问控制在于保护信息免于被未经授权的实体访问。在这里,访问的含义是非常宽泛的,包含对程序的读、写、修改和执行等。
2.安全机制
X.800推荐了一些提供安全服务的安全机制。这些安全机制如下:
(1)加密。
即隐藏或覆盖信息以使其具有机密性。也可以用来执行提供别的服务的其他机制。
(2)信息的完整性。
信息的完整性机制附加于一个短的键值,该键值是信息本身创建的特殊程序。接收方接收信息和键值,再从接收的信息中创建一个新的键值,并把新创建的键值和原来的进行比较。如果两个键值相同,则说明信息的完整性被保全。
(3)数字签名。
数字签名是一种方法,信息发送方可以通过它对信息进行电子签名,信息接收方可以对签名进行电子检验。发送方使用显示与其公钥有联系的私钥,这个公钥是他公开承认的。接收方使用发送方的公钥,证明信息确实是有发送过这个信息的人签名的。
(4)身份认证交换。
进行身份认证交换时,两个实体交换信息以相互证明身份。
(5)流量填充。
流量填充是指在数据流中嵌入一些虚假信息,从而阻止对手企图使用流量分析。
(6)路由控制。
路由控制是指在发送方和接收方之间选择并不断改变有效路由,以避免对手在特定的路由上进行偷听。
(7)公证。
公证是指选择一个双方都依赖的第三方控制双方的通信,如此即可避免否认。为了避免发送方过后否认其曾经提过这样的请求,接收方可以牵涉第三方来保存发送方的请求。
(8)访问控制。
访问控制就是用各种方法,证明某用户具有访问该信息或信息所拥有的资源的权利。密码和PIN就是这方面的例子。
2.1.4 信息安全技术
1.信息安全的策略
信息安全策略是指为保证提供一定级别的安全保护所必须遵守的规则。信息安全的实现要靠先进的技术、严格的安全管理、法律的约束与安全教育。从技术角度来说,确定具体信息系统的安全策略主要有木桶原则、整体原则、有效性与实用性原则、安全性评价原则、等级性原则和动态化原则等6项。
2.信息技术的安全性等级
(1)网络安全性标准。
在20世纪90年代,美国国家计算机安全中心提出了网络安全性标准(DOD5200,28_STD),即可信任计算机标准评估准则。该标准将网络安全性等级划分为A、B、C、D4类,其中A类安全等级最高,D类安全等级最低。这4类安全等级还可细化为7个类别,这些级别的安全性从低到高的顺序依次是D1、C1、C2、B1、B2、B3和A1。
(2)计算机信息系统安全保护等级划分原则。
在我国,以《计算机信息系统安全保护等级划分原则》(GB17859—1999)为指导,将信息和信息系统的安全保护分为5个等级:自主保护等级、指导保护级、监督保护级、强制保护级和专控保护级。
2.2 计算机病毒
2.2.1 计算机病毒的定义与特征
1.计算机病毒的定义
计算机病毒是编制或者在计算机程序中插入的破坏计算机或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
计算机病毒都是人为故意编写的程序。编写病毒程序的人出于不同的目的而编写病毒程序,有的为了证明自己的能力,有的出于好奇,也有的是因为个人目的没能达到而采取的报复方式,等等。对大多数病毒制作者的信息,从病毒程序的传播过程中都能找到一些蛛丝马迹。
2.计算机病毒的特征
计算机病毒的特征大致可归为以下几点:
(1)传染性。
计算机病毒的传染性是指病毒程序在计算机系统中的传播和扩散。计算机病毒具有很强大的传染性,通过自我复制,计算机病毒可以迅速地在程序之间、计算机之间以及计算机网络之间传播。
(2)破坏性。
计算机病毒可能对计算机系统产生不同程度的破坏,主要表现为占用系统资源、破坏文件和数据、干扰程序运行、影响屏幕显示,甚至摧毁系统等。
(3)隐蔽性。
病毒程序一般都比较短,技巧性高,极具隐蔽性,很难被发现。它通常依附于一定的媒介,不单独存在。
(4)潜伏性。
计算机病毒可长期潜伏在文件中,在满足触发条件之前,计算机病毒可能不会表现出任何症状,只有触发了特定的条件才会进行传染或对计算机系统进行破坏。
(5)攻击的主动性。
病毒对系统一般采取主动攻击,不以人的意志为转移。也就是说,从一定程度上讲,计算机系统无论采取多么严密的防范措施都不可能彻底地排除病毒对系统的攻击,而防范措施只是一种预防的手段而已。
(6)病毒的不可预见性。
从病毒的检测方面来看,病毒还具有不可预见性。相对反病毒软件而言,病毒永远是超前的。新一代计算机病毒甚至连一些基本的特征都隐藏了,有时病毒利用文件中的空隙来存放自身的代码,有的新病毒则采用变形来逃避检查。
2.2.2 计算机病毒的结构与分类
1.计算机病毒的结构
病毒可以附加在程序的头部或尾部,或者采用其他方式嵌入。它运行的关键在于当被感染的程序被调用时,将首先执行病毒代码,然后再执行程序的代码。
2.计算机病毒的分类
从1987年美国首次公开报道计算机病毒以来,世界上发现的计算机病毒数量已超过4万种。从不同的角度可以把这些病毒分成不同的类别。
(1)按寄生的方式分类。
①引导型病毒:这类病毒把自身或自身的一部分存放于硬盘的引导区内,而把磁盘原引导区内容转移到别处。当系统启动时,首先选择病毒程序,从而获得CPU的控制权。这类病毒曾广为流行。
②文件型病毒:这类病毒专门感染可执行文件(如后缀为.com、.exe、.sys等的文件),当运行带有病毒的程序时,文件型病毒会被引入内存并会自动复制到其他未感染的文件中。这类病毒的数量最大。
③混合型病毒:这类病毒既感染硬盘的引导区,又感染可执行文件,具有上述两类病毒的特点。
(2)按破坏的后果分类。
①良性病毒:这类病毒的制作者目的在于表现自己,大多数出于恶作剧。病毒发作时,往往会占用大量CPU时间和存储资源,降低运行速度,干扰用户工作,但它们不破坏系统的数据,一般也不会导致系统瘫痪。一旦病毒被消除后,系统就恢复正常。例如,“小球”病毒就属于良性病毒。
②恶性病毒:这类病毒的目的在于破坏系统的数据资源和文件。病毒发作时,往往会破坏系统数据,甚至删除系统文件,重新格式化硬盘等,其造成的后果十分严重。即使消除了病毒,所造成的破坏也难以恢复。例如,CIH病毒、“黑色星期五”等都属于恶性病毒。
(3)按入侵的方式分类。
①操作系统型病毒:当操作系统启动时,病毒就会自动装入内存,用它自己的程序去取代部分操作系统进行工作,因此这类病毒具有很强的破坏力。
②源码型病毒:这类病毒是在程序被编译之前就插入到使用高级语言编写的程序中。
③外壳型病毒:这种病毒通常旋转在主程序的周围,一般情况下不对源程序做修改。这种病毒较常见。
④入侵型病毒:这种病毒把病毒程序段直接插入到现有程序中。这种病毒入侵后,不破坏现有程序就难以消除病毒程序。CIH病毒也是一种入侵型病毒,它将自己隐藏在寄生文件的空隙中,但可以不改变文件长度,且保持所寄生的文件正常运行,并在条件满足时将自己重新装配起来再发作。
2.2.3 计算机病毒的危害与识别
1.计算机病毒程序的一般工作过程
(1)检查系统是否感染上病毒,若未染上,则将病毒程序装入内存,同时修改系统的敏感资源(一般是中断向量),使其具有传染病毒的机能。
(2)检查磁盘上的系统文件是否感染上病毒,若未染上,则将病毒传染到系统文件上。
(3)检查引导扇区是否染上病毒,若未染上,则将病毒传染到引导扇区。
(4)完成上述工作后,选择源程序。
通过以上对文件感染过程的分析,可知道被感染对象的哪些地方被做了修改,病毒存放在什么部位,病毒感染条件以及感染后的特征等,为以后诊断病毒、消除病毒提供了参考依据。
计算机病毒的危害取决于病毒制造者的主观愿望及其具有的技术能力。正确认识和识别计算机病毒对有效防治计算机病毒是十分重要的。
2.计算机感染上病毒的症状
计算机感染上病毒后,常常表现出下面一些症状:
(1)异常要求输入口令。
(2)程序装入的时间比平时长,计算机发出奇怪的声音,运行异常。
(3)有规律地出现异常现象或显示异常信息。如异常死机和频繁自动重新启动;屏幕上显示白斑或圆点等。
(4)计算机经常出现死机现象或不能正常启动。
(5)程序和数据无故丢失,文件名不能辨认,可执行文件的大小发生变化。
(6)访问设备时发现异常情况,如磁盘访问时间变长,打印机不能联机或打印时出现乱码。
(7)磁盘不可用簇增多,卷名发生变化。
(8)发现不知来源的隐藏文件或电子邮件。
3.计算机病毒的破坏行为
计算机病毒的破坏行为体现了病毒的杀伤力。主要体现在以下几方面:
(1)破坏系统数据区。包括破坏引导区、FAT表和文件目录。具有这种杀伤力的病毒是恶性病毒,被破坏的数据一般不容易恢复。
(2)破坏文件。例如,删除、改名、替换内容、颠倒内容、丢失部分程序代码、丢失文件簇、写入时间空白等。
(3)破坏内存。例如,占用大量内存,改变可用内存总量,禁止分配内存,蚕食内存等。
(4)破坏磁盘。例如,破坏磁盘数据,改变磁盘的正常读写操作等。
(5)干扰系统运行。例如,干扰内部命令的选择,不选择命令,不打开文件,虚假报警,占用特殊数据区,更换当前盘,强制游戏,在时钟中纳入时间的循环计数使计算机空转,使系统时钟倒转,重新启动,死机等。
(6)扰乱屏幕显示。例如,使字符下跌、倒置,光标下跌,屏幕抖动,滚屏,乱写,吃字符等。
(7)破坏CMOS数据。CMOS中保存着系统的重要数据,如系统时钟、内存容量和磁盘类型等。计算机病毒能够对CMOS执行写入操作,破坏CMOS中的数据。
(8)干扰键盘正常操作。例如,锁键盘、换字、重复输入等。
(9)使计算机喇叭发出异常响声。例如,发出咔咔声、警笛声、鸣叫声等。
2.2.4 计算机病毒的传播途径
计算机病毒的传播途径可分为被动传播和主动传播两种。
1.被动传播途径
(1)安装的计算机系统和软件中带有病毒。
(2)下载或执行染有病毒的游戏软件或其他应用程序。
(3)非法复制导致感染病毒。
(4)计算机生产、经营单位销售的机器或软件感染有病毒。
(5)维修部门造成计算机病毒交叉感染。
(6)通过网络、电子邮件感染病毒。
2.主动传播途径
主动传播途径是指攻击者针对确定的目标有目的地攻击。常见的主动传播途径主要有以下4种。
(1)无线射入:通过无线电波把病毒发射注入被攻击对象的电子系统中。
(2)有线注入:计算机大多是通过有线线路联网,只要在网络节点注入病毒,就可以向网络内的所有计算机扩散和传播。
(3)接口输入:通过网络中计算机接口输入的病毒由点到面,从局部向全网迅速扩散蔓延,最终侵入网络中心和要害终端,使整个网络系统瘫痪。
(4)先机植入:这是采用“病毒芯片”手段实施攻击的方式。将病毒固化在集成电路中,便可遥控激活。
2.2.5 计算机病毒的预防
计算机病毒防治的关键是做好预防工作,即防患于未然。而预防工作应包含思想认识、管理措施和技术手段3个方面的内容。
1.牢固树立预防为主的思想
解决病毒防治关键是要在思想上足够重视。要“预防为主,防治结合”,从加强管理入手,制定切实可行的管理措施,并严格地贯彻落实。由于计算机病毒的隐蔽性和主动攻击性,要杜绝病毒的传染,在目前的情况下,特别是对于网络系统和开放式系统而言,几乎是不可能的。因此采用以预防为主、防治结合的防治策略可以降低病毒感染、传播的几率。即使受到感染,也可立即采取有效措施将病毒清除,从而达到把病毒危害降到最低的目的。
2.制定切实可行的预防管理措施
制定切实可行的预防病毒的管理措施,并严格贯彻执行。大量实践证明,这种主动预防的策略是行之有效的。预防管理措施包括:
(1)尊重知识产权,使用正版软件。不随意复制、使用来历不明或未经安全检测的软件。
(2)建立、健全各种切实可行的预防管理规章制度及紧急情况处理的预案措施。
(3)对服务器及重要的网络设备实行物理安全保护和严格的安全操作规程,做到专人、专机、专用。严格管理和使用系统管理员的账号,限定其使用范围。
(4)对系统中的重要数据要定期和不定期地进行备份。
(5)严格管理和限制用户的访问权限,特别是加强对远程访问、特殊用户的权限管理。
(6)不用软盘启动,防止引导区病毒的感染。
(7)随时注意观察计算机系统和网络系统的各种异常现象,定期使用杀毒软件进行检测。
(8)网络病毒发作期间,暂时停止使用Outlook Express接收电子邮件,避免来自其他邮件病毒的感染。
(9)不在与工作有关的计算机上安装游戏软件或进行联网游戏。
3.采用技术手段预防病毒
采用技术手段预防病毒主要包括以下措施:
(1)安装、设置防火墙,对内部网络实行安全保护。
(2)安装实时监测的杀毒软件,定期更新软件版本。
(3)从Internet接口中去掉不必要的协议。
(4)不随意下载来路不明的可执行文件或E-mail附件中携带的可执行文件。
(5)修改CMOS设置,将软盘驱动器设为None或NOT Installed,并设置CMOS的密码,防止病毒通过软盘侵入。
(6)不要将自己的邮件地址放在网上,以防被SirCam病毒窃取。
(7)对重要的文件采用加密的方式传输。
2.2.6 计算机病毒的检测与清除
在检测出系统感染了病毒或确定了病毒的种类之后,就要设法清除病毒。清除病毒可采用人工清除和自动清除两种方法。
1.人工清除病毒
人工清除病毒方法是借助工具软件对病毒进行手工清除。操作时使用工具软件打开被感染的文件,从中找到并摘除病毒代码。手工清除病毒操作复杂、速度慢、风险大,要求操作者具有熟练的操作技能和丰富的病毒知识。这种方法是专业防病毒研究人员清除病毒时采用的,一般用户不宜采用这种方式。
2.自动清除病毒法
自动清除病毒法是使用杀毒软件来清除病毒。用杀毒软件清除病毒,操作简单,用户只要按照菜单提示和联机帮助操作即可。自动清除病毒法具有效率高、风险小的特点,适用于一般用户。
2.3 操作系统安全
2.3.1 硬件安全机制
优秀的硬件保护设施是实现高效、安全、可靠的操作系统的基础,计算机硬件安全的目标是保证其自身的可靠性,并为操作系统提供基本的安全设施,常用的有:存储保护、运行保护和I/O保护等。
保护(或称内在保护)是指一种控制程序、进程或用户对计算机系统资源的访问机制。
1.存储保护
存储保护主要指保护用户在存储器中的数据,对于在内存中一次只能运行一个进程的操作系统,存储保护机制应能防止用户程序对操作系统的影响。而允许多个进程同时执行的多道操作系统还需要进一步要求存储保护机制对各个进程的存储空间进行相互隔离。在多道程序中,一个重要的问题是防止一道程序在存储和运行时影响到其他程序。操作系统可以在硬件中有效使用硬保护机制进行存储器的安全保护,现在比较常用的有界址、界限寄存器、重定位、特征位、分段、分页和段页式机制等。
内存储器是操作系统中的共享资源,即使对于单用户的个人计算机,内存也是被用户程序与系统程序所共享,在多道环境下更是被多个进程所共享。为了防止共享失去控制和产生不安全问题,对内存进行保护是必要的。
内存保护的目的:
(1)防止对内存的未授权访问;(2)防止对内存的错误读写,如向只读单元写;(3)防止用户的不当操作破坏内存数据区、程序区或系统区;(4)多道程序环境下,防止不同用户的内存区域互不影响;(5)将用户与内存隔离,不让用户知道数据或程序在内存中的具体位置。
常用的内存保护技术有:
单用户内存保护技术、多道程序的保护技术、分段与分页保护技术和内存标记保护法。
(1)单用户内存保护。
可以利用地址界限寄存器在内存中规定一条区域边界(一个内存地址),用户程序运行时不能跨越这个地址。利用该寄存器也可以实现程序重定位功能,可以指定用户程序的装入地址。
(2)多道程序的保护。
单用户内存保护存在的问题:利用一个基址寄存器无法使这些用户程序分隔在不同内存区运行。
解决办法:再增加一个寄存器保存用户程序的上边界地址。硬件系统将自动检查程序代码所访问的地址是否在基址与上边界之间,若不在则报错。
用这种办法可以把程序完整地封闭在上下两个边界地址空间中,可以有效地防止一个用户程序访问甚至修改另一个用户的内存。
如果使用多对基址和边界寄存器,还可以把用户的可读写数据区与只读数据区和程序区互相隔离,这种方法可以防止程序自身的访问错误。例如,可以防止向程序区或只读数据区写访问。
(3)分段与分页技术。
对于稍微复杂一些的用户程序,通常按功能划分成若干个模块(过程)。每个模块有自己的数据区,各模块之间也可能有共享数据区。各用户程序之间也可能有共享模块或共享数据区。这些模块或数据区有着不同的访问属性和安全要求,使用上述各种保护技术很难满足这些要求。
分段技术就是试图解决较大程序的装入、调度、运行和安全保护等问题的一种技术。
分段以模块(过程或子程序)为单位。采用分段技术,用户不知道他的程序实际使用的内存物理地址。这种隐藏对保护用户代码与数据的安全是极有好处的。分段技术的优点有:一是在段表中除了与段名对应的段号及段基址外,还可以增加必要的访问控制信息,对于任何企图访问某个段的操作,操作系统和硬件都可以进行检查。二是分段技术几乎可以实现对程序的不同片段分别保护的目标。根据各段敏感性要求,为各段划分安全级,并提供不同的保护措施。三是分段技术的保护功能可以检查每一次对内存访问是否合法,可以让保护粒度达到数据项级。四是可以为了实施保护而检查每一次地址访问。五是可以避免允许用户直接指定内存地址或段区所带来的安全问题,也可以让多个用户用不同的权限访问一个段。
段的管理方式存在的问题与困难:
一是由于各段的长度不相同,对内存管理造成了困难,容易产生内存“碎片”。这是一个很大的安全漏洞。二是在许多情况下(如段内部包含动态数据结构)要求在使用段方式时允许段的尺寸可以增大。为了保证安全起见,要求系统检查所产生的地址,验证其是否超出所访问的段的末端。三是段名不易在指令中编码,由操作系统查名字表的速度也会很慢。解决的办法是由编译器把段名转化为数字,并建立一张数字与段名之间的对照表。但这又为段的共享带来麻烦,因为每个调用者都必须知道该段的编号。
为了解决分段可能产生的内存碎片问题,引入了分页技术。分页是把目标程序与内存都划分成相同大小的片段,这些片段就称为“页”。分页技术解决了碎片问题,但损失了分段技术的安全功能。
由于段具有逻辑上的完整意义,而页则没有这样的意义,程序员可以为段规定某些安全控制要求,但却无法指定各页的访问控制要求。系统还可以为每个物理页分配一个密码,只允许拥有相同密码的进程访问该页,该密码由操作系统装入进程的状态字中,由硬件对进程的密码进行检验。这种安全机制有效地保护了虚拟存储器的安全。
(4)标记保护法。
多对基址与边界寄存器技术的问题:只能保护数据区不被其他用户程序访问,不能控制自身程序对同一个数据区内单元有选择的读或写。
例如,一个程序中若没有数组越界溢出检查,当向该数组区写入时就有可能越界到其他数据单元,甚至越界到程序代码区(这就是缓冲区溢出的一种情况),而代码区是严格禁止写的。
解决方法是按其内容要求进行保护,例如有的单元只读,读/写、或仅执行(代码单元)等不同要求,可以在每个内存字单元中专用几个比特来标记该字单元的属性。
除了标记读、写、执行等属性外,还可以标记该单元的数据类型,如数据、字符、地址、指针或未定义等。
2.运行保护
安全操作系统很重要的一点是进行分层设计,而运行域正是这样一种基于保护环的等级式结构。运行域是进程运行的区域,在最内层具有最小环号的环具有最高特权,而在最外层具有最大环号的环是最小的特权环。
设置两环系统是很容易理解的,它只是为了隔离操作系统程序与用户程序。这就像生活中的道路被划分为机动车道和非机动车道一样,各种车辆和行人各行其道,互不影响,保证了各自的安全。对于多环结构,它的最内层是操作系统,它控制整个计算机系统的运行;靠近操作系统环之外的是受限使用的系统应用环,如数据库管理系统或事务处理系统;最外一层则是各种不同用户的应用环。
Intel x8 6微芯片系列就是使用环概念来实施运行保护的,如图所示。
环有4个级别:环0是最高权限的,环3是最低权限的。当然,微芯片上并没有实际的物理环。
Windows操作系统中的所有内核代码都在环0级上运行。用户模式程序(例如Office软件程序)在环3级上运行。包括Windows和Linux在内的许多操作系统在Intel x86微芯片上只使用环0和环3,而不使用环1和环2。
图2—2 CPU支持的保护环
3.I/O保护
I/O介质输出访问控制最简单的方式是将设备看作是一个客体,仿佛它们都处于安全边界外。由于所有的I/O不是向设备写数据就是从设备接收数据,所以一个进行I/O操作的进程必须受到对设备的读写两种访问控制。这就意味着设备到介质间的路径可以不受什么约束,而处理器到设备间的路径则需要施以一定的读写访问控制。
2.3.2 标识与鉴别
标识(identification):用来标明用户身份,确保用户的唯一性和可辨认性的标志,一般选用用户名称和用户标识符(UID)来标明一个系统用户,名称和标识符均为公开的明码信息。用户标识是有效实施其他安全策略,如用户数据保护和安全审计的基础。通过为用户提供标识,TCB能使用户对自己的行为负责。
鉴别(authentication):用特定信息对用户身份、设备和其他实体的真实性进行确认,用于鉴别的信息是非公开的和难以仿造的,如口令(也称密钥)。用户鉴别是有效实施其他安全策略的基础。
1.主体标识与鉴别
标识鉴别机制的设计和实现需要达到两个方面的要求:
一是标识鉴别系统的设计要协助安全操作系统实现新增的安全功能和安全策略,包括增加新的用户属性,并通过扩展标识鉴别命令来支持这些属性。
二是标识鉴别系统本身的安全性要达到安全操作系统本身的安全级别要求,增加新的安全功能,提高安全性。
(1)口令鉴别机制。
口令鉴别机制包括静态口令鉴别机制和动态口令鉴别机制。
①静态口令鉴别机制。
传统的静态口令鉴别机制是利用用户名和口令核对的方法对系统进行维护。用户登录系统时,系统通过对比用户输入的口令和用户ID,来判断用户身份的合法性。
②动态口令鉴别机制。
基本原理是在客户端登录过程中,基于用户的秘密通行短语加入不确定因素,对通行短语和不确定因素进行变换,所得结果作为认证数据(即动态口令),提交给认证服务器,认证服务器接收到用户的认证数据后,以事先规定的算法去验算认证数据,从而实现对用户身份的认证。由于客户端每次生成认证数据都采用不同的不确定因素值,保证了客户端每次提交的认证数据都不相同,因此动态口令机制有效地提高了身份认证的安全性。根据口令生成时不确定因素的选择方式,动态口令机制有时间同步机制、挑战/应答机制、事件同步机制等。
基于用户标识符和口令的用户认证技术,其最主要的优点是简单易行,因此,在几乎所有需要对数据加以保密的系统中,都引入了基于口令的机制。但这种机制也很容易受到别有用心者的攻击,攻击者可能通过多种方式来获取用户标识符和口令,或者猜出用户所使用的口令。为了防止攻击者猜出口令,在这种机制中通常应满足以下几点要求:
①口令长度要适中。
通常的口令是由一串字母和数字组成。如果口令太短,则很容易被攻击者猜中。例如,一个由四位十进制数所组成的口令,其搜索空间仅为104,在利用一个专门的程序来破解时,平均只需5000次即可猜中口令。假如每猜一次口令需花费0.1 ms的时间,则平均每猜中一个口令仅需0.5 s。而如果采用较长的口令,假如口令由ASCII码组成,则可以显著地增加猜中一个口令的时间。例如,口令由7位ASCII码组成,其搜索空间变为957(95是可打印的ASCII码),大约是7×1013,此时要猜中口令平均需要几十年。
②自动断开连接。
为了给攻击者猜中口令增加难度,在口令机制中还应引入自动断开连接的功能,即只允许用户输入有限次数的不正确口令,通常规定3—5次。如果用户输入不正确口令的次数超过规定的次数时,系统便自动断开该用户所在终端的连接。当然,此时用户还可能重新拨号请求登录,但若在重新输入指定次数的不正确口令后,仍未猜中,系统会再次断开连接。这种自动断开连接的功能,无疑又给攻击者增加了猜中口令的难度。
③不回送显示。
在用户输入口令时,登录程序不应将该口令回送到屏幕上显示,以防止被就近的人发现。
④记录和报告。
该功能用于记录所有用户登录进入系统和退出系统的时间;也用来记录和报告攻击者非法猜测口令的企图及所发生的与安全性有关的其他不轨行为,这样便能及时发现有人在对系统的安全性进行攻击。
(2)口令文件。
通常在口令机制中,都配置有一份口令文件,用于保存合法用户的口令和与口令相联系的特权。该文件的安全性至关重要,一旦攻击者成功地访问了该文件,攻击者便可随心所欲地访问他感兴趣的所有资源,这对整个计算机系统的资源和网络,将无安全性可言。显然,如何保证口令文件的安全性,已成为系统安全性的头等重要问题。
保证口令文件安全性的其中一个行之有效的方法是选择一个函数来对口令进行加密,该函数f(x)具有这样的特性:在给定了x值后,很容易算出f(x);然而,如果给定了f(x)的值,却不能算出x 的值。利用f(x)函数去编码(即加密)所有的口令,再将加密后的口令存入口令文件中。当某用户输入一个口令时,系统利用函数f(x)对该口令进行编码,然后将编码(加密)后的口令与存储在口令文件中的已编码的口令进行比较,如果两者相匹配,便认为是合法用户。即使攻击者能获取口令文件中的已编码口令,他也无法对它们进行译码,因而不会影响到系统的安全性。
图2—3 对加密口令的验证方法
2.传统标识与鉴别技术
传统的身份鉴别方法针对身份标识物品和身份标识知识,如个人的钥匙、证件、用户名、密码等。
智能卡作为一种鉴别技术,在生活中有广泛的应用:
图2—4 智能卡的广泛应用
3.生物标识与鉴别技术
通过计算机对人体固有的生理或行为特征进行个人身份鉴别。人的生理特征与生俱来,多为先天性,常用的生物标识技术有脸像、虹膜、指纹、掌纹、声音、笔迹、步态等。
生物标识与鉴别技术具有以下三大优点:(1)不容易被遗忘或丢失;(2)不容易被伪造或被盗;(3)可以随时携带,随时使用。
每个人所具有的唯一生理特征:指纹,视网膜,声音,视网膜、虹膜、语音、面部、签名等。指纹:有一些曲线和分叉以及一些非常微小的特征,提取指纹中的一些特征并且存储这些特征信息,节省资源,快速查询;手掌、手型:手掌有折痕,起皱,还有凹槽,还包括每个手指的指纹;人手的形状(手的长度,宽度和手指)表示了手的几何特征。
此外,还可以通过以下方式进行鉴别:
(1)视网膜扫描。
扫描眼球后方的视网膜上面的血管的图案。
(2)虹膜扫描。
虹膜是眼睛中位于瞳孔周围的一圈彩色的部分;虹膜有其独有的图案,分叉,颜色,环状,光环以及皱褶。
(3)语音识别。
记录时说几个不同的单词,然后识别系统将这些单词混杂在一起,让他再次读出给出的一系列单词。
(4)面部扫描。
人都有不同的骨骼结构,鼻梁,眼眶,额头和下颚形状。
但是这些方式存在以下几方面的限制因素:
第一,必须保证每个人的该项生物特征具有世界唯一性。
第二,生物特征必须提前识别,并存储在鉴别库中。
第三,由于生物特征会随着时间或者环境发生变化,鉴别库中的生物特征需要进行必要的更新,以保证较高的识别准确率。
2.3.3 访问控制
访问控制是限制已授权的用户、程序、进程或计算机网络中其他系统访问本系统资源的过程。口令认证不能取代访问控制。访问控制是针对越权使用资源的防御措,基本目标是防止对任何资源(如计算资源、通信资源或信息资源)进行未授权的访问。从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户的程序能做什么。未授权的访问包括:未经授权的使用、泄露、修改、销毁信息以及颁发指令;非法用户进入系统;合法用户对系统资源的非法使用。
访问控制机制是在信息系统中,为检测和防止未授权访问,以及为使授权访问正确进行所设计的硬件或软件功能、操作规程、管理规程和它们的各种组合。三种常用的访问控制机制有自主访问控制、自主访问控制:
1.自主访问控制
在自主访问控制机制中,用户有自主的决定权。这里所谓的自主决定权是指主体可以自主地将访问权,或访问权的某个子集授予其他主体。因灵活性高,被大量采用。
缺点:安全性最低,因为信息在移动过程中其访问权限关系会被改变。如用户A可将其对目标O的访问权限传递给用户B,从而使不具备对O访问权限的B可访问O。
自主访问控制的访问类型:
(1)许可与访问模式描述了主体对客体所具有的控制权与访问权。
(2)访问许可定义了改变访问模式的能力或向其他主体传送这种能力的能力。
(3)访问模式则指明主体对客体可进行何种形式的特定的访问操作:读\写\运行。
其中,写删除(Write-delete):该访问模式允许主体用扩展(expanding)、收缩(shrinking)以及删除(deleting)的方法修改一个客体;读拷贝(Read-copy):该模式允许主体对客体进行读与拷贝的访问操作。现在操作系统中的Read模式实际就是Read-copy模式;执行(Execute):该模式允许主体将客体作为一种可执行文件而运行。在许多系统中,Execute模式需要Read模式;Null(无效):这种模式表示,主体对客体不具有任何访问权。在存取控制表中用这种模式可以排斥某个特定的主体。其中客体是规定需要保护的资源,又称作目标(target),主体(Subj ect)或称为发起者(Initiator),是一个主动的实体,规定可以访问该资源的实体,(通常指用户或代表用户执行的程序)。主体属性是系统用来决定访问控制的常用因素,一个用户的任何一种属性都可作为访问控制决策点,一般系统访问控制策略中常用的用户属性有:用户ID/用户组ID、用户访问许可级别、用户需知属性、角色、权能列表。客体属性是与系统内客体相关联的属性也作为访问控制策略的一部分,客体安全属性有:信息按“安全等级”进行分类,如“公开信息”、“机密信息”、“秘密信息”、“绝密信息”;还可将系统内的信息按非等级分类,进行模拟人力资源系统的划分,称“范畴”,如参谋部、作战部、后勤部等,系统内信息的敏感性标记由等级与非等级两部分组成:敏感性级别和范畴。
2.强制访问控制方式
强制访问控制用于将系统中的信息分密级和范畴进行管理,保证每个用户只能够访问那些被标明能够由他访问的信息的一种访问约束机制。
系统中每个主体(进程),每个客体(文件、消息队列、信号量集、共享存储区等)都被赋予相应的安全属性,这些安全属性不能改变,它由安全系统(包括安全管理员)自动地按严格的规则设置,而不是像存取控制表那样由用户或用户程序直接或间接修改。
强制访问控制系统为所有的主体和客体指定安全级别,比如绝密级、秘密级和无密级。不同级别标记了不同重要程度和能力的实体。不同级别的主体对不同级别的客体的访问是在强制的安全策略下实现的。
强制访问控制机制中,系统为每个进程、每个文件以及每个IPC客体赋予了相应的安全属性,由系统管理员或操作系统自动的按照严格的规则来设置。其访问控制关系分为:上读/下写(完整性),下读/上写(机密性)。规定:一般安全属性可分为四个级别具有如下的四种强制访问控制策略:
下读:用户级别大于文件级别的读操作;
上写:用户级别低于文件级别的写操作;
下写:用户级别大于文件级别的写操作;
上读:用户级别低于文件级别的读操作。
这些策略保证了信息流的单向性,上读——下写方式保证了数据的完整性,上写——下读方式则保证了信息的安全性。
3.基于角色的访问控制
现实社会中,上述访问控制方式表现出很多弱点,不能满足实际需求。主要问题在于:
(1)同一用户在不同的场合需要以不同的权限访问系统,按传统的做法,变更权限必须经系统管理员授权修改,因此很不方便。
(2)当用户量大量增加时,按每用户一个注册账号的方式将使得系统管理变得复杂、工作量急剧增加,也容易出错。
(3)传统访问控制模式不容易实现层次化管理。即按每用户一个注册账号的方式很难实现系统的层次化分权管理,尤其是当同一用户在不同场合处在不同的权限层次时,系统管理很难实现。除非同一用户以多个用户名注册。
基于角色的访问控制模式(Role Based Access Control, RBAC)中,用户不是自始至终以同样的注册身份和权限访问系统,而是以一定的角色访问,不同的角色被赋予不同的访问权限,系统的访问控制机制只看到角色,而看不到用户。
在RBAC系统中,要求明确区分权限(authority)和职责(responsibility)这两个概念。职责之间的不同是通过不同的角色来区分的。RBAC的功能相当强大,适用于许多类型(从政府机构到商业应用)的用户需求。Netware、Windows NT、Solaris和SeLinux等操作系统中都采用了类似的RBAC技术作为存取控制手段。
基于角色访问控制特点:
(1)提供了三种授权管理的控制途径:改变客体的访问权限;改变角色的访问权限;改变主体所担任的角色。
(2)提供了层次化的管理结构,由于访问权限是客体的属性,所以角色的定义可以用面向对象的方法来表达,并可用类和继承等概念来表示角色之间的关系。
(3)具有提供最小权限的能力,由于可以按照角色的具体要求来定义对客体的访问权限,因此具有针对性,不出现多余的访问权限,从而降低了不安全性。
(4)具有责任分离的能力,不同角色的访问权限可相互制约,即定义角色的人不一定能担任这个角色。因此具有更高的安全性。
基于角色访问控制的应用:
◎在银行环境中,用户角色可以定义为出纳员、分行管理者、顾客、系统管理者和审计员。
◎访问控制策略的一个例子如下:
(1)允许一个出纳员修改顾客的账号记录(包括存款和取款、转帐等),并允许查询所有账号的注册项;
(2)允许一个分行管理者修改顾客的账号记录(包括存款和取款,但不包括规定的资金数目的范围)并允许查询所有账号的注册项,也允许创建和终止账号;
(3)允许一个顾客只询问他自己的账号的注册项;
(4)允许系统的管理者询问系统的注册项和开关系统,但不允许读或修改用户的账号信息;
(5)允许一个审计员读系统中的任何数据,但不允许修改任何事情。
2.3.4 最小特权管理
所谓最小特权(Least Privilege),指的是在完成某种操作时所赋予系统中每个主体(用户或进程)必不可少的特权。最小特权原则,则是指应限定系统中每个主体所必需的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小。
最小特权原则一方面给予主体“必不可少”的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;另一方面,它只给予主体“必不可少”的特权,这就限制了每个主体所能进行的操作。
最小特权在安全操作系统中占据了非常重要的地位,不同的操作系统对最小特权管理的实现方式不尽相同。
在UNIX系统中,角色管理机制依据最小特权原则对系统管理员的特权进行了分化,每个用户只能拥有刚够完成工作的最小权限。然后根据系统管理任务设立角色,依据角色划分权限,每个角色各负其责,权限各自分立,一个管理角色不拥有另一个管理角色的特权。
Windows NT操作系统的某些漏洞也与最小特权的应用有关,例如:缺省组的权利和能力总是不能被删除。
2.3.5 实现路径
具体实施安全策略的软硬件构成安全内核,而用户是与安全周界外部的不可信的中间应用层及操作系统交互的,但用户登录、定义用户的安全属性、改变文件的安全级别等安全关键性操作,用户必须能够确认与安全内核进行交互,而不是与一个特洛伊木马程序打交道。这就需要提供一种安全机制,保障用户和安全内核之间的通信,而这种机制就是由可信路径提供的。
可信路径(Trusted path)机制即终端人员能借以直接与可信计算基通信的一种机制。该机制只能由有关终端操作人员或可信计算基启动,并且不能被不可信软件模拟。
对用户建立可信通道的一种常见的方案是基于安全提示键(SAK:Security Attention Key)实现。Linux操作系统提供的安全提示键在X86平台下为ALT+SysRq+k。Windows操作系统则为CTRL+ALT+DEL。
2.3.6 安全审计
在系统调用的总入口,增加审计控制,就可以成功地调用审计系统,同时成功地审计了系统中所有使用内核服务的事件。
系统审计用户动作的最基本单位就是审计事件,系统将所有要求审计或可以审计的用户动作都归纳成一个个可区分、可识别、可标志用户行为和可记录的审计单位,即审计事件。
安全操作系统一般将要审计的事件分为以下三类:(1)使用系统的事件;(2)注册事件;(3)利用隐蔽通道的事件。
Windows NT的审计系统
(1)审计数据的存储。
系统运行中产生的三类日志:系统日志、安全日志和应用程序日志,可使用事件查看器浏览和按照条件进行过滤。
(2)客体访问和审计。
客体则含有系统访问控制列表,标明哪些主体的访问需要被记录。用户进程访问客体对象时,通过Win3 2子系统向核心请求访问服务,核心的安全参考监视将访问令牌和客体的自主访问控制列表进行比较,决定是否拥有访问权限,同时检查客体的系统访问控制列表,确定本次访问是否落在既定的审计范围内,如果是就送到审计子系统中。
Linux审计机制
基于Linux系统提出了面向进程的安全审计思想,目标是通过监测特权进程实现系统内核层的安全审计功能。
利用LKM(Loadable Kernel Modules)技术在Linux内核上获取审计数据——进程运行过程中所使用的系统调用;依据进程调用的系统调用序列片断(系统调用短序列)相对稳定的特性,提取进程的行为特征,基于进程行为特征检测并记录系统运行状况。
2.4 网络通信安全
2.4.1 数据加密技术
数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。
1.数据加密技术的分类
(1)专用密钥。
专用密钥,又称为对称密钥或单密钥,加密和解密时使用同一个密钥,即同一个算法,如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文本供浏览者阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。
(2)对称密钥。
对称密钥是最古老的,一般所说的“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而目前仍被广泛采用。DES是一种数据分组的加密算法,它将数据分成长度为6 4位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。使用对称密钥进行加密时,第一步将原文进行置换,得到64位的杂乱无章的数据组;第二步将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。
(3)公开密钥。
公开密钥,又称非对称密钥,加密和解密时使用不同的密钥,即不同的算法,虽然两者之间存在一定的关系,但不可能轻易地从一个推导出另一个。有一把公用的加密密钥,有多把解密密钥,如RSA算法。
非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。
在这种编码过程中,一个密码用来加密消息,而另一个密码用来解密消息。在两个密钥中有一种关系,通常是数学关系。公钥和私钥都是一组十分长的、数字上相关的素数(是另一个大数字的因数)。有一个密钥不足以翻译出消息,因为用一个密钥加密的消息只能用另一个密钥才能解密。每个用户可以得到唯一的一对密钥,一个是公开的,另一个是保密的。公共密钥保存在公共区域,可在用户中传递,甚至可印在报纸上面。而私钥必须存放在安全保密的地方。
公开密钥的加密机制虽提供了良好的保密性,但难以鉴别发送者,即任何得到公开密钥的人都可以生成和发送报文。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题。
(4)非对称加密技术。
数字签名一般采用非对称加密技术(如RSA),通过对整个明文进行某种变换,得到一个值,作为核实签名。接收者使用发送者的公开密钥对签名进行解密运算,如其结果为明文,则签名有效,证明对方的身份是真实的。当然,签名也可以采用多种方式,例如将签名附在明文之后。数字签名普遍用于银行、电子贸易等。
数字签名不同于手写签字。数字签名随文本的变化而变化,手写签字反映某个人个性特征,是不变的;数字签名与文本信息是不可分割的,而手写签字是附加在文本之后的,与文本信息是分离的。
2.网络数据加密技术
密码技术是网络安全最有效的技术之一。一个加密网络,不但可以防止非授权用户的搭线窃听和入网,而且也是对付恶意软件的有效方法之一。一般的数据加密可以在通信的3个层次来实现:链路加密、节点加密和端到端加密。
(1)链路加密。
对于在两个网络节点间的某一次通信链路,链路加密能为网上传输的数据提供安全保证。对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个节点对接收到的消息进行解密,然后先使用下一个链路的密钥对消息进行加密,再进行传输。
(2)节点加密。
与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。因此,这种方法对于防止攻击者分析通信业务是脆弱的。
(3)端到端加密。
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密(又称脱线加密或包加密),消息在传输过程中直到到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
2.4.2 认证体质
认证是为了防止攻击者的主动攻击,包括检测信息的真伪及防止信息在通信过程中被篡改、删除、插入、伪造、延迟和重传。认证主要包括3个方面:消息认证、身份认证和数字签名。
1.消息认证
(1)消息认证的概念。
消息认证就是使拟定的接收者能够检查收到的消息是否真实的方法,又称完整性校验。消息认证的内容应包括:证实消息的信源和信宿;消息内容是否曾经受到偶然或有意的篡改;消息的序号和时间性是否正确。这种认证只在相互通信的双方中进行,不允许第三方进行认证。
(2)消息认证的模式。
消息认证的模式有单向认证和双向认证。在单向认证中,由接收者验证发送者的身份和发送消息的完整性;在双向认证中,接收双方互相确定对方的身份和发送消息的完整性。
(3)认证函数。
可用作认证的函数有信息加密函数、信息认证码和散列函数3种。
2.数字签名
数字签名是笔迹签名的模拟,具有以下特点:
a.必须能证实作者签名以及签名的日期和时间;
b.在签名时必须能对内容进行鉴别;
c.签名必须能被第三方证实。
数字签名可以利用公钥密码体制和私钥密码体制来实现。最常见的是基于公钥密码体制的数字签名,包括普通数字签名和特殊数字签名。
3.身份认证
身份认证又称身份识别,它是通信和数据系统中正确识别通信用户或终端身份的重要途径。身份认证的常用方法有口令认证、持证认证和生物识别。
2.4.3 防火墙技术
1.防火墙的概念
防火墙就是用来阻挡外部不安全因素影响的内部网络屏障,其目的就是防止外部网络用户未经授权的访问。防火墙最初是针对Internet网络不安全因素所采取的一种保护措施,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关,从而保护内部网免受非法用户的侵入,防火墙主要由服务访问政策、验证工具、包过滤和应用网关4个部分组成,是一个位于计算机和它所连接的网络之间的软件或硬件。
2.防火墙的功能
(1)对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。
(2)可以关闭不使用的端口。
(3)能禁止特定端口的流出通信,封锁特洛伊木马。
(4)可以禁止来自特殊站点的访问,从而防止来历不明的入侵者的所有通信。
3.防火墙的种类
从实现原理上分,防火墙的技术包括4类:网络级防火墙(也叫包过滤型防火墙)、应用级网关、电路级网关和规则检查防火墙。
a.网络级防火墙:一般基于源地址和目的地址、应用、协议以及每个IP包的端口来作出通过与否的判断。
b.应用级网关:能够检查进出的数据包,通过网关复制传递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。
c.电路级网关:用来监控受信任的客户或服务器与不受信任的主机间的TCP握手信息,以决定该会话是否合法。电路级网关是在OSI模型的会话层上用于过滤数据包的,比包过滤防火墙高了两层。
d.规则检查防火墙:该防火墙结合了包过滤防火墙、电路级网关和应用级网关的特点。它具有包过滤防火墙的功能,能够在OSI网络层上通过IP地址和端口号,过滤进出的数据包;它也具有电路级网关的功能,能够检查SYN和ACK标记和序列数字是否逻辑有序;同时它还具有应用级网关的功能,可以在OSI应用层上检查数据包的内容,查看这些内容是否能符合企业网络的安全规则。