甘肃省超级计算中心

 
 

分布式系统的安全


    分布式系统的很重要的一个方面就是它的安全。从某种意义上说,安全是分布式系统的最重要的一个方面。但是给一个分布环境提供安全是非常困难的。分布式系统的安全和传统的计算环境的安全的最大的不同是,在分布环境下,很难确定你所要保护的边界。在传统的分时系统中,终端即代表着边界,为了能够进入系统,用户必须先登陆,提供帐号及口令,但是系统的物理部件,比如硬盘、CPU、内存,这些都不是安全边界。分布式系统好象是一个物理上分开的分时系统。比如把硬盘和CPU分开,它们之间通过不能信任的接口连接,通过接口,一个恶意的用户可以访问及篡改所有信息。

非连接的局域网

    很多系统是建立在非连接的局域网上的,即:这个网络在物理上只对有限个人员开放,通常是一个组织的成员。很显然,非连接的局域网和那些不是非连接的局域网相比,在安全方面要考虑的问题要少得多,因为和那些不是非连接的局域网相比,潜在的威胁要少很多。对于非连接的局域网而言,最大的威胁就来自于那些组织成员内部。因为只有这些人可以在物理上访问网络,所以只有这些人才能对网络构成威胁。但是这些来自于内部人的威胁是最难防范的。正所谓家贼难防。在大多数情况下,他们对系统究竟是怎么工作的了解得非常清楚,当然他们对系统的弱点也了解得非常清楚。

    非连接的网络的的一个潜在的很大的威胁是,这个网络在大家都不知道的情况下已经和外部连上了!你可以认为你的局域网是安全的,以为这个网络只连了你们工作组的几台计算机,而这些计算机都属于可以信赖的人的。但是在谁都不知道的情况下,某个人在某台计算机上上安置了一个调制解调器。这时,这个网络就变得不安全了。

和外部连接的局域网

    这些局域网和一些不受该组织控制的其他的网络相连。和非连接的局域网相比,一个主要的不同是,这个网络面临的潜在的威胁要大得多。除了要面对来自于内部人员的威胁以外,还要面对那些通过网际互连可以访问该网络的外部人员的威胁。

    和外部连接的局域网可以分为两类,一类是全连接的局域网。这个局域网和外部网络有无缝接口。还有一类是部分连接的局域网。这种网络可以在外部进行访问,但是得通过这个组织自己定义的技术和方法,而这种技术和局域网的流行的技术不相同。一个简单的例子是上面所提到的。某个人通过一台机器上的调制解调器访问一个非连接的网络,结果就造成了一个部分连接的局域网。这个连接之所以是部分连接,是因为通过调制解调器访问该网络,本身就蕴涵了是通过电话线来访问的,这个手段本身就可能包含了对访问该网络的某些权限限制。

    对于和外部连接的局域网而言,最大的威胁是它可能遭受来自于世界上任何一个地方的威胁。在互连网上没有警察,也没有法律规定人们究竟可以访问那些资源。

分布式系统的网络安全策略

1. 防火墙
    一个最常用的网络安全技术就是使用防火墙.建造一个防火墙就是在连接该局域网和外部网络的路由器上建立包过滤。只有那些符合规定的包才能从防火墙里边传到防火墙外边。

    防火墙的关键就是在端口之间进行访问控制.比如一个路由器可以被设置成把所有从外边过来的试图通过端口23来访问的包都丢弃掉.这样干可以有效的关掉外进来的TELNET。大部分的路由器供应商都支持网络管理员建立一张关于允许访问和不允许访问的端口号表。有些甚至允许你为每个用户或者子网建立端口过滤,允许网络管理员在更细的粒度上进行访问控制,使用防火墙的一个很大的好处是网络管理员做到可以不用去访问组织内的每个用户的计算机就提高系统的安全性。换句话来说,组织内的用户可以随意配置他们的计算机,防火墙可以保护他们。

    不管怎么说,防火墙应该给用户以足够的自由,但是最好的防火墙和使网络不可访问是同义词。和网络连接本身就有不安全性,那么一个组织为什么还要和网络相连呢?因为安全并不是最主要的。通过网络和外部世界相连的一个主要原因就是使得信息交流变得更容易。如果防火墙使得他们不能达到这个目的的话,他们就不会使用防火墙。

    防火墙的配置是非常重要的。你必须得保证网络支持的协议能够通过防火墙。尤其是使得使用和TCP的端口53的域名系统协议(Domain Name System protocal )能够通过防火墙。否则的话,组织内部的机器就不能解析防火墙外的机器的名字。同样的,如果你想让防火墙内外的机器能够通讯的话,你也得保证防火墙外的机器能够访问相应的DNS服务器,这样他们才能解析防火墙内的主机地址。

    实现防火墙的一个通常的办法是拒绝绝大部分的从防火墙外发起的到防火墙内的机器的连接。当然啦,特定的机器除外,这种机器是被保证是严格安全的。

    必须严格限制从防火墙内发起的到防火墙外的连接,必须对这种连接特别小心。你必须明白谁会对你构成威胁,以及什么会对你构成威胁。禁止从内部发起的连接即意味着你连接到的主机可能就是潜在的威胁。当然啦,如果防火墙允许任何协议通过的话,一个恶意的内部人员很容易攻破防火墙。

    防火墙的另外一个成本是机会成本。因为大部分防火墙通常只允许特定的协议通过,一般是电子邮件。而其他的协议则一律不允许通过。这就使得公司的员工不能访问一些新的,有潜在价值的网络。这会使得网络不能得到很好的利用。


应用网关(Application Gateways)

    网关经常和防火墙联合起来使用。基本思想是用防火墙把大部分送往指定应用网关的包阻塞住。举个例子,如果电子邮件不是能够毫无阻碍的到达每台主机,而是只能到达某个特定的主机,这样的话,这台机器就能被设置成能够为整个组织收发电子邮件.同样的,只有一台特定的机器开放TELNET服务(这台机器是安全管理的).只有登录到这台机器上以后,你才能访问防火墙内的其他机器。

    应用网关可以被用来处理电子邮件,远程登录,及文件传输.大部分情况,仅仅是要正确配置一些软件.
总的来说,防火墙和网关联合起来的话,可以提供某种程度上的安全.即使这个局域网运行在不安全的网上,只要网络管理员对局域网的安全负责的话,即使他不能为每台机器进行合理的配置,这个网络还是安全的。不过得记住,防火墙和网关结合并不是完美的.大部分的网络管理员应该对1988的蠕虫还记忆犹新.它即使是在今天,它还是能够轻而易举的越过大部分的防火墙.

虚拟私人网络(Virtual Private Networks)

    有一些组织上网只是为了和在其他地方的其他部门进行通讯,而对Internet上的其他大部分组织不感兴趣。对于这种情况,在Internet上建立自己的虚拟私人网络是一个安全的策略。我们可以通过把防火墙设置成只允许防火墙内的机器和防火墙外的特定的一些系统(通常是一些路由器)之间进行通讯。通过这些路由器,虚拟链接就形成了。虚拟链接可以被看成是不同部门之间为了通讯而特意租了一条电路.和真正的虚电路不一样,在这里数据是被封装在IP包中,然后被发送到特定的路由器.通过这种手段来保护数据的安全。

    总之,我们需要记住一点,安全不是绝对的。我们很容易就建造世界上最安全的计算机,但是它却什么都不能干!在很多情况下,安全需求必须和系统的其他设计目标之间做妥协,比如说性能和用户界面的友好等等。还有一个很重要的就是你必须得考虑为了达到所要求的安全,你所需要花费的钱和个人的精力。

    我们还必须了解被保护的信息的价值和组织这些信息的花费。为了提供安全,得付出代价。我们必须要衡量我们为提供安全所付出的代价究竟值还是不值。我们不能为了保护一些不值钱的东西而建造一个非常昂贵的大门。