https協議是如何保障數據安全的?整個網絡架構如何保證數據安全?qq和微信的消息是否能被騰訊知道?

如果我們要在web的通信過程中保證數據安全,

那就必須保證兩點:
    1, 確保我們要訪問的服務器的真實性
    2, 在前一條的基礎之上構建起來一個不被監聽,不被僞造,不被修改的安全的數據傳輸通道

    只要能夠保證這兩點,就可以保證數據安全

那麼,如何構建出來一個安全的數據傳輸通道呢?
我們一般都會想到將數據進行加密,我們來看一看使用傳統的加密方式能不能實現數據安全:

1, 使用對稱加密:
        假使服務器告訴了客戶端一個祕鑰,服務器在發送數據的時候通過祕鑰進行加密,數據包到達客戶端之後客戶端再通過這個祕鑰進行解密,這樣我們就可以進行安全的數據交互了,
    
    問題:
        這個祕鑰該如何傳遞呢,服務器該如何在保證黑客竊取不到的情況下將祕鑰發送給客戶端呢?

2, 使用非對稱加密的第一次嘗試:
        非對稱加密由一個公鑰和一個私鑰構成,他們共同被稱爲一個祕鑰對兒,加解密的原則是公鑰加密私鑰解密,私鑰解密公鑰加密,客戶端請求服務器,服務器發給客戶端公鑰,之後客戶端發送的每一條數據都經過公鑰加密之後再發送給服務器
        當數據到達服務器,服務器使用自己的私鑰解密即可,這個過程中,雖然黑客很有可能獲得公鑰,但是他沒有私鑰因而解不開客戶端發給服務器的數據,從而保證了數據的安全,
    問題:    
        雖然解決了被監聽,被修改的問題,卻沒有解決被僞造的問題,由於黑客知道了公鑰,他就可以僞造客戶端的身份,向服務器發送消息,
        
3, 使用非對稱加密的第二次嘗試:
        客戶端先告訴服務器,客戶端的公鑰是什麼,然後客戶端使用私鑰對數據進行加密,信息到達服務器哪裏,服務器使用客戶端發給它的公鑰解開即可,這個過程中黑客雖然拿到了我的公鑰,但是由於拿不到我的私鑰,所以黑客仿造不了我的身份
    問題:
        雖然解決了被僞造問題,但是信息的內容完全被黑客知道了,客戶端發給服務器的使用私鑰加密的信息,黑客直接使用他獲取的公鑰打開即可,這些信息就完全被公開了
        
4, 使用對稱加密和非對稱加密結合的辦法:
                客戶端先請求服務器的公鑰,服務器發給客戶端公鑰,之後客戶端使用公鑰加密一個祕鑰,這個祕鑰是客戶端提前準備好的,客戶端把通過公鑰加密之後的祕鑰發給服務器,
                服務器使用私鑰打開,這樣,客戶端和服務器就都獲得了祕鑰,接下來服務器放棄非對稱加密的方式,轉而使用對稱加密的方式,由於黑客不知道服務器的私鑰,進而得不到客戶端生成的那個祕鑰,因此保證了數據安全
    問題:
        如何保證我訪問的服務器就是我想訪問的那一臺呢?即如何防止服務器身份被僞造呢?

5, 使用ca認證:
        舉個例子,我們是信任谷歌公司的,谷歌公司信任它旗下的谷歌瀏覽器,谷歌瀏覽器信任賽門鐵克(一個ca認證機構)公司,賽門鐵克公司信任英雄聯盟的官網,因此,當用戶使用谷歌瀏覽器訪問英雄聯盟官網的時候,
        谷歌瀏覽器就會顯示一個綠色的圖標並告訴你,這是個受信任的網站,這裏就使用到了信任的傳遞。回到我們的例子中去,我們現在就需要一個客戶端和服務器都信任的東西,而這就是一些ca機構,如賽門鐵克(Symantec),
        他們存在的意義就在於向整個互聯網證明的某個網站的真實性和所有權,
        如果你需要開一個網站,你必須向ca機構上傳一些你的圖片,資料,註冊信息等用以向ca機構證明你對你的網站的所有權,當認證通過之後,ca機構就會頒發給你一個數字簽證證書,其實就是你的網站用來做非對稱加密的祕鑰對兒,
        這樣,當有用戶使用谷歌瀏覽器訪問你的網站的時候,谷歌信任了賽門鐵克,賽門鐵克證明了你的網站的合法性,經過一層一層的信任傳遞,谷歌瀏覽器最終會向用戶聲明,這是一個受信任的網站,以上就是真實的網絡安全通道的建立過程
        

6,最後的總結:
        在https協議的安全保護機制之下,如果有客戶端向服務器發起請求,服務器就會發給客戶端經由ca機構認證(使用ca機構的公鑰加密)過的公鑰,客戶端拿到數據包之後,會使用ca認證機構的私鑰解密,如果解密成功,則說明這個網站是一個
        經過了ca認證之後的受信任的網站,然後客戶端在本地生成一個祕鑰,並使用網站發給客戶端的公鑰加密,之後客戶端將加過密的祕鑰發送給服務器,服務器再使用自己的私鑰解密,即可拿到客戶端產生的祕鑰,這樣,服務器和客戶端就都拿到了祕鑰,就可以使用
        對稱加密進行安全通信啦,這個過程中,黑客即使拿到了網站的公鑰,也無法破解客戶端發給服務器的數據包,這裏的ca認證在於解決服務器的真實性問題,這裏由客戶端生成的祕鑰是爲了解決構建安全通道的問題。
        

    最後:
        其實說了這麼多,安全通信最終使用的還是對稱加密,但由於客戶端和服務器的分離,迫使我們解決祕鑰的安全傳遞問題,我們必須使用非對稱加密來保證客戶端向服務器傳遞祕鑰的過程的安全性,一旦祕鑰傳遞成功,對稱加密的條件即成立,安全通道問題也就解決了,最後,只需要使用ca認證機構確定網站的真實性即可。
        那麼,qq,微信的聊天內容會不會被騰訊知道呢,理論上是不能的,騰訊就像黑客一樣,即使他再邪惡,在網絡傳輸中,也只能起到傳遞數據包的作用,即使他知道公鑰,也解不開數據包,自然是獲取不到明文數據的。
        而就像我剛纔說的,“理論上”嘛,你懂的!

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