每种传输媒介都有其固有的优点和局限性。要知道哪种应用程序适合于这种技术,就需要了解这些特征。现在开发无线技术的应用程序就象以前的网站 IPO 一样热。正如我们所看到的,仅仅由于某样东西是流行的并不能保证它是可行的。软件供应商需要考虑对于无线环境,适合开发哪种应用程序,以及对于某种新兴技术,哪种应用程序的风险过高。在本文中,我们将讨论软件供应商应该关心的问题。
由于越来越多的人希望在高尔夫球场上或游泳池边也能象平常一样处理业务,因此无线应用程序的普及程度越来越高。当然,无线技术的最大优点是它向最终用户提供了移动性。对于那些老是换地方或所处位置不能连接电缆的人来说,这十分有用。而且,由于不必返回办公室就可以接收关键信息,因此节省了许多时间。要记住一点,尽管如此,但比较复杂的应用程序并非总是实用的且可取的。但是,总有人肯定会拥有最新的时髦玩具,并且到处炫耀:“嘿,我可以用移动电话上网!”移动电话上网的速度很慢,而且操作麻烦,但它可以满足无线上网的需求。我真的不明白这怎么能够满足紧急需要,或者甚至这怎么可能很实用,但如果有这种要求,软件供应商就将开发它。
安全性的最大障碍之一是存在这样一种趋势:比较安全性或质量,会优先着重考虑功能。可以演示功能,并且将有助于销售产品。安全性和质量是无形元素,只有随着时间才会逐渐显现出来 — 在购买了产品很久以后。经验丰富的软件供应商知道安全性和质量对于其长期信誉很重要。想要长期将生意做下去的供应商(不是光等着在 IPO 时捞钱)会将更多精力投入到建立质量方面的信誉,不然的话,会花很多精力来进行损失控制。甚至连微软也开始认识到这个事实。
软件生产商为消费者开发安全应用程序的动机是什么?追求经济利益使他们把安全性和质量放在了次要位置。供应商为什么会关心安全性和质量呢?软件许可证反映了软件供应商臭名昭著的的一面。让购买者引起警觉。消费者已经听到了太多虚假承诺,再也不会相信供应商。许多人宁愿对可能很有用甚至是可以救命的新技术说“不”,因为他们要保护自己的隐私。我的邮箱里收到了垃圾邮件。我的电子邮件有垃圾信息。我肯定不想在移动电话上收到垃圾信息。
在开发无线应用程序之前,产品经理应该调查一些基本问题:这个应用程序适合无线环境吗?它足够安全可以抵御危险吗?它实用吗?
“无线技术”这个术语包含了许多设备,从寻呼机和移动电话到无线网络。比较简单的设备已经存在了很长时间。以前,拥有寻呼机或移动电话是身份的象征。今天,即使是孩子也有寻呼机或移动电话。通话仍然会掉线,而传呼信息仍然会丢失,但现在拥有的功能肯定比以前多。一般消费者不会评估他们的无线设备的风险。而公司却必须在无线应用的便利性和安全性风险之间进行权衡,并决定对于这种媒介,收益是否适当。
无线 LAN
无线连网,如 IEEE 802.11b 标准,对于开发人员而言是新的领域。就象所有新的领域一样,该环境也有必须要考虑的独特特征。无线网络没有物理边界,这就给安全架构设计师带来了要克服的各种难题。
物理接入 vs. 无线信号范围
侵入传统的有线局域网(Local Area Network)需要某种物理接入。虽然这不是无法实现的技术,但检测能有效地防御入侵。进入无线 LAN 只要求入侵者在发射器的信号覆盖范围之内。这就使避免检测更为容易,而跟踪却更加困难。除非建筑物受到屏蔽,否则可以在其它楼层或甚至是停车场接收到无线传输。真正的电脑怪杰带着便携式电脑和定向天线在硅谷附近游荡,试图接入网络。
访问数据
当然,安全性的主要目的是防止数据被查看或修改。保护级别取决于要保护的数据类型。从设计意图来看,无线网络提供了对网络的便利访问,这样就带来了未经授权的窃听或甚至数据插入的危险。虽然无线网络有一些内置的功能将数据限制在适当的范围中,但这些并不是安全性解决方案。
认证
在授权用户访问网络之前先认证用户是一项基本的安全性要求,而无线网络通常不具备。可以将无线网络看作与调制解调器池一样开放。从无线网络访问专用内部 LAN 应该通过 VPN 连接到需要严格认证的中央服务器 — 如令牌设备。无线网络中提供的认证机制不足以保护关键系统。
服务集标识
尝试连接到无线网络的系统在被允许进入之前必须提供服务集标识(Service Set Identifier (SSID))。这是唯一的标识网络的字符串,但它对于网络上的所有用户都是相同的字符串。SSID 根本没有带来安全性方面的好处 — 可以轻易地从每个信息包的明文里窃取 SSID。SSID 所做的一切就是将流量划分到一个特殊网络。还可以根据最终用户的 MAC 地址建立一个授权访问列表。再次声明,这种方法也不是非常安全,因为可以骗取 MAC 地址。
开放系统认证
许多无线网络在缺省情况下都运行开放系统认证(Open System Authentication)。连接到无线网络的任何人都被授予访问权。这主要是用在大学和机场,在那里,最终用户是临时的,而且管理加密密钥是不可行的。只要用在公共场合,就不会使用数据加密的形式。
共享密钥认证
共享密钥认证(Shared Key Authentication)方法要求在无线设备和接入点上都使用有线对等保密(Wired Equivalent Privacy)算法。如果用户有正确的共享密钥,那么就授予对无线 LAN 的访问权。数据已被加密,但这不是非常强级别的加密。共享密钥对于网络上的所有用户都是相同的 — 无法根据共享密钥单独标识一个特定用户。我问过安全性咨询公司 @stake 的研发主管 Chris Wysopal,哪种认证系统比较流行。Chris 说:“大多数 802.11 网络运行在明文下,没有用 WEP。这是由于不同的卡和接入点供应商之间存在互操作性问题,以及整个无线网络只有一个密钥的密钥管理问题。那么您能说已离职的雇员与“丢失”的无线网卡情况一样吗?”
有线对等保密
我听说顽固的无线鼓吹者坚持无线网络比硬连线的网络更安全,因为数据是经过加密的。这极易使人误解。WEP 的设计意图只是提供等同于传统有线网络的保密级别。
Neohapsis 公司的安全性工程师 Jeff Forristal 研究了 802.11b 标准的安全性问题。正如 Jeff 对我所说的,WEP 是一种“威慑”手段 — 其设计仅此而已。不知道哪里有这样一种说法,WEP 是 VPN 的替代品。它充其量不过是一个减速器。就象可以接入、窃取有线链接一样,对无线链接也可以这样做。WEP 只是标准中定义的一项,用于提供物理层的保密性。WEP 使用一次性密码本形式的 RC4。只有在密码本只使用一次的情况下,一次性密码本的安全性才有效(因此叫作“一次性密码本”)。依 Jeff 的看法,WEP 的最大问题是实际上最多每隔 2^24 个包就会重复这个一次性密码本。在中等流量的接入点上,这也就是几个小时的事情。
拒绝服务
无线技术的最大问题是它容易受到干扰,这就使它成为拒绝服务(denial of service (DOS))攻击的主要对象。DOS 攻击也许是有意的 — 比如当某人故意堵塞某个频率时 — 或者是无意造成的,就象某人在办公室的微波炉里加热汤。DOS 攻击的危害通常不值一提,就象营业成本。毕竟,数据没有被窃取或修改,只是暂时无法接入。如果您只是被拒绝访问邮件或股票报价,这并不是大问题。但如果您的交易应用程序正在无线网络上运行,那么这个问题就非常严重了。在无线网络中,还没有好的解决方案可以防止拒绝服务攻击。
结束语
安全性管理员经常批评开发人员写的应用程序不安全或不实用 — 我也不例外。我的两个同事 Jon Klein 和 Jay Dyson 纠正了我的错误观点,他们提醒我,开发人员只是按照他们的经理吩咐的来写程序。市场营销人员通常向未来的客户推销某些功能,然后希望开发人员将其生成代码。就象 Jay 说的:“他们烧热了铁板,就不切实际地指望开发人员拿出一块牛排。”开发人员并没有得到时间或资源来确定产品功能是否在各种条件下都能达到预期效果。只要它执行了市场营销部所推销的基本功能,管理层和消费者就都会满意。但出现问题时,他们始终都会责怪开发人员,或者黑客,并且要求更多的政府法规。
开发适合无线环境的应用程序的软件供应商必须知道无线环境是不同的。不能在没有完全了解区别的情况下就将应用程序移植到这个环境中。其中一些只是常识。移动电话上的 Web 浏览器有多大用途?什么是带宽问题?它实用吗?
目前,针对无线环境应该开发的唯一应用程序是那些非任务关键型的应用程序,或者是受防火墙、用于认证的令牌设备、加密以及入侵检测系统(Intrusion Detection Systems)保护的应用程序。802.11b 标准内部并没有可以替代它们的固有安全性机制。无线网络是一个媒介,仅此而已。接入无线网络应该不是给予某人“王国的钥匙”。更重要的是,依赖于实时事务的关键应用程序不能免受拒绝服务攻击,因此它不应该在无线网络上运行。如果不能及时执行交易,那么就要损失金钱。如果医生依赖无线传输来治疗病人,那么病人就可能会丧失生命。这只是因为某人可以做某事并不表示他将要做这件事。
|