標籤:toc ref version nts 利用 通訊 最簡 告訴 chm
Java與數位憑證
認證(Certificate,也稱public-key certificate)是用某種簽名演算法對某些內容(比如公開金鑰)進行數位簽章後得到的、可以用來當成信任關係中介的數字憑證。認證發行機構通過發行認證告知認證使用者或實體其公開金鑰(public-key)以及其它一些輔助資訊。認證在電子商務安全交易中有著廣泛的應用,認證發行機構也稱CA(Certificate Authority)。
認證的簽發和應用
認證在公開金鑰加密應用中的作用是保證公開金鑰在某些可信的機構發布,其在協議SSL、電子交易協議SET等方面有重要的應用。
圖1顯示了一個最簡單的認證應用方法:
認證的應用步驟是:
(1) A把自己的公開金鑰PKA送到CA(Certificate Authority);
(2) CA用自己的私密金鑰和A的公開金鑰產生A的認證,認證內包括CA的數位簽章。簽名對象包括需要在認證中說明的內容,比如A的公開金鑰、時間戳記、序號等,為了簡化這裡不妨假設認證中只有三項內容:A的公開金鑰PKA、時間戳記TIME1、序號IDA。那麼CA發送給A的簡單認證憑證可表達為:CertA=Eca[TIME1,IDA,PKA];
(3) B同樣把自己的公開金鑰PKB送到CA;
(4) B得到CA發布的認證CertB;
(5) A告知B認證CertA;
(6) B告知A認證CertB。
A、B各自得到對方認證後,利用從CA得到的公開金鑰(在CA的自簽認證中)驗證彼此對方的認證是否有效,如果有效,那麼就得到了彼此的公開金鑰。利用對方的公開金鑰,可以加密資料,也可以用來驗證對方的數位簽章。
本文為了方便說明,並沒有使用從CA獲得的認證,而是通訊雙方各自產生自簽認證,也就是說圖1的A和B並沒有經過CA,不過前提是A和B之間是互相擁有對方的認證。
認證的內容和意義
| 認證核心項 |
意義 |
| Version |
告訴這個X.509認證是哪個版本的,目前有v1、V2、v3 |
| Serial Number |
由認證分發機構設定認證的序號 |
| Signature Algorithm Identifier |
認證採用什麼樣的簽名演算法 |
| Issuer Name |
認證發行者名,也就是給這個認證簽名的機構名 |
| Validity Period |
認證有效時間範圍 |
| Subject Name |
被認證發行機構簽名後的公開金鑰擁有者或實體的名字,採用X.500協議,在Internet上的標誌是惟一的。例如:CN=Java,OU=Infosec,O=Infosec Lab,C=CN表示一個subject name。
|
【Java】Java與數位憑證