保护您的J2ME/MIDP操纵程序[Java编程]
本文“保护您的J2ME/MIDP操纵程序[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
XML 数字签名技术可以帮忙您为无线 Web 服务利用程序实现轻量级且机动的安全性办理筹划.在本文中,Michael Yuan 谈论了 XML 数字签名及其利用程序的重要性.他还供应了 Bouncy Castle 密码术包的数字签名 API,并供应了在 J2ME/MIDP 无线前端和 JSP 页后端之间的安全 XML 消息传送环境中的示例.
无线 Web 服务中的 Java 技术
基于 Java 的 Web 服务和无线 Java 开辟是 JavaOne 2002 的两个最突出的主题.它们代表遍及计算范畴中将来的后端和前端 Java 技术.
Web 服务是基于尺度 XML 通信协议的松耦合的可互操作的软件组件.Web 服务的利用使供应商可以在其核心竞争力所在的特定市场中供应服务.然后,客户可以按照其差别需求,从多个供应商挑选采购服务.这种便利意味着 Web 服务完好合适于为无线前端供应服务.无线信息设备的便利和动态本质答应移动用户操纵模块化的且动态可重新配置的后端服务.
Java 平台可以在无线 Web 服务利用程序开辟中扮演几个重要角色.在无线端,Java 2 Micro Edition(J2ME)为全部无线设备(从蜂窝电话到复杂的家用无线信息家电)供应了跨设备的兼容性、高级语言功效和大量库.J2ME 的一个关键组件是移动信息设备框架(Mobile Information Device Profile(MIDP)),它在蜂窝电话和低端 PDA 上定义 Java API 和运行时环境.由于宏大数目的低端设备,盼望在将来可以遍及布置 MIDP.
从 Web 服务端,Java 2 企业版(J2EE)已经具有全部必须的 API 和库来处理 Web 服务 XML 消息.通过 Web 服务接口或网关,可以便利地将用 EJB 技术实现的核心 J2EE 功效、JDBC API 和 RMI API 用于外部世界.为了将这些特点调集起来并启用无线 Web 服务利用程序,还提出了 J2ME Web 服务标准,目前它在 Java Community Process(JSR 172)中.
无线 Web 服务中的安全性
固然基于 Java 的无线 Web 服务在遍及移动商业世界中有一个光亮的前途,但当前技术仍不成熟.安全性还是剩下待办理的问题之一.无线通信是无线电波拦阻简单获得的目标,而无线设备几近没有任何计算本领来支持全部通信数据的强加密.此外,在后端,Web 服务运行在企业防火墙之外并利用开放消息传送协议来彼此交互.无线 Web 服务一样是易招受各种破解攻击的目标.已开辟得很好的点对点安全性技术(如 SSL/TLS 和 HTTPS)不合适于多供应商、多中间 Web 服务网络拓扑图 ― 重点必须集合在保护内容本身而不是传送内容的衔接上.固然面对新挑衅,但是 Web 服务本身还是能用来加强移动商业安全性.新兴的 Web 服务安全性标准的呈现使您可以将 Web 服务用作安全性实用程序.
在下面的段落中,我将谈论一种常用的安全性技术:数字签名.我将向您演示如安在 XML 消息中利用数字签名来保证端对端的数据完好性.我将利用一些示例来阐明若何通过在无线端上利用风行的 J2ME/MIDP 平台并在后端上利用 JavaServer Pages(JSP)技术来实现 XML 数字签名.最后,我将谈论性能问题以及在当前 MIDP 设备上利用数字签名的可行性.MIDP 编程细节不在本文范围内;假如您需求复习一下,请参阅 参考资料一节.
利用数字签名保证数据完好性
让我们假定一下,您是一位股票交易者,当您不在交易大厅时,利用蜂窝电话来跟踪股票价钱改变.在上下班途中,您的电话提醒您正在监督的一只股票的价钱已经跌入您的心理最低价.目前,您应按照此提醒买进它并操纵此低价来赚一笔吗?在您采纳任何行动之前,您必须绝对确保提醒本身是可托的.假如竞争者大概拦阻并更改消息(比方,更改股票代码),那么他便大概引诱您买进弄错的股票,并将他的高价位股票抛给您.您若何知道消息在从监督服务到您电话的途中没有被篡改呢?
数据完好性确切是通信安全性的最重要方面之一.物理上安全的网络非常高贵,并且并不覆盖范围很广的地理区域.假如您的业务必须依靠因特网才能通信,那么您必须面对因特网本身几近不供应安全性这一事实.因特网数据包在到达其目的地之前必须路过过非对话双方掌握的多个路由器和主机.数据通信在无线因特网上分外简单遭到攻击.
及时呈现的搭救工具是公钥底子设备(PKI)和数字签名.(和 MIDP 编程一样,数字签名不在本文范围内;感爱好的读者可以参考 参考资料一节来获得更多信息.)概括地说,在 PKI 数字签名情势中,每一方都有两个密码术密钥:公钥,任何人都可以利用它,而私钥,是保密的,只有某个人本身可以利用.用私钥加密的消息只能由呼应的公钥精确解密.当发送方发送消息时,他可以将相同消息的私钥加密版以及他的公钥与该消息一同发送.接纳方利用发送方的公钥来解密加密版本.假如它与明文消息匹配,那么接纳方可以知道该消息确切可托.该消息的私钥加密版用作完好性考证暗号,我们将它称为“数字签名”.
因为原始消息大概相当长,并且生成和考证数字签名的公钥算法是资源密集的,所以发送方普通计算称为“择要”的原始消息的短版本并且仅对该版本举行数字情势的签订.择要具有固定长度,它是任何长度的输入消息的单向散列;其计算速度非常快.接纳方首先考证接纳的消息能否产生精确择要.假如该择要不匹配,则在履行任何公钥算法之前回绝该消息.这可以有助于避免攻击造成堵塞,在这种攻击中,攻击者通过用假造的公钥恳求填斥服务器,以耗尽它的计算资源.
在大大都实际利用程序中,公钥本身由可托的声望部门举行数字签名,并成为“数字证书”来考证发送方的标识.不过,数字证书的处理不在本文范围内,所以在下列示例中,我将假定发送方是可托的并利用未签订的公钥来阐明办法.
定义的 XML 数字签名
正如我早先提到的那样,XML 正成为 Web 服务世界中一个主要的数据交换协议.驱动 Web 服务的 XML 消息在到达目的地之前,普通需求经过量此中间环节.因此,我们保护从端到端的通信内容是重要的.完成这一任务的最好办法是,将 XML 文档及其安全性信息(如签名、择要和密钥等等)都装运在一同,作为单个文档.
XML 数字签名是将数字签名增添到 XML 文档的 W3C 标准.发送方可以挑选对整个文档大概仅它的一部份举行数字签名.数字签名、择要和公钥被格局化成 XML 元素.那些安全性信息的额外元素可以封装整个原始 XML 消息,大概可以将它们嵌入原始消息.为了便利起见,我将在本文中利用封装格局.
为了清楚起见,我在本文中利用的 XML 数字签名示例并不完好与 W3C 符合.比方,我省去了尺度(XML 标志的尺度化)部份,因为它仅确保 XML 文档的一致性而与安全性本身无关.别的,我将密钥分成几个参数并将那些参数传送到公钥元素 KeyInfo 下的单独 XML 元素中,以替换利用编码的公钥证书.这在密钥和处理它们的 Java 代码之间成立了更明显的衔接.
以上是“保护您的J2ME/MIDP操纵程序[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |