学院首页>冲浪宝典>冲浪技巧>互联网安全和ActiveX控件

互联网安全和ActiveX控件

作者:- 来源:- 添加时间:2006-5-21 13:05:10
  一些人把Internet看作是计算机的现代野蛮西部,因为在Internet上实施的标准实在太少,几乎没有什么安全手段。虽然在Internet上出售商品的人正以指数方式增长,但不幸的是,蛮荒不化的Internet环境使许多慎重的行业,如银行和大型零售商场都不敢问津。  

一、 概论

  一些人把Internet看作是计算机的现代野蛮西部,因为在Internet上实施的标准实在太少,几乎没有什么安全手段。虽然在Internet上出售商品的人正以指数方式增长,但不幸的是,蛮荒不化的Internet环境使许多慎重的行业,如银行和大型零售商场都不敢问津。造成这种情况的原因很简单:它们不愿意承受可能出现安全漏洞的风险。所以,就在许多新兴的公司,如CD-Now正高兴地迎接Internet的同时,另一些需要Internet的老牌公司却对它持观望的态度。
  虽然Internet技术在不断成长革新,但它还是招致了"现代野蛮西部"的"雅称"。Internet是内部技术、新技术和老技术的结合体,然而,这正是威胁Internet的最大原因。例如,当前版本的IP协议(互联网协议)不支持任何方式的加密数据(至少在协议级没有支持),问题是,如果人们想通过加密的形式在Internet上传送数据,将没有工具来确认其安全性是完全可靠的。新版本的IP将解决这个问题,但现在还尚未出台,随着时代的发展,Internet必定会在这方面取得成功。现在虽然有那么多这样或那样的升级承诺,但是很少有实现的。对于某些人来说,在Internet上"冲浪"是非常有趣的,因为它是那么自由自在、无拘无束。
  通过浏览http://www.genome.wi.mit.edu/www/faqs/www-security-faq.html,你可以看到在运行Web服务器时所要担负的一些安全风险。它包括了使用某种浏览器或服务器时所冒的风险,其中包含了当前的Windows NT、Unix和Macintosh服务器,最后它倾向于使用Unix服务器。该站点也给出了许多通用问题的答案,比如,如何在你的严格监视和保护用户的隐私之间找到一个平衡,它甚至还告诉你,文档文件是如何随着Internet的发展而变化的。
  就像野蛮的美国西部最终发展成了现代文明国度一样,Internet也将最终走向辉煌。类似ActiveX控件这样的技术将使 Internet最终变成一个安全的商务场所,这些技术也将把Internet变得更加友好;就像汽车和高速公路把美国西部变得更加容易旅行一样,这些技术也将加快人们从一个地方到另一个地方的交流速度。
  我们必须要解决的一个难题就是安全问题。只有在一个安全的环境内,人们才能够安心高效地工作,否则,人们将在与敌人的死死纠缠中花费太多的时间和精力。本文将讨论隐藏在Internet安全问题背后的相关课题。


二、 从商业角度看Internet

  就像前面提到的,许多人为毫无限制的Internet感到不安,你确实可以在Internet上看到几乎任何东西,因为没人对它进行规划(美国政府最近对Internet在线服务的规定并没有奏效) 。如果你是一个编程人员,Internet这个无拘无束的环境也许还有某种魅力,但你不是在为自己编程,你必须考虑到商业人员的需求,商业人员当然不希望花了钱却买回了不安,四面漏风的工作环境对他们来说就像是一场噩梦,他们希望每件事都井然有序,有条不紊,最重要的是要安全可靠。
  急速膨胀的Internet并没有对商业用户注入多少信心。在一些商业用户的眼里,新的和未经考验的技术只会在茫茫的等待中发生。考虑一下ActiveX控件的潜在得失,它确实加快了商业用户的办事速度,但还是有一些安全因素值得担忧,因为任何一个具有少量编程经验的人就可以创建一个潜伏破坏性的控件,并把公司的一切搞得一团糟。
  最近的商业调查报告显示,大公司在Internet上变得审慎了,他们采用审慎方案的一个最大原因是缺乏安全感,这些公司希望能证实技术的可靠性,并保证它们的数据在任何通信中都很安全,建立这种值得信赖的Internet的一种方法是在内部编写优良的应用程序,也就是说,创建ActiveX控件。
  商业用户需要处理的主题很多,它们一般与编程人员无关,例如,是否允许职员访问Internet以及允许进行什么层次的访问?这些当然是个热门的话题,但我们在这里不做全部的描述,我们只是讲述一些与编程人员相关的主题。
  那么你该如何处理这些安全问题呢?你可以与公司的主管交谈,如果你发现了他们最担心的只是你编写的应用程序,那么你应该说服他们,作为应用的一部分,安全也是非常重要的。例如,我们可以使用一些方法来访问Windows NT服务器内部提供的安全性,这种方法的缺点是访问安全特性将需要许多附加的代码,使得应用程序的运行变慢,并使用户也更辛苦,你也应该在程序的设计阶段告诉主管对其所进行的权衡(应用程序最终将在Web站点上应用)


三、 定义要保护的对象:数据

  那么,我们需要保护的到底是什么东西呢?你也许会得到许多答案,但它们实质上都是指向一个东西,所有说的和做的都是为了保护数据的安全。数据所牵连的影响甚至超过了硬件和软件,硬盘丢失了,你还可以替换它;软件配置破坏了,你还可以重新安装它,可是公司的财经周报丢了,你就得重新处理它了。数据是计算机环境中最精确的部分,因为它一旦丢失,便很难再修复。
  保护数据的安全是所有人在使用中最应该关心的事。很多网络管理员在照顾安全事务上花费的时间最多,在大多数情况下,安全性关系到了谁做了访问、访问了什么数据以及访问的原因等。随便翻翻任何一家商业出版物,你都能看到一篇又一篇的文章讲述数据的安全性。我们每时每刻都在用计算机处理数据,这些数据对你公司的重要性是毋庸置疑的,当你创建一个Active控件,并连接到HTML页面上,此时你最大的安全顾虑就是你将要提供的数据。
数据安全涉及到了访问的问题,不管是访问本地机器还是访问网络,有一个目标是相同的,那就是防止非授权的访问。在本地机器建立一个安全的环境是相当容易的,除了有各种软件技术外,许多计算机还允许BIOS层次的口令保护,如果这还不够,你还能依靠物理的安全保护来保证别人访问不了你的系统。然而,要在网络上实施这些安全性就比较困难了,但你还是不用花太多的努力就可以做到,流行的网络操作系统产品如Novell的NetWare和微软的Windows NT,都提供了各种安全手段来保护本地数据(除非有人在网络的物理电缆上安装上了网络监听器)。在广域网上(WAN)实施安全性简直就是做恶梦,尤其是当你还有许多拨号上网的机器,不管连接的距离如何,由于它们使得软件和硬件的项目变得更丰富了,所以某些人便更容易偷偷闯进你的网络。有些人甚至断言,在Internet上实施安全性是不可能的事。不只是广域网带来了这个重大的问题,Internet自身提供的公共访问也带来了一些问题。任何人,只要看过最近的商业杂志便知道那些软件公司是如何倾尽全力地来修补他们的产品中的安全漏洞的。


四、 建立某些形式的保护

  即便你现在尽量忽视Internet方面的安全问题,数据保护还是有许多其它方面的主题。例如,你将提供什么类型的数据保护?让我们暂时从非Internet的角度来探讨一下,在这里,你能够从硬件或软件的角度来看待安全保护。一些公司为了保护那些需要特殊照顾的数据,他们把工作站从其它项目中分离出来,与网络的物理分离意味着,任何人如果想要访问机器内部的数据,必须实际地使用这个工作站,必要的话,你还可以通过使用加锁来防止别人访问它。有的公司还通过使用数据加密或执行安全审计来解决这个问题,这些都是用软件实现的安全策略。
  不幸的是,在Internet上,你不可能把自己的机器锁在房间内来达到保护数据的目的,这意味着,随着Internet的发展,过去使用硬件方式保护数据的方法将会被淘汰。硬件级保护的失去增加了编程人员的负担。作为一个编程人员,你必须负责在应用软件中增加一些安全手段(包括一些产品如ActiveX控件,ISAPI filters/extensions)。幸运的是,你能够参考许多新的安全方法,例如,文件加密已经是一个实用的保护技术。无论在广域网上还是Internet站点上,加密文档的安全特性都一样,只是允许访问的人数不一样。
  我们已经讲述了工作站的一些安全问题,让我们再来关注一下服务器。从Internet的角度来看,有些公司把自己的站点和网络从物理上完全脱离开来,(这限制了你将这个站点用于公司内部需求的方法)。使用一个分离的Web服务器是保护你网络安全性的一种物理方法,没有人能够通过这个Web服务器来窥探你网络内部的数据。防火墙是一种软件的保护方式,这种方式的登录过程,实质上在局域网上已使用过多年了。
  你当前使用的或以后将要实施的计划都有一些实际的极限,其中,你最应该考虑的是Internet访问的发展将越来越灵活。当然,你可以关闭你的站点来防止任何人来访问它,但你此时又能做什么呢?采取顽固和粗糙的策略来实施你的安全性可能不会有太大的效果。为了让人在Web站点上学习加强安全性的新方法,而不分配给他们访问的级别,将是你面临的一个挑战,从编程者的角度来看,这意味着你应该学习安装在网络上的硬件和软件的应用能力,已避免陷入Internet的安全顾虑中。
实施方案
  要创建一个安全网络环境是一个庞大的项目,即便是系统地陈述一个基本的安全方案,你也要花费许多时间和精力,而要具体实施它则需要更长的时间,尤其是为了减少对工作环境的冲击,而使用阶段性的实施方案时,时间就更长了。即便你制定了一个非常安全的计划并尽己所能地考虑到了所有的意外,你也不能完全确信已经面面俱到了。当最后有人闯进了你的安全系统并破坏了一些数据时,你便只能打道回府了。
  一旦考虑到所有这些潜在的问题时,你不难得出为什么网络管理员要经常地对用户的权限进行分配,哪怕他是在做一件无关痛痒的事。例如,一些网络管理员强烈地反对公司进行任何形式的Internet访问;而另外一些网络管理员则一旦证实有Internet访问,便要像"老大哥"一样监视用户的活动情况。
  不管建设什么形式的Web站点,你面临的将不止是网络管理和数据保护的问题,考虑用户的提问也很重要。如果有人告诉你连接是安全的,而你发现它并非如此,你又怎会喜欢它呢?许多信用卡用户真不愿意这样冒险,从计算机到Web站点的一个不安全的连接可能意味着信用卡内数千元的损失。
  在实施一个安全方案之前,你应该已经完成了这些工作:确认你创建的应用程序能够长时间保证客户和服务器间数据交换的安全;如果你想把你的Web站点作成防弹(bulletproof)形式,你应该考虑到所有使用Internet人的需求,以及可能产生的冲突。当一些没有考虑到的事情发生、并且确实有人闯进了你的网络时,你便能够立即制定一个安全计划来修补这些网络安全漏洞。


五、 确保Internet下载代码的安全

  许多公司正承诺把它们的应用软件当作一系列ActiveX控件上载到Internet上,例如,Lotus计划将一系列Notes_specific 阅读器以ActiveX控件方式迁移至Internet上,Quarterdeck公司也计划把它们的整个应用系统程序转换成ActiveX控件形式并上载到Internet上。你很快就能够直接通过浏览器查看各种类型的数据,在某些情况下,你还可以直接对它进行编辑。(要得到它们成熟的产品,我们也许还得等待一段时间)。
  如果商家没有计划对下载的代码进行检验、用户在不能确认代码是否受到过病毒的侵害时,就盲目将其保存,将会带来很大的危害。Windows Verify Trust API(用于连接Windows Trust Provider Service)的一些技术,在以下的描述中我们将关注这些API,你将对这些技术的运作方式有一个总体的了解。
  我们也将关注一下Windows Software Publishing TrustProvider,它实际上是Windows Verify Trust API的一个附加系统,它用来检验下载的软件部件是否值得信赖,其检验的方法有多种,其中包括检验本地的规则(如在浏览器上与安全相关的检查框)和检验文件自身的加密信息(如数字签名)。
  最后,我们将关注对ActiveX控件签名的过程。将签名过的控件放置到Web服务器上,将使用户在下载它时,不会再提示"not trusted"(不能信赖)的信息。这部分也将让你学会如何为测试而清理自己的机器,你将学会如何卸载一个ActiveX控件,这样,你不必在每次测试控件的签名以及在你的Web站点下载其它特性时,都得重新清理机器。

下一页>>
站内搜索