小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

關(guān)于SSL協(xié)議

 saintfei 2010-12-16

SSL的工作層面,以HTTPS為例:
HTTP
SSL
TCP
IP
SSL屬于加密通訊協(xié)議,工作在TCP協(xié)議和應(yīng)用層協(xié)議之間,在SSL加密的通道內(nèi),可以運行很多的上層協(xié)議,包括HTTP、FTP、SMTP等,通過SSL封裝后的協(xié)議通常標示為HTTPS,F(xiàn)TPS,SMTPS等。

SSL工作方式簡要描述:
1、建立TCP 連接
2、客戶端服務(wù)器交換證書,生成SSL Session ID
3、傳輸數(shù)據(jù),在同一個TCP連接過程中,不會再有SSL Session ID交換的過程。

對于HTTPS類型,由于HTTP協(xié)議本身是屬于短連接方式,因此會有多次新建TCP連接存在。
1、當Client再次新建連接的時候,會提交上次獲得的SSL Session ID。這個SSL session ID就是客戶端和服務(wù)器在第一次交換證書的時候產(chǎn)生的SSL Session ID。瀏覽器和服務(wù)器都會緩存這個ID,以備下次使用。
2、IE標準緩存SSL ID 5分鐘,BIGIP LTM默認緩存SSL ID 1小時。
3、服務(wù)器如果接收的在自身緩存內(nèi)存在的SSL Session ID,則開始數(shù)據(jù)傳輸。如果沒有,則要求客戶端重新協(xié)商SSL session ID。
4、SSL Session ID是可以reuse的,正常情況下,在一個客戶登錄的過程中,SSL Session ID是不發(fā)生變化的。在客戶端和服務(wù)器任何一方認為不安全的情況,可能要求重新協(xié)商SSL Session ID。通常情況下是由服務(wù)器要求客戶端重新協(xié)商SSL Session ID。

對于HTTP協(xié)議層,由于有HTTP 1.1版本的Keep Alive特性,因此可以在一個TCP連接中包含多個HTTP request。對應(yīng)到SSL層面,就是在一個SSL通道中可以有多次HTTP Request/response存在。

對于同一個站點的IP或者域名,在IE 6.0一下默認是打開2個連接用于請求頁面以及頁面上的所有對象,這些對象包括常見的gif/jpg/js/css等。IE 7.0以上可能產(chǎn)生多個連接用于請求。
在Web服務(wù)器端可以通過keepalive設(shè)置每個連接中最大可以傳輸多少次request/response和一個連接可以持續(xù)多長時間。瀏覽器可以 遵從也可以不遵從服務(wù)器的keep alive指令,但服務(wù)器端可以通過Connection: close 指令來要求客戶端關(guān)閉當前連接。

F5 BIGIP LTM的TPS計算:
1、當客戶端和服務(wù)器新建一個全新連接的時候,計算一個TPS。
2、當客戶端重新發(fā)起連接建立請求并reuse SSL Session ID的時候,計算一個TPS。
3、TPS值和在一個連接中執(zhí)行了多少次HTTP request/response沒有關(guān)系。
4、如果應(yīng)用當前是部署在HTTP協(xié)議上,需要添加HTTPS處理的時候,可以估算需要的TPS數(shù)量等于VS或者應(yīng)用服務(wù)器上的每秒新建連接數(shù)。


 
 
 
SSL協(xié)議使用不對稱加密技術(shù)實現(xiàn)會話雙方之間信息的安全傳遞??梢员WC信息的保密性、完整性,并且會話雙方能鑒別對方身份。下面是一個通過瀏覽器與Web網(wǎng)站建立HTTPS連接時,瀏覽器與Web服務(wù)器之間經(jīng)過一個握手的過程來完成身份鑒定與密鑰交換,從而建立安全連接的具體過程,如下:
  1. 用戶瀏覽器將其SSL版本號、加密設(shè)置參數(shù)、與Session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送到服務(wù)器。
  2. 服務(wù)器將其SSL版本號、加密設(shè)置參數(shù)、與Session有關(guān)的數(shù)據(jù)以及其它一些必要信息發(fā)送給瀏覽器,同時發(fā)給瀏覽器的還有服務(wù)器的證書。如果配置服務(wù)器的SSL需要驗證用戶身份,還要發(fā)出請求要求瀏覽器提供用戶證書。
  3. 客戶端檢查服務(wù)器證書,如果檢查失敗,則提示不能建立SSL連接。如果成功,則繼續(xù)。
  4. 客戶端瀏覽器為本次會話生成Pre-master secret,并將其用服務(wù)器公鑰加密后發(fā)送給服務(wù)器。
  5. 如果服務(wù)器要求鑒別客戶身份,客戶端還要再對另外一些數(shù)據(jù)簽名后并將其與客戶端證書一起發(fā)送給服務(wù)器。
  6. 如果服務(wù)器要求鑒別客戶身份,則檢查簽署客戶證書的CA是否可信。如果不在信任列表中,結(jié)束本次會話。如果檢查通過,服務(wù)器用自己的私鑰解密收到的Pre-master Secret,并用它通過某些算法生成本次會話的Master secret。
  7. 客戶端與服務(wù)器均使用此Master secret生成本次會話的會話密鑰(對稱密鑰)。在雙方SSL握手結(jié)束后傳遞任何消息均使用此會話密鑰。這樣做的主要原因是對稱加密比非對稱加密的運算量低一個數(shù)量級以上,能夠顯著提高雙方會話時加密解密的運算速度。
  8. 客戶端通知服務(wù)器此后發(fā)送的消息都使用這個會話密鑰進行加密。并通知服務(wù)器客戶端已經(jīng)完成本次SSL握手。
  9. 服務(wù)器通知客戶端此后發(fā)送的消息都使用這個會話密鑰進行加密,并通知客戶端服務(wù)器已經(jīng)完成本次SSL握手。
  10. 本次握手過程結(jié)束,會話已經(jīng)建立。雙方使用同一個會話密鑰分別對發(fā)送以及接收的信息進行加、解密。
 
 
有很多實現(xiàn)ssl mitm(中間人攻擊,Man In The Middle)攻擊的工具,具體實現(xiàn)是這樣的:
1、攻擊軟件通過arp或http代理截取http流量
2、當客戶端服務(wù)器請求https頁面時,攻擊軟件截獲證書,并使用該證書的相關(guān)信息及自己產(chǎn)生的public key生成新的證書替換服務(wù)器的證書,并把新證書發(fā)給客戶端。
3、客戶端使用收到證書中的public對數(shù)據(jù)進行加密并傳送給服務(wù)器。
4、攻擊軟件使用之前自己生成的private key進行解密,并使用服務(wù)器的public key 進行加密后傳送到服務(wù)器。
5、攻擊軟件使用服務(wù)器的public key 解密服務(wù)器返回的數(shù)據(jù),并使用自己生存的private key 對數(shù)據(jù)進行加密后傳給客戶端。
大概就是這樣,瀏覽器如果遇到ssl MITM攻擊會提示證書錯誤:
A proper web browsing client will warn the user of a certificate problems if any of the
following are not true:
A. the certificate has been signed by a recognized certificate authority
B. the certificate is currently valid and has not expired
C. the common name on the certificate matches the DNS name of the server
其中A是關(guān)鍵。
在局域網(wǎng)中防范此類攻擊,技術(shù)上首先杜絕ARP欺騙的發(fā)生,另外要教育用戶在使用Https網(wǎng)站時注意證書錯誤提示。
還有就是不能讓用戶使用那些亂七八糟的瀏覽器,那些瀏覽器安全性不高而且可能留有后門。
這種中間人攻擊理論上不可避免,除非服務(wù)器對客戶端進行驗證,如我們網(wǎng)銀使用的數(shù)字證書就是用來對客戶端進行驗證避免受到中間人攻擊。
中間人攻擊,用戶會收到證書無效的警告。用戶如果忽略警告,那么簡單的說,HTTPS等于HTTP
如果用戶不忽略警告,那么HTTPS可以防止網(wǎng)絡(luò)上的竊聽。當然也存在一些類似最近發(fā)現(xiàn)的SSL prefix攻擊的一些漏洞,在一定條件下可以達到一定程度的攻擊。但是還是比HTTP好多了
 
 
ssl過程:

我們知道,https的安全性主要是由SSL證書中的公鑰和私鑰來保證的。瀏覽器與服務(wù)器經(jīng)過https建立通訊的時候(不考慮SSL代理方式需要用戶提交證書的情況,因為我們現(xiàn)在討論的是瀏覽器訪問網(wǎng)站,和SSL代理無關(guān))會按照以下步驟保證通訊的安全性:

  1、瀏覽器連接服務(wù)器,服務(wù)器把SSL證書的公鑰發(fā)送給瀏覽器

  2、瀏覽器驗證此證書中的域是否和訪問的域一致(比如用戶訪問https://mail.google.com/時,瀏覽器驗證服務(wù)器發(fā)送過來的SSL證書的公鑰中的域是否為mail.google.com或*.google.com)并沒有過期

  3、如果瀏覽器驗證失敗,瀏覽器通知用戶證書有問題,讓用戶選擇是否繼續(xù)

  4、如果瀏覽器驗證成功,那么瀏覽器隨機生成一個對稱密鑰并使用接收到的SSL證書的公鑰進行加密并發(fā)送給服務(wù)器

  5、服務(wù)器通過SSL證書的私鑰對收到的信息進行解密并得到瀏覽器隨機生成的對稱密鑰

  6、最后服務(wù)器和瀏覽器都通過這個對稱密鑰進行通訊了(為什么不直接使用公鑰和私鑰進行通訊?因為非對稱加密比對稱加密效率低)

  這個方案看似完美,卻無法抵御中間人攻擊,攻擊者可以按以下步驟實施攻擊截取https通訊中的所有數(shù)據(jù):

  1、攻擊者偽造一個Gmail的SSL證書,使其中的域為mail.google.com或*.google.com,并設(shè)置合適的證書過期時間

  2、攻擊者等待訪問者的瀏覽器訪問Gmail時,通過DNS劫持或IP偽造(對于有路由器控制權(quán)限的黑客來說簡直輕而易舉)的方法使其訪問到攻擊者的服務(wù)器上

  3、攻擊者把偽造的SSL證書公鑰發(fā)送給瀏覽器

  4、瀏覽器驗證SSL證書的域和過期時間都沒錯,認為訪問到的就是Gmail本身,從而把對稱密鑰發(fā)送給黑客服務(wù)器

  5、黑客服務(wù)器把偽造的Gmail網(wǎng)頁通過收到的對稱密鑰加密后發(fā)送給瀏覽器

  6、訪問者通過瀏覽器輸入Gmail帳戶,發(fā)送給黑客服務(wù)器,黑客服務(wù)器通過收到的對稱密鑰解密后成功獲得訪問者的Gmail密碼

  為了抵御這種中間人攻擊,SSL證書需要由可信的SSL證書頒發(fā)機構(gòu)頒發(fā),形成一個證書鏈(比如Gmail的證書鏈為:最底層為網(wǎng)域mail.google.com,上一層為Thawte SGC CA證書頒發(fā)機構(gòu),最頂層為很有名的VeriSign證書頒發(fā)機構(gòu))。那么,瀏覽器除了需要驗證域和有效期外,還要檢查證書鏈中的上級證書公鑰是否有效,上級的上級證書公鑰是否有效,直至根證書公鑰為止。這樣就可以有效避免中間人攻擊了,因為根證書公鑰都是預(yù)裝在操作系統(tǒng)中的,黑客如果不是暴力破解,無法得到根證書的私鑰,如果黑客自己生成一個私鑰,瀏覽器驗證根證書公鑰的時候發(fā)現(xiàn)無法通過操作系統(tǒng)中預(yù)裝的公鑰加密數(shù)據(jù)后使用這個私鑰進行解密,從而判定這個公鑰是無效的。這個方案也是現(xiàn)在https通訊通常的方案。

  那么,這個現(xiàn)在所有的瀏覽器正在使用的https通訊方案就無懈可擊了嗎?答案仍是否定的。我們可以看到,在后一個方案中,https的安全性需要在證書頒發(fā)機構(gòu)公信力的強有力保障前提下才能發(fā)揮作用。如果證書頒發(fā)機構(gòu)在沒有驗證黑客為mail.google.com的持游者的情況下,給黑客頒發(fā)了網(wǎng)域為mail.google.com的證書,那么黑客的中間人攻擊又可以順利實施:
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多