1. 程式人生 > >SSL/TLS安全之——中間人攻擊(MITM)淺析

SSL/TLS安全之——中間人攻擊(MITM)淺析

  首先需要理解SSL/TLS協議的原理,然後我們通過Burpsuite對HTTPS資料包進行抓包,來簡單討論中間人攻擊的實現場景。

一、SSL握手協議

1.客戶端生成相關引數

-> a)協議版本號 b)隨機數(cRandom) c)加密規則
-> 將三條資訊傳輸給伺服器 (明文請求,以下都是)

2.伺服器確認並返回伺服器引數

->確認加密方法 , CA數字證書,生成sRandom
->將相關資訊回傳給客戶端

3.客戶端校驗證書並新增新引數

->校驗數字證書有效性,生成pSecret(對稱加密金鑰),並使用數字證書CA中的公鑰加密
->將相關資訊傳給伺服器

4.伺服器使用私鑰解密引數

->本質是應用了非對稱加密的方式傳輸pSecret

5.兩端根據約定的加密方法,使用三個隨機數生成”對話金鑰”

->後續對話通訊可以開始

二、協議中一些注意點

1.私鑰的使用

(1)生成對話金鑰一共需要三個隨機數。
(2)握手之後的對話使用”對話金鑰”加密(對稱加密),伺服器的公鑰和私鑰只用於加密和解密”對話金鑰”(非對稱加密),無其他作用。全部過程中只使用了一次
(3)伺服器公鑰放在伺服器的數字證書之中。

2.非對稱加密的安全性考慮

  握手階段的金鑰交換過程是全透明的,也就是說他人可以隨意監聽通訊過程。而最終的對話金鑰由3個隨機數生成,可以推斷我們的前兩個引數是不安全的,整個安全性只取決於最後的pSecret。

  理論上RSA公鑰演算法的公鑰足夠長(如2048位),可以保證pSecret的安全,但根據摩爾定律,我們很難保證不會很快出現暴力破解的方式。出於更加安全的考慮可以採用DH演算法,這樣可以不傳遞pSecret,雙方只要交換各自引數,就能計算出pSecret(DH演算法運用了離散對數的原理,此處不展開說明),相對的增加了解密難度。

三、HTTPS原理及抓包分析

一、HTTPS簡介

  超文字傳輸協議安全,是使用HTTP(超文字傳輸協議)和SSL/TLS(安全套接字層/傳輸層安全)協議來提供加密通訊和安全識別Web伺服器的通訊協議。

HTTPS有什麼作用?
1.保密:訪問者的連線被加密,隱藏URL、Cookie和其他敏感元資料。
保證真實性:訪問者是與“真實的”網站發生對話,而不是通過模仿者或者“中間人”進行對話。
2.保證可信性:

訪問者和網站之間傳送的資料沒有被篡改活修改。

保護哪些資訊:
  HTTPS加密客戶端和Web伺服器之間傳送的所有資訊(IP和埠、完整的域或子域名除外)。
  未加密的HTTP請求不僅顯示請求的正文,還會顯示請求完整的URL,查詢字串和HTTP頭,而HTTPS請求 這些都會被加密。

二、為什麼HTTPS仍然會不安全?

  加密是發生在應用層和傳輸層之間,在傳輸層看到的資料是經過加密的。加密資料只有在客戶端和伺服器端才能得到明文,客戶端與伺服器端的通訊過程是安全的。
  而在瀏覽器的除錯工具裡可以看到請求資訊,而且還是明文,是因為這裡的資料是應用層的,還未經過加密。

三、HTTPS抓包過程分析

  HTTPS通訊原理同上SSL握手協議。

1、在未建立握手前,BurpSuite抓取客戶端傳送給伺服器的HTTPS請求
2、BurpSuite作為中間人,與伺服器建立握手,即獲取到伺服器的CA證書,用根證書公鑰進行解密,驗證伺服器資料簽名,獲取到伺服器CA證書公鑰。然後BurpSuite偽造自己的CA證書,假冒伺服器證書傳遞給客戶端。
3、客戶端誤認為BurpSuite的CA證書為伺服器CA證書,由於有根證書的驗證,所以會正常處理請求,繼續執行,參照SSL握手流程繼續執行。

  最終BurpSuite可以在應用層客戶端未加密的情況下偽造伺服器證書以獲取到HTTPS訊息內容。同理,我們可以認為只要能獲取到根證書的信任,且應用程式未加密,那麼在應用層端就可以實現中間人攻擊。
  關鍵點:
  抓取HTTPS協議成功的關鍵是根證書,是偽造的CA證書能夠獲得客戶端和伺服器端信任的關鍵(即在網上申請BurpSuite證書加入到瀏覽器中,詳情度娘)
  簡單的思路分析就是如此 , 理解很淺顯 , 重在整理記錄 , 大神勿噴哈~

相關推薦

SSL/TLS安全——中間人攻擊MITM淺析

  首先需要理解SSL/TLS協議的原理,然後我們通過Burpsuite對HTTPS資料包進行抓包,來簡單討論中間人攻擊的實現場景。 一、SSL握手協議 1.客戶端生成相關引數 -> a)協議版本號 b)隨機數(cRandom) c)加密

區塊鏈安全—詳談共識攻擊

上一篇文章中我們講述了傳統的Pow以及Pos相關的延伸共識演算法。而在這篇文章中,我們講述一下區塊鏈的精髓PBFT以及其延伸演算法。 在安全方面,我們給大家科普一下日蝕攻擊已經賄賂攻擊。並且一步一步帶大家復現一下前些日子爆出的區塊鏈整數溢位攻擊。希望大家能夠從文章中瞭解到區塊鏈的共識演算

區塊鏈安全—詳談共識攻擊

本篇詳細講述了區塊鏈中非常重要的“共識”演算法及其安全性,由於文章內根據不同應用環境講述了不同的共識演算法及其安全,所以涉及到的內容相對比較豐富。 前言部分 區塊鏈作為一種去中心化的分散式公共資料庫,其並沒有中央管理機構進行管理工作,而是通過分散式節點共同利用密碼學協議共

java執行緒安全併發Queue十三

併發Queue        在併發的佇列上jdk提供了兩套實現,一個是以ConcurrentLinkedQueue為代表的高效能佇列,一個是以BlockingQueue介面為代表的阻塞佇列,無論在那種都繼承自Queue。 如圖繼承Queue共有二十四個:

Web安全基礎篇

http1. 基礎概念篇1.1 介紹  HTTP是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫。它的發展是全球資訊網協會(World Wide Web Consortium)和Internet工作小組IETF(Internet Engineering Task Force)

TLS安全傳輸層協議加密配置文件

 TLS安全傳輸層協議(加密)配置文件 Tomcat伺服器配置https雙向認證(使用keytool生成證書) 一,HTTPS原理 1,HTTP、HTTPS、SSL、TLS介紹與相互關係

SSL/TLS 協議執行機制概述

# SSL/TLS 協議執行機制概述(二) 在[SSL/TLS 協議執行機制概述(一)](https://www.cnblogs.com/flythinking/p/12446303.html)中介紹了TLS 1.2 的執行機制,現在我們來看年 TLS 1.3 的執行機制。會涉及到[SSL/TLS 協議執行機

Web安全跨站腳本攻擊XSS

sca 各類 隱藏 word create 十六 請求 後臺 轉換成 XSS 簡介 跨站腳本攻擊,英文全稱是 Cross Site Script,本來縮寫是CSS,但是為了和層疊樣式表(Cascading Style Sheet,CSS)有所區別,所以在安全領域叫做“XSS

python模組smtplib: 用python傳送SSL/TLS安全郵件

    轉載請註明原文出自 http://blog.csdn.net/zhaoweikid/    python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝。smtp協議的基本命令包括:    HELO 向伺服器標識使用者身份    M

Akka-CQRS10- gRPC on SSL/TLS 安全連線

  使用gRPC作為雲平臺和移動前端的連線方式,網路安全應該是必須考慮的一個重點。gRPC是支援ssl/tls安全通訊機制的。用了一個週末來研究具體使用方法,實際上是一個週末的挖坑填坑過程。把這次經歷記錄下來與各位分享。 gRPC的ssl/tls的原理是在服務端安裝安全證書公用certificat

Web安全CSRF攻擊

for idt 例子 expr 由於 不能 防止 失效 內容 一、CSRF是什麽? CSRF(Cross Site Request Forgery),中文是跨站點請求偽造。CSRF攻擊者在用戶已經登錄目標網站之後,誘使用戶訪問一個攻擊頁面,利用目標網站對用戶的信任,以用戶身

【原創】C# API 未能創建 SSL/TLS 安全通道 問題解決

分享圖片 proto 執行 manager ima com 添加 poi ssl 在調用執行API之前添加以下代碼就行了 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls1

System.Net.WebException: 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。 ---> System.Security.Authentication.AuthenticationException: 根據驗證過程,遠端證書無效。

今天寫程式的時候呼叫到一個第三方提供的https地址,訪問此地址去獲取加密的json格式資料,出現BUG c#報錯 :  System.Net.WebException: 基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。 ---> System.Security.Authe

針對SSL/TLS的拒絕服務攻擊以及使用ettercap進行DNS欺騙

ccf ping 4.2 com 導致 圖片 10.10 ip地址 c-s 一. thc-ssl-dos 1.簡介 (1).SSL 協商加密對性能開銷增加,大量握手請求會導致 DOS (2).利用 SSL secure Renegotiation 特性,在單一

Java中使用JSSE實現SSL/TLS安全協議

一、簡介 SSL/TLS協議是安全的通訊模式,而對於這些底層協議,如果要每個開發者都自己去實現顯然會帶來不必要的麻煩,正是為了解決這個問題Java為廣大開發者提供了Java安全套接字擴充套件——JSSE,它包含了實現Internet安全通訊的一系列包的集合,是SSL和TLS

未能建立 SSL/TLS 安全通道解決方案

操作 當向一個https的url上傳送請求,報錯:未能建立 SSL/TLS 安全通道; 報錯前實現程式碼如下: /// <summary> /// 判斷遠端檔案是否存在 /// </summary> /// <param name="fileUrl">檔案路徑&

Linux安全SYN攻擊原理及其應對措施

TCP自從1974年被髮明出來之後,歷經30多年發展,目前成為最重要的網際網路基礎協議,但TCP協議中也存在一些缺陷。 SYN攻擊就是利用TCP協議的缺陷,來導致系統服務停止正常的響應。 SYN攻擊原理: TCP在傳遞資料前需要經過三次握手,SYN攻擊的原理就是向伺服器傳送SYN資料包,並偽造源I

C# https雙向認證,"請求被中止: 未能建立 SSL/TLS 安全通道"解決辦法

最近的專案中用到了呼叫https的介面的功能,編寫出程式後在我自己的電腦上執行沒有問題,但是在同事的電腦上和服務上都沒有辦法正常執行,提示“請求被中止: 未能建立 SSL/TLS 安全通道”,最後在專案經理的幫助下和網上查找了大量的資料,以及做了大量的測試下終於解決了問題,所

徹底解決:請求被中止: 未能建立 SSL/TLS 安全通道

最近有個專案要呼叫客戶用java寫的帶https的webservice,對方提供了證書檔案 test.pfx,我這裡呼叫方式如下: //webservice代理類 SvcService svc = new SvcService(); //證書檔案路徑 string filePath = Confi

《白帽子講Web安全》3-跨站指令碼攻擊XSS

第3章 跨站指令碼攻擊(XSS) 3.1 XSS簡介 Cross Site Script,跨站指令碼攻擊,簡稱XSS。 XSS攻擊,通常是指黑客通過“HTML注入”篡改了網頁,插入了惡意的指令碼,從而在客使用者瀏覽網頁時,控制使用者瀏覽器的一種攻擊。