电子签名 和 电子证书
上回我白話了一下:“對稱加密”和“非對稱加密”的來龍去脈,收到了不錯的反饋,今天接著上一次白話留下的伏筆,說一說“對稱加密”和“非對稱加密”的實際應用:電子簽名(digital signature),電子證書(digital certificate)的來歷。
因為“對稱加密”以及“非對稱加密”是兩種不同的“技術”,“技術“嘛,研究出來要“應用”到實際生活中的,當然同一種技術的“應用場景”可以是千差萬別的,正如有人發明了“充氣輪胎”,然后被運用在了汽車上,飛機上還有自行車上。電子簽名和電子證書就是“應用”(正如汽車,飛機,自行車),但是它們的誕生離不開“對稱加密”和“非對稱加密”這些底層技術(充氣輪胎),同樣,對于你來說,如果你想明白我接下來白話的“電子簽名”和“電子證書”這些“應用”,你需要先讀懂我之前白話的“技術”。
========
電子簽名 和 電子證書
ok,上回我們說到,李四給張三發消息,先拿到“張三的公鑰”,然后使用張三的公鑰加密自己的信息,然后把加密后的密文發送給張三,這樣可以保證發送的密文只能被“李四得到的公鑰”所對應的“密鑰”解密(沒有黑客的情況下,也就是張三的密鑰)。細心地同學可能發現了,我上面對“張三的公鑰”加了引號!!!
為什么???因為李四怎么確認他收到的“公鑰”就是張三本人的呢?為了更好地繼續白話,咱們這里做一個很大膽的假設,比如黑客小劉正在監聽李四和張三的對話,我們也假設黑客小劉可以輕易的修改中間傳輸的信息。那么如果你是李四,你想一下怎么才能把“機密信息”安全的傳送給張三?
好,我們分析一下,為了能把“機密信息”安全的傳給張三,李四需要:
1,加密的密文不能被破解,更嚴謹說,是不能被“輕易”破解(因為黑客小劉能截獲任何對話)
2,我們用來加密的“公鑰”必須確實來在于“張三”本人(不然如果用了黑客小劉的公鑰,那么即使李四加密了信息,也會被小劉秒破解)
至于第一點,非對稱加密已經替我們解決了密文不會被輕易破解的問題,那么我們現在只要確定所得到的公鑰是來自于“張三”本人就可以放心大膽的加密信息,并且發送加密后的密文啦!
那么李四怎么確定“公鑰”確實來自于張三本人呢?好辦!
張三:四兒,接好了,這是我的公鑰:fewfeef#¥#@#@#R###。 李四:三哥,別急嘛,12345? 張三:上山打老虎! 李四:歐了,這是我想對你說的話:$IJ4#(##(#(! 張三:好,講究!也就是說李四為了確認張三是不是張三本人,李四先和張三對了一下“暗號”,如果暗號不對,李四就不相信發過來的公鑰。
“我怎么感覺哪里有點不對呢?”,嗯,我也覺得哪里不對,因為上面說,黑客小劉正在監聽李四和張三的對話,這么明顯的,弱智的,坑爹坑隊友的暗號,黑客小劉立馬就怒了:“把老子當白癡么?!這點小伎倆我都看不出?!”,于是,黑客小劉就學會了這個暗號,當下次李四再想對暗號的時候,黑客小劉可以截斷張三和李四的信號,假裝是張三:
黑客小劉:四兒,上次那個公鑰我不用了,這是我的新公鑰:#¥#@#3@223#53R2#5##。 李四:哦.......12345? 黑客小劉:哎,你還不相信你三哥?上山打老虎! 李四:哈哈,三哥你看看這個計劃如何?2g3n&&$@#(#@) 黑客小劉:很好(邪惡的笑) 李四:...這樣的話,李四還是被騙了,hmmm,那怎么辦呢?李四想了一招,于是有了下面的對話:
黑客小劉:四兒,最近有什么新計劃沒?。 李四:沒。。。有。。。。 黑客小劉:沒有?我是你三哥,你說吧。 李四:那你先把你的證書給我看看? 黑客小劉:....神馬證...書..?上山打老虎! --- 李四已下線哈哈,原來,李四自從上次被坑了之后私下里去找了一個叫“王五”的大哥,想尋求幫助,王五說這個事不難,王五對李四說:“如果你相信我,那么我就來作證人證明張三是張三”。
李四說:“那沒問題,那你怎么證明張三是他本人?”。
“我可以給張三頒發一個證書!只要他給你看到這個證書,你就相信他是張三”,王五說。
李四思考了片刻又問道:“那我怎么證明這個證書不是偽造的呢?”
王五說:“因為我可以給你一個神器,這個神器能夠讓你分辨這個證書確實是我頒發的!”。
“哇!這么吊!那快給我!”,李四渴望的眼神中又閃爍著對王五的崇拜!
其實,這個神奇呢,很簡單,你想到了嗎?嗯,于是,王五就把這個神器交給了李四,這個神器是:“王五的公鑰”!。
哈哈哈哈哈哈。。。
“王五的公鑰”!
“王五的公鑰”!
“王五的公鑰”!
明白了么?明白了么?明白了么?重要的事情說三遍。
來,我們先來整理一下整個過程,李四苦惱于無法分辨出張三是不是他本人,于是去求助于“王五”大哥,希望王五大哥能夠幫助證明“張三”是張三,然后王五大哥找到張三,親自拿到了張三的公鑰,檢查完畢之后,準備了一份證書,同時簽上了自己的”王五“大名,交給了張三,從此以后張三再和李四聊天的時候,就可以出示自己的“證書”,證明他是張三本人了。
其實到這里,整個過程和現實生活中的“公證”過程類似,比如你辛苦努力的學習,終于得到了自己的大學畢業證,但是在現實生活中也有很多投機分子通過非法機構辦假證,這樣對像你一樣努力學習的同學就不公平,所以用人單位為了證明你給他們的畢業證確實是你的,他們怎么辦呢?他們要求你去“公證處”去公證一下你的畢業證!公證處這里就是大哥“王五”的角色,用人單位很信任“公證處”,所以只要你拿著“公證處”公證好的文件,用人單位(李四)也就相信了,這個畢業證(公鑰)確實是你的。
等一下,公證處的“公證文書”也可以造假啊。
我。。。。
嗯,是的,我還沒說完,上面王五給李四說了:
“因為我可以給你一個神器,這個神器能夠讓你分辨這個證書確實是我頒發的!”。我們也知道了,這個神器就是王五的一個公鑰,那么怎么才能做到證書沒有被修改或者偽造呢?
原來,王五的簽名不是普通的簽名,也不是像公證處那種普通的蓋章,而是“電子簽名”!因為王五他也有自己的一對“私/公鑰”,所以他把張三的“個人信息”以及“公鑰信息”用他的私鑰加密成“密文”,把這個密文當做“電子簽名”簽在了證書上,然后這個證書就被稱為“電子證書”,最后再把自己的公鑰送給了李四,那么李四收到張三給的證書之后,就可以利用王五給的公鑰進行解密證書上面的簽名,因為證書上的簽名是用王五私鑰加的密,所以相應的,也只能用王五的公鑰進行解密,李四最后將解密出來的公鑰信息和收到的公鑰信息進行比對,如果信息一致,就證明了兩個問題:
- 張三確實是張三
- 張三的公鑰確實來自張三且沒被修改過
最后的最后,因為在這里“王五”的神器(公鑰)太關鍵,它能夠決定其他人的證書是否真實有效,所以我們把“王五”的公鑰叫做“根證書”!
ok,問題順利解決!
公開密鑰基礎建設 PKI
上概念時間。。
公開密鑰基礎建設(英語:Public Key Infrastructure,縮寫:PKI),又稱公開密鑰基礎架構、公鑰基礎建設、公鑰基礎設施、公開密碼匙基礎建設或公鑰基礎架構,是一組由硬件、軟件、參與者、管理政策與流程組成的基礎架構,其目的在于創造、管理、分配、使用、存儲以及撤銷數字證書。密碼學上,公開密鑰基礎建設借著數字證書認證機構(CA)將用戶的個人身份跟公開密鑰鏈接在一起。對每個證書中心用戶的身份必須是唯一的。鏈接關系通過注冊和發布過程創建,取決于擔保級別,鏈接關系可能由CA的各種軟件或在人為監督下完成。PKI的確定鏈接關系的這一角色稱為注冊管理中心(Registration Authority,RA)。RA確保公開密鑰和個人身份鏈接,可以防抵賴。
簡單來說,PKI就是利用非對稱加密技術為開展安全信息交換提供了一種系統和規范。同時,為了整個系統能運轉,一些“特別”的機構也是需要作為“值得信任的第三方”來接受個人或公司提交的“認證申請”。
registration authority (RA), 注冊機構,負責接受來自個人和公司的“認證申請”,RA負責審核證書申請者的真實身份,審核通過之后,將申請送給 certificate authority (CA)證書機構,CA將對這些申請簽名,并頒發給申請者電子證書,然后申請者得到這些證書之后可以比如:安裝在服務器上。
CA機構比如有:digicert,verisign
HTTPS 實例分析
上面我們說到了PKI,我們來看一個具體的例子,以便讓大家更直觀的理解,我們就拿segmentfault為例。
?
我們可以看到這里顯示sf安裝了證書,并且顯示是valid,證明:
- sf是sf,我沒有被劫持到其他站點 - 我和sf之前的通信是加密的,安全的,其他人竊取不到那么瀏覽器是怎么驗證的sf的證書的呢?還記得上面我提了一句“根證書”么?因為一般我們去申請證書都是通過CA機構,同時大家都信任CA機構比如digicert,verisign,那么我們就可以事先將這些CA機構的“神器”安裝到我們的電腦上,也就是這些CA機構的"公鑰",我們也稱它們為“根證書”。這些根證書是預先安裝在我們電腦上的,所以每當我們訪問segmentfault的時候,如果segmentfault服務器上安裝了證書,他想和我們建立安全通信,就好比上面例子中,張三直接把公鑰發給李四一樣,在這里:
segmentfault說:“hi,我們建立安全通信吧,這是我的公鑰” 你的瀏覽器:“你怎么證明你的公鑰是你的呢?” segmentfault說:“這是我的證書,請查看”然后segmentfault就把安裝在服務器上的證書傳給你的瀏覽器,因為你的瀏覽器已經有一些神器“根證書”的存在,所以這些根證書(CA機構的公鑰)就可以來“解密”sf發過來的證書上的簽名,然后對比一下解密后的信息和sf證書中所呈現的信息是否一致,如果一致,就ok拉!
最后上一個截圖:
大家注意,最上面“DigiCert Global Root CA”,說明我們使用digicert這個CA組織的根證書來進行認證sf的證書,然后digicert替我們證明了sf證書的合理性:“This certificate is valid",同時給我列出來證書中的一些詳細信息,比如:證書的持有者,證書的過期時間,證書中所攜帶的“公鑰”信息(用來驗證你得到的公鑰確實是sf的),然后還有其他一些信息,感興趣的同學可以深究一下了!
轉載于:https://www.cnblogs.com/amusic/p/9599681.html
總結
以上是生活随笔為你收集整理的电子签名 和 电子证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用Layer组件弹出多个对话框(非嵌套
- 下一篇: OT后台首页点击慢