對於非對稱加密技術和數字簽名,很重要的一環就是公鑰的分發。
理論上任何人都可以公開獲取別人的公鑰,但是這個公鑰在分發的過程有沒有可能被篡改呢?
就比如,小倩在把公鑰分發給小高的時候,有沒有可能被其他人掉包,換成別人的公鑰?
答案是可能的,並且一旦公鑰出了問題,則整個體系的安全性將面臨巨大挑戰。
數字證書的出現就是為了此類問題,它就像生活中的證書一樣,可以證明所記錄信息的合法性。
比如證明小倩的公鑰就是屬於小倩的,並且當有人篡改小倩的公鑰,它能第一時間檢測出來,從而保證了公鑰的安全分發。
通常證書由證書認證機構(Certification Authority)來進行簽發和背書。目前,比較權威的CA包括DigiCert、GlobalSign、VerSign等。
熟悉互聯網底層協議的人對這些機構一定不陌生,因為數字證書並不是為區塊鏈而生,可以說是很早以前就有了,它的最普及應用就是https協議,這個協議主要用於網頁加密。
這個加密過程也很簡單,通常就是客戶端向服務器發出加密請求,服務器用自己的私鑰加密網頁以後,連同本身的數字證書,一起發給客戶端。
這個時候,客戶端(瀏覽器)的"證書管理器",有"受信任的根證書頒發機構"列表,客戶端會根據這張列表,查看解開數字證書的公鑰是否在列表之內。
我們Astar小倩是一個古裝風格的美男子,在瀏覽網頁的時候,經常會彈出這樣的窗口:
這就說明,小倩瀏覽的網址與數字證書記載的網址不一致,這張證書可能被冒用,並且瀏覽器發出了相應的警告。
上一期我們圖解了數字簽名的過程,現在來看看數字證書的過程。
1. 小高無法確定小倩的公鑰是否屬於他,於是要求小倩去證書認證機構(CA),為他的公鑰做認證。證書認證機構用自己的私鑰,對小倩的公鑰進行了加密,生成數字證書(Digital Certificate)。
2. 小倩收到證書之後,就可以放心了,以後再給小高寫信的時候,只要在簽名的同時,再附上數字證書就行。
3. 小高收到信之後,用CA的公鑰解開數字證書,就可以拿到小倩的真實公鑰,然後就能證明數字簽名是不是小倩了。
這節我們講述了數字證書,它的作用機制和分發機構,作為數字簽名的有效補充,作為公鑰信任的基礎,對於整個區塊鏈生態的安全管理十分重要。下一期,我們會回到非對稱加密算法中,瞭解常見的加密算法,探索區塊鏈底層技術的秘密。
閱讀更多 AA加速器 的文章