當前位置:
首頁 > 知識 > 瀏覽器提示「證書錯誤」到底是什麼意思?

瀏覽器提示「證書錯誤」到底是什麼意思?

我們在上網的時候會發現有些網址是https開頭的,很多人都知道https代表著安全和加密,但有時候當我們訪問https網址時,會遇到下面這樣的證書錯誤:


瀏覽器提示「證書錯誤」到底是什麼意思?


卧槽這什麼鬼?好像很多人在這裡都會直接無視瀏覽器的警告,然後點「繼續瀏覽此網站(不推薦)」,可是「不推薦」三個字這麼大呢,還一個大大的紅叉呢,怎麼看都覺得挺不靠譜的。話說回來,「證書」到底是個什麼東西呢,它是用來幹什麼的呢?

保衛信息安全的SSL/TLS


我們平時上網訪問的http開頭的網址都是不經過任何加密的,換句話說,你的瀏覽器和網站伺服器之間的通訊是能夠被任意竊聽、劫持和篡改的,聽上去很恐怖是吧?實際上這樣的事事每天都在發生,只是其中絕大部分都是無關緊要的信息罷了。不過總有一些信息我們絕對不想讓別人知道,比如說賬號、密碼、銀行卡之類的,但有一些服務需要我們提交這樣的信息,這時https便承擔起了保護敏感信息安全的重任。其實,https相當於在普通的HTTP協議上額外增加了一層用於加密的SSL/TLS協議,除了HTTP之外,其他一些如FTP、IMAP等協議都可以通過SSL/TLS來實現安全傳輸。


然而,加密並不是一件很容易的事情,而是一個十分縝密而複雜的學科,我們稱之為「密碼學」(cryptography)。如果我們研究一下SSL/TLS協議的構造,會發現它實際上是一個集人類所有密碼學技術之大成的產物,其複雜程度可想而知。為了說清楚「證書」到底是怎麼回事,我們先簡單看看SSL/TLS都做了些什麼。


一把鎖和兩把鎖

SSL/TLS中使用對稱加密演算法對傳輸的信息進行加密,同時還會使用公鑰密碼演算法來交換對稱密碼的密鑰。這句話聽上去有點繞,我們用兩個小故事來說說為什麼會這樣。


小明要給小紅寄一份秘密禮物,這個禮物挺大的,於是他將禮物裝在一個大箱子裡面,然後在外面加了一把鎖。小紅收到之後,她需要打開箱子上的鎖,但是鎖是小明的,只有小明有鑰匙。怎麼辦呢?小明可以約小紅在咖啡館見個面,然後當面把鑰匙交給她,但在互聯網中我們並沒有這麼一條路可以走,我們現在假設他們見不了面,看看小明還有什麼別的辦法沒有。


小明很聰明,他想了一個巧妙的辦法。他把禮物箱子的鑰匙裝在一個小盒子里,然後加上了一把鎖寄給小紅,並在盒子外面寫了一張紙條,讓小紅收到盒子之後在原來的鎖旁邊再加上一把她自己的鎖,然後把盒子再寄回給小明。小紅照做了,於是盒子又回到了小明手裡,現在上面有兩把鎖,一把是小明的,另一把是小紅的。小明用鑰匙把自己的鎖打開並拿掉,然後把盒子又重新寄回給小紅,現在盒子上只有小紅的鎖了,於是小紅可以用自己的鑰匙把鎖打開,取出裡面的禮物箱子鑰匙,再用這個鑰匙打開那個禮物箱子。


誠然,小明一開始就可以用兩把鎖的方法來直接寄他的禮物箱子,但是這裡有個問題,兩把鎖的方法需要把東西來回郵寄三次,而禮物箱子很大,不方便這樣折騰,而如果只是一把禮物箱子的鑰匙,來回折騰幾次也問題不大。


其實,SSL/TLS就是這樣來加密信息的。一把鎖的方法相當於對稱密碼,它速度快效率高,可以處理大量的數據,但對方需要密鑰才能解密,而禮物箱子的鑰匙就是對稱密碼的密鑰;兩把鎖的方法相當於公鑰密碼,它速度慢,不適合處理大量的數據,但可以用它來安全地傳送對稱密碼的密鑰。

真的鎖和假的鎖


你以為有了加密就萬事大吉了?假設小蘭想騙到禮物箱子的鑰匙,她有什麼辦法呢?我們再回憶一下兩把鎖加密的那個過程,一開始小明把加上自己的鎖的盒子寄給小紅,如果小蘭能夠在途中把這個盒子攔下來,她可以加上自己的鎖然後再寄回給小明,小明其實沒辦法判斷新加的那把鎖到底是不是小紅的,他把自己的鎖打開並去掉,然後重新寄出去,這時小蘭再次把盒子攔下來,現在盒子上面只有小蘭的鎖,於是小蘭毫無難度地拿到了禮物箱子的鑰匙。


上面這個故事的關鍵問題在於,小明怎麼知道新加的那把鎖是不是小紅的?我們假設小紅的鎖上面有個防偽標籤,比如是個二維碼,小明用手機掃描這個二維碼,可以跳出一個公安局的網頁來驗證小紅的身份,這樣就可以防止小蘭用假的鎖來招搖撞騙了。


其實,小紅鎖上的這個防偽標籤也就是我們在SSL/TLS里所說的「證書」,它可以讓我們驗證網站的身份,確保我們的信息不被小蘭這樣的壞人騙走。小紅的防偽標籤是由公安局頒發並且提供驗證的,網站的證書也差不多,它是由一些叫做「認證機構」(certificate authority)的組織頒發並提供驗證的。


盡職盡責的瀏覽器

那麼,瀏覽器為什麼有時候會彈出證書錯誤的提示呢?那是因為瀏覽器在對網站提供的證書進行驗證的時候發現了一些問題。在訪問https網址時,瀏覽器會對網站提供的證書進行驗證,通常包括這樣幾條:


1. 證書是否由可信的認證機構頒發並經過該認證機構的驗證


2. 證書是否在有效期內,是否已經被聲明作廢


3. 證書中記錄的域名是否與正在訪問的網站域名一致

你看,你的瀏覽器還是相當專業和負責的,那麼反過來說,如果上面這些驗證中的任何一條出了問題,瀏覽器就會彈出警告說這個證書是有問題的,也就是我們開頭看到的那個畫面。


證書錯誤到底代表什麼?


那麼,證書有問題又意味著什麼呢?我們一條一條地看。


首先,如果第1條遇到了問題,說明這個證書不是由可信的認證機構頒發的。證書也只不過是按照特定演算法所生成的數字簽名,因此實際上任何人都可以自己給自己頒發證書,只是可信或不可信的區別而已,就好像你可以自己給自己發一張身份證,但別人可不相信這個證,而公安局給你發一張身份證就非常可信。有些網站會使用自己頒發的證書,其中最有名的莫過於買火車票的12306了,但對於瀏覽器來說,網站自己頒發的證書是不可信的(下圖),於是會彈出警告,因為不可信的證書很容易被偽造,就好像你可以給自己發身份證,也可以給你爸發一張身份證,反正這些身份證都不可信,別人也就無法辨認真偽。


瀏覽器提示「證書錯誤」到底是什麼意思?


其次,如果第2條遇到了問題,說明網站的證書已經過期或者作廢了,這也有可能代表這個證書是偽造的。證書之所以難以被偽造,是因為只有擁有證書私鑰的人才能生成合法的證書,而證書私鑰就相當於我們剛才故事中小紅自己的鎖所對應的那把鑰匙。萬一證書的私鑰泄露了,別人就可以偽造證書,在這種情況下,網站會聲明這張證書作廢,你的瀏覽器遇到這樣的證書也會彈出警告,因為作廢的證書很有可能是偽造的。


最後,如果第3條遇到了問題,說明證書中記錄的域名和你實際訪問的域名不一致,比如說你上的明明是百度,但證書卻是360的,這有可能表示有人用其他網站的證書進行掉包,實際上也相當於是一種偽造,因此瀏覽器也會彈出警告。


總之,證書錯誤意味著瀏覽器懷疑這個網站的證書可能被偽造了,而一旦證書被偽造,就像上面故事裡的小蘭一樣,你的通信內容就有可能被別人攔截甚至篡改,而https網址上所傳輸的信息往往都非常敏感,比如賬號密碼以及銀行交易信息等等,因此一旦被竊取,後果可能會非常嚴重。


我該怎麼辦?


如果遇到瀏覽器彈出證書錯誤,貿然忽略錯誤而繼續訪問網站往往是有風險的,尤其是在咖啡廳等公共Wifi環境中,因為這樣的環境十分有利於發動證書攻擊。如果你在訪問像銀行、支付寶等網站時遇到證書錯誤,還是聽聽瀏覽器的建議吧,不要繼續訪問了,如果你碰巧在公共Wifi環境下,最好回家或者換個地方再試試看。對於12306這樣堅持使用自己頒發的證書的網站,可以將網站的證書添加到電腦的可信證書列表中,但這樣做本身也是存在風險的,因為不可信的證書很容易被偽造,當然,對於這種情況,作為用戶來說也並沒有什麼更好的辦法。


最後再說一句,即便瀏覽器沒有彈出證書錯誤,也不能排除有惡意程序在你的電腦上劫持證書的可能性(對此有興趣的可以搜索一下「Superfish」),因此提醒大家保持良好的上網習慣,不要點擊可疑的鏈接或者運行可疑的程序。


請您繼續閱讀更多來自 知識百科 的精彩文章:

有更多的「地球」嗎?
吃雞蛋不吃蛋黃對不對?
戰鬥機飛行員是怎樣解決內急的?
您可能感興趣

焚書坑儒就真的是錯誤嗎?
為什麼眼線老是暈開?5種錯誤示例讓你一看就懂
哪些無意識錯誤可以告訴你是不是愛TA?
哪些星座不敢承認錯誤?
什麼?你表白又失敗了?那可能是你方法錯誤了
為什麼愛因斯坦永遠不會被證明是錯誤的?
漫畫:男秘書理解錯誤老闆意圖會怎麼辦?
不知道自己為什麼抑鬱?看看這10條錯誤思維你有嗎!
毛澤東明確表示對誰要「三七開」?誰能想到他的三分錯誤指什麼?
關於瑜伽都有哪些錯誤的認識?看完這篇文章你就知道了
這些是換尿布的錯誤方法,快來看看你犯錯了嗎?
健身效果不理想?你肯定也是犯了這幾個錯誤!
教授指出「山無棱」是錯誤的,沒想到瓊瑤弄錯的原因竟然是……
你為什麼瘦不下來?因為你犯了這些錯誤
正確卸妝才能避免細紋,這些錯誤你也犯了嗎?
看完這些錯誤認知 你還敢隨意購買頸椎牽引器嗎
你知道嗎:中醫食療並非萬能!這些錯誤認知你還在犯嗎?
玻尿酸=毀容?這些錯誤的做法你還在做嗎?
孩子不願意分享是錯誤嗎?它背後的原因是什麼?