SNMPv1原理

主要內容:

1、概述

在網絡管理站與網絡管理代理之間或者網絡管理站與網絡管理站之間要交換網絡管理信息,這些網絡管理信息的表示方法、組織方式和內容定義需要進行標準化,這些問題屬於表示層的問題

還需要一種交互的協議來規定協議數據單元(PDU:Protocol Data Unit)的語法和語義、交互中支持的操作以及交互中的安全問題等內容,這些問題屬於應用層的問題,SNMP協議就是解決這些問題的一個應用層協議

SNMPv1於1990年被互聯網工程任務組(Internet Engineering Task Force,IETF  註釋:它是鬆散的、自律的、志願的民間學術組織)正式推出,與1993年被SNMPv2所替代。SNMPv1一經推出,由於其簡單易行,獲得了廣泛的支持

SNMPv1只支持網絡管理站與網絡管理站代理之間的信息交互,是一種簡單的請求/響應協議

SNMPv1給出了基於共同體(Community)的安全機制,在請求方發送的請求中必須帶上稱爲共同體名稱的字符串,接收方驗證共同體名稱的合法性,並給共同體名稱合法的請求以一定的訪問權限

SNMPv1規定使用UDP協議作爲其傳輸層協議

同一設備上不同的網絡應用程序使用端口號進行區分,對於四種請求/響應操作,網絡管理代理端使用的指明端口號爲161;對於Trap操作,網絡管理站端使用的知名端口號爲162

2、SNMPv1支持的操作

GetRequest操作

GetNextRequest操作

SetRequest操作

GetResponse操作

Trap操作

3、協議數據單元PDU

四種操作的PDU

Trap操作的PDU

4、SNMPv1的消息處理流程

發送方發送消息的建議處理流程:

按照ASN.1的格式構造PDU

將構造的PDU、發送方的地址、端口和目的方地址、端口以及共同體名稱一起發送給認證服務,認證服務完成相應的加密等轉換,將結果返回

將生成的PDU以及Community和Version組裝成完整的SNMP消息報文

對SNMP消息報文進行BER編碼,交傳輸層傳輸實體向接收方發送出去


接收方接收消息的建議處理流程:

BER解碼恢復消息報文

對解碼後的消息報文進行基本的語法檢查,丟棄非法消息報文

檢查版本號,丟棄版本號不匹配的消息報文

將PDU、發送發地址和端口、接收方地址和端口發送到認證服務:

如果認證失敗,認證服務通知協議實體,產生一個authentication-Failure Trap並丟棄該消息報文

如果認證成功,認證服務返回PDU

對PDU進行基本語法檢查,丟棄非法的PDU,否則利用共同體名稱選擇合適的SNMP訪問策略,並對PDU進行相應處理

5、基於共同體的安全機制

SNMPv1的消息報文中有一個共同體名稱的域,共同體名稱相當於口令的作用,SNMPv1提供基於共同體名稱的簡單的安全機制

網絡管理站在對管理代理的MIB對象進行操作的時候,在發送的消息報文中帶上定義在該管理代理上的共同體的名稱,消息到達管理代理以後代理會檢查共同體名稱是否合法,如果不合法,代理產生一個authentication-Failure Trap並丟棄請求消息報文,起到了認證的作用

還提供了授權的功能。一個管理代理可能定義了不同的共同體,這些共同體可能具有不用的權利。消息報文經過管理代理的認證合法以後,在讀取(GetRequest操作和GetNextRequest操作)或者設置(SetRequest操作)MIB對象值以前,還要根據共同體名稱以及MIB對象定義中的訪問權限檢查操作類型是否具有合法的權限,最後生成GetResponse消息報文

基於共同體名稱的安全機制雖然具有簡單的認證和授權的功能,但是基本上不能發揮安全保障的作用,存在很多的問題,例如:

多數網絡設備存在缺省的共同體定義和缺省的共同體名稱,任何人都可以利用,輕鬆獲得網絡設備的訪問權限

即使取消缺省的共同體名稱,採用自定義的共同體名稱,由於SNMPv1消息報文沒有任何的加密機制,以明文的方式在網絡上傳輸,攻擊者可以輕鬆獲得包含消息報文中的共同體名稱,從而獲得網絡設備的訪問權限

6、SNMP4J對SNMPv1的支持分析

PDU格式

消息處理模型



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章