SSL/TLS(Secure Sockets Layer / Transport Layer Security)

來源:互聯網
上載者:User

標籤:客戶機   密鑰   ref   .so   協議   數位簽章   開始   tls   sha   

# 協議概述

縮寫 名稱 預設連接埠 安全性原則 描述
HTTP Hyper Text Transfer Protocol(超文字傳輸通訊協定 (HTTP))
TCP80 HTTP 協議是明文的,傳輸內容會被嗅探和篡改。
用戶端瀏覽器或其他程式與Web伺服器之間的應用程式層通訊協定
SSL/TLS
Secure Sockets Layer(安全套接層)
Transport Layer Security(傳輸層安全)
TCP443   1)認證使用者和伺服器,確保資料發送到正確的客戶機和伺服器;  2)加密資料以防止資料中途被竊取;  3)維護資料的完整性,確保資料在傳輸過程中不被改變。 SSL(Secure Socket Layer)是netscape公司設計的主要用於web的安全傳輸協議,在WEB上廣泛應用。IETF(www.ietf.org)將SSL作了標準化,即RFC2246,並將其稱為TLS(Transport Layer Security)。從技術上講,TLS1.0與SSL3.0的差別非常微小,例如SSL3.3對應TLS1.2,通常並列稱呼。SSL/TLS 可以強化一些常用應用程式層協議(比如:FTP、SMTP、POP、Telnet)的安全性。 SSL與TLS介於應用程式層和TCP層之間,在傳輸層對網路連接進行加密。應用程式層資料不再直接傳遞給傳輸層,而是傳遞給SSL層,SSL層對從應用程式層收到的資料進行加密,並增加自己的SSL頭,從而為網路通訊及資料完整性提供安全支援。
HTTPS
HTTP over SSL
TCP443
實際上是在原有的 HTTP 資料外面加了一層 SSL 的封裝。HTTP 協議原有的 GET、POST 之類的機制,基本上原封不動。
可以簡單理解為“HTTP 協議”和“SSL/TLS 協議”的組合

# 對稱式加密與非對稱式加密
加密---明文變成密文;解密---密文變為明文。在這兩個過程中,都需要密鑰。
對稱金鑰密碼編譯(共用密鑰)
指的是雙方共同擁有使用完全相同的單個key, 這種Key既用於加密,也用於解密。對稱式加密演算法的原理很容易理解,通訊一方用KEY加密明文,另一方收到之後用同樣的KEY來解密就可以得到明文。對稱金鑰密碼編譯是加密大量資料的一種行之有效方法。 最常見的是DES. DES3, RC4等。
 不對稱式加密(公開金鑰加密)指雙方用不同的KEY加密和解密明文,通訊雙方都要有自己的公用密鑰和私人密鑰。公開金鑰和私密金鑰這兩個密鑰在數學上是相關的(素數積求因子的原理)。
公開金鑰(公用密鑰)----- 用來加密和驗證簽名,是給大家用的,在通訊雙方之間公開傳遞,在公用儲備庫中發布,也可通過電子郵件發布,或者通過網站提供下載等。私密金鑰(私人密鑰)----- 保密的,僅為自己所知,用來進行解密和簽名;
公開金鑰和私密金鑰都可以用來加密資料,用對應的另一個解開加密資料。也就是說用公開金鑰加密的內容只能用私密金鑰解密,用私密金鑰加密的內容只能用公開金鑰解密。公開金鑰加密資料,然後私密金鑰解密的情況被稱為加密解密,私密金鑰加密資料,公開金鑰解密一般被稱為簽名和驗證簽名. 不對稱式加密主要局限在於速度相對較低。實際上,通常僅在關鍵時刻才使用公開金鑰演算法,如在實體之間交換對稱金鑰時,或者在簽署一封郵件的散列時。常用的不對稱式加密一般有RSA、 DSA、 DH等。一般使用RSA。 公用金鑰交換(key exchange)
通訊雙方彼此交換公開金鑰。公用金鑰交換之後雙方就分別用對方的公用祕密金鑰加密發送的資料,用自己的私人密鑰解密接收的資料。因為公用密鑰和私人密鑰的特點是,經過其中任何一把加密過的明文,只能用另外一把才能夠解開,這樣最大程度保證了安全性. 驗證機制(簽名和驗證簽名)當A傳送資料給B時,會以自己的私密金鑰做簽名,由於私密金鑰僅為自己所有,這樣就產生了別人無法產生的檔案,也就形成了數位簽章。當B接收來自A的資料,用A的公開金鑰驗證簽名,便可確認資料是由 A 發出來的了。

密鑰協商的形象化比喻
假設A與B通訊,A是SSL用戶端,B是SSL伺服器端,加密後的訊息放在方括弧[]裡,以突出明文訊息的區別。雙方的處理動作的說明用圓括弧()括起。

A:我想和你安全的通話,我這裡的對稱式加密演算法有DES,RC5,金鑰交換演算法有RSA和DH,摘要演算法有MD5和SHA。

B:我們用DES-RSA-SHA這對組合好了。這是我的認證,裡面有我的名字和公開金鑰,你拿去驗證一下我的身份

    (把認證發給A)。

      目前沒有別的可說的了。

A:(查看認證上B的名字是否無誤,並通過手頭早已有的CA的認證驗證了B的認證的真實性,如果其中一項有誤,發出警告並中斷連線,這一步保證了B的公開金鑰的真實性)

      (產生一份秘密訊息,這份秘密訊息處理後將用作加密金鑰,加密初始化向量(IV)和hmac的密鑰。將這份秘密訊息-協議中稱為per_master_secret-用B的公開金鑰加密,封裝成稱作ClientKeyExchange的訊息。由於用了B的公開金鑰,保證了第三方無法竊聽)

        我產生了一份秘密訊息,並用你的公開金鑰加密了,給你(把ClientKeyExchange發給B)注意,下面我就要用加密的辦法給你發訊息了!

       (將秘密訊息進行處理,產生加密金鑰,加密初始化向量和hmac的密鑰)

         [我說完了]

B:(用自己的私密金鑰將ClientKeyExchange中的秘密訊息解密出來,然後將秘密訊息進行處理,產生加密金鑰,加密初始化向量和hmac的密鑰,這時雙方已經安全的協商出一套加密辦法了)

       注意,我也要開始用加密的辦法給你發訊息了!

        [我說完了]

A: [我的秘密是...]

B: [其它人不會聽到的...]

 

# 參考資訊

SSL/TLS協議運行機制的概述
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html
SSL/TLS原理詳解
http://segmentfault.com/a/1190000002554673

數位憑證及CA的掃盲介紹http://kb.cnblogs.com/page/194742/

OpenSSL 與 SSL 數位憑證概念貼
http://segmentfault.com/a/1190000002568019

Linux的加密認證功能以及openssl詳解
http://lanlian.blog.51cto.com/6790106/1281720

 

# 資料包分析

WireShark:https://wiki.wireshark.org/SSLSSLdump:http://ssldump.sourceforge.net/使用wireshark觀察SSL/TLS握手過程--雙向認證/單向認證 http://blog.csdn.net/fw0124/article/details/40983787
密碼套件         cipherSuite         TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384“TLS” 自然是指TLS協議。“ECDHE” 是說使用帶有短暫性密鑰的橢圓曲線Diffie-Hellman金鑰交換(也就是說要為每個會話建立新密鑰並且事後也不會記下來)。“RSA”表明用RSA 非對稱式加密保護TLS握手的安全。“AES_128_GCM” 是說在密碼塊連結模式中用帶有256位密鑰的AES 非對稱式加密保護真正的資料交換。 “GCM”(伽羅瓦/計數器模式)。“SHA384” 表明用 SHA384位 安全雜湊演算法
 

#SSL Tools

https://www.trustasia.com/tools/

http://web.chacuo.net/netsslcsr

 

SSL/TLS(Secure Sockets Layer / Transport Layer Security)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.