HTTP主要有這些不足:算法
爲了統一解決上述問題,在HTTP上再加入加密處理和認證等機制,成爲HTTPS(HTTP Secure)數組
HTTPS並不是是應用層的一種新協議。只是HTTP通訊接口部分用SSL(Secure Socket Layer)和TLS(Transport Layer Security)協議代替。一般HTTP直接和TCP通訊,當使用SSL時,則變成先和SSL通訊,再由SSL與TCP通訊。安全
採用SSL後,HTTP就擁有了加密、證書和完整性保護這些功能服務器
SSL是獨立於HTTP的協議,不光是HTTP協議,其餘運行在應用層的SMTP和Telnet等協議都可配合SSL協議使用。能夠說SSL是當今世界上應用最普遍的網絡安全技術網絡
1.共享密鑰加密(Commom key crypto system),也叫作對稱密鑰加密:併發
加密和解密同用一個密鑰。在加密後密鑰也會發送給對方,在通訊過程當中若是被監聽那麼密鑰就會落入攻擊者手中從而對信息解密性能
2.公開密鑰加密(Public-key-cryptography),也叫作非對稱密鑰加密:加密
使用一對非對稱的密鑰,私有祕鑰和公有密鑰。私有密鑰不能讓其餘任何人知道,而公有密鑰則能夠隨意發佈。發送密文的一方使用對方的公開密鑰進行加密處理,對方收到被加密的信息後,再使用本身的私有祕鑰進行解密。利用這種方式,不須要發送私有祕鑰,從而使信息安全接口
對稱加密並不安全,而非對稱加密雖然說安全度數高,但對CPU資源的消耗大,效率低,進而影響性能。HTTPS所採用的加密方式是結合二者的混合加密機制:在交換密鑰環節使用非對稱加密方式,在創建通訊交換報文階段使用對稱加密方式網絡安全
使用對稱加密生成的key對傳輸數據加密,而後使用非對稱加密的公鑰對key加密:
遺憾的是,公開密鑰加密方式仍是存在一些問題:沒法證實公開密鑰自己就是貨真價實的公開密鑰。好比,正準備和某臺服務器創建公開密鑰加密方式下的通訊,如何證實收到的公開密鑰就是本來預想的那臺服務器發行的公開密鑰,或許在公開密鑰傳輸過程當中,真正的公開密鑰已經被攻擊者替換掉了
爲了解決上述問題,可使用由數組證書認證機構和其相關機關頒發的公開密鑰證書
數字證書認證機構處於客戶端與服務器雙方均可信賴的第三方機構的立場上
服務器會將由數字證書認證機構頒發的公鑰證書(數字證書)發送給客戶端,以進行公開密鑰加密方式通訊。接到證書的客戶端可以使用數字證書認證機構的公開密鑰,對那張證書上的數字簽名進行驗證,一旦驗證經過,客戶端即可明確兩件事:認證服務器的公開密鑰是真實有效的數字證書認證機構、服務器的公開密鑰是可信賴的
2019.7.11更新 通俗來理解:
HTTPS也存在一些問題,如當使用SSL時,它處理速度會變慢 和使用HTTP相比,網絡負載可能會變慢2到100倍,除去和TCP鏈接、發送HTTP請求以外,還必須進行SSL通訊,所以總體上處理通訊量不可避免地增長。因爲SSL需加密傳輸,會更多地消耗資源