1、l 系统的访问控制技术8 . 2 访问控制技术ISO所定义的5 大安全服务功能是:认证、访问控制、数据保密性、数据完整性和防止否认服务。其中访问控制服务在系统安全体系结构中起着不可替代的作用。 访问控制是通过某种途径显式地准许或限制访问能力及范围的一种方法。它是针对越权使用资源的防御措施,通过限制对关键资源的访问,防止非法用户的侵入或因为合法用户的不慎操作而造成的破坏从而保证系统资源受控地、合法地被使用。用户只能在自己的权限内访问系统资源,不得越权访问。访问控制技术通常和身份认证密切联系,但并不能取代身份认证,它是建立在身份认证的基础之上的,通俗地说,身份认证解决的是你是谁,你是否真的具有你所
2、声称的身份”,而访问控制技术解决的是你能做什么,你有什么样的权限”这个问题。 访问控制系统一般包括主体(subject)、客体(object)及安全访问政策几个实体。访问控制的目的是:限制主体对访问客体的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么。8 . 2 . 1 访问控制的实现方法访问控制的常见实现方法有访问控制矩阵、访问能力表、访问控制表和授权关系表等几种。1 访问控制矩阵 从数学角度看,访问控制可以表示为一个矩阵的形式,其中行表示客体(各种资源),列表示主体(通常为用户),行和列的交叉点表示某个主体对某个客体的访问权限(如读、写、
3、执行、修改、删除等)。2 访问能力表 访问控制矩阵虽然直观,但并非每个主体和客体之间都存在着权限关系,相反,实际的系统中虽然可能有很多的主体和客体,但主体和客体之间的权限关系可能并不多,这样就存在着很多空白项。为了减轻系统的开销与浪费,我们从主体(行)出发,用访问能力表达矩阵某一行的信息;也可以从客体(列)出发,用访问控制表(Access Control List)表达矩阵某一列的信息。能力(capacity)是受一定机制保护的客体标志,标记了客体以及主体(访问者)对客体的访问权限。只有当一个主体对某个客体拥有访问的能力时,它才能访问这个客体。在访问能力表中,由于它着眼于某一主体的访问权限,并
4、以主体为出发点描述控制信息,所以很容易获得一个主体所被授权可以访问的客体及其权限,但如果要求获得对某一特定客体有特定权限的所有主体就比较困难。在一个安全系统中,正是客体本身需要得到可靠的保护,访问控制服务应该能够控制可访问某一客体的主体集合,并能够授予或取消主体的访问权限,于是出现了以客体为出发点的实现方式 ACL(访问控制表),现代的操作系统大都采用基于ACL 的方法。3 访问控制表访问控制表是目前采用最多的一种实现方式。它可以对某一特定资源指定任意一个用户的访问权限,还可以将有相同权限的用户分组,并授予组的访问权,ACL的优点在于它的表述直观、易于理解,而目比较容易查出对某一特定资源拥有访
5、问权限的所有用户,以便有效实施授权管理。在一些实际应用中还对ACL 进行了扩展,从而进一步控制用户的合法访问时间,是否需要审计等。尽管ACL灵活方便,但将它应用到网络规模较大、需求复杂的企业内部网络时,就暴露出了一些问题:1.ACL需对每个资源指定可以访问的用户或组以及相应的权限。当网络中资源很多时,需要在ACL设定大量的表项。而且,当用户的职位、职责发生变化时,为反映这些变化,管理员需要修改用户对所有资源的访问权限。另外,在许多组织中,服务器一般是彼此独立的,各自设置自己的ACL ,为了实现整个组织范围内的一致的控制政策,需要各管理部门的密切合作。所有这些,都会使得访问控制的授权管理变得费力
6、而繁琐,且容易出错。2.单纯使用ACL ,不易实现最小权限原则及复杂的安全政策。4 授权关系表授权关系表弥补了基于ACL 和基于访问能力表的方法的不足,它的每一行(或称一个元组)都表示主体和客体的一个权限关系。如果该表按客体进行排序就拥有访问能力表的优势,如果按主体进行排序就拥有了访问控制表的好处。这种实现方式也特别适合采用关系数据库。8 . 2 . 2 访问控制策略自主访问控制、强制访问控制和基于角色的访问控制是系统中常用的3种访问控制策略,其中前两种(DAC 和MAC )属于传统的访问控制策略。以上每种策略不是绝对互斥的,我们可以把几种策略综合起来应用,以获得更好、更安全的系统保护效果。当
7、使用多重策略的时候,只有各种策略的交集策略被允许,访问才被许可。当然,在某些场合下,也可能存在着一些冲突,比如被某一策略许可的访问被另一策略所禁止,这样就产生了冲突,这种情况需要在管理层通过协商来协调。1 自主访问控制自主访问控制(DAC)是目前计算机系统中使用最多的访问控制机制,它是在确认主体身份以及(或)它们所属组的基础上对访问进行限制的一种方法,称其为自主型是因为在DAC 系统中,一个拥有一定访问权限的主体可以直接或间接地将权限传给其他主体。其基本思想是:允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。Windows、UNIX系统都采用了自主型的访
8、问控制技术。自主访问控制根据访问者的身份和授权来决定访问模式,主体访问者对访问的控制有一定的权利。但正是这种权利使得信息在移动过程中的访问权限关系会被改变。如用户A 可以将其对客体目标O 的访问权限传递给用户B ,从而使不具备对0 访问权限的B 也可以访问O ,这样就很容易产生安全漏洞,所以自主访问控制的安全级别很低。2 强制访问控制强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策。MAC 主要用于多层次安全级别的军事应用当中,它预先将主体和客体分级,即定义用户的可信任级别及信息的重要程度(安全级别,比如可以分成绝密级、机密级、秘密级、无密级等),然后根据主体和客体的级别标记
9、来决定访问模式,用户的访问必须遵守安全政策划分的安全级别以及有关访问权限的设定。当用户提出访问请求时,系统对主客体两者进行比较以确定访问是否合法。在典型应用中,MAC 的访问控制关系可以分为两种:用上读下写来保证数据完整性以及利用下读上写来保证数据的保密性。它们都是通过梯度安全标签来实现信息的单向流通的。强制访问控制(MAC)的优势最主要在于它能阻止“特洛伊木马”。一个“特洛伊木马”是在一个执行某些合法功能的程序中隐藏的代码,它利用运行此程序的主体权限违反安全策略,通过伪装成有用的程序在进程中泄漏信息。一个“特洛伊木马”能够以直接与非直接泄漏两种方式泄漏信息。对于前者,“特洛伊木马”使信息的安
10、全表示不正确并泄漏给非授权用户;对于后者,“特洛伊木马”通过编制返回给一个主体的合法信息中的方式非直接泄露信息,例如,可能表面上某些提问需要回答,而实际上用户回答的内容被传送给了“特洛伊木马”。阻止“特洛伊木马”的策略是基于非循环信息流,所以在一个级别上读信息的主体一定不能在另一个违反非循环规则的安全级别上写。同样,在一个安全级别上写信息的主体一定不能在另一个违反非循环规则的安全级别上读。由于MAC 策略是通过梯度安全标签实现信息的单向流通,因而它可以很好地阻止“特洛伊木马”的泄密。强制访问控制(MAC)的主要缺陷在于实现工作量太大、管理不便、不够灵活,而且MAC 由于过于偏重保密性,对其他方
11、面如系统连续工作能力、授权的可管理性等考虑不足。3 基于角色的访问控制20 世纪如年代出现的一种基于角色的访问控制(RBAC)技术有效地克服了传统访问控制技术的不足,可以减少授权管理的复杂性,降低管理开销,而且还能为管理者提供一个比较好的安全实现政策的环境,从而成为了实施面向企业的安全策略的一种有效的访问控制方式。角色是一个或一群用户在组织内可执行的操作组合。用户在一定的部门中具有一定的角色,其所执行的操作与其所扮演的角色的职能相匹配,这正是基于角色的访问控制的基本特征、即依据RBAC 策略,系统定义了各种角色,每种角色可以完成一定的职能,不同的用户根据其职能被赋予相应的角色,一旦某个用户成为
12、某个角色的成员,则此用户可以完成该角色所具有的职能。RBAC 根据用户在组织内所处的角色进行授权与访问控制。也就是说,传统的访问控制直接将访问主体(发出访问操作、存取要求的主动方)和客体(被调用的程序或欲存取的数据访问)相联系,而RBAC在中间加入了角色,通过角色沟通主体与客体。在RBAC 中,用户标识对于身份认证以及审计记录是十分有用的,但真正决定访问权限的是用户对应的角色标识。由于用户与客体无直接联系,他只有通过角色才能享有该角色所对应的权限,从而访问相应的客体,因此用户不能自主地将访问权限授予别的用户,这是RBAC与DAC的根本区别。RBAC 与MAC 的区别在于:MAC 是基于多级安全
13、需求的,而RBAC 则不是,因为军用系统主要关心的是防止信息从高安全级流向低安全级,即限制“谁可以读写什么信息”,而RBAC 的系统主要关心的是保护信息的完整性,即“谁可以对什么信息执行何种动作”角色控制比较灵活,根据配制可以使某些角色接近DAC ,而某些角色更接近于MAC。角色由系统管理员定义,角色成员的增减也只能由系统管理员来执行,即只有系统管理员有权定义和分配角色,而且授权规定是强加给用户的,用户只能被动接受,不能自主地决定,用户也不能自主地将访问权限转而赋予他人,这是一种非自主型访问控制。最后要指出的是角色和组的区别。组通常仅仅作为用户的集合,而角色一方面是用户的集合,另一方面又是权限
14、的集合,作为中间媒介将用户和权限连接起来。当然角色可以在组的基础上实现,这样就对保持原有系统非常有利。此时角色就成为了一个策略部件,与组织的授权、责任关系相联系,而组成为实现角色的工具,两者间是策略与实现机制的关系。l 数据的完整性8 . 4 数据完整性数据完整性要求禁止未经授权的数据篡改,它同数据机密性紧密相连,也是更进一步的信息安全目标。保护数据完整性的方法有很多:可以通过访问控制的方法阻止数据未经授权的篡改;可以通过时间戳来判断数据最后一次修改的时间;可以通过数据校验或消息摘要的方法来判断数据是否已经被篡改。Biba 修改了Bell-Lapadula 模型,针对数据完整性建立了Biba
15、数据完整性模型。本节首先简要介绍Biba模型,然后详细介绍报文摘要算法。8 . 4 . 1 Biba完整性模型Biba模型规定:( l )如果主体的安全级别高于或等于客体的安全级别,那么主体可以对该客体写访问。( 2 )如果一个主体仅可以读访问一个客体。则对于另外一个客体p 来说,如果p 的安全级别低于或等于o的级别,那么该主体对于p 可以有写访问的权限。Biha 模型可以概括为:( l )读访问策略同Bell-Lapadula模型一样:( 2 )主体不能够更改安全级别比它高的客体。这也就保证高级别客体的完整性。Biba 模型同Bell-Lapadula模型一样,虽然都可以从理论上证明其安全性
16、,但在实际应用中很难完全满足模型的要求,所以Biba 模型也仅是一个理论上的模型。8 . 4 . 2 杂凑函数与消息摘要所谓杂凑函数H 是一个公开的函数,杂凑函数可以将任意长的消息M 映射为较短的、固定长度的一个值H(M),我们称H(M)为杂凑码或消息摘要。因为杂凑码是消息中所有比特的函数,所以杂凑函数可以提供错误检测的能力,改变消息中任何一个比特或几个比特都会使杂凑码发生改变。这种错误检测方法可以判断数据是否被篡改,从而保护数据的完整性。使用杂凑函数提供消息认证有5 种基本方法:(l)消息与杂凑码链接后使用对称加密算法加密,所用密钥仅为收发双方共享。这种方法可以确保接收的消息来源于消息发送方
17、,且没有被篡改,同时这种方法还能够提供数据机密性保障。(2)用对称加密算法仅对杂凑码加密。这种方法同(l)类似,有更快的速度但不提供数据机密性保障。(3)采用非对称加密算法,使用发送方的私钥对杂凑码进行加密。由于只有发送方能够产生这样的消息,所以这种方法可以提供数字签名功能。(4)消息发送方同时使用对称加密和非对称加密两种算法,在(3)的基础上使用对称密钥加密消息和使用私钥变换过的杂凑码。这种方法同时提供数字签名和数据加密的功能。(5)消息收发双方共享-特定秘密S,消息发送方将消息M和秘密S链接在一起并产生杂凑值,发送消息时仅发送M和杂凑值。由于发送过程中不含有S,即使该消息被截获,由于杂凑值
18、并非仅仅由M产生,而消息截获者不知道S的内容,所以仍然无法篡改消息内容。我们可以通过杂凑算法来判断数据是否已经被篡改。设计巧妙的杂凑函数可以保证:(l)不同的数据几乎不可能具有相同的摘要。(2)通过消息摘要难以猜测消息本身。我们可以通过这个杂凑函数来为数据打上标记,如果有人篡改了数据,消息摘要就会变化,新的消息摘要会与篡改前生成的摘要不同。通过比较摘要是否发生变化就可以判断数据是否已经被篡改。12 . 4 . 2 数据库的完整性设计数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通
19、过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计。1 数据库完整性设计原则在实施数据库完整性设计时,需要把握以下基本原则。( l )根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。( 2 )实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。( 3 )要慎用
20、目前主流DBMS 都支持的触发器功能,一方面由于触发器的性能开销较大;另一方面,触发器的多级触发不好控制,容易发生错误,非用不可时,最好使用Before型语句级触发器。( 4 )在需求分析阶段就必须制定完整性约束的命名规范,尽量使用有意义的英文单词、缩写词、表名、列名及下划线等组合,使其易于识别和记忆。如果使用CASE 工具,一般有默认的规则,可在此基础上修改使用。( 5 )要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。( 6 )要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于DBMS 的
21、数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。( 7 )应采用合适的CASE工具来降低数据库设计各阶段的工作量。好的CASE 工具能够支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,同时也容易与用户沟通。2 数据库完整性的作用数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面。( 1 )数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。( 2 )利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS 的完整性控制机
22、制是集中管理的,因此比应用程序更容易实现数据库的完整性。( 3 )合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。例如装载大量数据时,只要在装载之前临时使基于DBMS 的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。( 4 )在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。( 5 )数据库完整性约束可分为6 类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束和关系级动态约束。动态约束通常由应用软件来实现。不同DBMS 支持的数据库完整性基本相同,Oracle 支持的基于DBMS 的
23、完整性约束如所示。3 数据库完整性设计示例一个好的数据库完整性设计,首先需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则。然后在充分了解特定DBMS 提供的完整性控制机制的基础上,依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式。最后,认真测试,排除隐含的约束冲突和性能问题。基于DBMS 的数据库完整性设计大体分为以下几个阶段。l )需求分析阶段经过系统分析员、数据库分析员和用户的共同努力,确定系统模型中应该包含的对象,如人事及工资管理系统中的部门、员工和经理等,以及各种业务规则。在完成寻找业务规则的工作之后,确定要作为数据库完整
24、性的业务规则,并对业务规则进行分类。其中作为数据库模式一部分的完整性设计按下面的过程进行,而由应用软件来实现的数据库完整性设计将按照软件工程的方法进行2 )概念结构设计阶段概念结构设计阶段是将依据需求分析的结果转换成一个独立于具体DBMS 的概念模型,即实体关系图在概念结构设计阶段就要开始数据库完整性设计的实质阶段,因为此阶段的实体关系将在逻辑结构设计阶段转化为实体完整性约束和参照完整性约束,到逻辑结构设计阶段将完成设计的主要工作。3 )逻辑结构设计阶段此阶段就是将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化,包括对关系模型的规范化。此时,依据DBMS 提供的完整性约束机制,对
25、尚未加入逻辑结构中的完整性约束列表,逐条选择合适的方式加以实现。在逻辑结构设计阶段结束时,作为数据库模式一部分的完整性设计也就基本完成了。每种业务规则都可能有好几种实现方式,应该选择对数据库性能影响最小的一种,有时需通过实际测试来决定。l 数据与文件的加密数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为原来数据的过程。 根据加密原理的不同加密方式可分为对称式加密和非对称式加密,对称式加密
26、就是加密和解密使用同一个密钥,通常称之为“Session Key ”,这种加密技术目前被广泛采用;非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件,我们所熟悉的EFS加密便属于此种加密方式。根据加密方式不同可以分为软件加密和硬件加密,软件加密顾名思义,基于软件层面的加密,由软件利用加密算法,对文件进行加密,需要通过加密时设置的密码才可访问文件,此类加密方式较常见,诸如OFFICE办公文档加密,RAR加密等等。而硬件加密则是利用外接的硬件设备的唯一特征对数据进行加密,比如加密狗,指纹加密,虹膜加密等。 根据加密算
27、法不同,又分为以下多种:DES、3DES、RC2、RC4、IDEA、RS、DSA、AES、BLOWFIS、MD5、SSF33、SSF28、SCB2、ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。 对于一个加密的数据来说,它具体被分为以下三个部分:数据部分、加密算法、密钥。数据部分由于加密已被彻底改变为不可读写的乱码,当然也有极少数软件只对文件入口地址加密而不对文件本身加密,此部分为解密的主要目的;加密算法则是数据加密时采用的一种算法的一些公式、法则或程序的组合;密钥则是加密是设置的口令密码,或者硬件特征代码。 根据以上所述我们可以看出,对于解密需要做的一是破解密码,这
28、是最常见的方法,大多数文件的都采取了对称性加密,只有一个密钥,这个密钥大多会以暗文的形式存放在文件的某个位置,利用专门的软件和直接手工提取这串代码,而后进行专业破解,破解出的密码,在绝大多数情况下是可以解除文件的加密的。当然如果使用了非对称加密,那么我们就必须要知道公钥和私钥,大多数情况下非对称加密的难度颇高,因为此类加密的解密密文存放在公钥中,而私钥则是用来从公钥里配对提取解密密文的,两者缺一不可,所以恢复难度十分大,一般来说如果公钥丢失多采用重建虚拟公钥,接着使用私钥进行解密,如果私钥丢失则利用特殊软件手工从公钥中提取解密的密文,但是这两种方法的成功率并不太高。 至于使用了硬件加密的文件,
29、由于设备和精力有限,目前看来只有国外的极少数专业团体以及国家级的安全机构才具备破除此类密码的能力。 系统密码加密,此类加密破解难度不大,网上介绍的文章和工具也不少,因为系统的密码是存放在硬盘上一个特殊文件中的,只要删除该文件,绝大数情况便可以清除掉系统的密码,但也不排除该文件清除后非法登陆系统的情况。 最后是特殊的硬盘加密,硬盘加密其实是基于硬盘固件加密的一个子安全系统,被加密后的硬盘无法正常读写,需要使用专业的软件才能进行解密或者密码清除的工作。l 通信的安全性8 . 5 通信与网络的安全性8 . 5 . 1 网络环境下危及安全的因素在网络环境下可能危及信息安全的因素包括如下几个方面。(1)
30、伪装欺骗:指非法用户假冒合法用户身份获取敏感信息的行为。(2)非法存取:窃取、篡改或破坏网络中存储的信息。(3)否认抵赖:指通信方事后否认曾参与某次活动的行为。(4)服务拒绝:指合法用户的正当申请被拒绝、更改或延迟等。(5)截取破译:指以不正当手段获取门令或密钥,或者对加密信息与加密机制进行分析破译或篡改等。危及路由安全方面的因素包括如下几个方面。(1)侦听窃密:在通信信道中窃听所传输的信息。(2)指定路由:非法用户精心设计一些绕过安全机制的路由或将信息误导向不正常的路由。(3)身份攻击:指用户的身份或口令在通信时被非法截取。(4)截取破坏:非法截取通信过程中的数据或者伪造、篡改与破坏信道中传
31、输的信息。(5)中继攻击:非法用户截取信息后延迟时间再发送。(6)阻塞通信:利用网上的软硬件漏洞,发送大量无效信息使网络过载,或者设法使一些路径或网上关键互联设备瘫痪。8 . 5 . 3 通信与网络的信息安全技术1 IP层安全性在TCP/IP网络中,IP层实现的安全技术通常包括IP过滤技术和IP加密传输信道技术。其中IP 过滤技术被路由器和防火墙产品所广泛采用,是最常见的Internet安全技术。在IP 加密传输信道技术方面,IETF指定IPSEC 制订IP 安全协议(IPSP, IP Security Protocol)和对应的Internet密钥管理协议的标准。IPSP的主要目的是使需要安
32、全服务的用户能够使用相应的加密安全体制。该体制应该是与算法独立的,可以自己选择和替换加密算法而不会对应用和上层协议产生任何影响。此外,该体制必须能支持多种安全政策,并且对其他不使用该体制的用户完全透明,IPSEC技术能够在两个网络节点间建立透明的安全加密信道。现在一些防火墙产品使用AH(Authentication Header,认证头部)或ESP ( Encapsulating Security Payload,安全内容封装)支持IPSEC来实现IP 层的加密,一些主要的路由器厂商也声称支持IPSEC。IP 层安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次
33、和网络部件做任何改动。它的最主要的缺点是:IP层一般对属于不同进程的包不作区别。对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理,这会导致性能下降。针对面向主机密钥分配的这些问题,RFC1825推荐使用面向用户的密钥分配,其中不同的连接会得到不同的加密密钥。但是,面向用户的密钥分配需要对相应的操作系统内核进行比较大的改动。IP 层非常适合提供基于主机的安全服务。相应的安全协议可以用来在Internet上建立安全的IP 通道和虚拟专用网。例如,利用它对IP包的加密和解密功能,可以方便快捷地强化防火墙系统的防卫能力。2 传输层安全性最常见的传输层安全技术有SSL、SOCKS和安全
34、RPC等。网景公司(Netscape)设计的安全套接层(SSL)协议分为两层,上面是SSL 协商层,双方通过协商层约定有关加密的算法、进行身份认证等;下面是SSL 记录层,它把上层的数据经分段、压缩后加密,由传输层传送出去。SSL 采用公钥方式进行身份认证,但是大量数据传输仍使用对称密钥方式。通过双方协商,SSL 可以支持多种身份认证、加密和检验算法。它提供3 类基本的安全服务:信息加密服务(在客户机与服务器之间的所有业务都使用握手协议、协商密钥与算法进行加密)、信息完整性服务(采用机密共享与HASH 函数组确保SSL 业务可正常全部到达目的地)、相互认证服务(采用公开密钥技术编码标识符,使客
35、户机与服务器在SSL握手时交换各自的标识符以实现相互认证)。传输层安全机制的主要缺点就是对应用层不透明,应用程序必须修改以使用SSL 应用接口,而且要对传输层建立安全机制。同时公钥体系存在的不方便性SSL 也同样存在,例如用户很难记住自己的公钥和私钥,必须依靠某些物理设备如IC 卡或者磁盘来存储,这样对用户终端就有一定的要求,再有就是服务方和客户方必须依赖一个证书授权(CA ) 中心来签发证书,双方都必须将CA 的公钥存放在本地。为了保持Internet 上的通用性目前一般的SSL 协议实现只要求服务器方向客户方出示证书以证明自己的身份,而不要求用户方同样出示证书。在建立起SSL信道后再加密传
36、输用户名和口令以实现客户方的身份认证。同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务和加密传输信道,利用公钥体系进行身份认证,安全强度高,支持用户选择的加密算法。这一成果再加上应用级的安全服务,就可以提供更加安全可靠的安全性能了。3 应用层安全性IP 层和网络层(传输层)的安全协议都无法根据所传送内容不同的安全要求区别对待。如果确实想要区分每个具体文件的不同的安全性要求,就必须在应用层采用安全机制。本质上,这意味着真正的(或许再加上机密的)数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个个具体文件的安全性要求。比如
37、说,如果一个主机与另一个主机之间建立起一条安全的IP 通道,那么两个进程间传输的所有报文都会自动被加密。提供应用层的安全服务实际上是最灵活的处理单个文件安全性的手段。例如,一个电子邮件系统可能需要对要发出的信件的个别段落实施数据签名。较低层的协议提供的安全功能一般不会知道任何要发出的信件的段落结构,从而也不可能知道该对哪一部分进行签名。应用层是惟一能够提供这种安全服务的层次。4 访问控制与目录管理资源的合法使用主要依靠网络管理员进行必要的访问控制与目录管理,用以保证网络资源不被非法用户使用或破坏,也可保证数据资源不被非法读出或改写。根据企业的安全策略,网络管理员应当使用由网络操作系统、数据库管
38、理系统或相应的网络安全软件等提供的手段,进一步实施访问控制与目录管理方面的措施。5 数据加密随着密码技术的进步,现在己发展了许多种数据加密算法与技术。6 身份验证与鉴别除了对用户身份进行验证与鉴别,也可以对信息的真实可靠性进行验证与鉴别,用来解决冒充、抵赖、伪造或篡改等问题,除了标识用户加口令的机制外,最常用的是“数字签名”技术:数字签名可以采用秘密密钥或公开密钥技术实现,也可以使用“消息摘要”方式配合实现。签名算法可用RSA、DSS数字签名标准等。考虑到身份验证与鉴别时可能采用相当复杂的算法或技术,目前已开始流行委托专业认证鉴别机构或公司进行身份鉴别与验证,目的是采用更先进的技术做好认证与鉴
39、别这一关键性的安全保卫工作。RADIUS(远程拨入用户认证服务)是一种管理标准,可为分布式网络上的认证服务器提供管理服务,用来实现集中管理方式下的用户认证、口令加密、服务选择、信息过滤以及账户核对等有关任务。一个单独的RADIUS数据库服务器可能在多个网络上同时管理多个安全系统,其中保存有与网内所有用户有关的认证信息(如存取限制、特定的路由表、数据分组过滤规则或约定、可供核对的账户信息等),可以用来维护成千上万个用户的信息安全。7 . Kerberos协议Kerberos是为分布式系统提供的认证方案,能为每种服务提供可信任的第三方认证服务。在Kerberos系统中,只有事先在其中登记过的客户才
40、可以申请服务。客户希望得到某一服务,需要向认证服务器申请一张能使用此服务的入场券(ticket),然后该客户把入场券传给入场券分配服务器(TGS)实施入场券的检查,在得到证实后才能使用相应的服务。其中加入了个人身份确认机制以及客户与服务器通信中的数据加密,通过系统维护数据库的方式,保存着客户、服务、权限与密钥等方面的相应信息。8 . 5 . 4 防火墙技术防火墙不只是一种路由器、主系统或一系列向网络提供安全性的系统。防火墙是一种运行专门的计算机安全软件(称为防火墙软件)的计算机系统,即通过软件与硬件相结合,在企业内部网络与外部网络之间的交界处构造起的一个“保护层”。所有的企业内部网络与外部网络
41、之间的通信都必须经过此保护层检查与连接,只有授权允许的通信才能获准通过保护层。换句话说,防火墙相当于一个安全网关,它能在一定意义下阻断或隔离企业内部网络与外部网络,防止非法的入侵行为或破坏行为。用防火墙可以阻止外界对内部网资源的非法访问,也可以防止内部对外部的不安全访问。实现防火墙的产品主要有两大类:一类是网络级防火墙,另一类是应用级防火墙。现在的应用往往是把这两种技术结合起来。( l )包过滤技术。包过滤技术是防火墙根据数据包中的包头信息有选择地实施允许通过或阻断。依据防火墙内事先设定的过滤规则,检查数据流中每个数据包的头部信息,根据数据包的源地址、目的地址、TCP/UDP源端口号及数据包头
42、中的各种标志位等因素来确定是否允许数据包通过,其核心是安全策略即过滤规则的设计。一般来说,不保留前后连接信息,利用包过滤技术很容易实现允许或禁止访问。相应的防火墙软件工作在传输层与网络层。例如,基于特定的Internet服务的服务器驻留在特定的端口号的事实(如TCP端口23用于提供Telnet服务),使包过滤器可以通过规定适当的端口号来达到阻止或允许特定服务连接的目的,也可以通过规定协议号,阻止或允许协议的连接,并可进一步组成一套数据包过滤规则。包过滤技术在防火墙上的应用非常广泛,因为CPU 用来处理包过滤的时间相对很少,而这种防护措施对用户透明,所以合法用户在进出网络时,根本感觉不到它的存在
43、,使用起来很方便:但是因为包过滤技术是在TCP/IP层实现的,所以包过滤的一个很大弱点是不能在应用层级别上进行过滤,所以防卫方式比较单一。现在已经有一些在底层重组应用层数据的技术,可以对应用层数据进行检查,进而辨认一些入侵活动,也收到了很好的防护效果。包过滤技术作为防火墙的应用有两类:1.路由设备在完成路由选择和数据转发之外,同时进行包过滤,这是目前较常用的方式。2.在一种称为屏蔽路由器的路由设备上启动包过滤功能。(2)应用网关技术。目前大多采用代理服务机制,即采用一个网关来管理应用服务,在其上安装对应于每种服务的特殊代码(代理服务程序),在此网关上控制与监督各类应用层服务的网络连接。比如对外
44、部用户(或内部用户)的FTP、TELNET、SMTP等服务请求,检查用户的真实身份、请求合法性和源目的地的IP 地址等,从而由网关决定接受还是拒绝该服务请求,对于可接受的服务请求由代理服务机制连接内部网与外部网。代理服务程序的配置由企业网络管理员完成。目前常用的应用级防火墙大致上有3 种类型,分别适合于不同规模的企业内部网:双穴主机网关、屏蔽主机网关和屏蔽子网网关。它们的共同点是需要有一台主机(称之为堡垒主机)来负责通信登记、信息转发和控制服务提供等任务。 双穴主机网关:由堡垒主机作为应用网关,其中装有两块网卡分别连接外部互联网和受保护的内部网,该主机运行防火墙软件,具有两个IP 地址,并且能
45、隔离内部主机与外部主机的所有可能连接。 屏蔽主机网关:也称甄别主机网关。在外部因特网与被保护的企业内部网之间插入了堡垒主机和路由器通常是由IP分组过滤路由器过滤或甄别出可能的不安全连接,再把所有授权的应用服务连接转向应用网关的代理服务机制。 屏蔽子网网关:也称甄别子网网关,适合于较大规模的网络使用。即在外部因特网与被保护的企业内部网之间插了一个独立的子网,比如在子网中有两个路由器和一台堡垒主机(其上运行防火墙软件作为应用网关),内部网与外部网一方各有一个分组过滤路由器,可根据不同的甄别规则接受或拒绝网络通信,子网中的堡垒主机(或其他可供共享的服务器资源)是外部网与内部网都可能访问的唯一系统。防
46、火墙能提供较好的安全性防护,但也带来了一些问题,比如: 堡垒主机或路由器本身的安全性至关重要,也可能成为影响网络性能的瓶颈。 防火墙在一定程度上限制了服务的类型和用户应用的灵活性,有时会阻断一些常用的服务。 防火墙难以防止内部人员的攻击,也不能防止从后门进入内部网的非法访问(如通过拨号SLIP / PPP 连接)。对一些人们不熟悉的应用或软件(包括病毒),防火墙也缺乏防护的方法。l 系统的安全性设计8 . 6 系统安全管理与安全工程8 . 6 . 1 安全管理的必要性各类安全技术和产品(如防火墙、安全审计、入侵检测、病毒防治、数据加密、漏洞扫描、身份认证、访问控制等)在计算机应用系统中逐步得到
47、应用,并且在不断得到丰富和完善,但仅通过技术手段获得的安全能力是有限的,主要体现在以一下3个方面。(l)许多安全技术和产品远没有达到人们需要的水准。例如UNIX、Windows NT等常见的企业级操作系统,大都只达到了美国国防部TCSEC C2级安全认证,而且核心技术和知识产权都掌握在外国人手里,不能满足国家涉密信息系统或商业敏感信息系统的需求。再如,在计算机病毒与病毒防治软件的对抗过程中,经常是在新的计算机病毒出现并已经造成大量损失后,才开发出查杀该病毒的软件,也就是说,技术往往落后于新风险的出现。(2)即使某些安全技术和产品在指标上达到了实际应用的某些安全需求,如果配置和管理不当,还是不能
48、真正满足安全需求。例如,由于风险分析欠缺、安全策略不明或是系统管理人员培训不足等原因,虽然在网络边界设置了防火墙,但如果防火墙的配置出现严重漏洞,其安全功效也将会大打折扣。( 3 )目前大部分单个的网络安全管理工具比较分散,各项安全功能需要分别进行配置,不同的管理工具之间缺乏连通性。例如,防火墙设备需要用厂商提供的专用配置管理软件进行管理,IDS系统要采用厂商的控制端软件实现系统状态监控,身份验证系统需要采用相应的控制中心进行管理。管理员如果要实现整体安全策略还需要对不同的设备分别进行设置,并根据不同设备的日志和报警信息进行管理,难度较大,特别是当全局安全策略需要进行调整时,很难考虑周全和实现全局的一致性。传统的网络管理系统所支持的协议大多以SNMP为主,因而存在下面的一些问题:( l )很多的安全设备、安全设施,并不支持SNMP 协议。( 2 )多数安全设备、安全设施并不存在管理信息库MIB,或者说并不存在这样的标准。( 3 ) SNMP协议本身并不适合大数据量的传输,很多安全事件、日志等安全信息不适合用SN