網(wǎng)上有篇叫“公鑰汽畴,私鑰,數(shù)字簽名耸序,數(shù)字證書詳解”的文章很淺顯易懂忍些。
http://blog.csdn.net/sum_rain/article/details/36896239
但是,最后有一點很是疑惑坎怪,就是既然道格可以控制蘇珊的電腦罢坝,并替換鮑勃的公鑰,那么能不能替換CA的公鑰搅窿,并用自己的公鑰來代替鮑勃的公鑰呢嘁酿?
重新回顧一下流程:
1.鮑勃拿著自己的信息和公鑰給CA要求認證。
2.CA將鮑勃的信息和公鑰兩者關系綁定后男应,產(chǎn)生摘要痹仙,再通過私鑰加密摘要再將鮑勃提供的信息和公鑰合并為數(shù)字證書再頒發(fā)給鮑勃。(這里鮑勃的信息和公鑰都是明文)
3.鮑勃發(fā)郵件時附上私鑰加密摘要后的簽名(證明內(nèi)容沒有被篡改)以及CA給的數(shù)字證書(證明發(fā)送者是鮑勃殉了,且公鑰是鮑勃的)
4.蘇珊在收到郵件后先用CA的公鑰解密得到數(shù)字證書中的摘要开仰,然后將證書中的鮑勃信息和公鑰通過hash算法得到的摘要與數(shù)字證書中的摘要進行對比(確保數(shù)字證書沒有被篡改)。
問題來了薪铜,如何保證CA的公鑰沒有被篡改呢众弓?從而保證其中的鮑勃信息和公鑰都是對的呢?
答案是沒法保證CA的公鑰沒有被篡改隔箍。通常操作系統(tǒng)和瀏覽器會預制一些CA證書在本地谓娃。所以鮑勃應該去那些通過認證的CA處申請數(shù)字證書。這樣是有保障的蜒滩。
但是如果系統(tǒng)中被插入了惡意的CA證書滨达,依然可以通過假冒的數(shù)字證書發(fā)送假冒的鮑勃公鑰來驗證假冒的正文信息奶稠。所以安全的前提是系統(tǒng)中不能被人插入非法的CA證書。
5.蘇珊得到CA認證的鮑勃的公鑰后捡遍,解密郵件中的簽名锌订,得到摘要再與將正文Hash后的摘要進行對比(確保正文沒有被篡改)