通訊使用明文(不加密),內容可能可能會被竊聽
不驗證通訊方的身份,因此可能遭遇偽裝
無法驗證報文的完整性,所以可能已被篡改
(1)加密處理和認證
如果在http中使用未經加密的明文,比如在web頁面中輸入了信用卡號,如果這條通訊線路找到竊聽,那麼你的信用卡號就暴露了,另外服務端和客戶端都是沒法確認通訊方的,所以很有可能不是在與理想中的通訊方進行通訊,所獲取到的報文可能是被篡改過的
為了統一解決這些問題,需要在http的基礎上加上加密和認證的機制
(2)https是身披ssl的http
https並非是一種新的協議,它只是在http通訊介面處使用了部分ssl或者tls協議罷了,通常都是http和tcp通訊,現在變成了先和ssl通訊,再由ssl與tcp通訊
(3)相互交換秘鑰的公開加密技術
對稱加密:採用單鑰密碼系統的加密方法,同乙個金鑰可以同時用作資訊的加密和解密,這種加密方法稱為對稱加密,也稱為單金鑰加密。
非對稱加密:公開金鑰(publickey:簡稱公鑰)和私有金鑰(privatekey:簡稱私鑰)。公鑰與私鑰是一對,如果用公鑰對資料進行加密,只有用對應的私鑰才能解密
https使用的是混合加密,因為如果只使用對稱加密,需要在通訊中傳輸共享秘鑰,這個過程有可能會被攻擊者劫持和篡改,如果秘鑰落入別人手裡那麼加密就沒有意義了,如果單單是使用非對稱加密,公鑰加密私鑰解密這種新式,目前的技術是做不到憑著密文和公鑰獲取明文的,不過這樣的方式效率實在是太低了,所以https採用了兩周的優點,使用非對稱加密的形式來傳遞對稱加密的共享秘鑰
然而採用第三方機構證書的形式是包裝了,非對稱加密公鑰是真實可信的,公鑰密碼在數字簽名技術裡面扮演舉足輕重的角色,但是如何保證公鑰是合法的呢,如果是遭到中間人攻擊,掉包怎麼辦?這個時候公鑰就應該交給乙個第三方權威機構來管理,這個機構就是認證機構(certification authority)ca,ca 把使用者的姓名、組織、郵箱位址等個人資訊收集起來,還有此人的公鑰,並由 ca 提供數字簽名生成公鑰證書(public-key certificate)pkc,簡稱證書
https其實是有兩部分組成:http + ssl / tls,也就是在http上又加了一層處理加密資訊的模組。服務端和客戶端的資訊傳輸都會通過tls進行加密,所以傳輸的資料都是加密後的資料。具體是如何進行加密,解密,驗證的,且看下圖。
服務端的配置:採用https協議的伺服器必須要有一套數字證書,可以自己製作,也可以向組織申請。區別就是自己頒發的證書需要客戶端驗證通過,才可以繼續訪問,而使用受信任的公司申請的證書則不會彈出提示頁面(startssl就是個不錯的選擇,有1年的免費服務)。這套證書其實就是一對公鑰和私鑰。如果對公鑰和私鑰不太理解,可以想象成一把鑰匙和乙個鎖頭,只是全世界只有你乙個人有這把鑰匙,你可以把鎖頭給別人,別人可以用這個鎖把重要的東西鎖起來,然後發給你,因為只有你乙個人有這把鑰匙,所以只有你才能看到被這把鎖鎖起來的東西。
傳送證書:這個證書其實就是公鑰,只是包含了很多資訊,如證書的頒發機構,過期時間等等。
客戶端解析證書:這部分工作是有客戶端的tls來完成的,首先會驗證公鑰是否有效,比如頒發機構,過期時間等等,如果發現異常,則會彈出乙個警告框,提示證書存在問題。如果證書沒有問題,那麼就生成乙個隨機值。然後用證書對該隨機值進行加密。就好像上面說的,把隨機值用鎖頭鎖起來,這樣除非有鑰匙,不然看不到被鎖住的內容
傳送加密資訊:這部分傳送的是用證書加密後的隨機值,目的就是讓服務端得到這個隨機值,以後客戶端和服務端的通訊就可以通過這個隨機值來進行加密解密了。
服務段解密資訊:服務端用私鑰解密後,得到了客戶端傳過來的隨機值(私鑰),然後把內容通過該值進行對稱加密。所謂對稱加密就是,將資訊和私鑰通過某種演算法混合在一起,這樣除非知道私鑰,不然無法獲取內容,而正好客戶端和服務端都知道這個私鑰,所以只要加密演算法夠彪悍,私鑰夠複雜,資料就夠安全。
傳輸加密後的資訊:這部分資訊是服務段用私鑰加密後的資訊,可以在客戶端被還原。
客戶端解密資訊客戶端用之前生成的私鑰解密服務段傳過來的資訊,於是獲取了解密後的內容。整個過程第三方即使監聽到了資料,也束手無策。
https通訊的安全機制
此文只描述整體安全原理,具體業務上的演變未在此文中描述。資訊 hash 摘要 摘要 私鑰 數字簽名 給收方做對比用的,驗證收發內容是否一致 公鑰 相關資訊 ca私鑰 數字證書 驗證傳送者是否正確,是可信任的公鑰 以一次伺服器與客戶端的資料互動說明安全機制,整體流程如下 伺服器會將自己的公鑰 a 和公...
HTTPS通訊機制
使用http協議進行通訊時,由於傳輸的是明文所以很容易遭到竊聽,就算是加密過的資訊也容易在傳輸中遭受到篡改,因此需要在http協議基礎上新增加密處理,認證處理等,有了這些處理機制的http成為https。https是在應用層和傳輸層之間加入了ssl secure socket layer 安全套接層...
https通訊機制(http ssl tls)
公開金鑰加密 非對稱的秘鑰,一把私有秘鑰,一把公開秘鑰。傳送密文的一方使用對方的公開秘鑰加密,對方接收後用自己的私鑰解密 對稱秘鑰加密 加密和解密用同乙個秘鑰 交換秘鑰緩解使用公鑰加密,建立通訊交換報文時用共享秘鑰加密 伺服器運營人員向數字證書認證機構提出公鑰的申請 認證機構判明身份後,對已經申請的...