程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> J2ME軟件簽名證書和獲取

J2ME軟件簽名證書和獲取

編輯:關於JAVA

內容簡述

背景

一個好的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:[email protected]

第二步:輸入相關的證書信息 。

粘貼證書簽名申請(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-----

第三步:檢查證書信息並輸入這個證書的使用密碼。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved