J2ME安全域

MIDP 2.0标准定义了4个安全域(Security Domain),每一个MIDlet在安装之后,都被分配到其中一个安全与当中。他们是:

  • 受限制的第三方域(不被信任的第三方应用程序)
  • 无限制的第三方域(被信任的第三方应用程序)
  • 运营商保护域
  • 手机设备制造商保护域

每一个保护域都有相应的访问受保护(敏感的)API的限制级别。受保护API的访问被划分分为如下几个功能组:

  • 网络访问(MIDP标准还定义了底层网络访问权限,但是大多数手机生产商将他们贵为了网络访问类中)
  • 消息(MIDP标准还定义了受限制消息组)
  • 应用程序自动启动
  • 本地连接(如蓝牙/红外等)
  • 多媒体录制
  • 读取用户数据(包括本地文件和个人信息管理--PIM--数据)
  • 写入/修改用户数据(包括本地文件和个人信息管理--PIM--数据)
  • 位置服务
  • 坐标存储
  • 智能卡通讯
  • 鉴权
  • 通话控制
  • 拨打电话

Java标准包括了许多版本的API访问权限的管理:

  • MIDP 2.0 API访问权限
  • MIDP 2.0.1 API访问权限
  • MIDP 2.1 API访问权限 (和MSA相同)
  • JTWI API 访问权限 (仅仅定义了针对不信任第三方域的访问权限)

一个没有进行数字签名的MIDlet会被归为不信任的第三方域,该域中的应用程序会受到最大程度的访问限制。如果一个MIDlet进行了数字签名,那么根据他签名的公钥证书,手机设备将会把它分配到不同的信任安全域中。也就是说如果签名时使用的是信任的第三方安全证书,那么运行时候获得的访问权限将是信任第三方域中的;如果签名时使用的是手机设备制造商安全证书,那么运行时候获得的访问权限将是手机设备生产商域(最高访问权限)中的。其实,在MIDP 2.0的标准规范中还定义了十分复杂的安装时检验机制,更多详情请参考MIDP 2.0的标准规范。

如果你的应用程序通过了Java Verified测试,那么你就可以用UTI根证书进行签名,有了此项签名你的程序将被放置在信任的第三方域中。其他认证机构也提供了可以将MIDlet签名为受信任的第三方程序的证书,他们是:

  • Thawte
  • Verisign

因为MIDP标准规范提供的安全域策略仅仅是一个推荐规范(recommendation),有的运营商和设备生产商也可以定义自己的安全域与API访问之间的关系,这些标准包括:

  • AT&T Java安全域 (美国Cingular运营商) (entry on FN blogs)
  • 中国联通 (entry on FN blogs)
  • Hutchinson 3G (entry on FN blogs)
  • Sprint/斯普林特(美国)(entry on FN blogs)
  • T-Mobile美国 Java安全域 (entry on FN blogs)

其他的普通手机,有时也会对API访问设置不同版本的安全域级别定义

你可能感兴趣的:(J2ME安全域)