移动设备(特别是手机)的J2ME和(开源)applet签名 - 我该怎么办?

时间:2009-01-06 20:03:59

标签: mobile java-me open-source signing midlet

我刚刚发现了J2ME,我喜欢它呈现的可能性。我目前正在开发一个简单的应用程序,我希望将来可能会将它作为一个开源项目发布。

作为我对J2ME和移动设备的研究的一部分,我研究了applet签名。似乎那些想要免费创建applet的人被夹在摇滚和可怕的地方之间。 Applet签名非常昂贵且极其复杂 - 在免费编码时费用不合理。

有大量的J2ME兼容设备 - 我认为不得不忽略它们并且耐心等待下一波(例如Android)是一种耻辱。

我想知道其他人是否有任何关于如何解决这个问题的想法?

更新:我发现此博客文章总结了那些感兴趣的人的问题...... http://javablog.co.uk/2007/08/09/how-midlet-signing-is-killing-j2me/

我考虑为想要获得VeriSign证书的开源J2ME开发人员建立一个非营利组织(因为证书可以无限次地签署代码)。我的目标是筹集500美元,然后让小组成员分享购买的证书。与VeriSign代表快速聊天,他们认为这个想法可行(只要该组织注册为法人实体)。

然而,由于手机制造商现在似乎正在转向支持 UTI根证书(您只能通过“Java验证”程序) - 这可能没那么有用正如我想的那样......如果有人有任何想法,那么听听他们会很棒。

3 个答案:

答案 0 :(得分:3)

我担心你正在打一场你无法获胜的战斗。使用受限制的API变得越来越难,这不是偶然的。正如您在博客文章中看到的那样,您提到的最大问题是网络运营商。即使您从Verisign或Thawte购买证书(这样便宜),您的应用程序也不会在网络运营商品牌手机中运行,因为它们有自己的CA规则。

首先,开发人员可以安装他/她自己的证书,但即使这样也不可能。这种严格的规则是由手机制造商(例如诺基亚)强制规定的,适用于所有手机(甚至没有品牌手机)。我认为这也不是偶然的,主要是因为网络运营商向设备制造商施压。

最后,尽管MIDP 3.0已经宣布多年,但实际上并没有真正发布。似乎即使Sun认为J2ME仅适用于游戏。

所有这些都已经在J2ME论坛中广泛讨论了很长时间。普遍的共识是,网络运营商不希望市场上的每部手机都可以作为智能手机运行,并且能够运行第三方应用程序。然后,每个人都可以很容易地使用更便宜,基于Web的替代方案而不是SMS消息传递作为示例。如果你是J2ME领域的新手,这可能听起来像一个阴谋论,但请记住,网络运营商销售的手机有自己的固件,甚至可以锁定基本功能(例如通过蓝牙传输照片或使用MP3作为铃声)来强制所有者使用付费服务!

我不知道智能手机(iPhone,Android,Windows Mobile)的势头是否会有所改变。请记住,限制也适用于这些平台(特别是Symbian,这对开源也非常不友好)。

答案 1 :(得分:1)

  • 您可以创建签名证书 你自我签名。您的用户拥有 愿意相信你。
  • 您可以指导您的用户如何操作 创建证书并使用它进行自签名。 然后用户必须能够 相信自己。
  • 或多或少有开放的CA;您 必须愿意相信他们 说服你的用户相信他们。

Java Tutorial has a section on signed applets会引导您完成这些步骤。

答案 2 :(得分:1)

我是J2ME应用程序开发人员,我完全赞同你的帖子。签署MIDlet的成本对于开源计划而言是无法承受的,除非您正在开发简单的游戏,否则您很快或稍后将使用受限制的API来访问套接字或位置API,只是为了命名其中两个。这是非常令人沮丧的,如果你认为权限政策并不总是在各种设备上相同,事情就会变得更糟:在某些手机上,你可以告诉操作系统信任entyre MIDlet并且从不打扰你,其他继续每次要求限制方法时都要求您许可。这很悲惨! 我重新感谢您的建议,我认为这对JavaME开发人员来说是一项了不起的成就。