昨天我們了解了 PKI,也搞清楚了公鑰和私鑰的作用。私鑰自己保管,沒問題;公鑰則可以發給所有人,這乍聽之下也沒什麼問題。
但你有沒有想過一個關鍵問題:我們怎麼知道「某把公鑰」真的是屬於聲稱它的人?
想像一下,假如我在拍賣場標到了那瓶珍貴的果汁,拍賣方還很負責任地給了我一份保證書,上面附有一個「果汁店老闆的數位簽章」,我用附上的「果汁店老闆的公鑰」驗證之後也成功了。
可是等等,這個「果汁店老闆的公鑰」真的就是他的嗎?萬一是「便當店老闆」雇了駭客掉包,給了我一組假的公鑰,那這份看似有效的保證書其實是假的!
因為如果我能用假的公鑰驗證簽章,那就代表這根本不是果汁店老闆用私鑰簽出來的,而是某個人用假的私鑰加密製造出來的偽簽章。
這就引出了今天的主題:數位憑證。它是用來保證「這把公鑰真的是某人(或某公司)的」身份保證書。
為了解決上面的問題,PKI 體系中誕生了一個角色跟我們的紙本身份証相似的東西,它就是數位憑證 (Digital Certificate)。
一個合格的數位憑證,就像身份証一樣,上面有固定且資訊清楚的欄位,包含:
如同我們的身份証是由戶政事務所簽發,在數位世界中,負責驗證身份、具有公信力,負責簽發數位憑證的第三方機構就是 CA (Certificate Authority)。
我們的電腦作業系統和瀏覽器在出廠時,就會內建根憑證 (Root Certificate) 的公開金鑰在裡面;當收到一份數位憑證時,電腦就會自動檢查,假如有問題,就會跳出「憑證來源有問題,請勿信任」的提示來提醒你。
在臺灣,比較知名的 CA 有像是發行自然人憑證的內政部憑證管理中心 (MOICA),以及臺灣網路認證公司 (TWCA)。
現在讓我們把整流程串起來,走一次數位簽章的完整流程吧!
這樣串起來是不是就明確多了?只要看懂這些,你就已經具備了看懂電子簽章核心技術的能力囉!
從明天開始,我們就要進入 PM 的日常實戰場景,看看這整套技術在真實世界中是如何運作。