https介紹

什么是https

HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全。為了保證這些隱私數據能加密傳輸,于是網景公司設計了SSL(Secure Sockets Layer)協議用于對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。SSL目前的版本是3.0,被IETF(Internet Engineering Task Force)定義在RFC 6101中,之后IETF對SSL 3.0進行了升級,于是出現了TLS(Transport Layer Security) 1.0,定義在RFC 2246。實際上我們現在的HTTPS都是用的TLS協議,但是由于SSL出現的時間比較早,并且依舊被現在瀏覽器所支持,因此SSL依然是HTTPS的代名詞,但無論是TLS還是SSL都是上個世紀的事情,SSL最后一個版本是3.0,今后TLS將會繼承SSL優良血統繼續為我們進行加密服務。目前TLS的版本是1.2,定義在RFC 5246中,暫時還沒有被廣泛的使用。


工作原理

  • HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。TLS/SSL協議不僅僅是一套加密傳輸的協議,更是一件經過藝術家精心設計的藝術品,TLS/SSL中使用了非對稱加密,對稱加密以及HASH算法。
  • 握手過程的簡單描述如下:
    1. 瀏覽器將自己支持的一套加密規則發送給網站。
    2. 網站從中選出一組加密算法與HASH算法,并將自己的身份信息以證書的形式發回給瀏覽器。證書里面包含了網站地址,加密公鑰,以及證書的頒發機構等信息。
    3. 獲得網站證書之后瀏覽器要做以下工作:
      • a) 驗證證書的合法性(頒發證書的機構是否合法,證書中包含的網站地址是否與正在訪問的地址一致等),如果證書受信任,則瀏覽器欄里面會顯示一個小鎖頭,否則會給出證書不受信的提示。
      • b) 如果證書受信任,或者是用戶接受了不受信的證書,瀏覽器會生成一串隨機數的密碼,并用證書中提供的公鑰加密。
      • c) 使用約定好的HASH計算握手消息,并使用生成的隨機數對消息進行加密,最后將之前生成的所有信息發送給網站。
    4. 網站接收瀏覽器發來的數據之后要做以下的操作:
      • a) 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發來的握手消息,并驗證HASH是否與瀏覽器發來的一致。
      • b) 使用密碼加密一段握手消息,發送給瀏覽器。
    5. 瀏覽器解密并計算握手消息的HASH,如果與服務端發來的HASH一致,此時握手過程結束,之后所有的通信數據將由之前瀏覽器生成的隨機密碼并利用對稱加密算法進行加密。

      這里瀏覽器與網站互相發送加密的握手消息并驗證,目的是為了保證雙方都獲得了一致的密碼,并且可以正常的加密解密數據,為后續真正數據的傳輸做一次測試。

      另外,HTTPS一般使用的加密與HASH算法如下:

      • 非對稱加密算法:RSA,DSA/DSS
      • 對稱加密算法:AES,RC4,3DES
      • HASH算法:MD5,SHA1,SHA256

      其中非對稱加密算法用于在握手過程中加密生成的密碼,對稱加密算法用于對真正傳輸的數據進行加密,而HASH算法用于驗證數據的完整性。由于瀏覽器生成的密碼是整個數據加密的關鍵,因此在傳輸的時候使用了非對稱加密算法對其加密。非對稱加密算法會生成公鑰和私鑰,公鑰只能用于加密數據,因此可以隨意傳輸,而網站的私鑰用于對數據進行解密,所以網站都會非常小心的保管自己的私鑰,防止泄漏。

      TLS握手過程中如果有任何錯誤,都會使加密連接斷開,從而阻止了隱私信息的傳輸。正是由于HTTPS非常的安全,攻擊者無法從中找到下手的地方,于是更多的是采用了假證書的手法來欺騙客戶端,從而獲取明文的信息,但是這些手段都可以被識別出來

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89481

(0)
nolannolan
上一篇 2017-12-04 01:29
下一篇 2017-12-04 14:57

相關推薦

  • 第一周作業

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echou、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及共用規定。

    Linux干貨 2017-12-03
  • Linux邏輯卷LVM實現

    Linux邏輯卷LVM實現 背景: 在學習Linux中,學習到了邏輯卷LVM,發現LVM是個十分好用的一個技術,可以多個硬盤合并在一起使用,同時還可以動態的增加和減少。在這里將Linux邏輯卷的具體實現記錄下來。 介紹: 邏輯卷LVM:Logica Volum Manager,它是Linux環境下對磁盤分區進行管理的一種機制,普通的磁盤分區管理方式在邏輯分區…

    2017-08-12
  • 我與Linux的第一次親密接觸

        作為一個新手,經過一周的學習,我對Linux目前有了些許的了解,從Linux的發展史中,開源共享精神深深的感染了我,也使得我對Linux的興趣更加濃厚。對于一個一直翹計算機課的我來說,入門和基礎是一項非常艱巨的任務,初期為了搭建學習的環境,也是費了不小的功夫,相信許多萌也對此有很大的感觸,在這里,我來和大家分享一下如何去構建環境?!?/p>

    Linux干貨 2017-03-26
  • Lvs+keepalived+httpd+NFS搭建高可用

    自己捯飭的模型圖 NAT模型圖 注意事項:RealServer需要把網關指向Director,并且Director要打開轉發功能命令如下:     echo "1" > /proc/sys/net/ipv4/ip_foreward DR模型圖 注意事項:需要在RealServer配置…

    Linux干貨 2016-10-25
  • liunx學習第一天知識點-基礎知識

    一 計算機組成 1. 馮·諾依曼體系:     1946年數學家馮·諾依曼于提出計算機由五大部分組成:運算器、控制器、存儲器、輸入設備、輸出設備 2. 摩爾定律:     戈登·摩爾于1965年提出來當價格不變時,集成電路上可容納的元器件的數目,約每隔18-24個月便會增加一倍,…

    Linux干貨 2016-07-27
  • 文件權限管理–詳解

    進程安全上下文 進程安全上下文:     進程對文件訪問權限應用模型     進程的屬主與文件的屬主是否相同,如果相同則運行屬主權限     進程的屬主與文件的屬主不相同,對比屬組權限是否相同,相同則應用屬組權限   &…

    Linux干貨 2016-08-04
欧美性久久久久