http 協議之安全--------https

 

大家都知道,在瀏覽器裏輸入一個web網址,瀏覽器會發送一個http請求,請求遠方服務器上的資源。瀏覽器發送的http包信息會經過多個路由器或者交換機才能到達遠方服務器。在網絡傳輸的過程中,如果有黑客入侵到路由器或者交換機(比如家裏的路由器被黑),估計經過這些路由器的網絡數據,很容易就被網絡抓包(特別是抓出http 頭部的信息裏的cookie信息,然後把cookie信息在寫入自己的瀏覽器冒充受害者,後果就不說了……

 

關於怎樣用java進行加解密,推薦學習樑棟的《Java加密與解密的藝術》

 

https,可以理解爲socket+SSL+httphttps是在SSL上的http,底層用了SSL,應用層協議還是httpSSL底層用的是socket,對socket傳輸的數據進行加解密)

SSL主要提供了以下幾個功能

1)認證用戶和服務器,確保數據發送到正確的客戶機和服務器

2)加密數據以防止數據中途被竊取

3)維護數據的完整性,確保數據在傳輸過程中不被改變。

 

         SSL中,主要是用非對稱算法交換對稱密鑰,後續的通信過程都是用對稱密鑰和對稱算法進行加解密(對稱算法的加解碼耗時,比非對稱算法低很多;但是非對稱算法的破解可能性比對稱算法低很多。)

         非對稱算法有以下幾個特性:

              公鑰加密,只能用私鑰解密;私鑰加密,只能用公鑰解密

  

SSL通信大概過程(很簡陋的單向驗證)

             首先客戶端發送自己的SSL版本號,支持的算法,隨機數等發給服務端

 

             服務端收到請求後,發送自己的證書(帶有公鑰),支持的算法等信息給客戶端

 

             客戶端驗證服務端發過來的證書(比如證書的合法性,或者到第三方驗證機構驗證其合法性,證書裏的域名是否和訪問的域名相同,是否過期等)

 

             客戶端生成一個“對稱密鑰”,然後用服務端證書裏的公鑰對其加密(注意公鑰加密只能私鑰解密,而私鑰在服務端),並把加密算法等信息也發給服務端

 

            服務端收到客戶端用公鑰加密的“對稱密鑰”進行解密

 

             客戶端和服務端通信將使用協商的“對稱密鑰”和對稱算法進行加解密。

分享到: sina.jpg tec.jpg
參考知識庫
語音識別與合成知識庫 110  關注 | 141  收錄
計算機視覺知識庫 197  關注 | 187  收錄
自然語言理解和處理知識庫 125  關注 | 55  收錄
Android知識庫 32586  關注 | 2675  收錄
評論
liuwenjie517333
  • 瀏覽: 8830 次
  • 性別: Icon_minigender_1
  • 來自: 成都
  • offline.gif
社區版塊
存檔分類
最新評論
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章