IKEv2的認證資料生成過程

2021-06-06 15:17:18 字數 1367 閱讀 1731

在ikev2的第三個訊息和第四個訊息中,雙方都會向對方傳送乙個auth payload來證明自己的身份。這個過程是通過對各自傳送的第乙個訊息進行簽名來實現的。比如,如果乙個responder想證明自己的身份,那麼,當它傳送ike_sa_init訊息時,需要把這個訊息完整的快取下來。然後在傳送ike_sa_auth之前,將快取的ike_sa_init訊息和nonce_i,以及它自身的id的mac值連線到一起,再用prf演算法算出乙個結果,便是auth值。

如下:1.計算自己的id mac

macedidforr =prf( sk_pr, idtype | reserved | respiddata )

2.     計算auth值

auth_data = prf( sk_pr, realmessage2 | nonceidata |macedidforr )

這裡realmessage2代表responder傳送的ike_sa_init訊息,因為它在所有的訊息序列中是第二個訊息,所以叫realmessage2。nonceidata是initiator發過來的nonce值。

類似的,initiator計算auth data過程如下:

3.     計算自己的id mac

macedidfori =prf( sk_pi, idtype | reserved | initiddata )

4.     計算auth值

auth_data = prf( sk_pi, realmessage1 | noncerdata |macedidfori )

這裡realmessage1代表initiator傳送的ike_sa_init訊息,noncerdata是responder發過來的nonce值。

但是如果雙方選擇的認證方式是共享金鑰,那麼計算auth data時會有一點區別:

for the initiator:

auth = prf( prf(shared secret, "key pad forikev2"),

)for the responder:

auth = prf( prf(shared secret, "key pad forikev2"),

)在計算最終的auth data時,如果認證方式是pre-shared key,那麼prf演算法的第乙個引數將不再使用sk_pi/sk_pr,而是用prf( shared secret, 「key pad for ikev2」 )作為prf的金鑰。

最後一點是關於eap的,如果雙方協商使用eap認證,那麼eap過程結束後,雙方還會傳送auth訊息。如果使用的eap方法是key-generation的,那麼在計算auth data時必須用msk (master shared key) 來替換共享金鑰。如果是non-key-generating方法,那麼用sk_pi和sk_pr來替換共享金鑰。

IPSec的IKEv1和IKEv2協議

ikev2金鑰協商和交換 初始交換 ike安全機制 ike是乙個復合協議。網際網路金鑰交換ike internet key exchange 協議建立在internet安全聯盟和金鑰管理協議isakmp定義的框架上,是基於udp user datagram protocol 500 埠號,的應用層協...

將表資料生成SQL指令碼的儲存過程

將表資料生成sql指令碼的儲存過程 將表資料生成sql指令碼的儲存過程 create procedure dbo.uspoutputdata tablename sysname as declare column varchar 1000 declare columndata varchar 100...

自動生成表的新增更新資料的儲存過程

這兩天利用了一些時間寫了乙個自動生成表的新增更新資料儲存過程的儲存過程,今天終於完成了,以後大家都方便多了,一勞永逸了,以前同事反映有時候表的字段過多,寫起儲存過程來費時 費力 費神,而且一不留神還容易出錯 還記得會員系統剛測試的時候,以前的那個同事就因為模糊大意把 儲存過程中更新時的條件忘加了,在...