保护分布式计算的安全性_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 信息 • 能源

保护分布式计算的安全性

admin  发表于 2017年09月18日

网络和计算机的安全性常常并不是并行不悖的,但Athena系统的开发者已经在解决这一问题。

Secure Distributed Computing.jpg

全球性的计算机数据传输网Internet的出现,使人们的通信和办事方式发生了重大的变化。然而随着这一全球村庄的扩大,不诚实居民的数目也在相应增加。另外,构成全球通信网的大部分硬件和软件是以诚实用户为前提来设计的。因此,入侵者可能会窃取通过该网络进行通信的用户的秘密,读取或修改其中存贮的信息。

几年来,对计算机安全性的公开讨论多集中在主动攻击者上。这些主动攻击者通过向网络输入虚假的数据来破坏网络的正常功能。许多计算机窃贼已经利用Internet的众所周知的(但又常常未加纠正的)系统弱点侵入Internet中的计算机。现在,消极攻击(在不破坏网络数据的情况下对网络传输的数据流进行偷听)正在成为一种主要危害形式。对现代计算机网络安全性的最大的潜在威胁之一是,其能容易地被窃听。例如,只要获准使用网络中计算机的方法仍然是键入口令,一个消极的攻击者就可以通过窃听来暗中偷取数字宝藏。

Secure Distributed Computing-01.jpg

十多年来,M.I.T(麻省理工学院)计算机系统的管理人员一直在设法解决计算机系统的安全性问题,1983年,M.I.T与IBM公司和数字设备公司合作,开始从事旨在为学生和教师提供更强大的计算能力的Athena(雅典娜——希腊神话中的智慧女神)工程。Athena是建立在客户机-服务器模型的基础上的,用户工作站(客户机)执行大部分的计算任务,而M.I.T的计算机网络(MITnet)中的专门计算机用来处理文件储存,打印和其它的请求(该模型已被Internet广泛采用)。

当我们设计Athena系统时,我们就已知道该网络已构成对计算机安全性的一个巨大威胁。坦率地说,我们知道,我们的学生将很快地搞清楚如何对学院中的工作站进行编程使其成为能够有效地攫取口令的机器。为了减少这种危险,我们开发了Kerberos鉴别系统,该系统避免了在网络上发送可读口令,它是Athena安全性的核心。Kerberos是传说中站在地狱入口处的三个脑袋的大狗的名字。但是,与其前辈不同的是,我们的人造看门狗在守夜时尚未失职过。

对计算机网络所提出的安全性要求既是一个实际问题,更是一个概念问题。结果是一小段铜线,同轴电缆或光导纤维都可能使人们用以判断什么是安全的,什么是不安全的界线变得棋糊不清。考虑计算机系统的边界这一概念。多年来,专家们把计算机系统安全性问题分为两类:周界安全性(即防止局外人进入系统的内部)和内部安全性(即防止内部的使用者相互干扰或违反系统的安全政策)。

Secure Distributed Computing-02.jpg

定义传统的大型主机系统的边界是相当简单的。中央处理单元,存贮器和磁盘驱动器在系统的内部,所有其它的设备则位于系统的外部。如卡片阅读机、磁带阅读机和终端这样的输入-输出装置则是系统的边界,进入系统的任何信息都须经过它们。用户通过键入账户名和口令来证明自己的合法身份,而只有账号的主人才知道其口令。因此,将二者(账号和口令)结合起来就足以使系统对用户进行鉴別。

Secure Distributed Computing-03.jpg

向用户证明其所进入的系统就是他想要进入的系统,这一点是不言而喻的。用户总是认为他(她)是在与其想要的计算机进行通信。如果终端直接同某一个特定的计算机相连,用户凭经验就可知道该终端是在代表系统“讲话”。如果用户通过调制解调器拨一个主机的号码,他们相信电话公司会把对应于所拨号码的计算机系统与该电话机连接起来。用户和电话公司相信电话网络中的设备会对所抜的电话号码进行合理的分配和传输。

只要计算机的内部安全性没有遭到破坏,用户和计算机之间的相互信任就会一直保持下去,直到用户退出系统为止。系统是假定它所收到的所有键盘信息已经代表了用户的意图。同样地,用户也假设出现在屏幕上的所有信息来自于恰当的计算机系统。

Secure Distributed Computing-04.jpg

一旦工作站与网络成为观实,主机安全性的这些基本原理就不再适用了。首先,一个网络化系统的边界不容易确定。与可以围绕其画一条边界线的单一的计算机系统不同,一个分布式计算环境是由许多用不确定可信性或可靠性的红外连接的独立系统组成的。

绝大多数网络都很庞大且难以保证其安全性。在M.I.T,通信线路在整个校园内纵横交叉,甚至延伸到学生宿舍的门厅和过道里。把所有的通信导线都用结实的导线管封装起来费用太大,因而不能实现。不仅如此,大多数网络还是以广播方式传输信息的:连接在网络电缆上的每一台计算机都可获得流过此电缆的全部信息。计算机内的硬件与软件对通过的数据进行分类整理,且一般来说,每一台计算机只对以它为目标地址的数据进行处理。但是,控制了网络中某一台计算机的闯入者可以很容易地通过自编的程序来获得在网络中传输的所有数据或以某一台计算机为目标地址的所有数据。闯入者还能够发送信息,并使其看起来是来源于另外的地方。

闯入者能够容易地进行这样的非法活动意味着网络不在分布式计算环境的安全边界之内。而如果网络是在分布计算的安全边界之外,那么就必须对在工作站和服务器之间传递信息的数据包进行某种形式的保护。对每一个数据包在通过网络的安全边界时都必须加以鉴别。

在Athena系统中,进行这种鉴别是Kerberos的任务。Kerberos是采用—组密码信息交换来使用户使用服务器的一套分布式软件。Kerberos还提供密码校验以确保在工作站和服务器之间传送的数据不会由于意外亊故或第三者的蓄意篡改而遭受破坏。

现在在M.I.T使用的Kerberos版本采用数据加密标准(DES)对其通信进行加密。DES是通过把报文拆成不连续的信息块(每一个信息块通常为8个字符——64位),并用一个56位的密钥将这些信息块转换成加密文本数据块的方式工作的。解密时需要同一个密钥来把加密文本数据块转换成原来的报文。一台工作站在发送一个数据包之前,可以用一个只有该工作站和将接收数据的那个服务器所知道的密钥来对其进行加密。攻击者不会从网络传输中截获的数据得到任何好处,因为没有密钥每一个数据包都是毫无意义的数字乱码。

不仅如此,DES系统的特点还使得它能够很容易地察觉到对通过网络的信息所进行的任何动机不良的篡改。对数据包的任何改动都会导致在解码时得到毫无意义的数据——与原始信息毫无相干的随机宇符。这种经篡改的报文可以容易地被检测出来,工作站或服务器只须丢弃它们并请求重发即可。

用加密的方法在无安全保证的网络上传送信息只是Kerberos的基础。在这个基础上我们建立起一套协议,通过这些协议可对要求计算服务的个人进行识别。它还可以为工作站和服务器安排仅为这两台机器所知道的密钥(因而使加密保护非常有效)。协议以给每一个用户一个56个二进制位的DES密钥开始。每个网络服务器也有一个密钥。由于人们一般记不住56位长的二进制随机数宇串(相当于20位的十进制数字),所以系统允许用户选择一个由6到128位字符组成的口令。另一个加密步骤是把口令转换成—个DES密钥。例如:口令“mydog”被转换为12,322,343,883,628,311,502(1010101100000001110000100111100110111111110111110111001111001110)

只有一个被称作密钥分配中心(KDC)的特殊的服务器知道所有用户和服务器的密钥。KDC通过我们称之为“许可证”的加密数字证书居中进行安排。当用户走到工作站前并键入他们的注册名字(必须是该系统知道的名字)时就开始了在该工作站和密钥分配中心之间的一次信息交换,其结果是使该用户得到使用一个指定的网络服务的许可证。首先工作站告诉密钥分配中心该用户想要提出一个请求——也许要使用存贮在一个文件服务器中的数据。密钥分配中心生成一个数据包——许可证,它包含用户的名字、当前时间、许可证的有效时间、工作站名和一个称作对话密钥的随机地产生的DES密钥。然后KDC查找文件服务器密钥并对许可证加密使得只有文件服务器能读出它。

然后KDC将这一已经加密的许可证用用户密钥再行加密,并将结果送回工作站。当工作站收到这一信息后,就敦促用户给出口令。工作站将该口令转换成一个DES密钥,并用它来对许可证和与之伴随的会话密钥进行解密。只有当用户向工作站提供正确的口令时,工作站才能对这一信息正确地进行解密。

当用户想从文件服务器获取信息时,工作站就向服务器发送许可证和被称作鉴别码的一个附加的数据包。该鉴别码由用对话密钥加了密的当前时间,用户名和工作站地址等组成。文件服务器对许可证进行解密并抽取会话密钥,并用会话密钥对鉴别码进行解密。服务器检查许可证中给出的用户名和工作站名是否与鉴别码中的用户名和工作站名相符,并检査时间标记是否还有效。如果这些证书都通过审查,文件服务器就接受许可证并对用户要求进行处理。

除了用户的名字外,在这些交易中通过网络的信息都以加了密的形式在网络中传输,因此可以防止窃听。另外,为了帮助系统对用户的身份进行的识别,用户可使用包含在许可证内的会话密钥对他(她)的工作站与文件服务器之间传输的数据进行加密。

为了在有伪装的情况下判別数据是否曾被篡改,Kerberos提供了一种报文真的伪鉴别(MAC)方法。这一附加的保护措施是从未加密的原始数据和工作站与服务器共用的一个密钥中导出的一个特有的128位的二进制数字。该数字附加在报文的后面。当报文到达接收站时,重新计算MAC。如果这两个值相同,接收者就可以确信报文在传输过程中未被篡改。实际上,如果客户机传输到服务器的数据不是机密的,那么只要用报文真伪鉴别来防止其被篡改就可以了,而不必对其进行加密编码。

尽管基本的Kerberos协议是安全的,但对普通用户并不十分适用。在运行的过程中,它暴露出一个潜在的令人讨厌的弱点。每一个新的服务都要求一个不同的许可证,因此在一个对话的过程中,一个用户可能被多次要求提供口令,把这个口令存贮在工作站是危险的。许多情况可能导致一个用户在没有退出系统(从而抹掉存贮的口令)的情况下离开工作站。一个机灵的闯入者可以径直走到这样一个没有人照管的工作站前并从中偷取该用户的口令。

当要求用户给出口令时,敦促用户提拱一个口令解决了对工作站进行监督的问题。从长远的观点来看,这种重复敦促用户提供口令的方法与用户在未退出系统的情况下离开工作站同样危险。系统不会总能预测出用户在什么时候需要新的服务。例如,存贮未被读取的电子邮件的Athena邮政服务器与存贮普通文件的文件服务器不是同一个服务器。因此,与邮局服务器打交道时,用户就得输入一次口令。假设用户对这种用重复的提问鉴别其身份的过程极有耐性,他们就会习惯于对任何要求提供口令的程序输入一个口令。这样,他们就会成为一个闯入者容易捕捉的猎物。这些闯入者提供一个敦促给出口令的程序(例如一种计算机游戏),但他们并不把得到的口令用于Kerberos的用户鉴别,而是将它存贮起来便于以后使用。

解决这一难题的方法是引入许可证授予服务(TGS)。TGS与密钥分配中心在同一个系统上运行并能够进入到该分配中心的用户、各种服务和密钥的数据库。用户在注册进入系统时,只需提供一次口令便可从KDC中的TGS取出一个许可证。此后,若需其他服务的许可证可进到TGS中索取。TGS在发放这些许可证时,用伴随原始的TGS许可证的密钥对它们进行加密,而不是用用户的口令。

因此,用户的口令不需要存贮在工作站里,而只需在内存里留驻足以使工作站对TGS许可证解密的时间即可。如果一个用户在没有退出系统的情况下离开了工作站,一个闯入者可能会从该工作站获得许可证和对话密钥。但这些许可证只在该工作站有效(因为这些许可证包含工作站的名字),并且每个许可证仅在几小时内有效(在M.I.T的计算机网络中有效时间最长为10个小时)。

使用Kerberos和相应的加密措施并不能保证一个分布式计算环境是安全的,还必须采取其他的措施防止攻击者绕过Kerberos所提供的安全保护而进入系统。首先,必须对服务器严加监管。Kerberos为工作站(或服务器)提供了一种进一步证实用户的合法性的方法。但此后服务器还必须对哪个用户是否有权利用一个具体的资源做出正确的决定。幸运的是,这个任务并不难完成。大多数服务器都可以设计成只有系统管理者才能直接注册进入的形式。也就是说,不需要通过许可证途径请求服务。因为只有可靠的人员才能访问服务器,所有安全很容易得到保证。

更重要的是Kerberos系统的KDC本身必须是安全的。因为它有每个用户的密钥。所以,一个进入KDC并读取了这些信息的闯入者实际上就已知道了每个用户的口令。闯入者不需修改KDC的任何信息,而只要读取这些信息(或者备份磁带上的信息)就成。M.I.T用以实现KDC的软件具有使闯入者很难直接读取DES密钥的性能,但仍必须采取严密的安全措施来防止闯入者接近KDC和进入保存备份磁带的保管库。

KDC必须是安全的,但也必须始终处于运行状态以使用户能够随时注册进入Athena。这一要求产生了一个难题,因为提髙一个分布式计算环境中的可靠性的传统方法,是在多台计算机上复制关键的服务项目(这些计算机通常在不同位置)以便在断电和出现其它问题的情况下仍能正常工作。但是对每一个附加的KDC也要严加保护。增加密钥分配中心的数目能提高可靠性,但同时也增大了系统遭受僅害的危险。

Kerberos在理论上看起来似乎很安全,但实际效果如何呢?1986年我们开始在M.I.T使用它,而目前的版本(第4版)是1987年开始在校园中使用的。目前我们还没有碰到过由于Kerberos安全机制的缺陷而使Athena的安全性遭受侵害的情況。但是,Kerberos并不能保护系统免遭诸如口令选择不当而被人猜出,系统管理人员受狡猾的闯入者的蒙骗或滥用职权等所造成的损害,后两种情况几乎是不可能避免的。因此1991年,我们在口令更换程序中安装了一个口令过滤器;它不允许人们选用任何一个容易猜出的口令(比如他们的名字或一个普通的词)。

许多其它机构也已采用了Kerberos。其中最著名的是开放软件基金会(促进操作系统标准化的组织),该机构已经把Kerberos第五版作为其分布计算环境的一个重要组成部分。Kerberos的这一版本具有一些新的特点,此外它与UNIX操作系统的细节关系不大,因而可适应于其他的计算环境。目前对这一新的版本正进行试验。

Internet的技术专家也在讨论Kerberos,因为他们急需能保护其在全球计算机数据使所网中传输的数据的安全性的软件。我们正在制订新的协议以使我们建立一个能为几十万个用户而不是像现在只能为25,000个用户服务的像Athena一样的分布计算系统。公用钥匙密码术(一种使用两把钥匙但只需将其中一把加密的加密方式)有可能在这些系统中扮演极重要的角色。不仅如此,公用钥匙技术可以成为降低对密码分配中心的监管要求和使由于KDC的多份拷贝而造成的风险减小到最低限度的一种方法。

迄今为止,Kerberos的成功来自多方面的因索。最明显的一个因素是:Athena是第一个想要解决安全性和用户资格验证的分布计算系统;另一个因索是其简单性。注册进入Athena的用户所看到的是与当他们使用多用户系统进行通信时所看到的同样的信息。事实上,大多数用户对Kerberos内部工作过程完全不知道。最后,Kerberos是一个开放的系统,M.I.T对Kerberos采取一种自由扩散的政策(同其为X Window系统这样的软件包所采取的自由扩散政策一样)。所以,任何地方的用户和计算机科学家都可获得Kerberos的源程序。他们中的许多人已经为进一步改进Kerberos和剔除其中的错误和潜在弱点贡献了他们的经验和技巧。我们希望他们能继续这样做下去。

【任志纯/译  杨廷/校】

 


全部评论

你的评论