Luận văn Giải pháp an ninh trong kiến trúc quản trị mạng SNMP

ĐẶ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

pdf77 trang | Chia sẻ: maiphuongtl | Lượt xem: 2061 | Lượt tải: 1download
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:

  • pdfdoc_3981.pdf
Tài liệu liên quan