分布式系统的安全性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
论分布式系统的安全性
摘要
随着计算机网络的迅猛发展,传统的信息系统发生了巨大的变化,这些变化突出的变现在信息的存储、传递、发布以及获取方式所发生的革命性变革。与此同时,基于网络的分布式系统在各个领域得到了广泛的应用,在整个社会生活中发挥着日益突出的作用。分布式系统的应用涉及到社会的各个领域,从某种意义上说,安全性已经成为分布式系统开发和应用的最重要的一方面,它为开放的分布式系统提供了相当重要的服务。分布式系统中的安全可以分为两部分。一部分涉及可能处于不同机器上的用户或进程之间的通信。确保安全通信的主要机制是安全通道机制。安全通道更明确的说是身份验证、消息完整性以及机密性。另一部分涉及授权,用以确保进程只获得授予它的对分布式系统内资源的访问权限。安全通道和访问控制需要分发加密密匙的机制,还需要向系统中添加或从系统中删除用户的机制。
关键词:分布式系统、安全性、加密、安全通道
第一章安全性介绍
1.1安全威胁、策略和机制
计算机系统中的安全性与可靠性的密切相关。非正式的说,一个可靠的计算机系统是一个我们可以有理由信任来交付其服务的系统。可靠性包括可用性、可信赖性、安全性和可维护性。但是,如果我们要信任一个计算机系统,就还应该考虑机密性和完整性。考虑计算机系统中安全的另一种角度是我们试图保护该系统所提供的服务和数据不受到安全威胁。包括4种安全威胁:
(1)窃听;
(2)中断;
(3)修改;
(4)伪造。
窃听是指一个未经授权的用户获得了对一项服务或数据的访问情况。窃听的一个典型事例是两人之间的通信被其他人偷听到。窃听还发生在非法拷贝数据时。
中断的一个实例是文件被损坏或丢失时所出现的情况。一般来说,中断是指服务或数据变得难以获得、不能使用、被破坏等情况。在这个意义上说,服务拒绝攻击是一种安全威胁,它归为中断类,一些人正是通过它恶意的试图使其他人不能访问服务。
修改包括对数据未经授权的改变或篡改一项服务以使其不再遵循其原始规范。修改的实例包括窃听然后改变传输的数据、,篡改数据库条目以及改变一个程序使其秘密记录其用户的活动。
伪造是指产生通常不存在的附加数据或活动的情况。例如,一个入侵者可能尝试向密码文件或数据库中添加一项,同样,有时可能通过重放先前发送过的消息来侵入一个系统。
仅仅声明系统应该能够保护其自身免受任何可能的安全威胁并不是实际建立一个安全系统的方式。首先需要的是安全需求的一个描述,也就是一个策略。安全策略准确的描述系统中的实体能够采取的行为以及禁止采取的行动。实体包括用户、服务、数据、机器等。制定了安全策略之后,就可能集中考虑安全机制,策略通过该机制来实施。重要的机制包括:(1)加密;
(2)身份验证;
(3)授权;
(4)审计。
加密是计算机的基础。加密将数据转换为一些攻击者不能理解的形式。身份验证用于检验用户、客户、服务器等所声明的身份。对一个客户进行身份验证之后,有必要检查是否授予该客户执行该请求操作的权限。审计工具用于追踪各个客户的访问内容以及访问方式。
1.2设计问题
一个分布式系统,或者是任何计算机系统,都必须提供安全服务,使得范围广阔的安全策略可以通过这些服务来实现。实现多方面的安全服务时需要考虑很多重要的设计问题,主要有3个:控制的焦点、安全机制分层、和简洁性。
1.2.1控制的焦点
考虑一个应用程序的保护时,基本可以遵循3种不同的保护方法,如下图所示。第一种方法是把注意力直接集中在与该应用程序相关联的数据的保护。第二种方法是把注意力集中于要访问特定数据或资源时,通过明确指定可以调用的操作,以及操作由谁完成来进行保护上。在这种情况中,控制焦点与访问机制紧密相关。第三种方法是把注意力直接集中于用户,通过采取一些措施使得只有指定的人可以访问该应用程序,而不是考虑其要执行的操作来实现。
图1三种防止安全威胁的保护方法
(a)防止无效操作的保护;(b)防止未经授权调用的保护;(c)防止未经授权用户的保护1.2.2安全机制分层
安全系统设计的一个重要问题是要决定应将安全机制放在那一层。在这一环境中的层次与系统逻辑组织的层次相关。将计算机网络和分布式系统分层的组织结合起来,一般会导致如下图2的结果。
图2分布式系统的多层逻辑结构
在分布式系统中,安全机制通常位于中间件层。位于分布式系统中的中间件层的安全服务仅在其所依赖的安全服务确实安全的情况下才是可以信任的。
1.2.3安全机制的分布
TCB是一个分布式系统中所有安全机制的集合,这些机制用于执行一个安全策略。TCB 越小越好。如果在现有的网络操作系统上将一个分布式系统作为中间件建立,那么其安全性就取决于作为基础的本地操作系统的安全性。我们考虑分布式文件服务器的情况,这样的一个服务器可能需要依赖其本地操作系统所提供的各种保护机制。这些机制不仅包括保护文件免受文件服务器外的进程访问的机制,还包括保护该文件服务器免受恶意破坏的机制。因次基于中间件的分布式系统需要有对其依赖的现有本地操作系统的信任。如果不存在这样的信任,则本地操作系统烦人部分功能性就可能需要合并到分布式系统本身中。考虑一个微核操作系统,其中的许多操作系统服务作为普通用户进程运行。在这种情况下,文件系统可以由一个为了适合分布式系统特定需求而裁减的系统完全取代。因此,我们可以用分布式操作系统逐渐取代基于中间件的分布式系统。
1.2.4简洁性
另一个与决定将安全机制放在哪儿一层有关的重要设计问题是简单性。一般认为设计一个安全的计算机系统是一项困难的任务。因此,如果一个系统设计者可以使用一些易于理解且工作可靠的简单机制,设计工作就会比较容易实现。,不幸的是,对实现安全策略来说简单机制通常不够充分。比如,A希望向B发送一条消息的情况。链接层加密是一个简单且易于理解的机制,它用来防止对站点间消息通信的窃听。然而,如果A希望确保只有B能够接受到他的消息,就需要更多机制。字这种情况下啊,就需要用户级身份验证服务,并且A可能需要了解此类服务的工作方式以便投入其信任,因此尽管许多安全服务都是高度自动