J2ME软件签名证书和获取

内容简述

背景

一个好的J2ME 应用程序,最后就是在程序读取系统资源的时候(网络,sms,pim,file等)无需弹出 烦人的提示。本文的目的就是探讨这方面的知识。

内容介绍

J2ME 的证书可以解决上面提出的问题,本文主要是对网络上的一些解决方案跟经验做次总结

预期读者跟建议

需要对J2ME程序签证的开发者,假设开发者已经熟悉了J2ME。

由于本人水平有限,存在一些错误的地方,希望大家多多交流。

MIDlets 签证

什么是Java 数字证书

原文链接 http://www.blogjava.net/zpuser/archive/2006/07/22/59528.html

也许您对”数字证书”这一概念还很陌生,其实,数字证书就是标志网络用户身份信息的一系列数据, 用来在网络通讯中识别通讯各方的身份,即要在 Internet上解决”我是谁”的问题,就如同现实中我们每 一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。

数字证书是由权威公正的第三方机构即CA中心签发的,以数字证书为核心的加密技术可以对网络上传 输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身 份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。

数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本 人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有 一把公共密钥(公钥)并可以对外公开 ,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用 自己的私钥解密,这 样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私 钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用 私有密钥才能解密。 在公开密钥密码体制中,常用的一种是RSA体制。

用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的 文件,也就形成了数字签名。采用数字签名,能够确认以下两点:

(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;

(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。

数字证书可用于:发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办 公、网上缴费、网上税务等网上安全电子事务处理和安全电子交易活动。

字证书的格式一般采用X.509国际标准。目前,数字证书认证中心主要签发安全电子邮件证书、个人和 企业身份证书、服务器证书以及代码签名证书等几种类型证书。

数字证书的格式遵循ITUTX.509国际标准。一个标准的X.509数字证书包含以下一些内容:

证书的版本信息;

证书的序列号,每个证书都有一个唯一的证书序列号;

证书所使用的签名算法,如RSA算法;

证书的发行机构(CA中心)的名称,命名规则一般采用X.500格式;

证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950年-2049年;

证书拥有者的名称,命名规则一般采用X.500格式;

证书拥有者的公开密钥;

证书发行机构(CA中心)对证书的数字签名。

X.509数字证书结构 (第三版)

版本 号………………证书的版本标识符(例如,版本3)

序列号 ……………..标识证书的唯一 整数

签名………………..用于签证书的算法标识

颁发者 ……………..证书颁发者的唯 一识别名

有效期 ……………..证书有效时间段

主体………………..证书拥有者的唯一 识别名

主体公钥信息 ………..证书拥有者的公钥(和算法标识符)

颁发者唯一标识符…….. 颁发者的可选唯一标识符

主体唯一标识符 ………主体的唯一识别符

扩展部分 …………… 可选的扩展

字段说明:

①版本号—标识证书的版本(版本1、版本2或是版本3)。

②序列号—由 证书颁发者分配的本证书的唯一标识符。

③签名 —签名算法标识符,由对象标识符加上相关的参数组 成,用于说明本证书所用的数字签名算法。例如,SHA-1和RSA的对象标识符 就用来说明该数字签名是利 用RSA对SHA-1杂凑加密。

④颁发者—证书颁发者的可识别名(DN),这是必须说明。

⑤有效期—证 书有效期的时间段。本字段由”Not Before”和”Not After”两项组成,它们分别由UTC时间或一般的时 间表示(在RFC2459中有详细的时间表示规则)。

⑥主体 —证书拥有者的可识别名,这个字段必须是 非空的,除非你在证书扩展中有别名。

⑦主体公钥信息—主体的公钥(以及算法标识符),这一项必 须说明。

⑧颁发者唯一标识符—证书颁发者的唯一标识符,仅在版本2和版本3中有要求,属于可选项 。

⑨主体唯 一标识符—证书拥有者的唯一标识符,仅在版本2和版本3中有要求,属于可选项。

⑩ 扩展 —可选的标准和专用的扩展(仅在版本2和版本3中使用),它们包括:

◆Authority密钥标识符 —证书所含密钥的唯一标识符,用来区分同一证书拥有者的多对密钥。

◆密钥使用—一个比特串,指 明(限定)证书的公钥可以完成的功能或服务,如:证书签名、数据加密等。

◆扩展密钥使用—由一 个或多个对象标识符(OIDs)组成,可以说明证书密钥的特殊用途。有Internet策略限定,存取描述符限 定[3]等,请参见RFC2459。

◆CRL分布点—指明CRL的分布地点。

◆私钥的使用期—指明证书中与公 钥相联系的私钥的使用期限,它也有Not Before和Not After组成。若此项不存在时,公私钥的使用期是 一样的。

◆证书策略—由对象标识符和限定符组成,这些对象标识符说明证书的颁发和使用策略有关 。

◆策略映射—表明两个CA域之间的一个或多个策略对象标识符的等价关系,仅在CA证书里存在。

◆主体别名—指出证书拥有者的别名,如电子邮件地址、IP地址等,别名是和DN绑定在一起的。

◆颁 发者别名–指出证书颁发者的别名,如电子邮件地址、IP地址等,但颁发者的DN必须出现在证书的颁发者 字段。

◆主体目录属性—指出证书拥有者的一系列属性。可以使用这一项来传递访问控制信息

上面 的文章是了解数字证书的基本知识,下面这篇则介绍在java环境中怎么使用。

对于J2ME 的程序来说,基本上存在两个证书颁发机构。

Thwate。地址是: www.thawte.com

VeriSign 地址是:www.verisign.com

他们两者的区别是VeriSign 通用性比较广, 但是价格比较高。Thwate通用性差点,而且同一个证书存在有Nokia S40,S60部分机器不支持的情况,但 是价格比较便宜。

Thawte 国内代理商: http://thawte.wosign.com/Thawte_CodeSigning.htm

VeriSign 国内代理商: http://www.verisign.com/cn/authentication/

MIDlet Code signing certificates证书申请流程

VeriSign 的申请流程

证书单价: 400美元/年

一个证书,包括一对密钥(公钥/私钥对)

私钥 用于jar文件摘要的加密,公钥用于对应的解密。

用户设备认证过程:

我们把“jar文件摘要加密后 的信息“存放在jad描述文件中,用户安装我们的程序时,用户设备(手机)自动识别该属性,并对下载 的jar文件做摘要,同时对jad文件中所包含的认证证书进行合法性检测,若不合法就退出安装或提示授权 失败,若合法则提取其中的公钥对“jar文件摘要加密后的信息“解密,并相互比较,相同则安装继续, 否则就退出安装。

购买证书包括以下几步:

第一步:输入具体技术负责部门(人)的联系方式(信 息)。

*First Name: lee

* Last Name:james

* Title:Certificate for ****

* Company:Cping.net

* Address1: NO140 WenSan Road HangZhou City

* City:HangZhou

* State/Province:ZheJiang

* ZIP/Postal Code: 310012

* Country:China

* Telephone: 0571********

Fax: 0571********

* E-mail:kenen@cping.net

第二步:输入相关的证书信息 。

粘贴证书签名申请(Certificate Signing Request (CSR))文件内容,例如mbkey.csr

的内容如 下:

—–BEGIN NEW CERTIFICATE REQUEST—–

MIIBqjCCARMCAQAwajELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlpKMREwDwYDVQQHEwhIYW5nWmhv

dTETMBEGA1 UEChMKYmxv2ZNuLmNvbTETMBEGA1UECxMKRGVwIG9mIHRlYzERMA8GA1UEAxMIamFt

ZXNsZWUwgZ8BBQADgY0AMIG JAoGBAMdWU29wDQYJKoZIhvcNAQEGs8c5uaa6N4x3Q4Qp697VL17A

jKQon3447DIrDBN8xDNYBxZPKeQuGZswhuLn OGY4+Dc4r6MvcfyltjW2sjutjaBvsu+3ubzkVva0

3U9I9RKrY9UjxH1EjDq/UF7iVdI1OgZ/7ORd2YiMZEUN9TBpu zGiKS+ZupMrbbNdAgMBAAGgADAN

BgkqhkiG9w0BAQUFAAOBgQCvCxgKCWzGnWzzBPTi8D3dqNAD7ec4tsZZD+40Jo BaXzQL1LtKAcTN

pi/NPK9QFXDGnV/QFs/BNK5yjCH6NCdWZ4GelIL6V/i8zMiSB1r7kZRKXVvNtMAyNnMqW1R9481 z

x0zMlqnXqiwXnfmMFIBP4TrrZ7cgzLo8vpEjxhSgzQ==

—–END NEW CERTIFICATE REQUEST—–

第三步:检查证书信息并输入这个证书的使用密码。

第四步:输入公司的联系方式(信息)。

第五步:输入付款方式和相关信息。

第六步:确认并提交定单

申请者确认相应的提交信息。

第七步:打印确认书并查看VeriSign的 签定过程。

若确认收到定单,并已交费,则VeriSign对申请者提交的信息正确性进行签定。大致5到15 个工作日。视具体情况而定。一旦签定符合实际,则返回相应证书,申请成功结束。

申请完成,等待 VeriSign,Inc签定结果。

参考:

https://securitycenter.verisign.com/celp/enroll/selectOptions? bundle_id=JavaCS&originaTor=Java&application_locale=VRSN_US&checkPrice=false& ;promoCode=

http://eclipseme.org/docs/refSigning.html

下面是Thwate的申请地址: https://www.thawte.com/process/retail/new_devel_collect_details

3U9I9RKrY9UjxH1EjDq/UF7iVd I1OgZ/7ORd2YiMZEUN9TBpuzGiKS+ZupMrbbNdAgMBAAGgADAN

BgkqhkiG9w0BAQUFAAOBgQCvCxgKCWzGnWzzBPT i8D3dqNAD7ec4tsZZD+40JoBaXzQL1LtKAcTN

pi/NPK9QFXDGnV/QFs/BNK5yjCH6NCdWZ4GelIL6V/i8zMiSB1r7 kZRKXVvNtMAyNnMqW1R9481z

x0zMlqnXqiwXnfmMFIBP4TrrZ7cgzLo8vpEjxhSgzQ==

—–END NEW CERTIFICATE REQUEST—–

第三步:检查证书信息并输入这个证书的使用密码。

那里面非常漂亮,个个观景区都能看到奇形怪状的岩石。

J2ME软件签名证书和获取

相关文章:

你感兴趣的文章:

标签云: