根證書的應用和信任基礎

前言

人生在世總要相信點什麼,信親人、信朋友、信你面前的陌生人,即便這些你都不信,也要信自己吧,假如連自己都不信了,那在地球上恐怕很難生存了。

我們把錢存入銀行,因爲我們相信當我們需要用錢時可以通過銀行卡把錢取出來;我們拿着車票準時來到候車大廳,因爲我們相信除非特殊情況,我們買的那趟車絕不會提前丟下我們而去;遇到糾紛我們會選擇打官司,因爲我們相信法官最後會給我們公正的判決結果。

生活中我們信任自己的經驗,信任自己的親人朋友,並依賴這些信任來做許多事情,這些信任是我們正常生活學習的前提,缺了這些我們將寸步難行。而在網絡中我們同樣需要信任,這些信任是築造網絡社會的基石。

有些信任是有條件的,比如銀行貸款時不能通過空口白話就借來白花花的銀子,而抵押物是貸款銀行爲了相信你附加的籌碼;有些信任是無條件的,比如前面一篇總結 《認證、HTTPS、證書的基本含義》中提到的根證書,我們必須無條件信任,否則我們將置身於網絡猜疑的海洋之中,無法正常利用網絡帶給我們的便利。

信任鏈

我們常聽說 HTTPS 更加安全,它是通過非對稱加密技術,讓我們可以在不確定的網絡環境中可以確認對方的身份,安全傳輸密鑰,但這一切都是有前提的,你得相信你的操作環境是安全的,你沒有被人監控,你的電腦沒有被人控制,你的數據沒有被人篡改,拋開環境談安全都是耍流氓~

好了,我們可以回顧一下,要想驗證一個網站的身份,我們需要得到網站的公鑰,如果可以解開網站拿私鑰加密的消息,我們就證明了網站的身份,而網站的公鑰不能由網站直接發給我們,需要找權威機構給它證明,相當於找了個擔保人。

權威機構會用自己的私鑰把網站的信息和公鑰合在一起生成證書,當我們訪問網站時首先得到這個證書,然後用權威機構的公鑰來解開證書內容,得到網站的信息和網站的公鑰,然後進行信息比對和公鑰解密來認證身份,這時我們需要思考,權威機構的公鑰從哪裏來?

權威機構可以找更加權威的機構按照相同的方式給它做證書,這樣一環一環的就走下去,形成了信任鏈,然後就無窮無盡了,一個權威機構給另一個權威機構證明,我可以玩到天荒地老,到底什麼時候是個頭啊,其實我們可以人爲的確定一個,那就是根證書,他不需要找別的人給它證明,如果一個網站證書最終信任鏈頂端是有效的根證書,那麼網站身份被確認。

根證書

接下來看看根證書在哪呢?它內置在我們的瀏覽器(Firefox)和操作系統中,我們需要無條件的信任,從理論上講沒辦法判斷根證書的真假,它是自證清白的。這裏需要注意,根證書不止有一個,它可以有很多個,“根”只是說明信任鏈到此爲止,整條信任鏈上的節點都是“可信”的。所以說還是不要隨意安裝根證書,因爲有了它就可以在你的電腦爲所欲爲。

說到這裏有些人會想,根證書內置在操作系統和瀏覽器(Firefox)中,如果我下載一個被惡意修改的瀏覽器豈不是危險了,這種擔心是有必要的,所以請儘量在正規網站下載,可是怎麼證明哪些網站是正規網站呢?可以使用系統自帶的根證書判斷。

如果我的系統是盜版系統,根證書被人改過,那不是更危險了,事實確實如此,算了吧,還是暫時不相信網絡了,我去買個系統光盤吧(不知道現在還有沒有人用光盤裝系統),可是賣你光盤的人能保證光盤的內容不被篡改嗎?你說那不能,因爲他是微軟高級經理的小舅子,應該不能賣盜版碟吧。

即使光盤不是盜版的,但是製作光盤的內容有沒有人動過手腳呢?這些我們還是無法確認,我們能做的只是儘可能的在正規渠道購買正版系統,這種情況遇到證書被篡改的情況很小,然後就無條件相信這個系統了,這就是我文章開頭說的,我麼總要信點什麼,試想如果蓋茨在 Windows 操作系統的證書中留有後門,你又能做些什麼呢,所以還是不要糾結了,既然用就在正常使用的前提下信任它。

應用及分析

說是應用,實際上我只是想吐槽而已,在吐槽之前我們應該瞭解,證書可以跟各大證書機構(也就是各種CA)來買,也可以自己生成,可能有人會想了,自己生成挺好啊,不用花錢誰還買啊?可是剛剛說過了,跟CA買的證書都是操作系統內置證書認證過的,自己生成的證書操作系統和瀏覽器可不認,那怎麼辦呢?

乾脆自己安裝個根證書,自己給自己認證得了,用戶豈是你想讓安裝就安裝的,別說,還真是這樣,只要你說的情況很危急,必須安裝,那麼大多數的小白用戶是會自動安裝的,這時你想到了誰?

不知道大家想到了誰,反正我是想到了建行網銀證書和令人“可歌可氣”的12306,接下來簡單扒一扒他們兩個的故事…

建行網銀證書

最先接觸的證書就是建行網銀證書,我的第一代網銀盾用了將近10年,去年纔剛剛升級成2代,可以說真的是太穩定了,不知道做網銀的產品經理是誰,你簡直就是程序員的福音,在2020年的今天打開建行的官網,首頁倒是好看了許多,但是有些內容,比如證書安裝、U盾介紹的頁面還是原來醜醜的樣子。

ccb2

之前辦理U盾時還花錢,根本都不懂啊,使用U盾必須裝證書啊,不裝就不安全啊,現在回想起來,和我說這話的人可能根本就不懂什麼是安全,什麼是不安全,反正裝就是了,每次付款都要啓動建行驗證程序,這也是我手動安裝過的次數最多的證書,是它開啓了我網上購物的里程。

已經2020年了,打開建行的官網依舊提示我正在使用不安全的連接,使用網銀依舊讓我自己安裝證書,可能作爲一個大銀行,官方網站遲遲不啓用 HTTPS,使用網銀盾堅持要用戶自己安裝證書,應該不僅僅是證書價格的問題,可能還有什麼其他的原因。

ccb3

神奇的12306

畢業後直接在12306買票的次數就少了,現在一般使用 APP 來解決,前一陣發現12306居然不要求自己安裝證書了,仔細一查原來從2017年開始,12306官網就購買了 DigiCert Inc 認證的證書,確實是一個進步的boy,終於捨得花點錢買證書了,作爲一個巨大型的網站,它方便了人們購票的方式,是值得歌頌和稱讚的,但是每次購票前還要安裝煩人的證書,確實挺令人生氣的。

12306_0

原來“根證書”3個紅字顯示在頁面正中間,確實起到了提醒的作用,挺扎眼的,不過那已經一去不復返了,我再放個圖,大家一起回顧一下。

12306

ESET SSL Filter CA

最後放一個例子,讓你感受下根證書的威力,ESET是總部位於斯洛伐克布拉迪斯拉發的一家世界知名的電腦安全軟件公司,主要做殺毒軟件,前不久複習 HTTPS 知識的時候發現,我訪問各大網站的證書全都變成了 ESET SSL Filter CA,這是什麼鬼,難道 ESET SSL Filter CA 是個特別大的證書機構?

當時還沒有意識到是殺毒軟件的證書,以爲大家都是買的這家證書,後來發現不太對,百度、谷歌、GitHub、Stack Overflow,怎麼都是一樣的證書,繼續深究才發現被“竊聽”了。

我們知道使用 HTTPS 通信因爲使用了非對稱加密,沒有私鑰是無法竊聽加密內容的,但是這款殺毒軟件做到了,它有一個HTTPS 內容過濾的功能,做了我的電腦和各大網站的中間人,按理說 HTTPS 是可以檢測出中間人的,但是這款軟件在電腦中安裝了根證書,所有瀏覽器認爲它是合法的,理論上可以竊聽你所有內容,甚至爲所欲爲。

總結

  • 信任不僅是人類社會的基石,在網絡世界同樣重要
  • 證書之間的層層信任構成了信任鏈,而根證書是不需要被其他人證明的
  • 不要隨意安裝來歷不明的根證書,那樣可能會使的電腦更容易遭受到攻擊

==>> 反爬鏈接,請勿點擊,原地爆炸,概不負責!<<==

若衣食無憂,誰甘願拼搏!努力鞭策自己無非是爲了掙得可以選擇生活的權利~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章