數字證書是網絡通訊中標志通訊各方身份信息的一系列數據,它提供了在互聯網上驗證通信各方身份的方法,它是權威機構-CA認證機構,又稱為證書授權(Certificate Authority)中心發行。
數字證書是經證書管理中心數字簽名的包含公開密鑰、擁有者信息以及公開密鑰的文件。證書的格式遵循ITUTX.509國際標準。X.509數字證書通常包含以下內容:
1.證書的版本信息。
2.證書的序列號,每個證書都有唯一的證書序列號。
3.證書所使用的簽名算法。
4.證書的發行機構名稱,命名規則一般采用X.500格式。
5.證書的有效期,通用的證書一般采用UTC時間格式,它的計時范圍為1950-2049。
6.證書所有人的名稱,命名規則一般采用X.500格式。
7.證書所有人的公開密鑰。
8.證書發行者對證書的簽名。
數字證書采用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個客戶可以設定特定的僅為本人所知的私有密鑰(私鑰),用它進行數據解密和簽名;同時設定一把公共密鑰(公鑰)并由本人公開,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。
數字加密是一個不可逆過程,即只有使用私有密鑰才能解密。在公開密鑰密碼體制中,常用的是RSA體制。其數學原理是將一個大數分解成兩個質數的乘積,加密和解密用的是兩個不同的密鑰。即使已知明文、密文和加密密鑰(公開密鑰),在計算上想要推導出解密密鑰(私密密鑰)是不可能的。按現在的計算機技術水平,要破解目前采用的1024位RSA密鑰,需要上千年的計算時間。
公開密鑰體系解決了密鑰發布的管理問題,客戶可以公開公開密鑰,而保留私有密鑰。使用者可以使用接收方的公開密鑰對發送的信息進行加密,安全地傳送到對方,然后由接收方使用自己的私有密鑰進行解密。
客戶可以采用自己的私鑰對信息加以處理,由于密鑰僅為本人所有,這樣就產生了別人無法生成的文件,也就形成了數字簽名。采用數字簽名,能夠確認以下兩點:
(1)保證信息是由簽名者自己簽名發送的,簽名者不能否認或難以否認。
(2)保證信息自簽發后到收到為止未曾做過任何修改,簽發的文件是真實文件。
數字簽名具體做法如下:
1)將報文按雙方約定的HASH算法計算得到一個固定位數的報文摘要。在數學上保證,只要改動報文中任何一位,重新計算出的報文摘要值就會與原先的值不相符。這樣就保證了報文的不可更改性。
2)將該報文摘要值發送者的私人密鑰加密,然后連同原報文一起發送給接收者,產生的報文稱數字簽名。
3)接收方收到數字簽名后,用同樣的HASH算法對報文計算摘要值,然后與用發送者公開密鑰進行解密解開的報文摘要值相比較,如果相等則說明報文確實來自所謂的發送者。
如果所有用戶都由同一CA為其簽署證書,則這一CA就必須取得所有用戶的信任。用戶證書除了能放在目錄中供他人訪問外,還可以由用戶直接把證書發給其他用戶。用戶B得到用戶A的證書后,可相信用戶A的公鑰加密的消息不會被他人獲悉,還相信用戶A的私鑰簽署的消息是不可全國偽造的。
非對稱加密最初可能是為了解決密匙保管與交換難題. 非對稱加密過程中用一個密匙加密只能用另一個密匙解密. 由此解決了密匙交換難題: 公匙隨意發放; 保管也大為簡化: 保護好私匙就可以了. PKI 之所以成為或 "稱為" 體系, 是包括了實施中所必需的公匙管理: 認證, 發放, 收回, 查詢等.
現在看加密過程. 以加密郵件為例. Alice 發加密郵件給 Bob.
1a. Alice 從 Bob那里或從PKI服務器得到 Bob的公匙
2a. Alice 用 Bob的公匙加密郵件, 發送給 Bob
3a. Bob 受到加密郵件, 用自己的私匙解密.
其他人如果截獲加密郵件, 由于沒有 Bob的私匙, 無法解密郵件.
簽名過程則是非對稱加密的另一用法
1b. Alice 在用 Bob的公匙加密郵件前先對郵件產生摘要Ha.
2b. Alice 用自己的私匙加密郵件摘要, 連同加密郵件(2a)發送給 Bob
3b. Bob 將加密郵件摘要用Alice的公匙解密得到解密的郵件摘要Ha. (公匙可以從 Aliceb那里或從PKI服務器得到), 并用自己的私匙解密郵件(3a).
4b. Bob 對解密的郵件產生摘要Hb, 與(3b)解密的郵件摘要Ha比較.
如果無誤, 則可確認: 1) 該郵件由Alice 發出, 因為只有Alice 有自己的私匙; 2)郵件在傳遞過程中未遭篡改, 因為郵件摘要比較結果一致.
另外, 因為只有Alice 有自己的私匙, Alice 無法否認該郵件由自己發出.
如果 PKI Service Provider 用 RootCA 對 Alice 的公匙做簽名操作, 由于RootCA的公匙可以公開獲得, 對 Alice 的公匙進行核實(4b)即可確認該公匙為 Alice 所有. 在解密的郵件中看到對方的證書信息是因為對方對郵件不但加密并且簽名, 對方的公匙已經含有有關信息. 既是簽名, 當然要你看到才對.
總結:
用對方的公匙加密, 用自己的私匙解密
用自己的私匙簽名, 用對方的公匙核實
轉自:http://wpmsn.spaces.live.com/blog/cns!C0776A11EB428FDA!333.entry?wa=wsignin1.0&sa=683191712