您现在的位置: IT技术文档中心 >> 文档资源 >> 安全技术 >> 安全技术基础 >> 文档正文
安全性设计
作者:未知 文章来源:互联网 点击数: 更新时间:2007-7-14 15:12:53
    网络管理员在极力推行网络安全性时,将要面临很多问题,我们都知道:使用公用的或太短的保密字、用户不懂得安全操作以及对管理的完全忽视,都将直接威胁局域网的安全。幸运的是,由于有了类似Windows NT这样的操作系统,使得我们无论在本机还是在局域网内实施安全性时,都变得非常容易。学会如何使用这些安全特性并将它们置入你的应用程序中,对确保数据和应用程序的安全都是非常重要的。
    在建立Internet站点或是Intranet站点时,安全性也是人们争论的主要焦点之一。公司可以通过建立一个Internet站点来获得公共的访问 ,也可以建立Intranet站点来尽量隐藏其身份,但现在很难知道哪一种会更好。不管你工作在什么样的环境中,市场上已经有很多公司开发的各类工具,以满足那些需要保护他们的数据不受损害的用户。然而,令人遗憾的是,当你建造自己的控件和应用程序时,所有这些华丽的工具实际上并不能从根本上保护你(当你用错误的方式使用它时,这些工具也不能很好地工作)。再次强调,学会Windows NT提供的安全特征,比如ActiveX,将会帮助你提高远程访问技术的安全性。
    在这一章中,你不应该去寻找那些定位在你特定工作环境中的具体答案。如果想在一章之中囊括当今所有的实用技术,或甚至囊括你曾遇上的每个安全问题,那都将是非常愚蠢可笑的。我们的重点是:从编程者的角度来看待安全问题,并讨论那些对编程人员实用的技术,但我们不针对具体的问题给出答案。你最后所决定采用的方案应基于自己公司的需要以及你所使用的工具。
    虽然Internet的安全性固然重要,但从整体上看,事实上,我们将更加集中精力关注Windows NT的安全性。我们也将关注那些使用远程访问所必须精通的技术,如ActiveX控件、分布式组件对象模型(DCOM)、组件对象模型加(COM+)等。这一章将要解答的一个问题是,编程人员可以采用什么手段来防止数据和应用程序代码受损?从编程者的角度来看,一个ActiveX控件不止是一个新的浏览器资源,它也可能是一个潜在的病毒源。在保护控件方面,除非是浏览器、编程者和Internet站点允许你更好地使用局域网资源,否则哪怕你做出了最仔细的努力,也将是枉费心机。这也意味着你将有可能因为一个笨拙的用户而暴露了自己的服务器,进而导致潜在的破坏。另外,因为COM+还是一个海市蜃楼,所以你在使用这个新技术时应该特别小心。
    微软为编写各类应用程序提供了各种API和开发工具,我们要做的第一件事就是花点时间学习一下这些API,其中包括远程的和本地的,你至少应该看一点安全方面的API,尤其是要看看类似Windows NT这样的产品所提供的本地安全性。既然你已经完全使用了操作系统,为何不充分利用它所提供的安全性呢?在一般的应用环境中,操作系统安全性带来的好处对任何人来说都是显而易见的(除非你正关注的是Internet)。请牢记,你可以使用ActiveX控件来做一些事,如巧妙地处理注册登记或至少是用来询问用户和公司名称之类的信息,如果你可以使用ActiveX控件从注册中获取用户名和公司名,那么通过微软提供的操作系统服务,你也可以使用它来辅助实现其安全性。不难看出,你在Internet站点上所附加的那些安全性,将会分担很大一部分的安全压力。
    我们在这一章要关注的另一个主题是:编程者在安全性方面所必须考虑的各类问题,也就是了解有谁进入了Internet站点、是如何进入的?了解你的组织结构中的脆弱部分,以及随意从Internet下载控件将会产生什么样的危害,这些都是非常重要的。要实施安全性,你首先应该知道你所保护的对象是谁、你所防止的东西又是什么?否则你的努力从一开始就是做无用功。
    我们抛开了那些对Internet安全性的世俗顾虑后,将开始关注如何去实现它的安全性。这里有个问题,当Sun公司开始创建Java小应用程序(Java applets)时,它在安全性方面采用了一种称为“Sandbox(沙箱)”的方法,即一个Java程序只能在它自己的Sandbox中使用,如果越过了Sun规定的这个严格区域,程序将不能访问操作系统,或者甚至不能访问硬件系统。为了使用Java小应用程序,你需要一些运行策略来确保访问是被严格控制的,这种方法的好处非常清楚:越少的访问意味着越少的安全顾虑。遗憾的是,它也严酷地束缚了Java处理工作的能力,这尤其表现在不同类型的数据要进行交换之时。
    注 Java在安全性方面采用了“Sandbox”的方法
    Web链接 即使Java也不是“防弹”(bulletproof)的,黑客已经发现了它执行代码中的漏洞,这使得Java也并非是一个完美的解决方案。例如,在1996年3月22日,在普林斯顿大学计算机科学系的Drew Dean(ddean@ICS.Princeton .EDU)和EDFelton(felten@ICS.Princeton.EDU),发现一个Java臭虫(bug),这个臭虫允许他们创建一个程序来删除用户本地盘的某个文件,他们通过Netscape的缓存机构下载一个文件到用户的机器上,然后让Java来执行这个程序,并以此来嘲弄Java,幸运的是,在Netscape的2.01版本中已经修复了这个漏洞。通过访问http://www.cs.princeton.edu/sip/pub/secure96 .html站点,你可以找到有关Java安全问题的其它信息。
    微软提出的另外一个方案是ActiveX控件,它被称作是“shrink-wrap”方法,使用ActiveX,就像你可以使用软件的任何一个shrink-wraped片一样,你也可以完全访问操作系统。这意味着,你可以写出一些非常灵活的控件,他们可以充分利用系统提供的资源(这里也没有任何来自从访问数据方面的限制)。然而,从安全的角度来看,ActiveX也能导致恶梦一样的恐怖,有什么东西能够保护你下载的控件,并防止它对你的系统进行破坏呢?微软还有另一个手段:厂商认证。当你在某个商店买下一个软件时,你便能知道它的制造公司,如果软件中有病毒甚至有险恶的臭虫,你也知道和谁联系,微软提出的ActiveX控件的认证方式也和你在商店买的软件一样,它的包装也确切地标识出了软件的生产厂家。
    Web链接 所有同时使用VBScript和JavaScript的开发厂家正持续不断地提高这两种脚本语言的安全性。不幸的是,要发现VBScript的未来发展方向还有点困难,通过访问http://www.osf.org/~loverso/javascript/站点,你能够读阅读有关JavaScript的著名安全问题。
    脚本语句是很容易被监视的,我们现在关注一下运行脚本语言的安全性。不论是VBScript还是JavaScript,他们的近期版本都不是非常安全的(虽然已做了许多工作来寻找JavaScript的漏洞)。下文介绍了三个最常见的问题。
    欺骗用户上载某个文件。尽管JavaScript在上载一个文件时,必须征得用户的同意,但黑客却能够通过多种途径来绕过这种限定,黑客真正需要的只是一个含有趣味标题的按钮,对使用Windows95/98的用户来说,上载他们的用户保密字文件是非常容易的,这使得黑客闯进你的操作系统变得更加容易。
    获得文件的目录。在上载你机器中的一个目录时,JavaScript没有要求必须征得用户的同意,事实上,它也可以上载其它网络驱动器中的目录。黑客如果知道了你硬盘的组织结构,便能够更容易地闯入你的系统了。 跟踪访问的站点。黑客通过跟踪你访问的站点,便能够对你进行一些识别,而JavaScript使得黑客更容易这样做,它能够跟踪你访问的每个URL,并将它们的地址发送到黑客的机器中。就像上载文件时出现的问题一样,用户必须给出许可,而黑客却几乎可以用任何一个东西来掩码这种许可。
    本章也将关注一下安全标准,一些编程者把这些标准当成累赘,因为它们与编程没有直接的关系。我们并不在这些标准的全部内容上浪费时间,但是知道它们的存在以及如何找到它们,也是非常重要的。你们中许多人也都认为,没有什么理由要对一个已经安全实用的东西再作重新改造。如果有人已经发现了一种能防止访问中受到危害的方法,而且这种方法所有人都可以采用,那有何理由不采纳这个标准的方法呢?而这些也就是在安全标准这一节中所关注的,它让你知道这些标准中什么东西有用,且让你学会如何去使用它们。
  • 上一篇文档:
  • 下一篇文档:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 版权申明 | 雁过留声 | 会员中心 |