Hỡnh 2.8 cho ta thầy nguyờn tắc hoạt động của SNMPv2.
Hỡnh 2.8 Gửi và nhận bản tin trong SNMPv2
i, Truyền một bản tin SNMPv2
Qui tắc gửi và nhận bản tin của Manager và Agent được thể hiện trong bảng 2.7.
Bảng 2.7 : Quy tắc truyền và nhận một bản tin trong SNMPv2 SNMPv2 PDU Agent Generate Agent Receive Manager Generate Manager Receive GetRequest x x
GetNextRequ est x x Response x x x SetRequest x x GetBulkRequ est x x InformReques t x x SNMPv2- Trap x x
Một phần tử SNMPv2 thực hiện cỏc hành động sau để truyền một PDU cho một phần tử SNMPv2 khỏc:
Sử dụng ASN.1 để mụ tả một PDU.
PDU này được chuyển sang dịch vụ xỏc nhận cựng với cỏc địa chỉ nguồn và
đớch của truyền thụng và một tờn truyền thụng. Dịch vụ xỏc nhận sau đú thực hiện những biến đổi bất kỳ theo yờu cầu cho sự trao đổi này như mó hoỏ hoặc thờm mó xỏc nhận và trả lại kết quả.
Phần tử giao thức sau đú tạo ra bản tin gồm trường số hiệu phiờn bản, tờn truyền thụng vào kết quả của bước trờn.
Đối tượng ASN. 1 mới này sau đú được mó hoỏ sử dụng BER và gửi đến dịch vụ vận chuyển.
ii, Nhận một bản tin SNMPv2
Một phần tử SNMPv2 thực hiện cỏc hành động sau để nhận một bản tin SNMPv2:
Kiểm tra cỳ phỏp cơ bản của bản tin và loại bỏ bản tin nếu cỳ phỏp sai. Kiểm tra số hiệu phiờn bản và loại bỏ bản tin nếu khụng tương hợp.
Phần tử giao thức sau đú chuyển trờn người sử dụng, phần PDU của bản tin
và cỏc địa chỉ nguồn và đớch của bản tin tới dịch vụ xỏc nhận. Nếu xỏc nhận bị sai, dịch vụ xỏc nhận bản tin cho phần tử giao thức SNMPv2 nơi tạo ra
Trap và loại bỏ bản tin. Nếu xỏc nhận hoàn thành dịch vụ xỏc nhận trả lại một PDU theo dạng của một đối tượng ASN.1.
Phần tử giao thức thực hiện kiểm tra cỳ phỏp cơ bản của bản tin và loại bỏ
bản tin nếu cỳ phỏp sai. Ngược lại dựng truyền thụng theo tờn, chớnh sỏch truy cập SNMPv2 tương ứng sẽđược chọn và tiếp đến là xử lý PDU.
iii, Cỏc trạng thỏi thớch ứng cho SNMPv2
Mục đớch của cỏc trạng thỏi thớch ứng là để định nghĩa một thụng bỏo dựng để chỉ rừ giới hạn thấp nhất cú thể chấp nhận khi thực hiện ở mức thụng thường. Cú 4 macro
được định nghĩa:
Macro OBJECT-GROUP: Macro này dựng để chỉ rừ một nhúm đối tượng
được quản lý cú liờn quan và là đơn vị cơ bản của tớnh thớch ứng. Nú cung
cấp một phương thức cho một nhà sản xuất mụ tả tớnh thớch ứng và cấp độ của nú bằng cỏch chỉ ra những nhúm nào được bổ sung. Macro OBJECT- GROUP gồm 4 mệnh đề chớnh sau:
- Mệnh đề OBJECTS: liệt kờ cỏc đối tượng trong nhúm cú giỏ trị mệnh đề
MAX-ACCESS là accessible-for-Notify, read-Only, read-write hoặc
read-create.
- Mệnh đề STATUS: chỉ ra định nghĩa này là hiện thời hay đó qua.
- Mệnh đề DESCRIPTION: chứa một định nghĩa nguyờn bản của nhúm cựng với một mụ tả của bất kỳ quan hệ nào với nhúm khỏc.
- Mệnh đề REFERENCE: dựng để gộp tham chiếu qua lại vào một nhúm được định nghĩa trong một vài khối thụng tin khỏc.
Macro NOTIFICATION-GROUP: Được dựng để định nghĩa một tập hợp cỏc thụng bỏo cho cỏc mục đớch thớch ứng, gồm cỏc mệnh đề chớnh sau:
- Mệnh đề NOTIFICATIONS: Liệt kờ mỗi thụng bỏo chứa trong nhúm thớch ứng.
- Cỏc mệnh đề STATUS, DESCRIPTION và REFERENCE: cú ý nghĩa tương tự như trong macro OBJECTS-GROUP
Macro MODULE-COMPLIANCE: Chỉ ra một tập nhỏ nhất của cỏc yờu cầu liờn quan đến việc thờm một hay nhiều khối MIB. Cỏc mệnh đề STATUS, DESCRIPTION, và REFERENCE cú ý nghĩa tương tự như trong cỏc macro
Macro AGENT-CAPABILITIES: Dựng để cung cấp thụng tin về cỏc khả năng cú trong một phần tử giao thức Agent SNMPv2. Nú được sử dụng để mụ tả mức độ hỗ trợ đặc biệt mà một Agent yờu cầu, liờn quan đến một nhúm
MIB. Về bản chất, cỏc khả năng thể hiện những cải tiến hoặc biến đổi nhất định liờn quan đến cỏc macro OBJECT-TYPE trong cỏc khối MIB.
2.6 SNMPv3
SNMPv3 dựa trờn việc thực hiện giao thức, loại dữ liệu và uỷ quyền như
SNMPv2 và cải tiến phần an toàn. SNMPv3 cung cấp an toàn truy nhập vào cỏc thiết bị bằng cỏch kết hợp sự xỏc nhận và mó khoỏ cỏc gúi tin trờn mạng. Những đặc điểm
bảo mật cung cấp trong SNMPv3 là:
Tớnh toàn vẹn thụng tin : Đảm bảo cỏc gúi tin khụng bị sửa trong khi truyền. Sự xỏc nhận: Xỏc nhận nguồn của thụng tin gửi đến.
Mó khoỏ: Đảo nội dung của gúi tin, ngăn cản việc gửi thụng bỏo từ nguồn khụng được xỏc nhận.
SNMPv3 cung cấp cả mụ hỡnh an toàn và cỏc mức an toàn. Mụ hỡnh an toàn là
thực hiện việc xỏc nhận được thiết lập cho người sử dụng và nhúm người sử dụng hiện
cú. Mức an toàn là mức bảo đảm an toàn trong mụ hỡnh an toàn. Sự kết hợp của mụ hỡnh an toàn và mức an toàn sẽ xỏc định cơ chế an toàn khi gửi một gúi tin.
Tuy nhiờn việc sử dụng SNMPv3 rất phức tạp và cồng kềnh dự nú là sự lựa chọn tốt nhất cho vấn đề bảo mật của mạng. Việc sử dụng sẽ tốn rất nhiều tài nguyờn do trong mỗi bản tin truyền đi sẽ cú phần mó húa BER. Phần mó húa này sẽ chiếm một phần băng thụng đường truyền do đú làm tăng phớ tổn mạng.
Mặc dự được coi là phiờn bản đề nghị cuối cựng và được coi là đầy đủ nhất
nhưng SNMPv3 vẫn chỉ là tiờu chuẩn dự thảo và vẫn đang được nghiờn cứu hoàn thiện.
Kiến trỳc thực thể SNMPv3 (RFC257) được thể hiện trờn hỡnh 2.9 gồm cơ cấu SNMP và cỏc ứng dụng.
Hỡnh 2.9 Kiến trỳc thực thể của SNMPv3
Cơ cấu SNMPv3 gồm 4 thành phần: Điều phối (Dispatcher).
Phõn hệ xử lý bản tin (Message Processing Subsystem). Phõn hệ bảo mật (Security Subsystem).
Phõn hệđiều khiển truy nhập (Access Control Subsystem).
Phõn hệ điều phối bản tin xử lý bản tin gửi và nhận, khi nhận được bản tin phõn hệ này sẽ xỏc nhận phiờn bản của SNMP và gửi bản tin tới phõn hệ xử lý bản tin tương ứng. Phõn hệ xử lý bản tin chia thành 3 khối (module) như sau:
Hỡnh 2.10 Phõn hệ xử lý bản tin trong SNMPv3
Module SNMPv3 tỏch phần dữ liệu của bản tin gửi tới phõn hệ bảo mật để giải nộn và nhận thực. Phõn hệ bảo mật cũng cú nhiệm vụ nộn dữ liệu. Cấu trỳc module của phõn hệ bảo mật như sau:
Hỡnh 2.11 Cấu trỳc module của phõn hệ bảo mật trong SNMPv3
SNMPv3 tương thớch hoàn toàn với SNMPv1 và SNMPv2, nú gồm mụ hỡnh bảo mật dựa trờn người dựng và mụ hỡnh bảo mật chung để xử lý SNMPv1, SNMPv2. Cấu
trỳc module đơn giản khi thờm vào cỏc module bảo mật dạng khỏc trong quỏ trỡnh phỏt triển. Khi số liệu tỏch ra khỏi PDU và nú sẽđược gửi tới ứng dụng thớch hợp qua phõn hệ điều khiển truy nhập. Phõn hệđiều khiển truy nhập chịu trỏch nhiệm xỏc định đối
tượng bị quản lớ và cỏch thức truy nhập tới nú. Hiện nay chỉ cú một mụ hỡnh điều khiển truy nhập nhưng nú cú thể mở rộng trong tương lai (RFC2575).
Hỡnh 2.12 Cấu trỳc phõn hệđiều khiển truy nhập trong SNMPv3
Mụ hỡnh điểu khiển truy nhập cú thể nhỡn thấy (RFC 2575) quyết định người dựng cú thể truy nhập (đọc hoặc đặt trạng thỏi) cho đối tượng quản lớ.
2.6.1 Khuụn dạng bản tin SNMPv3
RFC 2572 định nghĩa cỏc khuụn dạng bản tin SNMPv3. Khuụn dạng bản tin
SNMPv3 được phõn chia trong trong bốn phần (Hỡnh 2.13).
Dữ liệu chung (Common data)- Trường này xuất hiện trong tất cả cỏc bản tin
SNMPv3.
Bảo mật mụ hỡnh dữ liệu (Security model data)- Vựng này cú ba phần: phần
Context – Hai trường nhận dạng và tờn được dựng để cung cấp context cho
PDU nào sẽ phải xử lý.
PDU –Vựng này chứa một SNMPv2c PDU.
Hỡnh 2.13 Khuụn dạng bản tin SNMPv3
MessageVersion
Trường đầu tiờn trong bản tin là trường phiờn bản SNMP.Trường này cung cấp
tớnh tương thớch với cỏc phiờn bản khỏc nhau. Giỏ trị 3 trong trường này chỉ ra đõy là
một bản tin SNMPv3. Giỏ trị 2 và 1 tương ứng với SNMPv2 và SNMPv1.
MessageID
Nhận dạng bản tin là một số được sử dụng giữa hai thực thể cho bản tin tương quan. Đơn vị dữ liệu giao thức PDU chứa trường nhận dạng yờu cầu và được sử dụng nhận dạng trong SNMPv1 và SNMPv2c, nhưng từ SNMPv3 cả mó húa PDUs,
message ID đều nằm bờn trong tiờu đề.
MaxMessageSize
Kớch thước bản tin lớn nhất MaxMessageSize là kớch thước lớn nhất của bản tin
được hỗ trợ bởi bờn gửi bản tin. Đõy là gúi kớch thước lớn nhất để giao thức vận chuyển cú thể mang mà khụng cần phõn đoạn. Bờn phớa thu sử dụng giỏ trị MaxMessageSize để bảo đảm sự trả lời của nú vẫn nằm trong phạm vi kớch thước cho phộp.
MessageFlags
Cờ đỏnh dấu bản tin cú độ dài 1 byte, xỏc định sự thiết lập chứng thực và đặt riờng cho bản tin. Nú cũng thụng bỏo khi bản tin yờu cầu một sựđỏp lại từ phớa mỏy
thu. Cú ba bit được sử dụng khi việc mó húa khụng thành cụng. Khụng cú chứng thực và khụng cú sự riờng lẻ (giỏ trị bit 000).
Chứng thực và khụng cú sự riờng lẻ (giỏ trị bit 001).
Cảba trường hợp trờn đều cú thểđặt cảnh bỏo tựy chọn.
MessageSecurity
Bảo mật bản tin là một đối tượng sốnguyờn được đặt bảo mật cho bản tin. Phạm vi của những giỏ trị hỗ trợ như sau:
0 được dành cho “ any ” (bất kỳ). 1 được dành cho SNMPv1. 2 được dành cho SNMPv2c.
3 được dành cho USM (User-based Security Model).
4-555 được dành cho những mụ hỡnh bảo mật tiờu chuẩn khỏc.
Cỏc giỏ trị ngoài 255 cú thểđược dựng cho mụ hỡnh bảo mật tiờu chuẩn. Bờn thu cũng phải dựng cựng mụ hỡnh bảo mật đú khi xử lý bảo mật hoạt động. Phõn hệ bảo mật điều khiển quỏ trỡnh xử lý này của bản tin SNMPv3.
Mụ hỡnh bảo mật dữ liệu chung
Phần chung của mụ hỡnh bảo mật dữ liệu bao gồm cỏc trường sau: EngineID: Sự nhận dạng duy nhất của engine SNMPv3.
EngineBoots: là khoảng thời gian mà engine SNMP bắt đầu up hoặc reset giỏ
trị của usmUserTable cuối cựng bị sửa đổi.
EngineTime: Số giõy mà giỏ trị EngineBoots cuối được sửa đổi.
UserName: Tờn của người dựng.
Những trường trờn đi trước cỏc vựng dữ liệu chứng thực và riờng lẻ. EngineID và
UserName được dựng để tạo một chỉ số trong một bảng gọi là usmUserTable. Bảng
này lưu giữ dữ liệu mụ hỡnh bảo mật cho EngineID và cặp người dựng.
Mụ hỡnh bảo mật dữ liệu qua chứng thực
Hai giao thức chứng thực hỗ trợ trong SNMPv3 là MD5 và SHA. Cả hai giao thức cựng phục vụ cho mục đớch: xỏc nhận thụng bỏo SNMPv3. Thuật toỏn MD5 tớnh toỏn 16 byte (128 bit) digest và 12 byte đầu tiờn (96 bit) bao gồm cỏc thành phần của bản tin bờn trong cỏc trường chứng thực. Người dựng phải chọn một chỡa khúa bớ mật 16-octet (byte) để dựng cho thuật toỏn MD5. Nếu người dựng chọn thuật toỏn chứng thực SHA thỡ thuật toỏn tớnh toỏn 20 byte (160 bit) digest và một lần nữa 12 byte đầu tiờn (96 bit) bao gồm những thành phần của bản tin chứng thực. Người dựng phải chọn một chỡa khúa bớ mật 20-octet để dựng thuật toỏn SHA.
byte được dựng làm nhận dạng để chứng thực bản tin. Khi một thực thể SNMPv3 (manager) muốn gửi một yờu cầu cho thực thể khỏc (agent) phải dựng một chỡa khúa bớ mật cho cả hai phớa.
Mụ hỡnh bảo mật dữ liệu qua giao thức riờng
Trường của giao thức riờng lẻ là chuỗi 18 byte octet dựng cho thuật toỏn tiờu chuẩn mó húa dữ liệu DES (Data Encryption Standard). Mó húa dựng khúa 16 byte. 8
octet đầu tiờn của khúa bớ mật 16 octet dựng như khúa DES. 8 octet tiếp theo được
dựng như một vector khởi tạo. Cả hai dựng một khúa riờng bớ mật để mó húa và giải mó bản tin.
2.6.2 Cỏc ứng dụng nội bộ của SNMPv3
Cỏc ứng dụng nội bộ này thực hiện cụng việc như tạo ra cỏc bản tin SNMP, đỏp ứng lại cỏc bản tin nhận được, nhận cỏc bản tin và chuyển tiếp cỏc bản tin giữa cỏc phần tử. Hiện cú năm loại ứng dụng đó được định nghĩa:
Cỏc bộ tạo lệnh (Command Generator): Tạo ra cỏc lệnh SNMP để thu thập hoặc thiết lập cỏc dữ liệu quản lớ.
Cỏc bộ đỏp ứng lệnh (Command Responder): Cung cấp việc truy cập tới dữ liệu quản lớ. Vớ dụ cỏc lệnh Get, GetNext, Get-Bulk và Set PDUs được thực hiện bởi cỏc bộđỏp ứng lệnh.
Cỏc bộ tạo bản tin (Notification Originator): Khởi tạo Trap hoặc Inform.
Cỏc bộ nhận bản tin (Notification Receiver) Nhận và xử lý cỏc bản tin Trap hoặc Inform.
Cỏc bộ chuyển tiếp uỷ nhiệm (Proxy Forwarder): Chuyển tiếp cỏc thụng bỏo giữa cỏc phần tử SNMP.
2.6.3 Nguyờn tắc hoạt động của giao thức SNMPv3
i, Gửi một bản tin hoặc một yờu cầu
Quỏ trỡnh gửi một bản tin hoặc một yờu cầu gồm cỏc bước sau: Tạo ra cỏc yờu cầu ứng dụng
- Nếu giỏ trị messageProcessingModel khụng miờu tả một mụ hỡnh xử lý bản
tin được biết tới từ bộđiều vận thỡ giỏ trịerrorIndication được trả lại cho ứng dụng gọi tới và khụng cú hành động nào được xử lý nữa.
Bộđiều vận tạo ra sendPduHandle cho quỏ trỡnh xử lý tiếp theo.
- Bộđiều vận bản tin gửi yờu cầu tới module xử lý bản tin phiờn bản đặc trưng và được xỏc định bởi messageProcessingModel
- Nếu statusInformation biểu thị lỗi, thỡ giỏ trị errorIndication được trả lại cho
ứng dụng gọi tới và khụng cú hành động nào được xử lý nữa.
- Nếu statusInformation biểu thị sự chấp thuận, thỡ sendPduHandle được trả về ứng dụng và outgoingMessage được gửi đi. Truyền thụng được sử dụng để
gửi outgoingMessage được trả vềqua destTransportDomain và địa chỉ mà nú gửi được trả về qua destTransportAddress.
Quỏ trỡnh xử lý một bản tin gửi đi hoàn tất.
ii, Gửi một đỏp ứng tới mạng
Quỏ trỡnh gửi một đỏp ứng một bản tin diễn ra như sau:
Tạo ra một ứng dụng chứa yờu cầu sử dụng
Bộ điều vận bản tin sẽ gửi yờu cầu tới mụ hỡnh xử lý bản tin thớch hợp được nhận biết qua giỏ trị messageProcessingModel. Khi đú một đỏp ứng chuẩn bị được gửi đi
Nếu kết quả (result) là errorIndication thỡ errorIndication sẽ trả lại ứng dụng gọi tới và khụng cú hành động nào được xử lý nữa.
Nếu kết quả được chấp nhận thỡ outgoingMessage được gửi đi. Truyền thụng
được sử dụng để gửi outgoingMessage được trả về qua destTransportDomain và
địa chỉ mà nú gửi được trả về qua destTransportAddress.
iii, Quỏ trỡnh điều phối bản tin của bản tin SNMP nhận được
Giỏ trịsnmpInPkts được tăng lờn.
Nếu gúi tin khụng phõn tỏch được đầy đủ phiờn bản của bản tin SNMP hoặc nếu phiờn bản khụng được hỗ trợ thỡ giỏ trị snmpInASNParseErrs được tăng lờn và
bản tin nhận được bị loại bỏ và khụng xử lý nữa.
Nguồn gốc của transportDomain và transportAddress được xỏc định.
Bản tin chuyển qua mụ hỡnh xử lý bản tin và thành phần dữ liệu trừu tượng được trả về bởi bộđiều vận:
Nếu result là errorIndication khụng thớch hợp thỡ bản tin bị huỷ bỏ và quỏ trỡnh xử lý kết thỳc.
Tiếp theo, tuỳ vào giỏ trị của sendPduHandle là rỗng hay khụng rỗng ta cú hai
hướng xử lý tiếp.
Nếu sendPduHandle là rỗng thỡ bản tin nhận được là một yờu cầu hoặc một bản tin. Quỏ trỡnh xử lý như sau:
Giỏ trị của contextEngineID và pduType được phối hợp để quyết định xem ứng dụng đó đăng ký cho một bản tin hay một yờu cầu.
Nếu khụng cú ứng dụng nào được đăng ký: