一句話說明:
數字簽名是為了保證消息傳輸的保密性,以及身份的驗證。 而數字證書是為了保證數字簽名的有效性。
案例分析:
場景:
小明現在發送一封情書給小紅。 小明用自己的私鑰加密情書發送給小紅, 小紅如果能用小明的公鑰解密, 則證明這封情書是小明寫的。
突發情況:
現在小強也喜歡小紅, 他偷偷把 小紅哪兒的小明的公鑰private_key_ming換成自己的公鑰private_key_qiang。 這樣他就可以用自己的私鑰加密消息發送給小紅, 小紅收到消息之後, 用private_key_qiang解密成功。 以為是小明給他發送的情書。 這樣小強就冒充了小明。 而 小紅無法解密小明發送過來的消息,就直接丢棄了。可憐的小明就無法發送消息給小紅了。
方案:
小明到警察局, 請求警察局用他們的私鑰加密自己的公鑰連同自己的資訊, 得到的定為CA, 小明每次法消息的時候, 将自己的消息和CA一并發送到小紅那兒, 小紅用紅安局的公鑰首先解密CA, 獲得小明的公鑰以及小明的資訊,然後再解密小明的消息。 這樣就可以自己的公鑰不會被小明替換了。
方案分析:
小強也去警察局加密自己的秘鑰和自己的資訊, 得到的是CA_qiang, 将CA_qiang發送到小紅那兒, 小紅解密獲得公鑰以及公鑰持有者的資訊。 判斷出來是小強,則無法冒充小明。 而警察局有一套系統有方案保證小紅的存放的警察局秘鑰是沒有辦法被替換的。 這套方案對應計算機領域。 根證書都是内置在作業系統中的。
公鑰私鑰的相關簡介, 建議參考:
https://blog.csdn.net/u013985241/article/details/88938035
https://www.jianshu.com/p/46e48bc517d0