You are on page 1of 25

SNMP v3

Chương I: Giao thức quản lý mạng snmp


1.Khái niệm:
Kể từ khi công bố đầu tiên vào năm 1988, giao thức quản lý đơn giản (SNMP) đã
nhanh chóng trở thành 1 giao thức quản lý mạng thông dụng cho các mạng máy tính dựa
trên cơ sở TCP/IP. SNMP định nghĩa một giao thức cho việc trao đổi thông tin quản lý,
nhưng nhiều hơn thế. Nó cũng định nghĩa một định dạng cho các đại diện quản lý thông tin
và một khuôn khổ cho việc tổ chức hệ thống phân phối vào hệ thống quản lý và quản lý đại
lý. ngoài ra, một số cấu trúc cơ sở dữ liệu riêng, gọi là cơ sở thông tin quản lý (MIBs), đã
được định nghĩa như là một phần của bộ ứng dụng SNMP, những MIB riêng đó quản lý các
đối tượng cho các chủ đề quản lý mạng chung nhất. , bao gồm bridge, router và các mạng
Lan.
SNMP là một tập hợp đơn giản các hoạt động giúp nhà quản trị mạng có thể quản lý,
thay đổi trạng thái của mạng.SNMP có thể dùng để quản lý các hệ thống Unix, Window,
máy in, nguồn điện… Nói chung, tất cả các thiết bị có thể chạy các phần mềm cho phép lấy
được thông tin SNMP đều có thể quản lý được. Không chỉ các thiết bị vật lý mới quản lý
được mà cả những phần mềm như web server, database.
Hoạt động theo mô hình manager/agent. Một ứng dụng của Agent được nhận dạng qua
địa chỉ IP của nó và một cổng UDP.
Sử dụng kết nối không định hướng để trao đổi thông tin giữa các phần tử và hệ thống
quản lí mạng (trường hợp này sử dụng UDP). UDP truyền các gói theo các khối riêng
biệt.Tuy vậy có thể sử dụng tùy ý các giao thức khác để truyền gói tin SNMP. Các gói tin
sau khi truyền qua mạng ,các phần tử mạng hay hệ thống quản lý vẫn giữ nguyên định
dạng của SNMP. SNMP sử dụng UDP (User Datagram Protocol) như là giao thức truyền
tải thông tin giữa các manager và agent. Việc sử dụng UDP, thay vì TCP, bởi vì UDP là
phương thức truyền mà trong đó hai đầu thông tin không cần thiết lập kết nối trứơc khi dữ
liệu được trao đổi (connectionless), thuộc tính này phù hợp trong điều kiện mạng gặp trục
trặc, hư hỏng v.v.
-Đối với các phương thức get/set/response thì SNMP agent lắng nghe ở port UDP 161,
còn phương thức trap thì SNMP trap receiver lắng nghe ở port UDP 162.
-SNMP sử dụng 3 lệnh cơ bản sau:
+Read :được SNMP dùng để đọc thông tin từ thiết bị .Các thông tin này được cung
cấp qua các biến SNMP lưu trữ trên thiết bị và được thiết bị cập nhật.
+Write :được SNMP dùng để ghi các thông tin điều khiển lên thiết bị bằng cách thay
đổigiá trị các biến SNMP.
+Trap :dùng để nhận các sự kiện gửi từ thiết bị đến SNMP.Mỗi khi có sự kiện xảy ra
trên thiết bị một lệnh Trap sẽ được gửi tới NMS.
Ngoài ra SNMP còn sử dụng một số lệnh tùy biến để quản lý mạng
-Trong SNMP có 3 vấn đề cần quan tâm: Manager, Agent và MIB (Management
Information Base).

1
Hình1:Mô hình snmp
MIB: là cơ sở dữ liệu dùng phục vụ cho Manager và Agent.
Manager: là một server có chạy các chương trình có thể thực hiện một số chức năng
quản lý mạng. Manager có thể xem như là NMS (Network Manager Stations). NMS có khả
năng thăm dò và thu thập các cảnh báo từ các Agent trong mạng.
Agent: là một phần trong các chương trình chạy trên các thiết bị mạng cần quản lý. Nó có
thể là một chương trình độc lập như các deamon trong Unix,. Ngày nay, đa số các thiết bị
hoạt động tới lớp IP đều được cài đặt SMNP agent.
SMI là quy tắc quy định cấu trúc định dạng thông tin trong cơ sở dữ liệu MIB
Object ID và MIB
+Object: một thiết bị hỗ trợ SNMP có thể cung cấp nhiều thông tin khác nhau,mỗi
thông tin đó gọi là một object.ví dụ như :các port đang up hay down ,...
+Mỗi object có một tên gọi và một mã số để nhận dạng object đó mã số đó gọi là
objectID (OID) hay ObjectID là định danh của một đối tượng có thể giám sát được , các
thao tác get/set thông tin của đối tượng đều thông qua định danh của chúng.
Tên thiết bị được gọi là sysName
Tổng số port giao tiếp được gọi là ifNumber
Địa chỉ Mac address của một port được gọi là ifPhyAddress
Số byte nhận trên một port được gọi là ifInOctets
-MIB(management information base) là một cấu trúc dữ liệu gồm các đối tượng được
quản lý (managed object),được dùng cho việc quản lý các thiết bị chạy trên nền TCP/IP
.MIB là kiến trúc chung mà các giao thức quản lý trên TCP/IP nên tuân theo, trong đó có
SNMP.MIB được thể hiện thành một file và có thể biểu diễn thành một cây.MIB có thể
được chuẩn hóa hoặc tự tạo(khi bạn tự định nghĩa một đối tượng hoặc một community
string nào đó thì bạn phải tạo cho nó một MIB mới thì các agent mới có thể truyền thông
được với nhau mới hiểu được đối tượng mà bạn định nghĩa )

2
2. MIB
2.1. MIB

Một MIB là một tập hợp của các đối tượng quản lý. Một MIB lưu trữ thông tin được
thu thập bởi tác nhân quản lý nội hạt, trên một thiết bị quản lý cho việc khôi phục sau đó
bởi một giao thức quản lý mạng.
Mỗi một đối tượng trong một MIB có một bộ xác nhận duy nhất mà từ đó các ứng
dụng quản lý sử dụng để xác nhận và khôi phục lại giá trị của đối tượng xác định. MIB có
một cấu trúc giống hình cây nơi mà các đối tượng giống nhau được nhóm lại dưới cùng
một nhánh của cây MIB. Ví dụ, các bộ đếm giao diện khác nhau được nhóm lại dưới
nhánh giao diện của cây MIB.
Cấu trúc MIB được biểu diễn logic bởi một cây phân tầng. Gốc của cây không có tên
và chia thành ba nhánh chính: Ủy ban tư vấn cho mạng điện thoại và điện báo, ISO và
chung giữa ISO/CCITT.
Những nhánh này rơi vào mỗi phạm trù dưới đây đã được xác định với các chuỗi văn
bản ngắn và số nguyên. Các chuỗi văn bản miêu tả các tên đối tượng ngược lại các số
nguyên từ đối tượng xác định rằng phần mềm cho phép để tạo sự thỏa thuận, sự miêu tả
mã hóa của các tên. Bộ xác định đối tượng trong phân tầng mạng MIB là kết quả của các
nhãn số trên các node dọc theo đường dẫn từ gốc đến đối tượng. MIB mạng chuẩn được
biểu diễn bởi bộ xác định đối tượng 1.3.6.1.2.1, có thể được tóm tắt như sau
iso.org.dod.internet.mgmt.mib.

Hình 2: Phân tầng mạng MIB

3
Các chuẩn MIB được xác định trong các RFC khác nhau. Ví dụ, RFC 1213, quản lý
thông tin cơ sở cho quản lý mạng của các mạng dựa trên mô hình TCP/IP: MIB-II, định
nghĩa TCP/IP MIB.
Bổ sung đến các chuẩn MIB, vendors có thể chứa nhánh của cây con MIB và tạo các
đối tượng quản lý dưới nhánh này. Một router MIB của Cisco sử dụng chung cả đối
tượng quản lý chuẩn và nội bộ.
Một cây MIB của router Cisco chứa một vài định nghĩa đối tượng quản lý chuẩn, bao
gồm từ các nhóm sau:
-Nhóm giao diện (bao gồm miêu tả giao diện, loại, địa chỉ vật lý, đếm các gói tin đến
và đi).
-Nhóm IP (bao gồm thiết bị đang hoạt động như gateway IP, số gói tin đầu vào, số
gói tin bị loại bỏ bởi vì lỗi).
-Nhóm ICMP (bao gồm số gói tin ICMP nhận được, số bản tin lỗi).
-Thành phần nội bộ Cisco của cây MIB chứa các đối tượng quản lý nội bộ được giới
thiệu bởi Cisco, như các đối tượng sau đây cho router:
-Các bộ đệm nhỏ, vừa, lớn và cực land.
-Bộ nhớ chính và bộ nhớ phụ.
-Giao thức tài nguyên.
Định nghĩa nội bộ của các đối tượng quản lý phải được biên soạn thành NMS trước khi
chúng có thể được sử dụng; kết quả là đầu ra nhiều miêu tả hơn với các tham số và các sự
kiện có thể được tham chiếu bằng tên.
2.2 MIB-II

MIB-II hỗ trợ một số lượng các giao thức mới và cung cấp cấu trúc thông tin chi tiết
hơn. Nó duy trì thích hợp với phiên bản trước đây, MIB-II giữ lại bộ xác định đối tượng
giống với MIB-I (1.3.6.1.2.1).
MIB-II có 10 nhánh con được định nghĩa trong RFC 1213, kế thừa từ MIB-I trong
RFC 1066. Mỗi nhánh có một chức năng riêng:
system (1.3.6.1.2.1.1) Định nghĩa một danh sách các đối tượng gắn liền với hoạt
động của hệ thống như: thời gian hệ thống khởi động tới bây giờ, thông tin liên lạc của hệ
thống và tên của hệ thống.
interfaces (1.3.6.1.2.1.2) Lưu giữ trạng thái của các interface trên một thực thể quản
lý. Theo dõi một interface “up” hoặc “down”, lưu lại các octet gửi và nhận, octet lỗi hay
bị hủy bỏ.
at (1.3.6.1.2.1.3) Nhóm at (address translation) bị phản đối, nó chỉ cung cấp khả
năng tương thích ngược. Nhóm này được bỏ từ MIB-III trở đi.
- ip (1.3.6.1.2.1.4) Lưu giữ nhiều thông tin liên quan tới giao thức IP, trong đó có
phần định tuyến IP.

4
-icmp (1.3.6.1.2.1.5) Lưu các thông tin như gói ICMP lỗi, hủy.
- tcp (1.3.6.1.2.1.6) Lưu các thông tin khác dành riêng cho trạng thái các kết nối TCP
như: đóng, lắng nghe, báo gửi…
- udp (1.3.6.1.2.1.7) Tập hợp các thông tin thống kê cho UDP, các datagram vào và ra,

-egp (1.3.6.1.2.1.8) Lưu các tham số về EGP và bảng EGP lân cận.
-Transmission (1.3.6.1.2.1.10) Không có đối tượng nào trong nhóm này, nhưng nó
định nghĩa các môi trường đặc biệt của MIB.
-snmp (1.3.6.1.2.1.11) Đo lường sự thực thi của SNMP trên các thực thể quản lý và
lưu các thông tin như số các gói SNMP nhận và gửi.
Mặc dù định ngĩa MIB-II là một cải tiến trên MIB-I, nhưng vẫn còn những vấn đề chưa
giải quyết được:
-MIB-II vẫn là một thiết bị trung tâm, có nghĩa là sự tập trung của nó trên các thiết bị
riêng biệt, không phải mạng toàn vẹn hoặc luồng dữ liệu
-MIB-II là dựa trên bầu chọn, có nghĩa là dữ liệu được lưu trữ trong các thiết bị quản
lý và một hệ thống quản lý phải yêu cầu (bầu chọn) nó thông qua giao thức quản lý;
dữ liệu không được gửi tự động.

Chương II: SNMPv3

1.Kiến trúc SNMPv3


1.1 các thành phần của SNMPv3

Một thay đổi quan trọng trong SNMPv3 là tất cả các agent và manager đều được gọi
chung là thực thể SNMP. Một thực thể SNMP bao gồm hai thành phần: công cụ SNMP
(snmp engine) và các ứng dụng ( applications )

Hình 3 :thực thể snmp

5
1.1.1 snmp engine

Một engine bao gồm bốn thành phần :phân hệ giao vận( 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). Công việc của dispatcher là gửi và nhận
bản tin .Nó cố gắng xác nhận version của mỗi bản tin nhận được và nếu version được hỗ
trợ thì điều khiển message đến phân hệ xử lý bản tin(message processing subsystem).
Dispatcher cũng gửi bản tin snmp tới các thực thể khác,
Phân hệ xử lý bản tin chuẩn bị bản tin để gửi và tách phần dữ liệu tù các bản tin nhận
được .Một phân hệ xử lý có thể gồm nhiều modules xử lý bản tin. Ví dụ như phân hệ có
modules xử lý các yêu cầu cho version 1,các yêu cầu của version 2 , version 3.Nó cũng
có thể chứa module cho các kiểu xử lý khác.
Phân hệ bảo mật cung cấp các dịch vụ xác thực và riêng tư .Xác thực sử dụng cả
community strings hoặc xác thực dựa trên người dùng snmpv3.Xác thực người dùng sử
dụng thuật toán mã hóa MD5 hoặc SHA để xác thực người dùng mà không cần gửi
password ở dạng clear-text .Các dịch vụ riêng tư sử dụng thuật toán DES để mã hóa và
giải mã bản tin SNMP .Hiện tại DES là thuật toán duy nhất được sử dụng ,những thuật
toán khác có thể được sử dụng trong tương lai.
Phân hệ điều khiển truy nhập có khả năng đáp ứng cho việc điều khiển truy nhập đối
tượng MIB .Bạn có thể điều khiển các đối tượng nào mà người dùng có thể truy nhập
cũng như hoạt động nào được phép truy nhập để thực hiện đối tượng đó .Ví dụ như bạn
có thể muốn giới hạn quyền truy cập của người dùng ở mức độ read-write từng phần của
cây mib-2 ,trong khi cho phép đọc trên toàn bộ cây.

1.1.2 snmpv3 application


Version 3 chia snmp thành một số ứng dụng sau:
-Bộ tạo lệnh :tạo ra các lệnh get,getnext ,getbulk ,và set request và xử lý các đáp ứng
.Những ứng dụng này được thực thi bởi Network management station (NMS), vì vậy nó
có thể sử dụng đặt vấn đề và đặt yêu cầu trở lại các thực thể trên các router, switch ,unix
host…
-Bộ đáp ứng lệnh:đáp ứng các lệnh get ,get-next ,get-bulk ,và set request .Những
ứng dụng này được thực thi bởi một thực thể trên router hoặc unix host
-Bộ phát bản tin : phát các bản tin trap và cảnh báo .Ứng dụng này được thực thi bởi
một thực thể trên router hoặc unix host .Đối với version 1 ,version 2 bộ phát tin là một
phần của snmp agent .
-Bộ nhận bản tin:nhận các bản tin trap và tạo bản tin.Những ứng dụng này được thực
thi bởi NMS
-Bộ chuyển tiếp ủy quyền :tự động chuyển tiếp các bản tin giữa các thực thể

6
1.2.Kiến trúc của SNMPv3 manager và agent

1.2.1 kiến trúc snmp manager

Một (nhiều) ứng dụng:

Bộ phát bản tin Bộ nhận bản Bộ tạo lệnh


tin

Phân hệ con bảo


Phân
mậthệ con xử lí
bản tin
Điều vận PDU
v1MP* Mô hình bảo
mật khác
v2cMP*
Điều vận bản tin

v3MP* Mô hình bảo


mật người
otherMP* dùng

UDP IPX other

Mạng

Hình 4 :kiến trúc snmp manager


SNMP manager tương tác với SNMP agents bằng cách sử dụng lệnh(get,getnext
,getbulk,set)và nhận các bản tin cảnh báo (trap ,inform).Manager có thể cũng tương tác

7
với các manager khác bằng cách sử dụng inform request pdu và nhận inform response
pdu.Trong thuật ngữ SNMPv3 một SNMP manager bao gồm các ứng dụng:
-Ứng dụng tạo lệnh :giám sát và quản lý điều khiển dữ liệu ở các agent đầu
xa.Chúng sử dụng các pdu của SNMPv1 và /hoặc SNMPv2 bao gồm get,getnext ,getbulk
và set.
-Ứng dụng phát bản tin:bắt đầu là các bản tin bất đồng bộ ,trong trường hợp của
một manager ,informRequest pdu được sử dụng cho ứng dụng này .
-Ứng dụng nhận bản tin :quá trình xử lý bản tin bất đồng bộ đến .Những bản tin này
bao gồm informRequest ,SNMPv2-Trap ,và SNMPv1 trap pdu .Trong trường hợp một
pdu informRequest đến ,ứng dụng nhận bản tin sẽ đáp ứng với một respond pdu
1.2.2 kiến trúc snmp agent

MIB

Ứng dụng bộ Điều khiển truy Ứng dụng bộ Ứng dụng bộ


đáp ứng lệnh cập phát bản tin chuyển tiếp ủy
quyền


Phân hệ con xử lý Phân hệ con bảo
bản tin mật
Điều vận PDU v1MP* Mô hình bảo
mật khác
v2cMP*

Điều vận bản tin


v3MP* Mô hình bảo
mật người
otherMP* dùng

UDP IPX other

Mạng

8
Hình 5:mô hình kiến trúc snmp agent
Một agent có thể chứa 3 kiểu ứng dụng :
-Ứng dụng đáp ứng lệnh : cung cấp truy nhập để quản lý dữ liệu .Những ứng dụng
này đáp ứng yêu cầu đến bằng cách lấy ra và hoặc thiết lập các objects được quản lý và
sau đó sử dụng một Response PDU
-Ứng dụng phát lệnh ban đầu là các bản tin bất đồn bộ ,trong trường hợp agent , pdu
SNMPv2 trap hoặc SNMPv1 trap được sử dụng cho ứng dụng này.
-Ứng dụng chuyển tiếp đại diện :chuyển tiếp bản tin giữa các thực thể
SNMP engine cho một agent có tất cả các thành phần tìm thấy trong engine SNMP
cho manager,trừ một phân hệ điều khiển truy nhập.Phân hệ này cung cấp các dịch vự tin
cậy (authorization) để truy nhập đến MIB để đọc và thiết lập các objects quản lý .Những
dịch vụ này được thực hiện trên cơ sở nội dung của các PDU.Sự thực thi của phân hệ bảo
mật có thể hỗ trợ một hoặc nhiều mô hình điều khiển truy nhập đặc trưng.Bởi vậy mô
hình bảo mật VACM chỉ được xác định riêng cho SNMPv3,được xác định trong RFC
3415

1.3 Các lệnh trong snmpv3


SNMPv3 thực hiện trao đổi thông tin quản lý dựa vào các lệnh sau:

 Getrequest: manager gửi getrequest cho agent để yêu cầu agent cung cấp
thông tin nào đó dựa vào objectID (trong getrequest có chứa OID). Ví dụ:
muốn lấy thông tin tên của device 1 thì manager gửi bản tin getrequest
OID=1.3.6.1.2.1.1.5 đến device 1 ,tiến trình SNMP agent trên device 1 sẽ
nhận được bản tin và tạo bản tin trả lời. Trong một bản tin Getrequest có thể
chứa nhiều OID có nghĩa là dùng một getrequest có thể lấy về cùng lúc nhiều
thông tin.

 Getnextrequest : manager gửi getnextrequest có chứa một objectID cho agent


để yêu cầu cung cấp thông tin nằm kế tiếp objectID đó trong MIB.Do một
MIB có nhiều OID được sắp cếp thứ tự không liên tục ,nếu biết một OID thì
không xác định được OID kế tiếp .Do đó ta cần getnextrequest để lấy giá trị
về OID kế tiếp .Nếu thực hiện getnextrequest liên tục thì ta sẽ lấy được toàn
bộ thông tin của agent.

 Setrequest : manager gửi setrequest cho agent để đặt giá trị cho đối tượng của
agent dựa vào objectID.Có thể đặt lại tên cho một máy tính hay router bằng
phần mềm SNMP manager bằng cách gửi bản tin setrequest có OIDlà
1.3.6.2.1.1.5.0(sysName.0)và có giá trị tên mới cần đặt. Có thể shutdown một
port trên switch bằng phần mềm SNMP manager bằng cách gửi bản tin có

9
OID là 1.3.6.1.2.1.2.2.1.7 (ifAdminstatus) và có giá trị bằng 2. (ifAdminstatus
có 3 giá trị 1:UP, 2 DOWN, 3 TESTING).Chỉ có những object có quyền
READ_WRITE mới có thể thay đổi được giá trị.

 GetResponse : agent gửi getresponse cho manager để trả lời khi nhận được
getrequest getnextrequest.Trong bản tin getresponse có chứa OID của object
được request và giá trị của object đó.
 Trap :agent tự động gửi trap cho manager khi có một sự kiện xảy ra đối với
một object nào đó trong agent.Các sự kiện này không phải là các hoạt động
thường xuyên của các agent mà là sự kiện mang tính biến cố .ví dụ :khi có
một port down ,khi người dùng login không thành công ,khi thiết bị khởi động
lại ....agent sẽ gửi bản tin trap cho manager.Tuy nhiên không phải mọi biến cố
đều được agent gửi trap ,cũng không phải mọi agent đều gửi trap khi xảy ra
cung một biến cố .Việc agent gửi hay không gửi trap cho biến cố nào là do
hãng sản xuất device/agent quy định . Phương thức trap là độc lập với các
phương thức request/reponse .SNMP request/response dùng để quản lý còn
SNMP trap dùng để cảnh báo .Nguồn gửi trap gọi là trap sender và nơi nhận
trap gọi là trap receiver.Một trap sender có thể được cấu hình để gửi trap đến
nhiều trap receiver cùng lúc. Có hai loại trap :trap phổ biến (generic-trap) và
trap đặc thù (specific trap).generic trap được quy định trong các chuẩn của
SNMP ,còn specific trap do người dùng tự định nghĩa (hãng sản xuất thiết bị
định nghĩa ).Loại trap là một số nguyên giúp chứa trong bản tin trap ,dựa vào
đó mà phía nhận trap biết bản tin trap đó có nghĩa gì.
Các dạng bản tin trap thông thường bao gồm:
- Coldstart :thông báo rằng thiết bị gửi bản tin này đang khởi động
lại và cấu hình của nó có thể bị thay đổi sau khi khởi động .
- WarmStart :thông báo rằng thiết bị gửi bản tin này đang khởi
động và giữ nguyên cấu hình cũ .
- LinkDown : thông báo rằng thiết bị gửi bản tin này phát hiện
được một trong những kết nối truyền thông của nó bị lỗi .Trong
bản tin trap có tham số chỉ ra ifIndex của kết nối bị lỗi
- LinkUp :thông báo rằng thiết bị gửi bản tin này phát hiện được
một trong các kết nối truyền thông của nó đã khôi phục trở
lại.Trong bản tin trap có tham số chỉ ra ifIndex của kết nối được
khôi phục.
- AuthenticationFailure : thông báo rằng thiết bị gửi bản tin này
đã nhận được một bản tin không được chứng thực thành công

10
(bản tin bị chứng thực không thành công có thể thuộc nhiều giao
thức khác nhau như telnet,ssh,snmp,...).Thông thường trap này
xảy ra là do người dùng đăng nhập không thành công vào thiết bị .
- EgpNeighborloss : thông báo rằng một trong số những exterior
gateway protocol (giao thức cửa ngõ bên ngoài ) của thiết bị gửi
trap đã bị coi là down và quan hệ đối tác (peer relationship) giữa
hai bên không còn được duy trì .
- EnterpriseSpecific : thông báo rằng bản tin trap này không thuộc
các kiểu generic như trên mà nó là một loại bản tin do người dùng
tự định nghĩa .

Người dùng có thể tự định nghĩa thêm các loại trap để làm phong phú thêm
khả năng cảnh báo của thiết bị như: boardFailed, configChanged,
PowerLoss…Chỉ những trap sender và trap receiver cùng hỗ trợ một MIB mới
có thể hiểu ý nghĩa của các specific trap.
 get-bulk :cho phép lấy thông tin quản lý từ nhiều phần trong bảng.Dùng “get”
có thể làm được điều này ,tuy nhiên kích thước của câu hỏi có thể bị giới hạn
bởi agent.Khi đó nếu agent không thể trả lời toàn bộ yêu cầu ,nó gửi trả một
thông điệp lỗi mà không có dữ liệu ,Với lệnh “getbulk”agent sẽ gửi càng
nhiều trả lời nếu có thể .Do đó việc trả lời một phần của yêu cầu có thể xảy
ra.Hai trường cần khai báo trong “getbulk” là “nonrepeaters”(báo cho agent
biết N đối tượng đầu tiên có thể trả lời lại như một câu lệnh “get”đơn) và
“max-repetition”(báo cho agent biết cần cố gắng tăng lên tối đa M yêu cầu
“get-next ”cho đối tượng còn lại).
 notification:để chuẩn hóa định dạng PDU ,nhận diện các lệnh “get”và “set”.
 inform: cung cấp cơ chế truyền thông giữa những NMS với nhau.Khi một
NMS gửi một SNMP inform cho một NMS khác ,NMS nhận được sẽ gửi trả
một ACK xác nhận sự kiện .Việc này giống cơ chế của “get” và“set”.
 report :được đưa ra trong bản nháp của SNMPv2 sau này được đưa vào trong
SNMP v3.Được dùng để truyền thông giữa các hệ thống SNMP v3
2. Vấn đề bảo mật trong SNMPv3
2.1 Các nguy cơ bị tấn công:
- Masquerading (mạo danh) :có nghĩa là một attacker mạo danh một ai đó để thực
hiện một số công việc dựa trên danh nghĩa người đó .Trong vấn đề bảo mật mạng hiện
nay ,có lẽ đây là mối đe dọa nguy hiểm nhất.Một trong các cách thức để mạo danh đó là
spoofing (đánh lừa người sử dụng ).Nếu một attacker mạo danh như một management
thành công ,thì attacker có thể vào các mục để quản lý mạng với sự xác thực quyền hạn là
đúng đắn : attacker có thể làm bất cứ điều gì mà danh nghĩa người mà attacker mạo danh
có thể làm được .
- Modification of information (Chỉnh sửa thông tin) :mối đe dọa của việc chỉnh
sửa thông tin có nghĩa là một người thứ 3 nào đó có thể xâm nhập vào trong quá trình
truyền dẫn bản tin và chỉnh sửa chúng.Sau đó bản tin bị chỉnh sửa này được truyền tới
người có quyền nhận bản tin thật.Bây giờ người nhận gói tin nghĩ rằng bản tin được gởi
bản tin được gởi bởi một nguồn thật sự đáng tin trong khi nội dung của nó đã bị thay
đổi .Trong mạng quản lý ,một quản lý mạng được xác thưc có thể tạo ra một bản tin PDU

11
có ý nghĩa quản lý .Nếu một attacker tấn công thành công vào quá trình truyền dẫn, các
PDU có thể bị chỉnh sửa trong khi các thông tin xác nhận vẫn không bị thay đổi .Tuy
nhiên đây là khả năng xảy ra nếu như PDU không kí hiệu cũng như không được mã hóa.
- Message stream modification (Chỉnh sửa luồng thông tin) :có nghĩa là luồng
thông tin bị sửa đổi bằng một số cách thức .Điều này có nghĩa là các thông tin có thể
được xắp xếp lại hoặc được tái hiện lại.Thiết kế ban đầu của mạng quản lý là để quản lý
giao thức không kết nối.Vì vậy hầu hết các giao thức quản lý đều được thiết kế hoạt động
trên dịch vụ vận chuyển phi kết nối .Luồng dữ liệu chỉnh sửa là mối đe dọa tiềm năng
trong mạng quản lý.Một attacker có thể ghi lại các thông tin quản lý mà cho phép tắt
router.Sau đó dựa trên đặc điểm đó attacker có thể sử dụng bắt các gói tin đẻ thực hiện tắt
router bất cứ khi nào.
- Disclosure :mối đe dọa bị lộ thông tin có nghĩa là độ tin cậy của thông tin bị rò rỉ
(lộ ra) đối với tất cả mọi người –những người không nên nhìn thấy chúng .Độ bảo mật
trong mạng thông thường ,lưu lượng thông tin vào không được mã hóa .Tương tụ trong
mạng quản lý một vài PDU quản lý có thể mang một số thông tin cốt yếu về mạng và các
node được quản lý trong đó .Vì vậy nếu một attacker theo dõi được lưu lượng trong các
đoạn mạng ,thì attacker có thể lấy được một số thông tin quan trọng .Các thông tin nầy có
thể được sử dụng như là cơ sở cho các kiểu xâm nhập khác như mạo danh.Một cách để
chống lại mối đe dọa bị rò rỉ thông tin là mã hóa bản tin
- Denial of service (DoS) (từ chối dịch vụ )điều này có nghĩa là một vài dịch vụ
mạng sẽ bị khóa theo một cách thức nào đó .Attacker có thể có gắng mở một kết nối TCP
tới một host một cách liên tục và đó là cách khóa tất cả các yêu cầu kết nối khác .Trong
mạng quản lý điều này cũng có nghĩa là một actacker tiến hành khóa luồng dữ liệu của
giao thức quản lý thông tin giữa manager và agent.Trong mạng quản lý ,DoS có thể là
một chuỗi liên tiếp nếu như các mối đe dọa khác nhau diễn ra.Ví dụ ,nếu một attacker
tiến hành thành công việc mạo danh và thực hiện như là một người quản lý ,attacker có
thể đưa ra lệnh shutdown tới một router xác định nào đó .Và điều này thực sụ mối đe dọa
từ chối dịch vụ diễn ra.
- Traffic pattern analysis (phân tích kiểu lưu lượng )là mối đe dọa mà nơi chứa
thông tin của bản tin bị bỏ qua.Thật sự những thông tin thiêt yếu của hệ thống được tạo
nên từ những kiểu luồng lưu lượng thông thường .Cả hai mối đe dọa cuối cùng này rất
khó có thể ngăn chặn
2.2 Bảo mật trong version 3
Bảo mật là vấn đề yếu kém nhất kể từ khi SNMP ra đời .Vấn đề xác thực trong
SNMP chủ yếu dựa vào password ở dạng clear-text giữa một manager và một agent.
Password được truyền dưới dạng clear-text rõ ràng là không an toàn ,nó hoàn toàn có thể
bị đánh cắp, truy lần lại và làm sập hệ thống mạng .
Trong SNMPv3 thì vấn đề bảo mật đã được quan tâm và đảm bảo an ninh hơn đối
với version 1 và version 2 .Vấn đề chính của SNMPv3 là an ninh địa chỉ ,không có sự
thay đổi về giao thức ,không đổi mới quá trình hoạt động .SNMPv3 tích hợp tất cả các
hoạt động của SNMPv1 và SNMPv2.(cấp quyền truy nhập)
SNMPv3 sử dụng MD5 và SHA để tạo ra các giá trị hash cho từng thông điệp
SNMP .Thao tác này giúp cho phép xác thực đầu cuối cũng như ngăn ngừa thay đổi dữ
liệu và các kiểu tấn công .Thêm vào đó, các phần mềm quản trị SNMPv3 và các agent có
thể dùng DES để mã hóa gói tin, cho phép bảo mật tốt hơn .(toàn vẹn ,mã hóa và xác
thực)

12
2.2.1 cấu trúc bản tin SNMPv3

Các trường trong bản tin SNMPv3


Năm trường đầu tiên (message header) được tạo bởi phân hệ xử lý bản tin bên gửi và
được xử lý bởi phân hệ xử lý bản tin bên nhận.Phần tiêu đề xử lý bản tin bao gồm:
• msgversion: thiết lập là version 3.
• msgID :được xác định duy nhất ,được dùng giữa các thực thể SNMP để phối
hợp bản tin request và response và bởi việc xử lý bản tin để phối hợp quá trình
xử lý bản tin bởi các phân hệ khác nhau trong kiến trúc.Gía trị ID thuộc
khoảng [0; 2^31-1].
• msgMaxSize :truyền đạt kích thước lớn nhất của gói tin trong các octet được
hỗ trợ bởi người gửi bản tin,với một khoảng 484 đến 2^31-1.Kích cỡ đoạn lớn
nhất này người gửi có thể chấp nhận được từ một engine SNMP khác(bất cứ
một đáp ứng hay một số kiểu bản tin khác).
• msgFlags: một chuỗi octet chứa 3 cờ :reportableflag ,privflag , authflag.Nếu cờ
reportableflag=1 thì một Report PDU phải được gửi trả về người gửi, khi cờ có
giá trị là 0 ,bản tin Report PDU có thể không được gửi trả về .reportableflag
được thiết lập =1 bởi người gửi trong tất cả các bản tin chứa một request (get
,set) hoặc một inform và thiết lập bằng 0 cho các bản tin chứa một response
,một trap hoặc một report PDU. Mặt khác, Privflag và authflag được thiết lập
bởi người gửi để chỉ ra mức độ bảo mật được áp dụng cho bản tin .Sự kết hợp
này được chỉ ra như sau:

13
Privflag authflag Mức độ bảo mật
0 0 Không xác thực, không mã hóa
0 1 Bản tin xác thực
1 1 Bản tin mã hóa và xác thực

• msgSecurity model:xác định trong khoảng [0 ;2^31-1] mà chỉ ra rằng mô hình


bảo mật được sử dụng bởi bên gửi để chuẩn bị bản tin và bởi vậy mô hình bảo
mật này phải được sử dụng ở bên nhận để xử lý bản tin này.Các giá trị được
quy định như sau:

Value Security model


1 SNMPv1
2 SNMPv2c
3 USM

Sáu trường tiếp theo chỉ ra các tham số bảo mật sử dụng bởi USM. Khi một bản tin đi
ra ngoài (outgoing message) được chuyển qua mô hình bảo mật người dùng USM bằng
phân hệ xử lý bản tin (message processor).Mô hình USM sẽ kết nối với các tham số liên
quan đến bảo mật trong phần tiêu đề của bản tin. Các giá trị xử lý trong mô hình bảo mật
người dùng chứa trong các trường đó. Các tham số liên quan đến bảo mật được trình bày
sau đây:
- msgAuthoritativeEngineID: trường snmpEngineID của động cơ snmp tin cậy
gán vào trong quá trình trao đổi thông tin.Như vậy .các giá trị này liên quan đến nguồn
trong các bản tin trap ,response, hoặc report, và liên quan đến đích trong các bản tin
get,getnext, getbulk,set hoặc inform.
- msgAuthoritativeEngineBoots:giá trị snmpEngineBoot của một động cơ SNMP
tin cậy được gán vào trong quá trình trao đổi thông tin. snmpEngineBoots là một số
nguyên nằm trong khoảng từ 0 đến (2^31)-1,giá trị này biểu diễn thời gian động cơ
SNMP này được cấu hình ban đầu hoặc lấy lại cấu hình ban đầu kể từ khi nó bắt đầu
được cấu hình
- msgAuthoritativeEngineTime:giá trị snmpEngineTime của động cơ SNMP
gán vào trong quá trình trao đổi thông tin.Gía trị snmpEngineTime là một số nguyên nằm
trong khoảng từ 0 đến (2^31)-1 ,giá trị này biểu diễn số giây kể từ khi động cơ SNMP tin
cậy này tăng lên đến snmpEngineBoots cuối cùng .Mỗi động cơ SNMP tin cậy đáp ứng
giá trị snmpEngineTime của chính nó tăng lên một giây.Một động cơ không tin cậy có
khả năng đáp ứng cho sự tăng lên snmpEngineTime(its notion of snmpEngineTime ý
niệm của snmpEngineTime của nó ) cho mỗi động cơ tin cậy ở xa với động cơ mà nó
giao tiếp .
- msgUserName:thông tin đại diện cho người dùng có thẩm quyền được dùng
trao đổi thông tin .Mục đích chính của người dùng là nắm giữ các khóa bí mật và một vài
thông tin liên quan đến bảo mật như thuật toán mã hóa được sử dụng …UserName xác
định thẩm quyền bên trong USM sẽ kết nối (map)một mô hình bảo mật độc lập mà xác

14
định securityName bởi một sự chuyển đổi xác định .Bởi vậy userName là một chuỗi kí tự
mà con người có thể đọc được .
- msgAuthenticationParameters:là null (không có giá trị hay bỏ trống)nếu xác
nhận không được sử dụng trong sự trao đổi thông tin .Nói cách khác đó là một tham số
xác thực .Hiện nay theo định nghĩa của mô hình USM ,tham số xác thực là một mã xác
thực bản rin HMAC.
- msgPrivacyParameters:là null nếu các chính sách riêng tư không được sử dụng
để trao đổi thông tin.Mặt khác đây là một tham số riêng tư.theo định nghĩa của USM
tham số riêng tư là một giá trị dùng để tạo nên giá tị ban đầu của thuật toán chuỗi số khóa
mật hiệu DES.
Cuối cùng là PDU tập trung các contextEngineID và contextName tạo thành phạm vi
PDU,được sử dụng cho việc xử lý PDU.

2.2.2 quá trình gửi nhận bản tin trong các mức độ an ninh.

SNMPv3 cung cấp cả các mô hình an ninh và các cấp an ninh:


• Một mô hình an ninh là một chiến lược nhận thực mà thiết lập cho một
người sử dụng và một nhóm mà trong đó công cư trú.
• Một mức anh ninh là mức về an ninh được cho phép trong một mô hình an
ninh.

Sự kết hợp của mô hình an ninh và mức an ninh sẽ xác định kĩ thuật an
ninh nào được sử dụng trong khi xử lí một gói tin SNMP. Ba mô hình an ninh có
thể đó là: SNMPv1, v2c và v3. Bảng cho thấy những sự kết hợp của mô hình và
mức an ninh có ý nghĩa là gì.

Mô hình Mức Nhận thực Mã hoá Ý nghĩa


v1 noAuthNoPriv Chuỗi chung Không Sử dụng sự giống chuỗi
chung cho nhận thực
V2c noAuthNoPriv Chuỗi chung Không Sử dụng sự giống chuỗi
chung cho nhận thực
V3 noAuthNoPriv username Không Sử dụng sự giống username
cho nhận thực
V3 authNoPriv MD5 hoặc SHA Không Cung cấp khả năng nhận
thực dựa trên thuật toán
HMAC-MD5 hoặc HMAC-
SHA
V3 authPriv MD5 hoặc SHA DES Cung cấp sự nhận thực dựa
trên các thuật toán HMAC-
MD5 hoặc HMAC-SHA.
Cung cấp thêm 56-bit mã
hoá DES thêm vào phần
nhận thực dựa theo chuẩn
CBC-DES (DES-56)

15
2.2.2.1 trao đổi bản tin noAuthNoPriv
Như được nhắc đến ở trên thậm chí nếu không áp dụng bảo mật cho bản tin thì 2
trường từ msgSecurityParameter phải được đặt trong: authoritative engine ID và user
name .Manager muốn tìm hoặc chỉnh sửa đối tượng trong agent phải biết được engineID
của agent đó và phải thêm vào trong bản tin một username thích hợp.Hình sau mô tả khả
năng trao đổi bản tin giữa manager và agent :

Trong trường hợp đầu tiên manager gửi yêu cầu với người dùng chưa biết tới agent.Vì
vậy trao quyền engine id không phải là của agent. Khi agent giải auth engine đầu tiên và
nó không nhận ra ,agent sẽ gửi một report pdu trở lại cho manager(khi agent hoạt động
như một proxy nó kiểm tra danh sách các engineid mà nó đại diện).Report pdu là một pdu
mới trong SNMPv3(thực tế nó được giới thiệu trong version 2 nhung chưa bao giờ được
sử dụng ,vì vậy tất cả các văn bản hữu ích cho mối liên quan đến bảo mật sẽ liên tiếp bị
xóa).Report pdu được sử dụng cho truyền thông bên trong các engine.
Trường hợp đầu tiên mô tả quá trình khám phá agent.Trong thứ tự truyền thông với
agent ,manager sẽ phải biết được engineid của agent.RFC cho biết sự khám phá quản lý
phải gửi request với một danh sách ràng buộc trống , người sử dụng “ban đầu” và chuỗi
ký tự độ dài 0 như là engine ID có thẩm quyền .Khi agent (thực sự một vài thực thể
SNMP mà có thể đóng vai trò có thẩm quyền)nhận request ,nó sẽ gửi trả lại report-pdu và
kết nối đến trường authoritative engine ID của phần msgSecurityParameters trong bản tin
với chính engine ID của nó.Bên gửi bản tin lưu engineID được nhận vì vậy nó có thể sử
dụng engineID này trong việc truyền thông liên tiếp với agent.

16
2.2.2.2 trao đổi bản tin authNoPriv
Nếu chúng ta giả sử rằng việc truyền thông giữa manager và agent là xác thực (agent
muốn chắc chắn về bản tin đến từ manager yêu cầu nó và ngược lại manager muốn được
chắc chắn về đáp ứng thật sự đến từ agent đích ) thì bên gửi phải phân loại bản tin theo
một thuật toán nào đó (sử dụng MD5 hoặc hàm SHA ) và nó thêm vào trong trường
msgAuthenticationParameters của phần msgSecurityParameters.
Bên nhận sẽ xóa phần digest từ bản tin ,lưu nó vào trong khu vực phân phối tạm
thời ,nối trong khoảng không gian được xóa với octets zero và tính toán message
digest.Nếu tính toán message digest là giống với digest nhận được thì bản tin được xác
thực .Các trường hợp khác khả năng kẻ mạo danh đang có thực hiện những hoạt động bất
hợp pháp.
Lưu ý rằng bản tin xác thực không cản trở việc xem xét nội dung của bản tin .
Hình sau chỉ ra sự trao đổi bản tin được xác thực giữa manager và agent.

Thực sự thì hình trên còn thiếu một phần quan trọng của xác thực .Để ngăn chặn
việc tấn công lặp lại USM sử dụng có chế timeliness.Ý tưởng đơn giản là engine có thẩm
quyền sẽ duy trì 2 đối tượng là snmpEngineBoots và snmpEngineTime,để tham chiếu
thời gian nội hạt .engine không có thẩm quyền còn đồng bộ lỏng lẻo với mỗi SNMP
engine có thẩm quyền mà nó giao tiếp với ,Vì mục đích này engine không có thẩm quyền
giữ một bản copy cục bộ của 3 biến cho mỗi engine ID ở xa.
+snmpEngineBoot của engine ở xa
+snmpEngineTime : khái niệm engine của snmpEngineTime cho engine có
thẩm quyền từ xa.
+latestReceivedEngineTime :giá trị cao nhất của msgAuthoritativeEngineTime
mà vừa nhận được bởi engine này cho engine có thẩm quyền từ xa.

17
Trong mỗi thực thể bản tin yêu cầu xác thực bao gồm quan điểm engine của
thời gian và khởi động engine ở xa.Khởi động phải phù hợp và thời gian phải nằm trong
của sổ thời gian 150 .Nếu nhận được bản tin không đầy đủ điều kiện này report-pdu
không trong cửa sổ thời gian sẽ được gửi trả lại.Engine có thẩm quyền thêm vào việc
khởi động và thời gian của nó vào trong report và bản tin đáp ứng vì vậy engine không có
thẩm quyền có thể update sao chép cục bộ những giá trị này.Điều này được giải thích
bằng hình sau đây:

2.2.2.3 chuyển đổi bản tin authpriv


Nếu chúng ta giả sử rằng việc truyền thông giữa manager và agent được bảo vệ
khỏi bị lộ thông tin một phương pháp mã hóa được áp dụng ,không phải toàn bộ bản tin
được mã hóa mà chỉ phạm vi pdu .thuật toán được chọn trong SNMPv3 là mã hóa số
(cipher block chaining CBC) kiểu tiêu chuẩn mã hóa dữ liệu (DES).Khách hàng được tự
do lựa chọn sử dụng thuật toán khác
Lưu ý rằng mã hóa được ứng dụng và bản tin phải được xác thực thành công.

18
3. Các loại mô hình bảo mật
Trong các RFCs đề cập đến SNMPv3, đều mô tả kiến trúc tổng quan các
cấu trúc bản tin đặc biệt và các đặc điểm an ninh mà không hề mô tả một định
dạng SNMP PDU mới. Điều này có nghĩa là các định dạng PDU SNMPv1 và
SNMPv2 hiện tại phải được sử dụng trong một kiến trúc mới. Theo nhiều RFCs từ
2271 đến 2275 thì có thể hiểu là “SNMPv3 là SNMPv2 thêm cộng thêm chức
năng an ninh và quản trị”. Dưới đây sẽ trình bày những khả năng an ninh và nhận
thực được cung cấp bởi SNMPv3 USM (User Security Model: Mô hình an ninh
người dùng), đó là mô hình an ninh dựa vào người dùng và điều khiển truy nhập
trên cơ sở thẩm tra.
3.1 Mô hình bảo mật dựa trên người dùng user security model

RFC 3414 xác định mô hình bảo mật người dùng USM.USM cung cấp các dịch vụ riêng
tư ,xác thực cho SNMP và nó được thiết kế để chống lại các mối đe dọa: chỉnh sửa thông
tin, mạo danh, chỉnh sửa luồng thông tin(snmp được thiết kế hoạt động theo giao thức
vận chuyển phi kết nối .Bởi vậy xuất hiện mối nguy cơ các bản tin được sắp xếp lại ,bị trễ
hoặc bị lặp lại làm cho hoạt động của management hoạt động không xác nhận
được ),nguy cơ thông tin bị lộ .
USM không chống lại được các mối đe dọa như từ chối dịch vụ(attacker cản trở việc
trao đổi thông tin giữa manager và agent) ,phân tích lưu lượng (attacker có thể quan sát
được các tham số chung về lưu lượng giữa manager và agent).
SNMPv3 xác định USM như là một sự chọn lựa mô hình bảo mật nhưng khách hàng
được tự do lựa chọn thực thi mà hình của chính họ.
3.1.1 Chức năng bảo mật.
Hai chức năng bảo mật được xác định trong USM là :xác thực và mã hóa .Để hỗ
trợ chức năng này một SNMP engine yêu cầu phải có hai giá trị đó là từ khóa riêng và
khóa xác nhận .Việc phân chia các giá trị thành hai từ khóa được duy trì bởi người sử
dụng sau:
+Người dùng trong một phạm vi nội hạt :bắt kỳ một quy tắc nào trong SNMP
engine để hoạt động quản lý được xác thực .

19
+Người dùng truy cập từ xa:bất cứ một nguyên tắc nào mà một SNMP engine
để việc truyền thông được thực thi(desired thêm vào).

Các giá trị khóa riêng và khóa xác nhận không được truy nhập thông qua
SNMP.USM cho phép sử dụng một trong hai giao thức xác thực luân phiên :HMAC-
MD5-96 và HMAC-SA-96.Để mã hóa USM sử dụng chuỗi khóa mật hiệu của chuẩn mã
hóa dữ liệu (DES).

3.1.2 khóa
Cả thực thể SNMP xác thực và mã hóa đều yêu cầu một key thích hợp .vì vậy tất cả
các thuật toán mật mã sử dụng là đối xứng ,hoặc các side phải sử dụng cùng một key.
Để đơn giản hóa gánh nặng cho việc quản lý key trên những người quản
lý(principal),mỗi người quản lý chỉ được yêu cầu duy trì một key xác thực đơn và một
key mã hóa đơn.Những key này không được lưu trong một MIB và không được truy nhập
thông qua SNMP.
Để việc triển khai key một cách đơn giản SNMPv3 đề xuất thuật toán mật khẩu
cho key.Thực thể SNMP tính toán key từ password sử dụng một hàm hash xác định.Vì
cùng một password nên nó sẽ tạo ra cùng một key.Để làm được điều này thì đơn giản
nhưng secure không phải khả năng tốt nhất có thể đạt được ,key được tính toán được hạn
định trong một khu vực (“localized”) .authoritative engine id được bọc với key được tính
toán và hàm hash được áp dụng trên chuỗi octet.Điều này chắc chắn rằng cùng một
pasword cung cấp các key khác nhau cho các engine id khác nhau.Nếu key của một thực
thể vẫn không phá vỡ security của những thực thể khác .

20
Key nội hạt cho phép một quản lý chia sẻ cho một key mã hóa và xác thực duy
nhất với mỗi engine ở xa trong khi chỉ duy trì một key mã hóa và xác thực đơn cục bộ.

3.1.3 Authoritative and non –authoritative engines (xác định thực thể được trao
quyền và không được trao quyền)
Trong bất cứ một sự truyền dẫn bản tin nào ,một trong hai thực thể , bên phát hoặc
bên nhận được thiết kế như động cơ SNMP tin cậy(the authoritative SNMP engine),dựa
theo các quy tắc sau:

Hình dưới đây mô tả tóm tắt hoạt động của USM:

21
3.1.4 Timeliness mechanisms(cơ chế tính thời hạn thời gian )

Vấn đề xác thực dữ liệu dựa trên hạn định thời gian

USM gồm một thiết lập cơ chế timeliness để đảm bảo chống lại các bản tin trễ và
các bản tin lặp lại.Mỗi SNMP engine có thể từng hoạt động như một engine có thẩm
quyền phải duy trì giá trị trường snmpEngineBoots và snmpEngineTime đến thời gian
quy định nội hạt của nó.Khi một snmp engine được cài đặt đầu tiên 2 trường giá trị trên
được cài đặt bằng 0.Ngay sau đó ,snmpEngineTime được tăng thêm 1 đơn vị sau mỗi
giây.Nếu snmpEngineTime (ever) tăng đến giá trị lớn nhất của nó (2^31) -1
th,snmpEngineBoots được tăng lên ,nếu hệ thống phải khởi động lại ,và
snmpEngineTime đươc đặt từ 0 và lại bắt đầu tăng.Sử dụng một cơ chế đồng bộ .một
engine không có thẩm quyền duy trì một giá trị thời gian ước lượng cho mỗi engine có
thẩm quyền mà nó giao tiếp với(communicates).Gía trị ước lượng này được đặt vào mỗi
outing message .và cho phép nhận ra engine có thẩm quyền để giới hạn bất cứ khu vực

22
hoặc thời hạn message tới (to determine whether or not the incoming message is timely
đúng lúc ,hợp thời).
Cơ chế đồng bộ làm việc theo cách thức như sau:Một engine không có thẩm quyền
giữ một giá trị cục bộ (nội hạt) trong ba giá trị có thể thay đổi được cho mỗi engine snmp
engine có thẩm quyền được biết đến cho mỗi engine (giá trị đặc trưng cho mỗi engine):
SnmpEngineBoots:giá trị mới nhất của snmpEngineBoots cho mỗi engine có thẩm
quyền điều khiển từ xa.
SnmpEngineTime:Đó là biểu hiện (quan điểm) của mỗi engine trong giá trị
snmpEngineTime cho mỗi engine có thẩm quyền điều khiển từ xa.Gía trị này được đồng
bộ với engine có thẩm quyền điều khiển từ xa bởi một quá trình xử lý đồng bộ được mô
tả dưới đây.Giữa các sự kiện đồng bộ,các giá trị được tăng lên theo logic một đơn vị/1sđể
duy trì một (loose lỏng lẻo synchronization with the remote authoritative engine).
LatestReceivedEngineTime: là giá trị cao nhất của msgAuthoritativeEngineTime
mà engine nhận được từ một engine có thẩm quyền điều khiển từ xa.giá trị này được cập
nhật bất cứ khi nào một giá trị lớn hơn của msgAuthoritativeEngineTime được nhận.Mục
đích của việc thay đổi giá trị này là để bảo vệ chống lại các tập tin lặp lại mà cản trở các
biểu hiện ưu điểm của giá trị snmpEngineTime của engine snmp không có thẩm
quyền(advancing).
Thiết lập 3 giá trị thay đổi được duy trì cho mỗi engine có thẩm quyền điều khiển từ
xa được biết đến để nhận dạng các engine này(to this engine).
Thời gian đồng bộ xảy ra như là một phần của thủ tục nhận một bản tin SNMP.Như
vậy không có thủ tục đồng bộ thời gian rõ ràng được yêu cầu bởi một engine SNMP
không có thẩm quyền .Chú ý rằng bất cứ khi nào giá trị nọi hạt snmpEngineID được thay
đổi (ví dụ như thông qua việc khám phá ra)hoặc khi giao tiếp bảo mật được thiết lập đầu
tiên với một engine SNMPcó thẩm quyền ,giá trị nội hạt snmpEngineBoots và
latestReceivedEngineTime nên được đặt từ 0.Điều này sẽ gây ra thời gian đồng bộ xảy ra
khi thông tin xác nhận tiếp theo được nhận.

3.2 Mô hình điều khiển truy nhập dựa trên cơ sở thẩm tra

Nếu chỉ bảo mật ở SNMPv3 được xét ở trên thì sẽ xảy ra vấn đề là nếu chúng ta có
những người dùng mà muốn sắp đặt ở các mức phân quyền khác nhau (ví dụ chúng ta
muốn cho phép administrator có thể reset/reboot thiết bị từ xa trong khi chúng ta muốn
ngăn cản những người dùng thông thường làm việc này hoặc cùng một thời điểm chúng
ta cho phép nhiều người đọc trạng thái của các agent ở xa).Điều này không đủ để phân
loại người dùng bằng cách sử dụng xác nhận và các key /password riêng của mỗi người
dùng.
VACM sử dụng MIB để xác định những người dùng nào có thể truy nhập phần
nào của một MIB agent với những điều kiện xác định.Điều kiện này bao gồm security
level (ví dụ phần tất yếu của MIB có thể được truy cập chỉ khi sử dụng các yêu cầu được
xác nhận,những phần khác chỉ được truy cập khi cả yêu cầu được mã hóa và xác thực
…),security model(ví dụ như chúng ta không muốn cho phép SNMPv1 hoặc SNMPv2
quản lý để truy nhập bảng cấu hình v3),userName (ví dụ bob có thể truy nhập tất cả các
đối tượng trong MIB,trong khi liz có chỉ có thể truy nhập 2 phần của cây
MIB),viewType(ví dụ như người sử dụng có thể được phép đọc nhưng không được ghi
,chỉnh sửa đối tượng),và conxtext đối tượng tồn tại

23
VACM không xác định đúng truy nhập cụ thể cho mỗi đối tượng (instance)đơn
trong MIB của agent .Hơn nữa nó xác định chúng thông qua mỗi nhánh của
cây(subtree).Subtree là một sự thiết lập tất cả các đối tượng và object instances mà có
chung phần tiền tố object xác định cho tên của chúng .
Hơn nữa chúng ta giả sử rằng người dùng (mà agent biết) có thể truy nhập tất cả
các object trong MIB.trong trường hợp agent đa ngữ (sử dụng nhiều mib) không được
bảo vệ ở tất cả,vì vậy chúng ta có thể sử dụng SNMPv1 hoặc SNMPv2 manager để lấy ra
chỉnh sửa tất cả các object.Nếu bạn có thể nhìn thấy NVAgentCfg1.text file thì bản có thể
thấy rằng VacmViewTreeFamilyTabble chứa trong các hàng riêng lẻ với viewName=
“every thing” và subtree = “1.3.6.1”.Nói theo cách khác như ví dụ trên “bob” có thể truy
nhập tất cả các instances MIB trong agent.
Điều khiển truy nhập là một chức năng bảo mật được thực hiện ở mức PDU.Điều
khiển truy nhập xác định cơ chế để giới hạn bất cứ sự truy nhập nào để một object được
điều khiển trong một MIB nội hạt bởi một người quản lý ở xa(princial) được phép.Văn
bản SNMPv3 xác định mô hình điều khiển truy nhập dựa trên cơ sở thẩm tra.
VACM sử dụng SNMP-VIEW-BASED-ACM-MIB để xác định các chính sách
truy nhập cho agent này và làm cho nó có khả năng cấu hình từ xa để sử dụng .
RFC 3415 chỉ ra bảng thay đổi như thế nào trong VACM MIB đến hoạt động
trong việc tạo ra điều khiển truy nhập chính xác .

Who:sự kết hợp của securityModel và securityName xác định tên của hoạt động
này.Nó xác định đưa ra một quản lý mà sự giao tiếp của nó được bảo vệ bởi việc đưa ra
securityModel.Sự kết hợp này hầu như thuộc về một nhóm trong engine SNMP này /
vacmSecurityToGroupTable cung cấp groupName,đưa ra securityModel và
securityName.
Where:contextName xác định khu vực thêm các phần tủ quản lý được tìm
thấy(desired management obkect is to be found).vacmContextTable chứa một danh sách
các contextName được nhận biết.
How :sự kết hợp của securityModel và securitylevel xác định làm thế nào incoming
request hoặc inform PDU được bảo vệ.Sự kết hợp của who, where,và how xác định
không có hoặc có một entries(đầu vào )trong bảng vacmAccessTable.

24
Why:viewType xác định tại sao truy nhập được yêu cầu hoạt động :để đọc ,viết hoặc
cảnh báo.Sự lựa chọn đầu vào trong vacmAccessTable chứa một MIB viewName cho
một trong ba kiểu hoạt động này và viewType được sử dụng đẻ chọn một viewName xác
định .ViewName này chọn xem một MIB phù hợp(appropriate) từ
vacmViewTreeFamilyTable.
What:variableName là một object người xác định mà tiền đề (prefix)của người đó
xác định một kiểu object xác định(indentifies a specific object type and whose suffix
indentifies a specific obkect instance.the object type indicates what type of management
information is requested).
Which :the object instance indicates which specific item of information is
requested.

5,Tóm tắt bảo mật trong version 3


III,Mô phỏng bảo mật trong SNMPv3 bằng phần mềm
1,Mô tả cách cài đặt SNMP
2,Ví dụ giám sát mô hình máy tính và kết quả thu được (dùng phần
mềm wireshark để bắt gói tin trên card mạng )

25