談談HTTPS安全認證,抓包與反抓包策略

2022-07-03 18:30:13 字數 2445 閱讀 1411

協議是指計算機通訊網路中兩台計算機之間進行通訊所必須共同遵守的規定或規則,超文字傳輸協議(http)是一種通訊協議,它允許將超文字標記語言(html)文件從web伺服器傳送到客戶端的瀏覽器。http協議,即超文字傳輸協議是一種詳細規定了瀏覽器和全球資訊網伺服器之間互相通訊的規則,通過網際網路傳送全球資訊網文件的資料傳送協議。http協議是用於從全球資訊網伺服器傳輸超文字到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文字文件,還確定傳輸文件中的哪一部分,以及哪部分內容首先顯示(如文字先於圖形)等。眾所周知,http是乙個無狀態的應用層協議,由請求和響應構成,是乙個標準的客戶端伺服器模型。在internet中所有的傳輸都是通過tcp/ip進行的。http協議作為tcp/ip模型中應用層的協議也不例外。http協議通常承載於tcp協議之上,有時也承載於tls或ssl協議層之上,這個時候,就成了我們常說的https。如下圖所示:

但是http也有幾個較為顯著的缺點:

正是由於這幾個顯著的缺點存在,所以https應運而生。https俗稱超文字傳輸安全協議。是以安全為目標的http通道,簡單講是http的安全版。即http下加入ssl層,https的安全基礎是ssl,因此加密的詳細內容就需要ssl。https是在http的基礎上加上一層安全層,用於資料加密、解密、身份認證,即

http + 加密 + 認證 = https

說到加密,開發人員基本都不會陌生。我們平常開發中接觸形形色色的加密演算法,簡單來說分為對稱加密演算法與非對稱加密演算法以及雜湊演算法。演算法的區別在哪呢?我們可以這麼來理解三種演算法的區別:

我們為什麼需要加密?我們日常生活中登入密碼或者各種隱私資訊都需要進行加密儲存防止資訊洩露。那我們接下來來看看這三種演算法型別分別有什麼樣的演算法呢:

ca證書:ca證書ca證書內含服務端公鑰與私鑰,使用hash雜湊函式計算明文資訊的資訊摘要,然後採用ca證書內含的私鑰對資訊摘要進行加密最終生成簽名。即:證書 = 公鑰 + 簽名 +申請者和頒發者的資訊。客戶端中因為在作業系統中就預置了ca的公鑰,所以支援解密簽名。

知道了上面這些基礎知識,接下來我們一起了解https如何進行安全認證,首先主要有單向認證和雙向認證兩種認證方式:

單向認證

從上圖可以看出,單向認證過程如下:

https雙向認證 單向認證客戶端只需要認證服務端,而在雙向認證中服務端同樣需要對客戶端進行認證:

雙向認證具體過程如下:

但是https即使號稱超文字傳輸安全協議,也是很容易被抓包的,一般可以通過charles、fildder等工具作為中間層,進行身份的偽裝:對客戶端偽裝成服務端,對服務端偽裝成客戶端: 截獲客戶端的https請求,偽裝成客戶端去向服務端傳送https請求 接受服務端返回,用自己的證書偽裝成服務端向客戶端傳送資料內容。

具體過程如下圖所示:

反抓包策略 那我們應該如何防止被抓包呢?可以使用ssl-pinning技術來反抓包。因為被抓包主要是由於偽造了乙個假的服務端證書給了客戶端,音粗可以同時在客戶端也儲存乙份服務端的證書,就可以知道資料**的證書是不是真實服務端**了。ssl-pinning有兩種方式: 證書鎖定(certificate pinning) 公鑰鎖定(public key pinning)

證書鎖定 證書鎖定是ssl/tls加密的額外保證手段。它會將伺服器的證書公鑰預先儲存在客戶端。在建立安全連線的過程中,客戶端會將預置的公鑰和接受的證書做比較。如果一致,就建立連線,否則就拒絕連線。在客戶端設定證書只允許設定指定網域名稱的證書,而不接受作業系統或瀏覽器內建的ca根證書對應的任何證書。

2.公鑰鎖定
https和http的區別 https協議需要到ca申請證書,一般免費證書很少,需要交費。 http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。 http和https使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443。 http的連線很簡單,是無狀態的。 https協議是由ssl+http協議構建的可進行加密傳輸、身份認證的網路協議,要比http協議安全。

https解決的問題 防止第三方冒充伺服器。 防止第三方攔截通訊報文,竊取通訊中請求報文、響應報文的內容。 防止第三方攔截通訊報文,篡改報文內容。

HTTPS抓包配置

以charles為例 配置charles抓取https需要手機和pc分別進行配置。步驟 2.charles客戶端安裝證書 注意證書安裝需要儲存在 受信任的根證書頒發機構 中,安裝完成,檢視一下是否顯示了成功。勾選 enable,點選add,新增網域名稱和埠號443,全部網域名稱支援抓包,則網域名稱處...

charles支援https抓包

前言 最近發現訪問專案的網頁偶爾會被插入廣告,很有可能是運營商劫持流量插入進去的,我在家裡使用的長城寬頻開啟非加密的網頁,時不時會彈個廣告窗,這個也算是中國特色了。因此計畫專案上線https,抓包分析就困難了,之前知道有人搞過https的抓包,就是配置有些麻煩。上網找了些資料,算是配成功了,這裡記錄...

charles 抓包https介面

秒文鎮樓 一 手機 ios裝證書,低版本安卓裝證書 crt檔案 高版本不支援,建議ios 訪問chls.pro.ssl 配置信任。wifi網路配置手工 ipv4 port 8888 設定 通用 描述檔案與裝置管理 二 官網下charles軟體安裝即可。破解registered name licens...