ĐẶT VẤN ĐỀ
Công nghệ mạng Internet/Intranet đang phát triển mạnh mẽ và xu
hướng tích hợp các mạng không đồng nhất để chia sẻ thông tin cũng xuất
hiện ngày càng nhiều. Việc bảo đảm hệ thống mạng phức tạp, có quy mô lớn
hoạt động tin cậy, hiệu năng cao, thông tin tin cậy đòi hỏi phải ph ải có hệ
quản trị mạng để thu thập và phân tích một số lượng lớn dữ liệu một cách
hiệu quả. Tuy nhiên, thông tin quản trị mạng lại phải truyền trên môi truờng
Internet, có thể bị thất thoát, thay đổi hay giả mạo cần phải được bảo vệ.
Các phiên bản SNMPv1 và SNMPv2 mới chỉ đưa ra giải pháp xác thực yếu
dựa trên cộng đồng (community). Chính vì vậy, việc nghiên cứu các giải
pháp b ảo đảm tính xác thực, tính toàn vẹn, tính mật của các thông điệp
quản trị mạng là hết sức cần thiết. Phiên bản SNMPv3 đã ra đời nhằm đáp
ứng một phần yêu cầu cấp bách này. Tuy nhiên, việc lựa chọn mô hình thực
thi vẫn còn nhiều vấn đề cần giải quyết. Tôi chọn hướng nghiên cứu này
mong muốn đóng góp, xây dựng thử nghiệm vào một mô hình cụ thể và qua
đó đánh giá khả năng triển khai trong thực tế hệ thống quản trị mạng có độ
an ninh cao.
Khuôn khổ luận văn bao gồm 3 chương:
Chương 1: Tổng quan về quản trị và an ninh thông tin trên Internet.
Chương 2: Nghiên cứu giải pháp an ninh mạng SNMP.
Chương 3: Xây dựng mô hình thử nghiệm.
Em xin chân thành cảm ơn sự nhiệt tình giúp đỡ của thầy giáo
77 trang |
Chia sẻ: maiphuongtl | Lượt xem: 2061 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Giải pháp an ninh trong kiến trúc quản trị mạng SNMP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
và agent, cả manager và agent đều
được gọi chung là các thực thể SNMP. Mỗi một thực thể là một SNMP
36
engine và sẽ có một hoặc nhiều ứng dụng chạy trên đó. Khái niệm mới này
là quan trọng bởi vì chúng đã chỉ ra một cách đúng đắn nhất về kiến trúc
tuyệt đối của một tập hợp các thông báo. Kiến trúc giúp tách rời các mẩu
của hệ thống SNMP trong vấn đề thi hành việc bảo mật. SNMPv3 thêm vào
các đặc điểm bảo mật so với SNMPv2 và SNMPv2c là: xác thực và mã hóa.
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 các đầu cuối cũng
như là 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. SNMPv3 đề nghị trong tương lai sẽ hỗ trợ
Hình 2.4 : Tổng quan kiến trúc SNMPv3
Document *
Roadmap
Applicability *
Statement
Coexistence *
& Transition
Message Handling
Transport
Mappings
Message
Processing and
Dispatcher
Security
PDU Handling
Protocols
Operations
Applications Access Control
Information Model
Structure of
Management
Information
Textual
Conventions
Conformance
Statements
MIBs
Standard v1
RCF1157
format
Standard v1
RCF1212
format
Draft v2
RFC19xx
format
Historic
RFC14xx
format
Document Set
37
- Bảo mật trong SNMPv3
Trong một số môi trường đòi hỏi sự tác động của giao thức an ninh.
Thông thường mức độ bảo mật ứng dụng ở hai giai đoạn khác nhau đó là:
- Trong quá trình truyền/nhận gói tin.
- Quá trình xử lý nội dung gói tin.
Hình 2.5: Khuôn dạng Message của SNMPv3
Trong giao thức SNMP mức độ bảo mật được ứng dụng ở mức
Security Model, giao thức sử dụng trong đó và nó được định nghĩa bởi
modul MIB trong suốt quá trình sử lý và cho phép cấu hình remote message-
level thông qua mật khẩu.
Một phần mềm SNMP phải được hỗ trợ đồng thời bởi nhiều mô hình
bảo mật.
Mô hình bảo mật xác định giao thức bảo mật sử dụng để cung cấp
dịch vụ bảo mật như là xác thực và bảo mật. Giao thức bảo mật được định
nghĩa bởi máy xử lý và MIB dữ liệu để cung cấp dịch vụ bảo mật.
38
Hình 2.6: Thực thể SNMPv3
Mô hình bảo mật cơ bản tại các User (máy trạm) chủ yếu dựa trên vấn
đề về cơ sở tên (name) truyền thống của User và các giao tiếp về lý thuyết
USM cơ bản. Trong đó dịch vụ USM liên quan chủ yếu đến xác thực các
MessageOutgoing và MessageIncoming
Hình 2.7: Dịch vụ xác thức đối với Message Outgoing
Chức năng chính của USM là chạy modul riêng w/ thông qua key và
scopedPDU. Modul này trả về các biến riêng và mã hóa các scopedPDU,
sau đó USM gọi chức năng xử lý w/ xác thực khóa và không làm suy
chuyển các mesage, cuối cùng sẽ trả về một message đầy đủ và đã được xác
thực.
39
Hình 2.8: Dịch vụ xác thực đối với Message Incoming
Quá trình xử lý đối với Message Incoming là hoàn toàn ngược với quá
trình xử lý Message Outgoing, key cần xác thực bước đầu được đưa vào quá
trình xử lý bởi chức năng xác thực kết hợp với việc giải mã thông qua modul
riêng.
Modul Privacy liên quan đến một số vấn đề sau:
- Được sử dụng để mã hóa và giải mã trong phạm vi các PDU thông
qua ID, name và PDU.
- Giao thức mã hóa được sử dụng bằng cách chia ra thành các đoạn
(CBC – Cipher Block Chaining) sau đó sử dụng thuật toán mã hóa DES.
- Mã hóa khóa bí mật (user password) và giá trị đúng (timeliness).
- Biến riêng đó chính là giá trị salt (giá trị độc nhất trong CBC-DES).
Ở đây khóa sử dụng để xác thực là khóa bí mật, có sử dụng thuật toán
MD5 hoặc SHA-1 để cho ta khóa xác thực ở dạng digest2. Khóa degest2 thu
được thông qua một số bước như sau:
- Ban đầu digest0 được tạo ra bởi việc lặp lại password cho đến khi có
dạng 220 octecs.
- Tiếp theo digest1 tạo ra bởi việc sử dụng thuật toán MD5 hoặc
SHA-1 đối với digest0.
- Cuối cùng digest2 thu được từ sự kết hợp của SNMP engine ID và
khóa digest1 thông qua hàm băm.
40
2.1.3. Hoạt động của SNMP:
Trong SNMP có 3 vấn đề cần quan tâm: máy quản lý, agent và MIB.
MIB là cơ sở dữ liệu dùng phục vụ cho Manager và Agent.
Máy quản lý 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. Máy quản lý náy có thể xem như là NMS.
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. Các cảnh báo của agent là cách mà agent báo với NMS khi có sự cố
xảy ra. Cảnh báo của trạm được gửi một cách không đồng bộ, không nằm
trong việc trả lời truy vấn của NMS. NMS dựa trên các thông tin trả lời của
agent để có các phương án giúp mạng hoạt động hiệu quả hơn. Ví dụ khi
đường dây kết nối tới Internet bị giảm băng thông nghiêm trọng, router sẽ
gửi một thông tin cảnh báo tới NMS. NMS sẽ có một số hành động, ít nhất
là lưu lại giúp ta có thể biết việc gì đã xảy ra. Các hành động này của NMS
được cài đặt trước.
Hình 2.9: SNMP manager truyền thống
SNMP Entity
NOTIFYCATION
ORIGINATOR
Applications
NOTIFYCATION
RECEIVER
Applications
COMMAND
GENERATOR
Applications
Message Processing
Subsystem
v1MP *
Security
Subsystem
Other
security
Model
User-based
Security
Model
PDU Dispatcher
Message
Dispatcher
Transport
Mapping
(e.g RFC1906)
Dispatcher
v2cMP *
v3MP *
otherMP *
UDP IPX other
NETWORK
41
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, hoặc được tích hợp vào hệ điều hành như IOS của Cisco trên router.
Ngày nay, đa số các thiết bị hoạt động tới lớp IP được cài đặt SMNP agent.
Các nhà sản xuất ngày càng muốn phát triển các ứng dụng của agent trong
các sản phẩm của họ công việc của người quản lý hệ thống hay quản trị
mạng đơn giản hơn. Các agent cung cấp thông tin cho NMS bằng cách lưu
trữ các hoạt động khác nhau của thiết bị. Một số thiết bị thường gửi một
thông báo “tất cả đều bình thường” khi nó chuyển từ một trạng thái xấu sang
một trạng thái tốt. Điều này giúp xác định khi nào một tình trạng có vấn đề
được giải quyết.
Hình 2.10: Mối quan hệ giữa NMS và agent
Không có sự hạn chế nào khi NMS gửi một câu truy vấn đồng thời
agent gửi một cảnh báo. MIB có thể xem như là một cơ sở dữ liệu của các
đối tượng quản lý mà agent lưu trữ được. Bất kỳ thông tin nào mà NMS có
thể truy cập được đều được định nghĩa trong MIB. Một agent có thể có
nhiều MIB nhưng tất cả các agent đều có một loại MIB gọi là MIB-II được
định nghĩa trong RFC 1213. MIB-I là bản gốc của MIB nhưng ít dùng khi
MIB-II được đưa ra. Bất kỳ thiết bị nào hổ trợ SNMP đều phải hỗ trợ MIB-
II. MIB-II định nghĩa các tham số như tình trạng của interface (tốc độ của
interface, MTU, các octet gửi, các octet nhận...) hoặc các tham số gắn liền
với hệ thống (định vị hệ thống, thông tin liên lạc với hệ thống,...). Mục đích
NMS
Agent
Cảnh báo tới NMS
Trả lời truy vấn của Agent tới NMS
Truy vấn tới Agent
42
chính của MIB-II là cung cấp các thông tin quản lý theo TCP/IP. Có nhiều
kiểu MIB giúp quản lý cho các mục đích khác nhau:
• ATM MIB (RFC 2515)
• Frame Relay DTE Interface Type MIB (RFC 2115)
• BGP Version 4 MIB (RFC 1657)
• RDBMS MIB (RFC 1697)
• RADIUS Authentication Server MIB (RFC 2619)
• Mail Monitoring MIB (RFC 2249)
• DNS Server MIB (RFC 1611)
Nhưng nhà sản xuất cũng như người dùng có thể định nghĩa các biến
cơ sở dữ liệu riêng cho họ trong từng tình huống quản lý của họ. Quản lý tài
nguyên Host cũng là một phần quan trọng của quản lý mạng. Trước đây, sự
khác nhau giữa quản lý hệ thống kiểu cũ và quản lý mạng không được xác
định, nhưng bây giờ đã được phân biệt rõ ràng. RFC 2790 đưa ra tài nguyên
về Host với định nghĩa tập hợp cá đối tượng cần quản lý trong hệ thống
Unix và Window. Một số đối tượng đó là: dung lượng đĩa, số user của hệ
thống, số tiến trình đang chạy của hệ thống và các phần mềm đã cài vào hệ
thống. Trong một thế giới thương mại điện tử, các dịch vụ như web ngày
càng trở nên phổ biến nên việc đảm bảo cho các server hoạt động tốt là việc
hết sức quan trọng RMON hay còn gọi là RMONv1 được định nghĩa trong
RFC 2819. RMONv1 cung cấp cho NMS các thông tin dạng gói tin về các
thực thể trong LAN hay WAN. RMONv2 được xây dựng trên RMONv1 bởi
những nhà cung cấp mạng và cung cấp thông tin ở lớp ứng dụng. Thông tin
có thể thu được bằng nhiều cách. Một cách trong đó là đặt một bộ phận thăm
dò của RMON trên mỗi phân đoạn mạng muốn theo dõi. RMON MIB được
thiết kế để các RMON có thể chạy khi không kết nối logic giữa NMS và
agent, có thể lấy được thông tin mà không cần chờ truy vấn của NMS. Sau
đó, khi NMS muốn truy vấn, RMON sẽ trả lời bằng các thông tin thu thập
43
được. Một đặc tính khác là ta có thể đặt ngưỡng cho một loại lỗi nào đó, và
khi lỗi vượt quá ngưỡng đặt ra, RMON gửi một cảnh báo cho NMS.
- SMI: (SMI - The Structure of Management Information) cung cấp cho
chúng ta cách định nghĩa, lưu trữ các đối tượng quản lý và các thuộc tính
của chúng. SMI đơn giản gồm có 3 đặc tính sau:
+ Name hay OID (object identifier): định nghĩa tên của đối tượng.
Tên thường ở 2 dạng; số hay các chữ có ý nghĩa nào đó về đối tượng. Trong
dạng này hay dạng kia, tên thường khó nhớ hay bất tiện.
+ Kiểu và cú pháp: Kiểu dữ liệu của object cần quản lý được định
nghĩa trong ASN.1 (Abstract Syntax Notation One). ASN.1 chỉ ra cách dữ
liệu được biểu diễn và truyền đi giữa máy quản lý và agent. Các thông tin
mà ASN.1 thông báo là độc lập với hệ điều hành. Điều này giúp một máy
chạy WindowNT có thể liên lạc với một máy chạy Sun SPARC dễ dàng.
+ Mã hóa: mã hóa các đối tượng quản lý thành các chuỗi dùng BER
(Basic Encoding Rules). BER xây dựng cách mã hóa và giải mã để truyền
các đối tượng qua các môi trường truyền như Ethernet. Tên hay OID được tổ
chức theo dạng cây. Tên của một đối tượng được thành lập từ một dãy các
số nguyên hay chữ dựa theo các nút trên cây, phân cách nhau bởi dấu chấm.
Hình 2.11: Cây đối tượng nguồn
44
theo mô hình cây trên ta có OID của nhánh internet:
internet OBJECT IDENTIFIER ::= {iso org(3) dod(6) 1}
directory OBJECT IDENTIFIER ::= {internet 1}
mgmt OBJECT IDENTIFIER ::= {internet 2}
experimental OBJECT IDENTIFIER ::= {internet 3}
private OBJECT IDENTIFIER ::= {internet 4}
Trong mô hình trên, MIB-II thuộc nhánh mgmt:
Hình 2.12: Cây đối tượng kế thừa
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ỏ.
45
- 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.
- 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
đơn vị dữ liệu 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.
Hoạt động của SNMP theo mô hình sau:
Hình 2.13: Hoạt động của SNMP
46
- get
- get-next
- get-bulk (cho SNMPv2 và SNMPv3)
- set
- get-response
- trap (cảnh báo)
- notification (cho SNMPv2 và SNMPv3)
- inform (cho SNMPv2 và SNMPv3)
- report (cho SNMPv2 và SNMPv3)
- “get”: “get” được gửi từ NMS yêu cầu tới agent. Agent nhận yêu cầu và
xử lý với khả năng tốt nhất có thể. Nếu một thiết bị nào đó đang bận tải
nặng, như router, nó không có khả năng trả lời yêu cầu nên nó sẽ hủy lời yêu
cầu này. Nếu agent tập hợp đủ thông tin cần thiết cho lời yêu cầu, nó gửi lại
cho NMS một “get-response”:
Hình 2.14: Hoạt động của lệnh “get” trong giao thức SNMP
Để agent hiểu được NMS cần tìm thông tin gì, nó dựa vào một mục
trong “get” là “variable binding” hay varbind. Varbind là một danh sách các
đối tượng của MIB mà NMS muốn lấy từ agent. Agent hiểu câu hỏi theo
dạng: OID=value để tìm thông tin trả lời. Câu hỏi truy vấn cho trường hợp
trong hình vẽ trên:
$ snmpget cisco.ora.com public .1.3.6.1.2.1.1.6.0 system.sysLocation.0 = ""
Đây là một câu lệnh “snmpget” trên Unix. “cisco.ora.com” là tên của
thiết bị, “public” là chuỗi chỉ đây là yêu cầu chỉ đọc (read-only),
“.1.3.6.1.2.1.1.6.0” là OID. “.1.3.6.1.2.1.1” chỉ tới nhóm “system” trong
47
MIB. “.6” chỉ tới một trường trong “system” là “sysLocation”. Trong câu
lệnh này ta muốn hỏi Cisco router rằng việc định vị hệ thống đã được cài đặt
chưa. Câu trả lời system.sysLocation.0 = "" tức là chưa cài đặt. Câu trả lời
của “snmpget” theo dạng của varbind: OID=value. Còn phần cuối trong OID
ở “snmpget”; ”.0” nằm trong quy ước của MIB. Khi hỏi một đối tượng trong
MIB ta cần chỉ rõ 2 trường “x.y”, ở đây là “.6.0”. “x” là OID thực tế của đối
tượng. Còn “.y” được dùng trong các đối tượng có hướng như một bảng để
hiểu hàng nào của bảng, với trường hợp đối tượng vô hướng như trường hợp
này “y”=“0”. Các hàng trong bảng được đánh số từ số 1 trở đi.
Câu lệnh “get” hữu ích trong việc truy vấn một đối tượng riêng lẻ trong
MIB. Khi muốn biết thông tin về nhiều đối tượng thì “get” tốn khá nhiều
thời gian. Câu lệnh “get-next” giải quyết được vấn đề này.
- “get-next”: “get-next” đưa ra một dãy các lệnh để lấy thông tin từ một
nhóm trong MIB. Agent sẽ lần lượt trả lời tất cả các đối tượng có trong câu
truy vấn của “get-next” tương tự như “get”, cho đến khi nào hết các đối
tượng trong dãy. Ví dụ ta dùng lệnh “snmpwalk”. “snmpwalk’ tương tự như
“snmpget’ nhưng không chỉ tới một đối tượng mà chỉ tới một nhánh nào đó:
$snmpwalk cisco.ora.com public system system.sysDescr.0 = "Cisco
Internetwork Operating System Software ..IOS (tm) 2500 Software (C2500-
I-L), Version 11.2(5), RELEASE SOFTWARE (fc1)..Copyright (c) 1986-
1997 by cisco Systems, Inc...
Compiled Mon 31-Mar-97 19:53 by ckralik"
system.sysObjectID.0 = OID: enterprises.9.1.19
system.sysUpTime.0 = Timeticks: (27210723) 3 days, 3:35:07.23
system.sysContact.0 = ""
system.sysName.0 = "cisco.ora.com"
system.sysLocation.0 = ""
system.sysServices.0 = 6
48
Ở đây ta muốn lấy thông tin của nhóm “system”, agent sẽ gửi trả toàn
bộ thông tin của “system” theo yêu cầu. Quá trình tìm nhóm “system” trong
MIB thực hiện theo cây từ gốc, đến một nút nếu có nhiều nhánh thì chọn
nhánh tìm theo chỉ số của nhánh từ nhỏ đến lớn:
Hình 2.15: Quá trình tìm kiếm trong cây
- “get-bulk”: “get-bulk” được định nghĩa trong SNMPv2. Nó 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 nó 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 trường hợp dùng câu lệnh “get-bulk”,
agent sẽ gửi càng nhiều trả lời nếu nó có thể. Do đó, việc trả lời một phần
của yêu cầu là có thể xảy ra. Hai trường cần khai báo trong “get-bulk” là:
“nonrepeaters” và “max-repetitions”. “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. “mã-
repeaters” 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 các đối tượng còn lại:
$ snmpbulkget -v2c -B 1 3 linux.ora.com public sysDescr ifInOctets
ifOutOctets
49
system.sysDescr.0 = "Linux linux 2.2.5-15 #3 Thu May 27 19:33:18
EDT 1999 i686"
interfaces.ifTable.ifEntry.ifInOctets.1 = 70840
interfaces.ifTable.ifEntry.ifOutOctets.1 = 70840
interfaces.ifTable.ifEntry.ifInOctets.2 = 143548020
interfaces.ifTable.ifEntry.ifOutOctets.2 = 111725152
interfaces.ifTable.ifEntry.ifInOctets.3 = 0
interfaces.ifTable.ifEntry.ifOutOctets.3 = 0
Ở đây, ta hỏi về 3 varbind: sysDescr, ifInOctets, và ifOutOctets. Tổng
số varbind được tính theo công thức N + (M * R) N: nonrepeater, tức số các
đối tượng vô hướng M: max-repeatition R: số các đối tượng có hướng trong
yêu cầu chỉ có sysDescr là vô hướng và N = 1M có thể đặt cho là 3, tức là 3
trường cho mỗi ifInOctets và ifOutOctets. Có 2 đối tượng có hướng là
fInOctets và ifOutOctets ef R=2 Tổng số có 1+3*2 = 7 varbind Còn trường
“–v2c” là do “get-bulk” là câu lệnh của SNMPv2 nên sử dụng “-v2c” để chỉ
rằng sử dụng PDU của SNMPv2. “-B 1 3” là để đặt tham số N và M cho
lệnh.
- “set”: để thay đổi giá trị của một đối tượng hoặc thêm một hàng mới vào
bảng. Đối tượng này cần phải được định nghĩa trong MIB là “read-write”
hay “write-only”. NMS có thể dùng “set’ để đặt giá trị cho nhiều đối tượng
cùng một lúc:
Hình 2.16: Hoạt động của Set
$ snmpget cisco.ora.com public system.sysLocation.0
50
system.sysLocation.0 = ""
$ snmpset cisco.ora.com private system.sysLocation.0 s "Atlanta, GA"
system.sysLocation.0 = "Atlanta, GA"
$ snmpget cisco.ora.com public system.sysLocation.0
system.sysLocation.0 = "Atlanta, GA"
Câu lệnh đầu là dùng “get” để lấy giá trị hiện tại của
“system.sysLocation”. Trong câu lệnh “snmpset” các trường
“cisco.ora.com” và “system.sysLocation.0” có ý nghĩa giống với “get”.
“private” để chỉ đối tượng “read-write”, và đặt giá trị mới bằng: “s "Atlanta,
GA"”. “s” tức là đặt giá trị của “system.sysLocation.0” thành string, và giá
trị mới là "Atlanta, GA" . Varbind này được định nghĩa trong RFC 1213 là
kiểu string tối đa 255 ký tự:
sysLocation OBJECT-TYPE YNTAX DisplayString (SIZE (0..255))
ACCESS read-write TATUS mandatory ESCRIPTION The physical location
of this node (e.g., 'telephone closet, 3rd floor')." ::= { system 6 } Có thể cài
đặt nhiều đối tượng cùng lúc, tuy nhiên nếu có một hành động bị lỗi, toàn bộ
sẽ bị hủy bỏ.
- Error Response của “get”, “get-next”, “get-bulk” và “set”: Có nhiều
loại lỗi báo lại từ agent: SNMPv1 Error Message ý nghĩa noError(0) Không
có lỗi tooBig(1). Yêu cầu quá lớn để có thể dồn vào một câu
trả lời noSuchName(2) OID yêu cầu không tìm thấy, tức không tồn
tại ở agent badValue(3). Câu lệnh “set” dùng không đúng với các object
“read-write” hay “write-only” readOnly(4) lỗi này ít dùng. Lỗi
noSuchName” tương đương với lỗi này genErr(5) dùng cho tất cả các lỗi
còn lại, không nằm trong các lỗi trên Các loại lỗi của SNMPv1 mang tính
chất chung nhất, không rõ ràng. Do đó SNMPv2 đưa ra thêm một số loại lỗi
như sau:
51
SNMPv2 Error Message ý nghĩa noAccess(6) lỗi khi lệnh “set” cố
gắng xâm nhập vào một biến cấm xâm nhập. Khi đó, biến đó có trường
“ACCESS” là “not-accessible” wrongType(7) lỗi xảy ra khi lệnh “set” đặt
một kiểu dữ liệu khác với kiểu định nghĩa sẵn của đối tượng. Ví dụ khi “set”
đặt giá trị kiểu string cho một đối tượng kiểu số nguyên INTEGER
wrongLength(8) lỗi khi lệnh “set” đưa vào một giá trị có chiều dài lớn hơn
chiều dài tối đa của đối tượng wrongEncoding(9) lỗi khi lệnh “set” sử dụng
cách mã hóa khác với cách đối tượng đã định nghĩa. wrongValue(10) Một
biến được đặt một giá trị mà nó không hiểu. Khi một biến theo kiểu liệt kê
“enumeration” được đặt một giá trị không theo kiểu liệt kê. noCreation(11)
lỗi khi cố đặt một giá trị cho một biến không tồn tại hoặc tạo một biến
không có trong MIB inconsistentValue Một biến MIB ở trạng thái không
nhất quán, và nó không chấp nhận bất cứ câu lệnh “set” nào.
resourceUnavailable(13) Không có tài nguyên hệ thống để thực hiện lệnh
“set” commitFailed(14) Đại diện cho tất cả các lỗi khi lệnh “set” thất bại
undoFailed(15) Một lệnh “set” không thành công và agent không thể phục
hồi lại trạng thái trước khi lệnh “set” bắt đầu thất bại. authorizationError(16)
Một lệnh SNMP không được xác thực, khi một người nào đó đưa ra mật mã
không đúng. notWritable(17) Một biến không chấp nhận lệnh “set”
inconsistentName(18) Cố gắng đặt một giá trị, nhưng việc cố gắng thất bại
vì biến đó đang ở tình trạng không nhất quán.
- SNMP Traps: Trap là cảnh báo của agent tự động gửi cho NMS để NMS
biết có tình trạng xấu ở agent
Hình 2.17: Hoạt động của SNMP Trap
52
Khi nhận được một “trap” từ agent, NMS không trả lời lại bằng
“ACK”. Do đó agent không thể nào biết được là lời cảnh báo của nó có tới
được NMS hay không. Khi nhận được một “trap” từ agent, nó tìm xem “trap
number” để hiểu ý nghĩa của “trap” đó: Số và tên kiểu trap định nghĩa
coldStart (0) Thông báo agent vừa khởi động lại. Tất cả các biến quản lý sẽ
được reset, các biến kiểu “Counters” và “Gauges” được đặt về 0. “coldStart”
dùng để xác định một thiết bị mới gia nhập vào mạng. Khi một thiết bị khởi
động xong, nó gửi một “trap” tới NMS. Nếu địa chỉ NMS là đúng, NMS có
thể nhận được và xác định xem có quản lý thiết bị đó hay không.
warmStart(1) thông báo agent vừa khởi tạo lại, không có biến nào bị reset.
linkDown(2) gửi đi khi một interface trên thiết bị chuyển sang trạng thái
“down”. linkUp(3) gửi đi khi một interface trở lại trạng thái “up”.
authenticationFailure(4) cảnh báo khi một người nào đó cố truy cập vào
agent đó mà không được xác thực. egpNeighborLoss(5) cảnh báo một EGP
lân cận bị “down” enterpriseSpecific(6) đây là một “trap” riêng, chỉ được
biết bởi agent và NMS tự định nghĩa riêng chúng. NMS sử dụng phương
pháp giải mã đặc biệt để hiểu được thông điệp này. “trap” được đưa ra trong
MIB qua “rdbmsOutOfSpace”: rdbmsOutOfSpace TRAP-TYPE
ENTERPRISE rdbmsTraps VARIABLES { rdbmsSrvInfoDiskOutOfSpaces }
DESCRIPTION "An rdbmsOutOfSpace trap signifies that one of the
database servers managed by this agent has been unable to allocate space
for one of the databases managed by this agent. Care should be taken to
avoid flooding the network with these traps." ::= 2
- SNMP Notification: Để chuẩn hóa định dạng PDU “trap” của SNMPv1
do PDU của “get” và “set” khác nhau, SNMPv2 đưa ra NOTIFICATION-
TYPE”. Định dạng PDU của “NOTIFICATION-TYPE” là để nhận ra “get”
và “set”. “NOTIFICATION-TYPE” được định nghĩa trong RFC 2863:
linkDown NOTIFICATION-TYPE OBJECTS {ifIndex, ifAdminStatus,
53
ifOperStatus} STATUS current DESCRIPTION
"A linkDown trap signifies that the SNMPv2 entity, acting in an agent role,
has detected that the ifOperStatus object for one of its communication links
left the down state and transitioned into some other state (but not into the
notPresent state). This other state is indicated by the included value of
ifOperStatus." ::= { snmpTraps 3 } OID của “trap” này là
1.3.6.1.6.3.1.1.5.3, tức
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.sn
mpMIBObjects.snmpTraps.linkDown.
- SNMP inform: SNMPv2 cung cấp cơ chế truyền thông giữa những NMS
với nhau, gọi là SNMP inform. 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 với cơ chế của “get” và “set”.
- SNMP report: được định nghĩa trong bản nháp của SNMPv2 nhưng
không được phát triển. Sau đó được đưa vào SNMPv3 và hy vọng dùng để
truyền thông giữa các hệ thống SNMP với nhau
2.2. Các giải pháp xác thực thông tin quản trị
Xác thực là một phần quan trọng trong cấu trúc an ninh quản trị mạng
nói chung và của kiến trúc quản trị mạng SNMP nói riêng. Người sử dụng
cần phải được xác thực để có thể truy cập vào tài nguyên của hệ thống. Sau
đây là một số phương thức xác thực:
+ PAP (Password Authentication Protocol): Là một giao thức xác
thực đơn giản dựa trên mật khẩu, sử dụng các kết nối PPP. PAP không an
toàn vì thông tin xác thực không được mã hóa, kẻ tấn công có thể chặn và
đọc được mật khẩu và giả danh người sử dụng để truy nhập vào mạng.
+ CHAP (Challenge Handshake Authentication Protocol): là giao
thức xác thực có kiểm tra, cũng được sử dụng trong các kết nối PPP. Quá
trình thực hiện phương thức xác thực CHAP bao gồm 3 bước
54
- Bên xác thực gửi thông điệp yêu cầu tới đầu bên kia (user).
- Đầu bên kia tính toán một giá trị bằng cách sử dụng hàm băm một
chiều và gửi trả lại cho bên xác thực.
- Bên xác thực có thể chấp nhận xác thực nếu giá trị đó phù hợp.
Sau khi thoả thận giao thức xác thực CHAP trên liên kết PPP giữa các
đầu cuối, máy chủ truy cập gửi một “chanllenge” tới người dùng từ xa.
Người dùng từ xa phúc đáp lại một giá trị được tính toán sử dụng tiến trình
xử lý một chiều (hash), máy chủ truy cập kiểm tra và so sánh thông tin phúc
đáp với giá trị hash mà nó vừa tính được. Nếu gía trị bằng nhau, xác thực
thành công, ngược lại kết nối sẽ bị huỷ bỏ.
Chap cung cấp cơ chế an toàn thông qua việc sử dụng giá trị
chanllenge thay đổi, duy nhất và không thể đoán được
Nhược điểm của phương pháp xác thực này là tính khả mở kém vì nó
yêu cầu quản lý một lượng lớn các thuộc tính sử dụng cho hàm băm, đặc
biệt trong các mạng lớn.
+ TACACS (Terminal Access Controller Access-Control System):
Hệ thống điều khiển truy nhập từ xa trong mô hình khách/chủ.
- User quay số tới máy chủ truy nhập từ xa.
- RAS(Remote Access Service) sử dụng giao thức
TACACS/RADIUS gửi yêu cầu tới máy chủ xác thực (Authentication
server).
- Máy chủ xác thực kiểm tra yêu cầu dựa vào cơ sở dữ liệu tài khoản
người sử dụng.
+ RADIUS (Remote Authentication Dial-In User Service): Là dịch vụ
xác thực truy nhập từ xa, hỗ trợ nhiều máy chủ và số lượng lớn kết nối. Mô
hình khách/chủ RADIUS sử dụng một máy chủ điều khiển truy nhập (NAS
– Network Access Service) để quản lý kết nối, nó cũng có chức năng như
máy khách của RADIUS. Truyền thông giữa máy khách và máy chủ
55
RADIUS là được bảo mật, sử dụng mật khóa chia sẻ cho xác thực và mã hóa
để truyền mật khẩu của người sử dụng.
+ CA (Certificate Authentication): Chứng thực điện tử - là một tổ
chức cấp chứng chỉ số.
2.3. Giải pháp đảm bảo toàn vẹn thông tin quản trị
Các bước bảo vệ:
+ Điều khiển truy nhập (Access Control): cấp quyền truy nhập và sử
dụng tài nguyên, xác thực, giám sát truy nhập.
+ Giám sát hoạt động mạng.
+ Bảo mật thông tin trên mạng (mã DES, mã công khai RSA …)
+ Bảo vệ vật lý: ngăn cản truy nhập vật lý bất hợp pháp (gate keeper)
+ Kiểm soát phần mềm đưa vào mạng
+ Bức tường lửa (Firewall) ngăn các mạng nội bộ với thế giới Internet
bên ngoài.
Hình 2.18: Mô hình an ninh mạng
Người gửi Bản tin
Kênh truyền tin
Bản tin
Người nhận
Trọng tài, phân phối thông tin mật
Kẻ tấn công, Hacker, Virus, Worm, …
Mật mã
Giải mã
56
2.4. Giải pháp mã mật thông tin quản trị
Thuật toán Cryptography đề cập tới ngành khoa học nghiên cứu về
mã hoá và giải mã thông tin. Cụ thể hơn là nghiên cứu các cách thức chuyển
đổi thông tin từ dạng rõ (clear text) sang dạng mờ (cipher text) và ngược lại.
Đây là một phương pháp hỗ trợ rất tốt cho trong việc chống lại những truy
cập bất hợp pháp tới dữ liệu được truyền đi trên mạng, áp dụng mã hoá sẽ
khiến cho nội dung thông tin được truyền đi dưới dạng mờ và không thể đọc
được đối với bất kỳ ai cố tình muốn lấy thông tin đó.
Hình 2.19: Quá trình mã mật thông tin
Không phải ai hay bất kỳ ứng dụng nào cũng phải sử dụng mã hoá.
Nhu cầu về sử dụng mã hoá xuất hiện khi các bên tham gia trao đổi thông
tin muốn bảo vệ các tài liệu quan trọng hay gửi chúng đi một cách an toàn.
Các tài liệu quan trọng có thể là: tài liệu quân sự, tài chính, kinh doanh hoặc
đơn giản là một thông tin nào đó mang tính riêng tư,...
Như chúng ta đã biết, Internet hình thành và phát triển từ yêu cầu của
chính phủ Mỹ nhằm phục vụ cho mục đích quân sự. Khi chúng ta tham gia
trao đổi thông tin, thì Internet là môi trường không an toàn, đầy rủi ro và
nguy hiểm, không có gì đảm bảo rằng thông tin mà chúng ta truyền đi không
bị đọc trộm trên đường truyền. Do đó, mã hoá được áp dụng như một biện
pháp nhằm giúp chúng ta tự bảo vệ chính mình cũng như những thông tin
mà chúng ta gửi đi. Bên cạnh đó, mã hoá còn có những ứng dụng khác như
là bảo đảm tính toàn vẹn của dữ liệu.
Theo một số tài liệu thì trước đây tính an toàn, bí mật của một thuật
toán phụ thuộc vào phương thức làm việc của thuật toán đó. Nếu như tính an
toàn của một thuật toán chỉ dựa vào sự bí mật của thuật toán đó thì thuật
Plaintext Bản rõ Mật mã Bản mã
Ciplaintext
Giải mã
Khóa K
Bản rõ
ban đầu
Khóa K
57
toán đó là một thuật toán hạn chế (Restricted Algrorithm). Thuật toán này có
tầm quan trọng trong lịch sử nhưng không còn phù hợp trong thời đại ngày
nay. Giờ đây, nó không còn được mọi người sử dụng do mặt hạn chế của nó:
mỗi khi một user rời khỏi một nhóm thì toàn bộ nhóm đó phải chuyển sang
sử dụng thuật toán khác hoặc nếu người đó người trong nhóm đó tiết lộ
thông tin về thuật toán hay có kẻ phát hiện ra tính bí mật của thuật toán thì
coi như thuật toán đó đã bị phá vỡ, tất cả những user còn lại trong nhóm
buộc phải thay đổi lại thuật toán dẫn đến mất thời gian và công sức.
Hệ thống mã hoá hiện nay đã giải quyết vấn đề trên thông qua khoá là
một yếu tố có liên quan nhưng tách rời ra khỏi thuật toán mã hoá. Do các
thuật toán hầu như được công khai cho nên tính an toàn của mã hoá giờ đây
phụ thuộc vào khoá. Khoá này có thể là bất kì một giá trị chữ hoặc số nào.
Phạm vi không gian các giá trị có thể có của khoá được gọi là Keyspace. Hai
quá trình mã hoá và giải mã đều dùng đến khoá. Hiện nay, người ta phân
loại thuật toán dựa trên số lượng và đặc tính của khoá được sử dụng.
Nói đến mã hoá tức là nói đến việc che dấu thông tin bằng cách sử
dụng thuật toán. Che dấu ở đây không phải là làm cho thông tin biến mất mà
là cách thức chuyển từ dạng tỏ sang dạng mờ. Một thuật toán là một tập hợp
của các câu lệnh mà theo đó chương trình sẽ biết phải làm thế nào để xáo
trộn hay phục hồi lại dữ liệu.
Giải pháp mã mật thông tin quản trị thường sử dụng là hệ mã cổ điển
DES (Data Encryption Standard): DES là tổ hợp của các phương pháp thay
thế, đổi chỗ. Nó chia bản tin thành các block có độ dài cố định (64 bít) và
lặp lại các phép mã hóa thay thế và đổi chỗ nhiều lần cho mỗi khối.
- Các phát triển tiếp của DES là:
+ IDEA (International Data Encryption Algorithm): khóa 128
bít, khối dữ liệu 64 bít.
+ RC5: khối dữ liệu và khóa sử dụng có độ dài thay đổi.
58
+ RC6: nâng cấp của RC5 để tăng tính bảo mật và hiệu quả.
+ AES (Advanced Encryption Standard): khối dữ liệu 128 bít,
khóa 128/192/256.
Hình 2.20: Mô hình DES
2.4.1. Sơ lược mật mã đối xứng DES
Năm 1972, Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (National
Institute of Standards and Technology-NIST) đặt ra yêu cầu xây dựng một
thuật toán mã hoá bảo mật thông tin với yêu cầu là dễ thực hiện, sử dụng
được rộng rãi trong nhiều lĩnh vực và mức độ bảo mật cao. Năm 1974, IBM
giới thiệu thuật toán Lucifer, thuật toán này đáp ứng hầu hết các yêu cầu
của NIST. Sau một số sửa đổi, năm 1976, Lucifer được NIST công nhận là
chuẩn quốc gia Hoa kỳ và được đổi tên thành Data Encryption Standard -
DES.
DES là thuật toán mã hoá bảo mật được sử dụng rộng rãi nhất trên thế
giới, thậm chí, đối với nhiều người DES và mã hoá bảo mật là đồng nghĩa
với nhau. ở thời điểm DES ra đời người ta đã tính toán rằng việc phá được
khoá mã DES là rất khó khăn. Cùng với sự phát triển của các loại máy tính
và mạng máy tính có tốc độ tính toán rất cao, khoá mã DES có thể bị phá
trong khoảng thời gian ngày càng ngắn với chi phí ngày càng thấp. Dù vậy
việc này vẫn vượt xa khả năng của các hacker thông thường và mã hoá DES
vẫn tiếp tục tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông
59
tin... nhiều năm nữa đặc biệt với sự ra đời của thế hệ DES mới-"Triple
DES".
Kể từ khi DES ra đời, nhiều thuật toán mã hoá bảo mật khác cũng
được phát triển tương tự DES hoặc dựa trên DES, một khi nắm được các
nguyên tắc của DES bạn sẽ dễ dàng hiểu các thuật toán này.
Yêu cầu đặt ra nếu muốn bảo mật tốt hơn là phải tìm được một thuật
toán sao cho việc thực hiện không quá phức tạp nhưng xác suất tìm ra chìa
khoá bằng cách thử tất cả các trường hợp (brute-force) là rất nhỏ (số lần thử
phải rất lớn).
2.4.2. Thuật toán bảo mật DES.
Về mặt khái niệm, thông thường thuật toán mã hoá DES là thuật toán
mở, nghĩa là mọi người đều biết thuật toán này. Điều quan trọng nhất là chìa
khoá của DES có độ dài tới 56 bit, nghĩa là số lần thử tối đa để tìm được
chìa khoá lên đến 2^56, trung bình là 2^55 = 36.028.797.018.963.968 lần,
một con số rất lớn.
DES được thực hiện nhờ các phép dịch, hoán vị và các phép toán
logic trên các bit. Mỗi ký tự trong bức thư hay bản tin cần mã hoá được biểu
diễn bởi 2 số hexa hay 8 bít. DES mã hoá từng khối 64 bít tương đương 16
số hexa. Để thực hiện việc mã hoá DES sử dụng một chìa khoá cũng dưới
dạng 16 số hexa hay 64 bít tức 8 byte, nhưng các bít thứ 8 trong các byte
này bị bỏ qua trong khi mã hoá vì vậy độ lớn thực tế của chìa khoá là 56 bit.
Ví dụ, ta mã hoá một bản tin hexa "0123456789ABCDEF" với chìa khoá là
"5A5A5A5A5A5A5A5A" thì kết quả là "72AAE3B3D6916E92". Nếu kết
quả này được giải mã với cùng chìa khoá "5A5A5A5A5A5A5A5A" thì ta sẽ
thu lại được đúng bản tin "0123456789ABCDEF". DES bao gồm 16 vòng,
nghĩa là thuật toán chính được lặp lại 16 lần để tạo ra bản tin được mã hoá.
Sau đây tôi sẽ trình bày quy trình của thuật toán DES.
60
2.4.2.1. Chuẩn bị chìa khoá:
Bước đầu tiên là chuyển 64 bit chìa khoá qua một bảng hoán vị gọi là
Permuted Choice hay PC-1 để thu được chìa khoá mới có 56 bit.
Sau khi vệc chuẩn bị chìa khoá và dữ liệu mã hoá hoàn thành, thực
hiện mã hoá bằng thuật toán DES. Đầu tiên, khối dữ liệu đầu vào 64 bit
được chia thành hai nửa, L và R. L gồm 32 bit bên trái và R gồm 32 bit bên
phải. Quá trình sau đây được lặp lại 16 lần tạo thành 16 vòng của DES gồm
16 cặp L[0]-L[15] và R[0]-R[15]:
Bước 1: R[r-1]- ở đây r là số vòng, bắt đầu từ 1- được lấy và cho qua
bảng E (E-bit Selection Table), bảng này giống như một bảng hoán vị, có
điều là một số bit được dùng hơn một lần do vậy nó sẽ mở rộng R[r-1] từ 32
bit lên 48 bit để chuẩn bị cho bước tiếp theo.
Bước 2: 48 bit R[r-1] được XOR với K[r] và được lưu trong bộ nhớ
đệm, vì vậy R[r-1] không thay đổi.
Bước 3: Kết quả của bước trước lại được chia thành 8 đoạn, mỗi đoạn
6 bit, từ B[1] đến B[8]. Những đoạn này tạo thành chỉ số cho các bảng S
(Substitution) được sử dụng ở bước tiếp theo. Các bảng S, là một bộ 8 bảng
(S[1]-S[8]) 4 hàng, 16 cột. Các số trong bảng có độ dài 4 bit vì vậy có giá trị
từ 0 đến 15.
Bước 4: Bắt đầu từ B[1], bit đầu và cuối của khối 6 bit được lấy ra và
sử dụng làm chỉ số hàng của bảng S[1], nó có giá trị từ 0 đến 3, và 4 bit giữa
được dùng làm chỉ số cột, từ 0 đến 15. Giá trị được chỉ đến trong bảng S
được lấy ra và lưu lại. Việc này được lặp lại đối với B[2] và S[2] cho đến
B[8] và S[8]. Lúc này bạn có 8 số 4 bit, khi nối lại với nhau theo thứ tự thu
được sẽ tạo ra một chuỗi 32 bit.
Bước 5: Kết quả của bước trước được hoán vị bit bằng bảng hoán vị P
(Permutation).
Bước 6: Kết quả thu được sau khi hoán vị được XOR với L[r-1] và
chuyển vào R[r]. R[r-1] được chuyển vào L[r].
61
Bước 7: Lúc này bạn có L[r] và R[r] mới. Bạn tiếp tục tăng r và lặp
lại các bước trên cho đến khi r= 17, đIều đó có nghĩa là 16 vòng đã được
thực hiện và các chìa khoá phụ K[1]-K[16] đã được sử dụng.
Khi đã có L[16] và R[16], chúng được ghép lại với nhau theo cách
chúng bị tách ra (L[16] ở bên trái và R[16] ở bên phải) thành 64 bit. 64 bit
này được hoán vị để tạo ra kết quả cuối cùng là dữ liệu 64 bit đã được mã
hoá.
2.4.2.2. Giải mã:
Việc giải mã dùng cùng một thuật toán như việc mã hoá. Để giải mã
dữ liệu đã được mã hoá, quá trình như giống như mã hoá được lăp lại nhưng
các chìa khoá phụ được dùng theo thứ tự ngược lại từ K[16] đến K[1], nghĩa
là trong bước 2 của quá trình mã hoá dữ liệu đầu vào ở trên R[r-1] sẽ được
XOR với K[17-r] chứ không phải với K[r].
- Các chế độ của DES:
Thuật toán DES mã hoá đoạn tin 64 bit thành đoạn tin mã hoá 64 bit.
Nếu mỗi khối 64 bit được mã hoá một cách độc lập thì ta có chế độ mã hoá
ECB (Electronic Code Book). Có hai chế độ khác của mã hoá DES là CBC
(Chain Block Coding) và CFB (Cipher Feedback), nó làm cho mỗi đoạn tin
mã hoá 64 bit phụ thuộc vào các đoạn tin trước đó thông qua phép toán
XOR.
- Triple DES:
Triple-DES chính là DES với hai chìa khoá 56 bit. Cho một bản tin
cần mã hoá, chìa khoá đầu tiên được dùng để mã hoá DES bản tin đó, kết
quả thu được lại được cho qua quá trình giải mã DES nhưng với chìa khoá là
chìa khoá thứ hai, bản tin sau qua đã được biến đổi bằng thuật toán DES hai
lần như vậy lại được mã hoá DES với một lần nữa với chìa khoá đầu tiên để
ra được bản tin mã hoá cuối cùng. Quá trình mã hoá DES ba bước này được
gọi là Triple-DES.
62
- Ứng dụng của DES
DES thường được dùng để mã hoá bảo mật các thông tin trong quá
trình truyền tin cũng như lưu trữ thông tin. Một ứng dụng quan trọng khác
của DES là kiểm tra tính xác thực của mật khẩu truy nhập vào một hệ thống
(hệ thống quản lý bán hàng, quản lý thiết bị viễn thông…), hay tạo và kiểm
tính hợp lệ của một mã số bí mật (thẻ internet, thẻ điện thoại di động trả
trước), hoặc của một thẻ thông minh (thẻ tín dụng, thẻ payphone…).
- Phá khóa DES
Năm 1998, một nhóm nghiên cứu đã chi phí 220.000USD để chế tạo
một thiết bị có thể thử toàn bộ số chìa khoá DES 56 bit trong trung bình 4,5
ngày. Tháng 7 năm 1998 họ thông báo đã phá chìa khoá DES trong 56 giờ.
Thiết bị này gọi là Deep Crack gồm 27 board mạch, mỗi board chứa 64
chip và có khả năng thử 90 tỷ chìa khoá trong một giây.
Tuy nhiên, việc phá khóa Triple DES là điều rất khó khăn, một
chuyên gia về bảo mật đã cho rằng "Không có đủ silic trong giải ngân hà (để
chế tạo chip-TG) cũng như không đủ thời gian trước khi mặt trời bị phá huỷ
để phá khoá Triple DES".
63
Chương 3: MÔ HÌNH THỬ NGHIỆM
3.1. Lựa chọn mô hình thử nghiệm
Có thể nói trên thế giới hiện nay có rất nhiều phần mềm SNMP sử
dụng cho version 1, version 2 và version 3. Mỗi phần mềm có thể phục vụ
cho một hay nhiều hệ điều hành và có nhiều phiên bản với những ưu và
nhược điểm khác nhau, có thể sử dụng cấu hình trên thiết bị phần cứng hỗ
trợ giao thức SNMP như Router, Pix, Modem…. Do đó, để lựa chọn một
phần mềm nhằm thực hiện thử nghiệm mô hình quản trị mạng SNMP là rất
khó khăn. Sau thời gian nghiên cứu và tìm hiểu tôi đã chọn phần mềm
PRTG Traffic Grapher là một ứng dụng trên Windows để minh họa cho giao
thức SNMP - PRTG Traffic Grapher dùng để theo dõi và phân loại cách
dùng băng thông.
Có thể nói với bất cứ một mạng nào thì việc giao tiếp với mạng bên
ngoài đều phải thông qua một thiết bị đó chính là Modem. Với công cụ
PRTG Traffic Grapher này người quản trị mạng có thể theo dõi băng thông
của router ADSL thông qua giao thức SNMP. Trong khi các chương trình
theo dõi băng thông dựa vào các traffic thông qua cổng card mạng của 1
máy tính trên mạng thì PRTG Traffic Grapher sẽ theo dõi traffic trực tiếp tại
cổng PPP của router ADSL nên theo dõi được toàn bộ traffic IN, OUT của
toàn mạng.
PRTG Traffic Grapher có phiên bản miễn phí, bản thương mại. Phiên
bản PRTG Traffic Grapher miễn phí (15MB) được download theo link sau:
- Xác lập SNMP trên router ADSL
Với bất cứ loại Modem nào, việc cấu hình router cung cấp dữ liệu
SNMP theo các bước sau:
64
Trên Modem ZoomADSL mở trang web cấu hình router, tìm tab
Administration -> Management. Trong Management, tìm mục SNMP (hình
dưới):
Hình 3.1: Enable SNMP trên Router ADSL ZoomX5, X6
Trong mục SNMP, lựa chọn Enable. Lưu ý xem Modem router của
bạn hỗ trợ SNMP version nào và giá trị Community. Trong ví dụ này,
Modem router hỗ trợ SNMP V1 và V2, giá trị Get Community là "public"
Trên Modem Dlink-520T (ADSL Router) sau khi login vào cấu hình
web, chọn tab Advanced trên menu bên trái chọn mục SNMP.
Hình 3.2: Cài đặt SNMP trên ADSL Dlink-D520T
65
3.2. Phân tích quá trình hoạt động
3.2.1 Cài đặt chương trình
Sử dụng PRTG Traffic Grapher để theo dõi băng thông. Sau khi
download PRTG Traffic Grapher, tiến hành cài đặt. Việc cài đặt thực hiện
khá dễ dàng. Để chạy chương trình, trên Windows nhắp Start -> Programs -
> PRTG Traffic Grapher -> PRTG Traffic Grapher. Xuất hiện hộp thoại
Welcome to PRTG Traffic Grapher.
Hình 3.3: Hộp thoại Welcome to PRTG Traffic Grapher
Trên hộp thoại Welcome to PRTG Traffic Grapher, lựa chọn "Use the
Freeware Edition", sau đó nhắp Next để tiếp tục. Sẽ xuất hiện giao diện
chính của PRTG Traffic Grapher.
66
Hình 3.4: Giao diện PRTG Traffic Grapher
Trên giao diện của PRTG Traffic Grapher, kích chuột vào lựa chọn
"Click here to create your first sensor" để tạo các sensor theo dõi.
Khi đó PRTG Traffic Grapher sẽ chạy các bước cấu hình để thêm một
sensor mới. Dưới đây là các bước cấu hình chính:
Hình 3.5: Chọn giao thức SNMP
PRTG Traffic Grapher có hỗ trợ các loại sensor: SNMP, Packet
Sniffing, NetFlow, Latency. Phiên bản miễn phí chỉ hỗ trợ SNMP và Packet
Sniffing. SNMP sensor được sử dụng để theo dõi các traffic IN và OUT của
cổng trên Modem router. Packet Sniffing được sử dụng để theo dõi các
traffic của card mạng tại máy sử dụng.
67
Trên hộp thoại Data Acquisition Type, lựa chọn SNMP.
Hình 3.6: Chọn chuẩn Sensor
Trên hộp thoại SNMP Sensor Type Selection, lựa chọn "Standard
Traffic Sensor". Các lựa chọn khác tùy thuộc vào thiết bị hỗ trợ SNMP.
Hình 3.7: Lựa chọn IP và version SNMP
68
Trên hộp thoại Device Selection, xác định các giá trị:
- Device Name/Alias: Nhập tên router do bạn tự quy định. Có thể chọn IP
của thiết bị đó cho dễ nhớ.
- IP Address/DNS Name: Địa chỉ IP của router.
- SNMP Version: Phiên bản của SNMP trên router hỗ trợ. Trong ví dụ này
router hỗ trợ SNMP V1/V2 nên có thể chọn V2c. Có thể chọn lần lượt từng
phiên bản để thử.
- SNMP port: Để giá trị ngầm định của cổng SNMP là 161.
- SNMP Community String: Ngầm định là public. Giá trị này có thể kiểm tra
ở phần cấu hình SNMP trên router.
Nếu sử dụng SNMP V3, cần phải xác định SNMP User,
Authentication Mode và Password, có thêm lựa chọn là Data Encryption
key.
Hình 3.8: Chọn Sensor
69
Trên hộp thoại Sensor Selection sẽ xuất hiện các cổng mà router đó
hỗ trợ. Lựa chọn cổng theo dõi ADSL là ppp0. Lưu ý các ký hiệu: ppp:
Point-to-Point Protocol; eth: Ethernet; br: Bridge; wlan: Wireless.
Sau khi lựa chọn cổng theo dõi, xuất hiện giao diện đồ họa theo dõi
băng thông của cổng tương ứng.
Hình 3.9: Giao diện Sensor Monitoring
Việc hiển thị được chia thành các loại biểu đồ hỗ trợ người quản trị
theo dõi thuận tiện: Live Graph 60 Minutes, Graph 24 Hours, Graph 30
days, Graph 365 days với các mức thời gian và giá trị trung bình khi hiển thị
khác nhau.
Lưu ý đường mầu xanh là Bandwith Traffic OUT, đường mầu đỏ nâu
là Bandwith Traffic IN. Trên đây là một tính năng của PRTG Traffic
Grapher hỗ trợ người quản trị theo dõi băng thông của router ADSL. Các
tính năng khác.
70
3.2.2 Phân tích quá trình hoạt động
Kiến trúc PRTG Network Monitor bao gồm hai phần chính đó là:
PRTG Core Server và PRTG Probe. Vấn đề chính trong quá trình cài đặt
PRTG đó là Core Server bao gồm quá trình lưu trữ dữ liệu, web server, các
báo cáo và hệ thống lưu trữ. Còn Probe thi hành quá trình giám sát, nó nhận
các cấu hình từ Core Server và thực thi quá trình xử lý sau đó báo kết quả về
cho Core Server. Một Core Server có thể quản lí không giới hạn các Probe
để tăng khả năng giám sát.
Hai phần Core và Probe là hai dịch vụ trong windows chúng chạy bởi
hệ điều hành window, không yêu cầu login vào user.
- Core Server: là bộ phận quan trọng trong PRTG dùng để xử lí các quá
trình
+ Cấu hình quản lí monitor
+ Quản lí và cấu hình kết nối với các Probe
+ Lưu các dòng kết quả của monitor
+ Người quản trị khai báo Mail Server cho quá trình gửi qua Email
+ Lập biểu và báo cáo
+ Quản lí các account
+ Thanh lọc dữ liệu (dữ liệu quá 365 ngày)
- Probe: là giao diện PRTG có thể chạy trên một hay nhiều máy tính. Ở quá
trình cài đặt được gọi là “Local Probe” tự động được tạo bởi hệ thống. Sau
khi nhận được cấu hình từ Core hệ thống tất cả các Probe có thể hoạt động
độc lập. Chúng có nhiệm vụ giám sát và thông báo tình trạng hệ thống máy
tính.
Hình 3.10: Cấu trúc một Probe
71
- Trên thẹc tế PRTG Network Monitor thi hành bởi các sensor, mỗi một
sensor đại diện cho một thiết bị mạng, có thể là:
+ Một dịch vụ mạng: SMTP, FTP, HTTP…
+ Quá trình giao tiếp trên một cổng của Switch
+ Quá trình hoạt động của CPU hay bộ nhớ
+ Quá trình giao tiếp trên card mạng
+ Một thiết bị NetFlow…
- Các Sensor này cho phép User tạo thành các nhóm, mỗi nhóm là tập hợp
của một số các thiết bị, mỗi thiết bị lại có tập các Sensor và cuối cùng mỗi
sensor có một hoặc nhiều kênh “chanels” (có thể là kênh IN hay OUT)
Hình 3.11: Quá trình gom nhóm các Probe
3.3. Đánh giá hiệu quả mô hình
Với thực trạng về nhu cầu an ninh trên Internet như hiện nay thì với
những tính năng như trên, có thể nói phần mềm giám sát giao tiếp mạng
PRTG sử dụng giao thức SNMP đem lại hiệu quả và độ an ninh cao trong
quản trị mạng. Việc sử dụng phần mềm PRTG Traffic Grapher có thể áp
dụng cài đặt trong một số mô hình mạng cụ thể.
72
CÀI ĐẶT CẤU HÌNH HỆ THỐNG
1. Cài đặt cấu hình trên Windows
Cài đặt dịch vụ SNMP
Mặc định hệ điều hành Windows không cài dịch vụ hỗ trợ cho giao
thức SNMP, để cài thêm ta vào Control Panel, double click vào Add
Remove Program Add Remove Windows Component. Chọn Management
and Monitoring Tools.
73
Khi cài, ta sẽ có thêm 2 dịch vụ hỗ trợ SNMP đó là SNMP Service và
SNMP Trap Service:
Cấu hình community trên các dịch vụ của SNMP:
Mở dịch vụ SNMP Service: vào tab Security, tab này cho phép thiết
lập community có ý nghĩa giống như mật khẩu giữa thiết bị quản lý và thiết
bị cần quản lý. Đối với mỗi community sẽ đi kèm với quyền (rights) khác
nhau:
READ-ONLY: Chỉ cho phép đọc, không thiết lập lại thông số được,
READ-WRITE: Cho phép thiết lập lại thông số.
READ-CREATE: Cho phép tạo ra thông số.
NOTIFY: Dùng cơ chế Trap
NONE: Community không có quyền gì hết.
Đó là thiết lập quyền phía người dùng, bản thân mỗi tham biến cũng
có quyền của riêng nó. Ví dụ với tham biến về thời gian UpTime của hệ
thống thì ta không set giá trị lại được. Mặt khác, đối với tham biến
system.sysContact thì ta có thể đặt lại giá trị được.
74
Sau khi cấu hình dịch vụ xong cần restart lại dịch vụ: Chọn SNMP Service
sau đó kích chuột vào Restart. Làm tương tự đối với SNMP Trap.
2. Cài đặt trên Linux:
Có thể sử dụng gói cài thêm hoặc dùng công cụ Net-SNMP
có sẵn trong một số distro Linux.
Sử dụng gói cài: giải nén tạo liên kết mềm với Net-SNMP
#cd
#tar-xvzf net-snmp-5.0.2.tar.gz
#ln –s net-snmp-5.0.2 net-snmp
#cd ~/net-snmp
#./configure
…. Biên dịch
#make
…. Cài đặt
#make install
Thiết lập biến môi trường
PATH=$PATH:/usr/local/bin:/usr/loacl/sbin
75
MIBS=ALL
Export PATH MIBS
Sử dụng dịch vụ SNMP và công cụ Net-SNMP có sẵn của Linux:
Mặc định thì dịch vụ SNMP không được cài trên Linux nên phải cài thêm
vào. Đối với distro Fedora Core 4 thì cài thêm trong mục System
Tools/snmpd. Sau khi cài thì sẽ có thêm hai dịch vụ là snmpd và snmptrapd.
Khác với trong windows, nếu ta muốn thiết lập community cho dịch
vụ SNMP thì phải sửa lại file cấu hình /etc/snmp/snmpd.conf như sau:
Sau mỗi lần chỉnh sửa file cấu hình thì gõ lệnh service snmpd restart để
khởi động lại dịch cụ SNMP ứng với lần chỉnh sửa mới.
Khi cấu hình xong thì dùng dòng lệnh để quản lý. Phần này giống như
trong windows.
76
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau một thời gian thực hiện, em đã hoàn thành luận văn và đạt được
một số kết quả nhất định. Trong luận văn này, em đã cố gắng trình bày
những kiến thức cơ bản về an ninh trong kiến trúc quản trị mạng SNMP.
Luận văn tập trung chủ yếu vào vấn đề: Tổng quan về quản trị và an
ninh thông tin trên Internet, nghiên cứu giải pháp an ninh trong kiến trúc
mạng SNMP.
Kết quả đạt được: đã hoàn thành luận văn với các nội dung nêu trên.
Hướng phát triển
Hoàn thành luận văn với kết quả đạt được tương đối theo yêu cầu của
đề tài đưa ra. Tuy nhiên trong quá trình thực hiện đề tài, em nhận thấy vẫn
còn nhiều vấn đề liên quan cần được tìm hiểu nghiên cứu. Em xin đưa ra
một số vấn đề cần tìm hiểu và nghiên cứu phát triển đề tài như sau:
- Dựa vào kết quả nghiên cứu trên có thể xây dựng phần mềm quản trị
hệ thống mạng thông qua giao thức SNMP.
- Kết hợp với việc nghiên cứu một số giải pháp an ninh cả về phần
cứng và phần mềm khác để có thể xây dựng một hệ thống mạng với an toàn
về dữ liệu và an ninh cao.
77
TÀI LIỆU THAM KHẢO
1. Giáo trình hệ thống mạng máy tính CCNA, Nhà xuất bản LĐXH, 2004.
2. Hướng dẫn thiết lập và quản trị mạng, Nhà xuất bản Thống Kê, 2002.
3. Giáo trình Curicurlum CCNA1 của Cisco System.
4. Internetworking với TCP/IP, Nhà xuất bản Giáo dục, 2001.
5. Computer Security Art And Science, By Matt Bishop, Publisher: Addition
Wesley, 2002.
6. Essential SNMP, 2nd Edition, By Douglas Mauro, Kevin Schmidt,
Publisher: O'Reilly, Pub Date: September 2005.
7. IETF: RFC2021, RFC1213, RFC1757, RFC2271.
8.
configuration/guide/snmp.html
9.
10.
Các file đính kèm theo tài liệu này:
- doc_3981.pdf