單證書:
用戶使用唯壹的證書及對應的私鑰進行簽名和加密操作。
簽名時,A用戶使用自己的私鑰加密信息的摘要(簽名),B用戶使用A的公鑰進行解密,對比該摘要是否正確,若正確,則B就確定了A的身份,即驗簽成功。
加密時,A用戶用B的公鑰將信息加密傳遞給B,B使用自己的私鑰解密,進而獲得信息。
雙證書:
包括簽名證書和加密證書。
簽名證書在簽名時使用,僅僅用來驗證身份使用,其公鑰和私鑰均由A自己產生,並且由自己保管,CA不負責其保管任務。
加密證書在傳遞加密數據時使用,其私鑰和公鑰由CA產生,並由CA保管(存根)。
既然單證書可以搞定壹切,為何要使用雙證書?
邏輯上:
如果簽名私鑰遺失,大不了用戶再產生壹對,並無多大影響,因此簽名密鑰沒必要交給CA;
如果加密密鑰遺失,別人發過來的信息我就沒辦法解密了,必須從CA那裏獲取存根。
單證書的話,如果私鑰丟了,妳如何恢復之前得到的信息呢?
因此從道理上來說兩個密鑰具有不同的屬性,邏輯上應該分開處理。
安全性上:
單證書增加了用戶簽名被偽造的風險
國家意誌:
國家要保證必要的時候有能力對某些通訊進行監控,如果采用單證書,除了自己誰也無法解密(理論上啦),不利於國家安全。因此很多國家法律規定使用雙證書。
雙證書簽發流程:
雖然是雙密鑰和雙證書,從流程上來看,壹遍流程即可搞定。
1,用戶產生簽名密鑰對,發送證書請求給RA/CA(請求中包含1個公鑰)
2,RA/CA向KMC請求加密密鑰對
3,簽發兩張證書,連同加密密鑰壹起發送給用戶(采用簽名證書加密)
4,用戶使用自己的簽名私鑰解密,獲得兩張證書+加密密鑰。