身份認證協議Kerberos&&TLSv1.2加密抓包

認證分爲消息認證和身份認證。
認證協議本就不是一蹴而就的,它是自我發展的過程,下面說說身份認證協議。

我們都知道HTTP是無狀態協議,網絡就是通過HTTP進行信息傳輸的。
無狀態協議:一旦數據提交完後,瀏覽器和服務器的連接就會關閉,再次交互的時候需要重新建立新的連接。
新的連接,意味着服務器無法確定用戶的身份,除非再次登錄。解決方案:W3C提出:給每一位用戶分發一個通行證,用戶後續訪問需要攜帶通行證,這樣服務器就可以從通行證上確認用戶的信息,這個通行證就是cookie.

通常服務器給用戶的cookie值都是有效期的,例如我們登錄過了微信,QQ等第二天就不用再次輸入口令認證(用戶名和密碼)進行登錄,這種cookie一般都很久。在瀏覽器上登錄某些網站服務器,也會給用戶一個cookie,瀏覽器的默認設置通常會記錄這個cookie,下次直接登錄,避免了與用戶過多的交互。

先來看單點登錄技術 SSO(single sing on)
多系統用戶只需登錄一次,各系用就可以感知。例如:電腦開機讓我們輸入口令認證,
認證成功後,系統會給我們一個身份認證的識別東西(暫且就通信證把)。
cookie是確認用戶身份的,因此用戶每次請求都要把cookie帶上; 同樣在服務器端會有一個session 用來表示用戶是否登錄過。但是這種方式假如有100人系統可以管理過來,當量變引起質變的時候,就會成爲系統的一項負擔,因此出現了一個登錄子系統,專門管理這些東西。其他應用子系統,例如淘寶的物流系統,繳費系統要訪問用戶的信息由登錄子系統將一個隨機的東西寫入用戶的cookie中,告訴應用子系統等會用戶要訪問你。

Kerberos協議 MIT開發 多系統認證
初步方案:

在這裏插入圖片描述
分析這種方案只適合早期,當用戶多的時候,或者應用服務器 V2,V3 … 每次用戶都需要認證服務器AS 給出一個適合的Ticketv2 。。

方案二:

引入票據許可服務器TGS(Ticket Grant Server)
引入會話密鑰
1.
C—AS: IDc,IDtgs
2.
AS—C: EKc[ IDas,Kc,tgs,Tickettgs]
其中Tickettgs=EKc{IDc,ADc,IDtgs,Kctgc}
3.
C—TGS: IDc,IDv,Tickettgs
4.
TGS—C: EKc,tgs[IDtgs,IDc,Kc,v, Ticketv] // 這裏Ticketv 是沒有加密的,因爲C與TGS
無共享密鑰。
其中Ticketv=EKc,v[IDc,ADc,IDv,Kc,v]
5.
C—V: Ticketv || Ekc,v[IDtgs,IDc,N1]
6.
V—C:EKc,v[N+1]
// N是隨機數,爲了增加破解加密的複雜度。

SSL通信建立連接的目的:

身份認證 客戶端與瀏覽器雙方相互連接,驗證不是第三方冒充的,由證書實現。
交換session key 數據的加密傳輸和hash校驗

HTTPS 的交互過程。

SSL加密協議的認證其實就是在三次握手的基礎上增加了加密套件的交互認證。

  1. cilent: cilenthello 指定版本 隨機數RN,以及所有支持的密碼套件
  2. Server: serverhello 指定版本,隨機數RN,選擇Ciphersuites,會話session ID
    同時Certificate發佈證書
    Serverhellodone
    3.ClientketExchange 用戶交換session key
    Change Cipher Spec 指示服務器從現在開始發送的消息都是加密的。
    Finishd 所有握手消息hash,讓服務器驗證握手是否被第三方篡改。
  3. Server Change Cipher Spec 提示Client 加密
    Finishd 讓Client驗證,並證明自己是Certificate密鑰擁有者.(證明身份)

抓包如下;
在這裏插入圖片描述
可以看到 客戶端發送clienthello;
服務器端迴應一個serverhello。同時發佈證書,密鑰交換,hellodone。
在這裏插入圖片描述
客戶端 發出密鑰交換,Change Cipher Spec 告訴服務器下面的消息都是加密的。
服務器端確認加密消息。
後門三個包是加密傳輸的數據和加密類型。

詳細分析每一個包:

  1. Client hello
    在這裏插入圖片描述
    可以看到TLS1.2 Client hello 做了四件事:
    版本,隨機數RN,Session ID,以及加密組件。
  2. Server hello
    在這裏插入圖片描述
  3. 這裏部分用戶提供證書,服務器密鑰交換,Server hello done等
    在這裏插入圖片描述
  4. 客戶端密鑰交換,聲明下面的消息都是加密
    在這裏插入圖片描述
    服務器做個簡單確認就可以。
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章