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