随着移动商业从时髦的口号逐步变成现实,对于移动用户和无线应用程序开发人员这类人 而言,事务安全性正在成为一个重要方面。网络总体安全性的强度取决于其最薄弱的环节, 而在移动商业网络中,最薄弱环节是客户机端设备。无线信号的可截取本质以及大多数手持 设备有限的内存和计算能力,使无线系统极易受到数据窃贼的攻击。
但客户机并非移动商业网络上的唯一薄弱环节。随着 Web 服务技术成为因特网领域中日 益重要的组件,无线网络将面临一些全新的弱点。Web 服务使用开放通信协议并在组织的防 火墙之外运行,当在企业中部署这些系统时,这将会造成非常实际的安全性威胁。(请参阅 本文侧栏以获得 Web 服务的定义。)
解决方案正在形成,尽管尚需时日。尤其是,Web 服务本身可以用来提供安全性解决方案 。新的 Web 服务规范计划标准化和集成使用 XML 消息传递的先进的安全性解决方案(如 Kerberos 认证和授权、数字证书、数字签名和公/私钥加密)。可互操作的 Web 服务可以 将那些安全性解决方案用作产品和服务供应商的一类实用程序。但即使正在出现这些有希望 的解决方案,对于您如何有效地保护自己的无线应用程序及运行应用程序的网络而言,开发 平台的选择将始终起到举足轻重的作用。
在本文中,我们将重点讨论在 Java 2 Platform,Micro Edition(J2ME)上进行开发的 优缺点。我们首先对 J2ME 的基本概念和优点作简单概述。接下来,我们将深入研究基于 J2ME 的应用程序相对于其它无线备选应用程序(如 WAP 和本机应用程序)的潜在安全性优 点。我们将说明当前在 J2ME 平台上可用的应用程序安全性模型,以及该平台对于一些可预 料的未来趋势的适宜性。作为讨论的一部分,我们将提出一些增强 J2ME 应用程序的网络和 数据安全性的可能方法。在结束部分,我们将总结使用 J2ME 技术开发用于最小型无线设备 的高级安全应用程序的可行性。在整篇文章中,我们将主要集中讨论当前的和即将出台的 (2.0)MIDP 规范,假定 MIDP 是最广泛使用的 J2ME 概要文件。
因为 Web 服务承诺了在移动商业和无线安全性的发展中扮演重要角色,所以在整篇文章 中,我们都将讨论包含 Web 服务的技术。我们将花一些时间研究 Web 服务对您的 J2ME 开 发策略的影响。但是,我们不会很深入地讨论这个话题。要了解更多 Web 服务和无线应用程 序编程与安全性的关系,请参阅 参考资料一节。
J2ME 基础知识
将 Java 平台用于无线设备开发的最大优点是能够产生可在多种平台上运行的可移植代码 。但即使有这个优点,各种无线设备在内存、处理能力、电池寿命、显示屏大小和网络带宽 等方面的能力差异还是相当大的。不可能将运行在成熟的机顶盒上的应用程序的全部功能都 移植到蜂窝电话上。即使对于类似的设备(如 PDA 和高级智能电话),在两者间建立可移植 性也常常使一种设备超负荷而另一种设备利用不充分。只能在多组类似设备之间实现真正的 可移植性。因为认识到一种规格并不能适合所有设备,所以小心地设计 J2ME 以在可移植性 和可用性之间取得平衡。
J2ME 分成几种不同的配置和概要文件。配置包含用于一系列设备的 Java 语言核心库。 当前有两种配置:连接的设备配置(Connected Device Configuration (CDC))被设计用于 相对较大和功能强大的设备(如 PDA、机顶盒与网络设备);有限连接设备配置(Connected Limited Device Configuration (CLDC))被设计用于小型的资源有限的设备(如蜂窝电话和 低端 PDA)。CDC 的安全性、计算能力和 I/O 功能比 CLDC 高级得多。
每个配置上面都有几个概要文件。概要文件定义了更高级的、特定于设备的 API 库,包 括 GUI、联网和持久存储 API。每个概要文件有自己的运行时环境并适合于一系列类似的设 备。为一个特定概要文件编写的 Java 应用程序可以在所有由该概要文件支持的硬件/OS 平 台上移植。移动信息设备概要文件(Mobile Information Device Profile (MIDP))和 PDA 概要文件(PDA Profile)是 CLDC 的两个比较重要的概要文件。基础概要文件(Foundation Profile)和个人概要文件(Personal Profile)是 CDC 的两个重要的概要文件。
个人概要文件构建在基础概要文件之上,以便在高端 PDA 上运行。个人概要文件配置了 完全兼容 Java 2 的虚拟机实现。个人概要文件应用程序可以利用所有基于 Java 2 标准版 (J2SE)域的安全性管理器,以及大量可用于 J2SE 应用程序的密码术和安全性库。总之, 个人概要文件提供了成熟的安全性解决方案,它们类似于用于 J2SE 应用程序的那些解决方 案。(要了解更多关于 J2SE 安全性的内容,请参阅 参考资料一节。)
实现安全 MIDP 应用程序要困难得多,因为 CLDC 配置的数学计算能力有限并且许多底层 设备的处理能力不足。但是,MIDP 设备是使用最广泛的无线设备,因此在那些设备上启用安 全应用程序很重要。在本文中,我们主要集中讨论 MIDP 应用程序的安全性挑战以及当前可 用的或处于开发中的解决方案。
J2ME vs. WAP
我们的经验是,本机应用程序和 J2ME 应用程序都比那些以无线应用程序协议(Wireless Application Protocol (WAP))构建的应用程序提供了多得多的特性和安全性。但 WAP 是一 种瘦客户机开发协议,J2ME 是一种专用于智能应用程序的开发平台。无论是用 J2ME 还是本 机技术构建的应用程序,智能应用程序都比 WAP 应用程序多提供了下列安全性优点:
由于中间没有 WAP 网关,智能应用程序可以提供从后端到无线设备的可伸缩的端对端安 全性。当后端发展成消息驱动的 Web 服务框架时,这一点就尤其重要。
智能应用程序能够在本地存储和处理数据,因此减少了网络流量。这不仅节省了宝贵的无 线带宽和减少了延迟时间,而且降低了关键信息被截取和阻断(例如,通过拒绝服务攻击) 的可能性。
智能应用程序有效地利用了设备处理能力。胖客户机可以根据内容建立全面分级的安全性 策略,而不是无论是否需要都以相同的密钥强度加密所有东西。
因为智能应用程序比 WAP 页面能做更多的事情,所以,运行智能应用程序确实增加了软 件崩溃和/或病毒攻击的风险。接下来,我们将讨论,与那些设备本机应用程序相比,J2ME 应用程序有哪些处理和安全性优点。