三、數字簽名
1、 基礎:公鑰技術
a) PKI(Public Key Infrastructure)公鑰基礎設施
b) 算法RSA
c) 不共享密鑰,有兩個密鑰使用時一個保密一個公開
2、 數字簽名及身份認證技術
數字簽名:我用我的私鑰對消息進行簽名,然後將這個簽名連同消息一起發送過去。您可以使用我的公共鑰驗證您收到的簽名。
簽名方法
驗證簽名方法
3、 證書
從上面的圖中可以看出如果簽名是正確的那麼發佈這個消息的人就是他所聲稱的那個人,也就是可以由此進行身份驗證。 |
a) 那麼如何發佈公鑰呢?
b)我們將安全個體的名字和公鑰綁定起來作爲證書來發布。發佈公鑰的時候使用證書來發布。
c)證書(Certificate)
l 本質:包含多個字段的字符串
l ITU X.509 v3
l 一個典型的證書包含的內容
版本 |
序列號 |
簽名算法 |
發行人 |
有效起始時間 |
有效終止時間 |
主題 |
公鑰 |
其他字段 |
CA的數字簽名 |
l 證書的發佈一般爲一個組織
l CA(Certification Authority)證書權威機構
l 某個人想發行一個數字簽名,要找CA,告訴這個組織我的公鑰並要反向聲明告訴這個組織我就是我擁有這個公鑰的真正主人(取決於這個組織的認證方式)。
l 這時如果我傳遞消息給你時(消息和數字簽名的組合)要同包含我公鑰的證書一起發給你,現在你可以使用證書的公鑰來證實我是消息的發佈者。那麼這個證書中的公鑰是否是正確的呢?這由證書中的發佈證書組織的數字簽名來保證。
l 這時又帶來了新的問題,用於認證的證書中的CA簽名的CA公鑰由誰提供?我們想到的答案是:用這個組織的上級組織的證書來證明。
l 證書鏈:這樣一級一級向上查找證書會形成一個證書鏈。
l 根證書:證書鏈的結束位置的證書我們稱爲根證書,這個證書是CA用自己的私鑰對它的證書產生一個簽名。也就是說是自簽名的。
l 確定哪個CA是您接受的根CA是個嚴肅的問題。通常這由用戶決定。
4、 密鑰長問題
5、 公鑰與單密鑰技術結合