第4章网络信息安全服务4.1机密性服务4.2完整性服务4.3可用性服务4.4可审性服务4.5数字签名4.6Kerberos鉴别4.7公钥基础设施4.8访问控制本章小结习题机密性服务提供信息的保密。正确地使用该服务,就可防止非授权用户访问信息。为了正确地实施该服务,机密性服务必须和可审性服务配合工作,后者用来标识各个访问者的身份,实施该功能,机密性服务能对抗访问攻击。机密性服务应考虑信息所在的形式和状态,比如,是物理形式的纸面文件、电子形式的电子文件,还是在传输中的文件。4.1机密性服务文件的存在形式不同,文件的机密性服务的方式也相应不同。对纸面文件,主要是存放这类文件的物理位置必须是可控的,通过物理位置的访问控制来保护文件的机密性。4.1.1文件机密性对电子文件,有几种情况。首先文件可能同时存放在不同位置,如后备磁带、软盘或CD等。其次对电子文件的保护有些也需要物理位置的访问控制,如同保护纸面文件一样,例如,对磁带、磁盘需要物理访问控制。对于存放在计算机系统中的电子文件,则需要某些类型的计算机访问控制,也可能包括文件的加密。计算机访问控制要依靠合适的身份标识和身份鉴别(一种可审性服务)以及正确的系统配置,这样可防止非授权用户旁路身份标识和身份鉴别功能而成为合法用户。为实现文件机密性服务,所需提供的机制包括物理安全机制、计算机文件访问控制以及文件加密。文件机密性的要求包括身份标识和身份鉴别、正确的计算机系统配置,如使用加密则还需合适的密钥管理。仅仅保护存储在文件中的信息是远远不够的。信息有可能在传输过程中受到攻击,因此必须同时保护在传输中的信息机密性,图4.1表示使用加密来完成信息传输的机密性。可基于每个报文信息进行加密保护,也可以对链路上的所有通信进行加密。加密能阻止窃听,但不能完全阻止信息的截获。为了保护被截获的信息,需要合适的身份标识和身份鉴别,它可决定远程端点的身份,如图4.2所示。4.1.2信息传输机密性图4.1使用加密保护传输中的信息图4.2加密和身份标识、身份鉴别的结合完整性服务提供信息的正确性。正确地使用完整性服务,就可使用户确信信息是正确的,未经非授权者修改过。如同机密性服务一样,该服务必须和可审性服务配合工作。完整性服务能对抗篡改攻击。完整性服务同样应考虑信息所在的形式和状态。4.2完整性服务文件的存在形式不同,文件的完整性服务方式也相应不同。一般来说,纸面文件的完整性较易识别,而纸面文件的修改要通过检查,修改者需要掌握一定技巧。而对于电子文件只要能访问它,任何人都能方便地对其进行修改。为了防止修改纸面文件,可采用多种方法,包括在每一页上签名、装订成册、分发多个文件复制本等。这些完整性机制使修改变得十分困难,因为仿造签名技术、增加或删除装订成册的文件以及对一个文件的多个复制本同时进行修改都有很大难度。另一种方法是使用与机密性服务相同的机制,完全阻止非授权者访问文件。4.2.1文件完整性对电子文件进行修改比较容易,使用字处理工具进行。保护电子信息完整性的最基本的方法是采用与保护信息机密性一样的方法,即计算机文件访问控制。然而不同的是,并不要求将访问控制机制配置成完全拒绝访问,而只需配置成只允许读文件,不允许写文件。如同机密性服务,十分重要的是必须正确识别那些企图修改文件的访问者。这只有通过身份标识和身份鉴别来实现。假如文件驻留在单个计算机系统或者组织控制的网络中,对其进行计算机文件访问控制能达到很好的效果。如果需要将文件复制到其他部门或单位,那么只在单个计算机或可控网络上进行计算机文件访问控制就不足以提供充分的保护。因此需要有一种机制来识别非授权者对文件的改变。一种有效的机制就是数字签名,它必须与特定用户的识别一起工作。因此完整性服务也必须和身份标识、身份鉴别功能结合在一起。信息在传输中也可能被修改,然而如果不实施截获攻击就很难对传输中的信息进行修改。通常用加密方法可阻止大部分的篡改攻击。当加密和强身份标识、身份鉴别功能结合在一起时,截获攻击便难以实现,如图4.2所示。由上述分析可知,完整性服务可成功地阻止篡改攻击和否认攻击。任何篡改攻击都可能改变文件或传输中的信息,当完整性服务能检测到非授权者的访问,篡改攻击就不能成功进行。当完整性服务和身份标识、身份鉴别服务很好地结合,即使组织以外的文件被改变也能被检测出来。4.2.2信息传输完整性如果没有好的完整性服务以及好的身份标识、身份鉴别服务,那么否认攻击也不可能被成功阻止。而检测这种攻击的机制是数字签名。可用性服务提供的信息是可用的。可用性使合法用户能访问计算机系统,存取该系统上的信息,运行各种应用程序。可用性还提供两个计算机系统之间可用的传输信息的通信系统。当我们谈及信息和能力的可用性时,通常指的是电子信息。4.3可用性服务后备是最简单的可用性服务,是指对重要信息复制一份拷贝,并将其存储在安全的地方。后备可以是纸文件,如重要文本的拷贝;也可以是电子的,如计算机后备磁带。后备的作用是防止意外事件发生或文件被恶意破坏造成的信息完全丢失。用于后备的安全位置可以是现场防火的地方,也可以是远地有物理安全措施的地方。通常后备提供信息可用性,并不需要提供及时的后备。这意味着后备可能从远地检索到,然后传送到现场,并加载到相应的系统。4.3.1后备在线恢复提供信息和能力的重构。不同于后备,带有在线恢复配置的系统能检测出故障,并重建诸如处理、信息访问、通信等能力。它是通过使用冗余硬件自动处理的。通常认为在线恢复是一种立即的重构,且无须进行配置。冗余系统也可以在现场备用,以便在原始系统发生故障时再投入使用。4.3.2在线恢复灾难恢复是针对大的灾难来保护系统、信息和能力。灾难恢复是当整个系统或重要的设备不可用时采取的重构一个组织的进程。由上述分析可知,可用性是用来对拒绝服务攻击的系统恢复。可用性并不能阻止拒绝服务攻击,但可用性服务可用来减少这类攻击的影响,并使系统得以在线恢复、正常运行。4.3.3灾难恢复可审性服务本身并不能针对攻击提供保护,因此容易被人们疏忽。可审性服务必须和其他安全服务结合,从而使这些服务更加有效。可审性服务会增加系统的复杂性,降低系统的使用能力。然而,如果没有可审性服务,机密性服务与完整性服务也会失效。4.4可审性服务身份标识与身份鉴别有两个目的:其一是对试图执行一个功能的每个人的身份进行标识;其二是验证这些人声称的身份。身份鉴别可使用以下任何一种或其组合的方法实现:(1)知识因子——你知道什么,如口令或PIN(个人身份标识号)。(2)拥有因子——你有什么,如智能卡或标记。(3)生物因子——你是什么,如指印、视网膜。4.4.1身份标识与身份鉴别组合使用上面的方法会更有效,如将口令和智能卡结合使用,通常称为双因子身份鉴别。因为每一种身份鉴别方法本身有它自身的弱点,采用双因子鉴别可互相取长补短,因而更有效。例如,口令易于被猜测,而智能卡又易于被偷。生物因子身份鉴别难以伪造,但一定要将其指印放在指印扫描器中。在物理世界,身份鉴别可以用带相片的ID卡出示给门警。指纹扫描器也经常用来对进入某些特定区域者作身份鉴别。这些身份鉴别机制将物理现场与每个人的身份标识直接联系起来。在电子世界,物理身份鉴别机制并不适用。传统的用于计算机的身份鉴别机制是口令。身份标识是通过系统管理员设置的用户ID联系起来。系统管理员用某种方法来证明正在被鉴别的用户身份就是接收用户ID的个别者。但是口令是单因子身份鉴别,有较大弱点。这就是为什么提倡在计算机系统中采用双因子身份鉴别,它提供更强的身份鉴别机制。身份标识与身份鉴别也有助于计算机文件访问控制,以提供计算机系统电子文件的机密性和完整性。它对加密和数字签名也是重要的。然而,身份标识与身份鉴别必须要传给远程用户。远程用户要对本地机制证明它的身份标识。图4.3表示当发送一个报文时如何使用数字签名。用户首先对保护签名的本地机器作身份鉴别,然后本地机器允许使用签名机制,并发送已进行身份鉴别的报文。接收到该报文的用户使用数字签名以证明该报文的发送者的身份。在大多数情况下,身份标识与身份鉴别机制是一个组织内其他安全服务的关键。如果身份标识与身份鉴别失效了,那么完整性和机密性也无法保证。图4.3用于远程通信的身份标识与身份鉴别网络环境下的身份鉴别是验证某个通信参与方的身份是否与他所声称的身份一致的过程。一般通过某种复杂的身份认证协议来实现。身份认证协议是一种特殊的通信协议,它定义了参与认证服务的所有通信方在身份认证过程中需要交换的所有消息的格式、这些消息发生的次序以及消息的语义,通常采用密码学机制,例如加密算法来保证消息的完整性、保密性。4.4.2网络环境下的身份鉴别身份认证是建立安全通信的前提条件,只有通信双方相互确认对方身份后才能通过加密等手段建立安全信道,同时它也是授权访问(基于身份的访问控制)和审计记录等服务的基础,因此身份认证在网络安全中占据十分重要的位置。这些协议在解决分布式,尤其是开放环境,起着很重要的作用。其中系统的组成部分以及连接它们的网络可以跨越地理和组织的界限。1.身份认证技术下面介绍两种身份认证技术。(1)口令技术口令技术是常用的一种身份认证技术,使用口令存在的最大问题是口令的泄露。口令泄露可以有多种途径,例如登录时被他人看见;攻击者从计算机中存放口令的文件中读到;口令被在线攻击猜测出;也可能被离线攻击搜索到。所谓在线攻击是指在线状态下攻击者对用户口令进行的猜测攻击;所谓离线攻击是指攻击者通过某些手段进行任意多数量的口令猜测,采用攻击字典和攻击程序,最终获得口令。离线攻击方法是Internet上常用的攻击手段。(2)采用物理形式的身份认证标记进行身份认证的鉴别技术常用的身份认证标记是磁卡和智能卡。磁卡存储着关于用户身份的一些数据,用户通过读卡设备向联网的认证服务器提供口令才能证明自己的身份。最简单的智能卡称作PIN(PersonalIdentificationNumber)保护记忆卡,PIN是由数字组成的口令,只有读卡机将PIN输入智能卡后才能读出卡中保存的数据。这种卡比磁卡安全,可以存放一些秘密信息。另一种智能卡是加密挑战/响应卡,卡中有一个加密密钥,可使用该密钥进行加密和解密,但该密钥是无法被读出的。这种智能卡通常采用公开密钥算法,存储的是用户的私钥,可在离线状态下进行认证。在与计算机进行交互时首先递交代表自己身份的公钥证书,计算机验证证书的签发者后就获得了用户的公钥。2.身份认证协议基于密码学原理的密码身份认证协议比基于口令或者地址的认证更加安全,而且能够提供更多的安全服务。各种密码学算法,如私钥算法、公钥算法和哈希算法都可以用来构造身份认证协议,它们各有特点。可以分为共享密钥认证、公钥认证和零知识认证等几类。计算机可以存放高质量的密钥,进行复杂的加密解密运算。计算机可以代表用户进行加密解密操作,但是需要用户提供口令,将用户口令经过变换可以获得加密使用的密钥,或者是用口令来解密一个存放在某处的高质量的密钥,例如用PIN获得存放PIN保护记忆卡中的高质量密钥。身份认证协议一般有两个通信方,可能还会有一个双方都信任的第三方参与进行。其中一个通信方按照协议的规定向另一方或者第三方发出认证请求,对方按照协议的规定作出响应或者其他规定的动作,当协议顺利执行完毕时双方应该确信对方的身份。(1)会话密钥在很多协议中,不仅要求验证相互身份,而且还要建立后续通信使用的会话密钥。所谓会话密钥(SessionKey)是指在一次会话过程中使用的密钥,一般都是由机器随机生成的。会话密钥在实际使用时往往是在一定时间内都有效,并不真正限制在一次会话过程中。虽然公开密钥系统也被用于认证协议中,但是由于公钥系统算法复杂度高,大量数据的加密还是采用传统密码,因此会话密钥都是传统密钥。因为会话密钥主要用于通信加密,因此也将它称为通信密钥,与用于身份认证的认证密钥加以区分。会话密钥能够有效地抵抗密码分析攻击;而认证密钥不能长时间使用,否则容易被攻击者搜集到足够的密文数据进行密码分析。需要建立会话密钥的认证协议也被称为密钥分发协议。(2)共享密钥认证共享密钥