SNMPv3的加密和認證過程

2021-07-31 13:58:34 字數 1308 閱讀 2474

前面的一些文章詳細講解了snmpv3的報文內容,下面主要的內容就是snmpv3的加密和認證過程!

usm的定義為實現以下功能: 鑑別

資料加密

金鑰管理

時鐘同步化

避免延時和重播攻擊

1、usmsecurityparameters(安全引數)

安全引數存在於snmp訊息中的msgsecurityparameters欄位,以asn.1語法定義如下:

usmsecurityparameters ::=

sequence

msgauthoritativeengineid 權威引擎id。請求及inform訊息中此值為接收方引擎id。trap及應答訊息中此值為傳送方引擎id

msgauthoritativeengineboots 權威引擎已重啟次數

msgauthoritativeenginetime 權威引擎傳送此訊息時的時間

msgusername  使用者名稱

msgauthenticationparameters 訊息鑑別**

msgprivacyparameters 用於解密的salt值

2、鑑別和加密的實現

2.1  鑑別

使用md5或sha-1作為內嵌安全雜湊函式,通過hmac進行鑑別。

從使用者口令到鑑別金鑰產生方法:

假設使用者口令為password,不斷重複串接password必要多的次數達到1048576位元組長度。然後通過md5或sha-1雜湊函式得到乙個16位元組或20位元組的金鑰。

鑑別過程:

傳送訊息時用鑑別金鑰產生乙個訊息鑑別**,並將其填入msgauthenticationparameters欄位。收到乙個訊息時用傳送此訊息的使用者對應的鑑別金鑰對訊息產生乙個訊息鑑別**,與msgauthenticationparameters欄位中的值進行比較,若相等則認為通過鑑別。

2.2  加密解密

用和產生鑑別金鑰相同的方法從使用者口令生成加密金鑰。

加密過程:

用16位元組的加密金鑰的最後8位用作預iv,該引擎的snmpengineboots 的當前值(4個位元組)和由本地維護的乙個4位元組整數串連構成乙個salt值。由本地維護的這個4位元組整數在每次傳送訊息時應採用不同的值。salt值和預iv按位異或生成iv,加密金鑰和iv通過des的cbc加密演算法對scopedpdudata欄位資料進行加密。並將salt值放入msgprivacyparameters欄位。

解密過程:

從收到的訊息中取出msgprivacyparameters欄位內的salt值。用本地維護的16位元組的金鑰的最後8位用作預iv,將salt值與預iv按位異或生成iv用金鑰和iv對已加密的資料進行解密。

置頂 SNMPv3認證和加密過程

前面的一些文章詳細講解了snmpv3的報文內容,下面主要的內容就是snmpv3的加密和認證過程!usm的定義為實現以下功能 鑑別資料加密 金鑰管理 時鐘同步化 避免延時和重播攻擊 1 usmsecurityparameters 安全引數 安全引數存在於snmp訊息中的msgsecurityparam...

SSL 單向和雙向認證加密過程

1原理 2單向和雙向驗證 3 詳解 1 單向認證 只有乙個物件校驗對端的證書合法性。通常都是client來校驗伺服器的合法性。那麼client需要乙個ca.crt,伺服器需要server.crt,server.key 2 雙向認證 相互校驗,伺服器需要校驗每個client,client也需要校驗伺服...

OAuth的認證和授權的過程

oauth的認證和授權的過程中涉及的三方包括 用 戶 服務商的使用者。第三方 通常是 該 想要訪問使用者儲存在服務商那裡的資訊。比如某個提供 列印服務的 使用者想在那裡列印自己存在服務商那裡 的網路相簿。在認證過程之前,第三方需要先向服務商申請第三方服務的唯一標識。oauth認證和授權的過程如下 1...