I.1. Vấn đề đặt ra với yêu cầu bảo mật thông tin trên mạng máy tính
Chúng ta xem xét vấn đề này thông qua một vài ví dụ thực tế (có thể xảy ra khi truyền tải/trao đổi thông tin trên mạng) sau đây:
a. Người sử dụng A chuyển một tập tin đến người sử dụng B, tập tin này chứa những thông tin cần được bảo vệ. Trong môi trường mạng (không an toàn), người sử dụng C – người không được phép đọc tập tin này, có thể theo dõi sự di chuyển của tập tin. Người sử dụng C cũng có thể bắt giữ (capture/copy) tập tin trong quá trình di chuyển của nó.
b. Người quản lý mạng tên D, chuyển một thông điệp đến máy tính thành viên của mạng, máy tính E. Thông điệp này yêu cầu máy tính E cập nhật tập tin “cấp phép” – có thể bao gồm các định danh của người sử dụng được phép truy cập máy tính đó. Trong môi trường mạng (không an toàn), người sử dụng F có thể chặn thông điệp này, sửa đổi nó (theo ý đồ riêng) và rồi chuyển tiếp đến máy tính E. Máy E thừa nhận thông điệp từ người quản lý D và cập nhật vào tập tin “cấp phép” của nó. Điều đáng nói ở đây là máy E không hề biết thông điệp được gửi đến từ F và nó đã bị thay đổi.
c. Trong môi trường mạng (không an toàn) của một một Công ty, khi nhân viên Malconten bị sa thải, người quản lý nhân sự sẽ gửi một thông điệp đến máy Server của hệ thống để yêu cầu làm mất hiệu lực của account user của anh ta. Trong trường hợp này, Malconten có thể chặn thông điệp lại và làm trễ nó trong một khoảng thời gian đủ để anh ta thực hiện một truy cập lần cuối cùng đến máy server và nhận một số thông tin “nhạy cảm” nào đó. Rõ ràng thông điệp cũng được chuyển đến máy Server, nhưng nó đã “quá trễ”.
d. Trong môi trường thương mại điện tử (không tin cậy), một thông điệp được gửi từ một khách hàng mua vàng đến trung tâm mua bán vàng The Sun, với nội dung: thoả thuận mua một lượng vàng 9999 với giá 10 triệu đồng. Nhưng trong khi việc giao nhận vàng chưa diễn ra thì giá một lượng vàng trên thị trường giảm xuống còn 9 triệu đồng. Có thể xảy ra tình huống: Người khách mua vàng nói rằng anh ta chưa bao giờ gửi thông điệp thoả thuận mua vàng trước đó. Điều gì sẽ xảy ra? Làm thế nào để buộc khách hàng đó phải thừa nhận rằng anh ta đã từng đồng ý mua vàng với giá 10 triệu đồng một lượng?
Từ các ví dụ trên, hãy liên hệ đến các mối đe dọa tìm ẩn trong việc truyền thông tin (message/packet) trong môi trường mạng không an toàn/không tin cậy. Để từ đó có thể đưa ra các giải pháp để phát hiện và ngăn chặn chúng. Đó là nhiệm vụ của công tác An toàn mạng/Bảo mật mạng. Nên nhớ rằng, an toàn mạng là quá trình chứ không phải một công cụ, các công cụ liên quan chỉ có tác dụng hỗ trợ cho quá trình bảo mật đạt hiệu quả hơn.
I.2. Vấn đề bảo mật trên các mạng TCP/IP
Vấn đề bảo vệ mạng, chính xác hơn là bảo vệ thông tin được lưu trữ và di chuyển trên mạng, để chống lại những người xâm phạm và kẻ phá hoại (gọi chung là hacker), kể cả trong và ngoài hệ thống mạng, được những người quản trị mạng đặt lên hàng đầu trong công tác quản trị mạng. Hacker không chỉ tấn công vào các mạng TCP/IP, nhưng mối đe doạ tiềm ẩn đối với các mạng này là rất lớn, vì TCP/IP là một giao thức mở nên các hacker có thể tìm thấy những lỗ hổng của nó một cách dễ dàng bằng cách thử nhiều kiểu tấn công khác nhau.
I.2.1. Mục tiêu của hacker
Mục tiêu mà các hacker nhắm đến trước khi thực hiện tấn công các mạng TCP/IP thường là:
I.2.2. Chính sách an toàn cho các mạng TCP/IP
Người quản trị an toàn của hệ thống mạng, nhất là các mạng TCP/IP, phải thực hiện kết hợp các chính sách bảo mật sau đây để bảo vệ mạng và dữ liệu truyền đi trên mạng của họ, sự bảo vệ mạng không chỉ giới hạn trong một LAN/WAN mà có thể trên cả Intranet và Internet:
Vì giao thức TCP/IP không được thiết kế gắn liền với bảo mật, nên nhiều hệ thống bảo mật khác nhau được phát triển cho các ứng dụng và lưu lượng chạy trên Intranet/Internet. Các phần mềm này có nhiệm vụ chuẩn bị dữ liệu cho việc truyền trên một mạng, trong đó có chú ý đến các khả năng có thể áp dụng xác thực và mã hoá. Trong mạng TCP/IP, các ứng dụng nói trên có thể được xây dựng ở 1 trong 3 lớp: Ứng dụng; Giao vận/Mạng; Vật lý/Liên kết dữ liệu.
I.2.3. Đối phó với các ý đồ (kiểu) tấn công của Hacker
· Để ngăn chặn việc đọc lén các thông điệp (message) truyền đi trên mạng: Thông điệp phải được mã hóa trước khi truyền đi và sẽ được giải mã ở bên nhận. Trong trường hợp này bên gửi và bên nhận phải chia sẻ một khóa bí mật để phục vụ cho việc mã hóa/giải mã thông điệp. Với giải pháp này, khóa cũng phải được truyền đi/phân phối trên mạng, nên vấn đề đặt ra tiếp theo là làm thế nào để phânphối khóa một cách an toàn, ở đây có thể sử dụng các kỹ thuật mã hoá khác nhau, mã hóa khoá bí mật và/hoặc mã hóa khoá công cộng.
· Không thể sử dụng một khóa trong khoảng thời gian dài và để ngăn chăn việc đoán khóa (có thể đoán khoá trong tương lai nếu biết được khóa hiện tại) của hacker. Để đối phó, phải “làm tươi khoá” thường xuyên và không nên sử dụng chính sách “dựa vào các khoá cũ để tính ra khóa mới”, điều này đảm bảo khóa được truyền đi/phân phối một cách an toàn (bí mật).
· Để để ngăn chặn việc “phát lại” thông điệp bởi một kẻ mạo danh (replay attack): Sử dụng chỉ số tuần tự trong các gói tin IP (thông số timestamp thường là không đảm bảo độ tin cậy cho mục tiêu an toàn này).
· Để đảm bảo rằng thông điệp không bị thay đổi/sửa đổi (alltered) trong khi truyền từ người gửi đến người nhận: Sử dụng các thông điệp rút gọn (message digest), có thể sử dụng các hàm băm (hash) hoặc các hàm on-way.
· Để đảm bảo rằng một “thông điệp rút gọn” là không bị thỏa hiệp hoặc không bị thay đổi trên đường truyền: Sử dụng chữ ký điện tử bằng cách mã hoá thông điệp rút gọn với một khoá bí mật hoặc khoá riêng (đó là chính sách xác thực (authentication), cơ chế không công nhận (non-repudiation)).
· Làm thế nào để đảm bảo rằng một message hoặc một chữ ký số là được xuất phát/bắt nguồn (originated) từ một đối tác tin cậy/đối tác mong muốn (desried): Sử dụng cơ chế bắt tay two-way bao gồm các số ngẫu nhiên được mã hoá (còn gọi là xác thực lẫn nhau (mutual authentication)).
· Làm thế nào để đảm bảo rằng một “cái bắt tay” là đã được trao đổi với một đối tác tin cậy (từ các tấn công theo kiểu main-in-the-middle): Sử dụng các thẻ chứng thực số (một sự kết hợp giữa khoá công cộng với các thông tin nhận dạng của đối tác).
· Làm thế nào để ngăn chặn việc sử dụng không hợp lệ các dịch vụ bởi những người sử dụng không được xác thực một cách thích hợp: Sử dụng mô hình điều khiển truy cập nhiều tầng.
· Để bảo vệ chống lại các mã phá hại (malicious code) hoặc các thông điệp không mong muốn (từ tấn công DoS): Giới hạn việc truy cập vào mạng bên trong, bằng các sử dụng: Filter, Firewall, Proxy, Packet Authentication, Conceal internal address anh name structure (che giấu địa chỉ và cấu trúc tên của mạng bên trong),…
I.2.4. Các dịch vụ bảo mật (Security Services)
· Authentication Service (dịch vụ xác thực): Dịch vụ này đảm bảo một sự truyền thông tin cậy. Nếu chỉ quan tâm đến truyền thông điệp, thì nhiệm vụ của xác thực chỉ đơn giản là đảm bảo với bên nhận rằng thông điệp mà nó nhận được là đến từ một nguồn được xác nhận. Nếu quan tâm đến cả quá trình tương tác của hai đối tác truyền thông, ví dụ sự kết nối giữ Terminal và Host, thì phải quan tâm đến hai khía cạnh. Thứ nhất, tại thời điểm khởi tạo kết nối, dịch vụ đảm bảo rằng hai đối tác truyền thông này là đáng tin cậy. Thứ hai, dịch vụ đảm bảo rằng kết nối là không bị can thiệp bởi thành phần thứ ba – hacker có thể giả mạo một trong hai đối tác hợp pháp, cho mục đích trao đổi hoặc tiếp nhận thông điệp “không được phép”. Do đó, thực tế yêu cầu hai loại dịch vụ xác thực: Peer entity authentication và Data origin authentication:
- Peer entity authentication: Cung cấp một sự chứng thực về định danh của các thực thể ngang hàng trong một liên kết. Nó được cung cấp để sử dụng tại thời điểm thiết lập kết nối hoặc trong suốt quá trình trao đổi dữ liệu của kết nối. Nó cố gắng cung cấp một sự tin cậy mà một trong hai đối tác truyền thông không thể thực hiện sự giả mạo hoặc một sự replay không được phép của kết nối trước đó.
- Data origin authentication. Cung cấp sự chứng thực về nguồn gốc của đơn vị dữ liệu, nó không cung cấp sự bảo vệ để chống lại các loại tấn công theo kiểu nhân bản (duplication) hoặc làm thay đổi (modification) đơn vị dữ liệu. Loại này thường dùng để hỗ trợ xác thực cho các ứng dụng e-mail.
· Access ControlService (dịch vụ điều khiển truy cập): Trong lĩnh vực an toàn mạng, điều khiển truy cập là khả năng giới hạn và điều khiển truy cập đến các host và các ứng dụng qua liên kết truyền thông. Nhiệm vụ của dịch vụ điều khiển truy cập là: mỗi thực thể truyền thông khi cố gắng truy cập vào hệ thống thì trước hết nó phải được nhận dạng hoặc được xác thực, sau đó mới có thể nhận được quyền truy cập phù hợp với riêng nó. Cụ thể là: Ai được phép truy cập tài nguyên; Điều kiện để truy cập tài nguyên là gì; Được phép truy cập tài nguyên ở mức độ nào (thực hiện những thao tác nào trên tài nguyên); vv. Một cách tổng quát, dịch vụ này thực hiện nhiệm vụ ngăn chặn việc sử dụng “không được cấp phép” đến tài nguyên.
· Data Confidentiality Service(dịch vụ tin cậy dữ liệu): Dịch vụ này cung cấp sự bảo vệ cho các dữ liệu được truyền đi, trước các tấn công loại passive (thụ động). Nếu chú ý đến nội dung của dữ liệu truyền tải, thì có thể thiết lập nhiều cấp khác nhau của sự bảo vệ, để có thể được nhận dạng chúng. Tức là, có thể định nghĩa để dịch vụ này bảo vệ một thông điệp đơn hoặc các trường (field) cụ thể của một thông điệp. Một khía cạnh khác của sự tin cậy là sự bảo vệ dòng traffic trước các tấn công theo kiểu phân tích thông điệp. Nó làm cho kẻ tấn công không thể nhận được địa chỉ nguồn, địa chỉ đích, tầng số xuất hiện, độ dài hoặc các đặc tính khác của traffic khi nó được di chuyển trên các hệ thống, các phương tiện truyền thông.
· Data Integrity Service(dịch vụ toàn vẹn dữ liệu): Cũng như sự tin cậy, sự toàn vẹn có thể áp dụng với một dòng thông điệp, một thông điệp đơn hoặc các trường được chỉ ra trong phạm vi một thông điệp. Dịch vụ này đảm bảo thông điệp mà bên nhận nhận được là hoàn toàn trung thực với thông điệp được gửi đi từ bên gửi, tức là thông điệp không bị nhân bản, không bị thay đổi, không bị sắp xếp lại, không bị phát lại khi nó di chuyển trên đường truyền. Sự phá hoại dữ liệu cũng bị che chắn (covered) bởi dịch vụ này. Vì thế dịch vụ này hỗ trợ bảo vệ mạng trước hai kiểu tấn công chủ động (active) phổ biến là thay đổi dòng thông điệp và DoS. Khi một sự vi phạm về tính toàn vẹn của dữ liệu được phát hiện thì dịch vụ này sẽ lập báo cáo về sự vi phạm đó, chuyển báo cáo này đến hệ thống để yêu cầu khôi phục lại dữ liệu.
· Non-repudiation Service (dịch vụ “sự công nhận”): Sự công nhận ngăn chặn hiện tượng người gửi hoặc người nhận từ chối một thông điệp đã được (họ) chuyển đi. Vì thế khi một thông điệp được gửi, người nhận phải chứng tỏ - viện ra chứng cứ – được rằng thông điệp là được nhận từ người gửi. Tương tự, khi một thông điệp được nhận, người gửi phải chứng tỏ - viện ra chứng cứ – được rằng thông điệp là đã được gửi đến người nhận.
· Availability Service (Dịch vụ “sẵn dùng”): Dịch vụ này có nhiệm vụ làm cho tài nguyên của hệ thống trở thành có thể truy cập và có thể được dùng bởi các thực thể được phép (authorized), trong một giới hạn nào đó. Tức là, một hệ thống được gọi làsẵn dùng nếu nó cung cấp các dịch vụ – theo thiết kế hệ thống – bất cứ khi nào người sử dụng yêu cầu chúng. Sự đa dạng của các loại tấn công hiện nay có thể làm cho các hệ thống sẵn dùng trở nên kém tác dụng hoặc mất ý nghĩa.
I.2.5. Cài đặt các giải pháp bảo mật cho các mạng TCP/IP
Các hệ thống và các giao thức sau đây được sử dụng phổ biến để cung cấp nhiều cấp độ khác nhau của các dịch vụ bảo mật trên mạng máy tính (TCP/IP): IP Filtering; Network Address Translation (NAT); IP Security Architecture (IPSec); SOCKS; Secure Shell (SSH); Secure Sockets Layer (SSL); Application proxies; Firewalls; Kerberos; các hệ thống xác thực từ xa (AAA server);…
Hình vẽ sau cho thấy các dịch vụ/giải pháp bảo mật ở trên được cài đặt tại các tầng tương ứng nào trên mô hình mạng TCP/IP.
Trong đó:
· IP Filtering (Lọc IP)
· NAT: Network Address Translation (Chuyển đổi địa chỉ mạng)
· IPSec: IP Security Architecture (Kiến trúc IP an toàn)
· Application proxies (Các Proxy ứng dụng)
· Firewalls (Các Bức tường lửa)
· Tunnel protocols (Các giao thức đường hầm: L2TP)
· CHAP; PAP; MS-CHAP (Các giao thức xác thực)
· S-MIME: Secure Multipurpose Internet Mail Extension: Là một cấu trúc bảo mật cấp ứng dụng (Application-level), nó chỉ dùng để bảo vệ e-mail, thông qua mã hoá và chữ ký điện tử. Nó dựa trên kỹ thuật mã hóa khóa công cộng và sử dụng thẻ chứng thực X.509 để xác minh định danh của các đối tác truyền thông. S-MIME có thể được cài đặt trên các hệ thống đầu cuối, nó không được sử dụng bởi các Router và Firewall.
· SOCKS: Là một chuẩn cho các gateway circuit-level. Nó không cần proxy nhưng người sử dụng có thể thực hiện kết nối đến Firewall trước, sau đó yêu cầu một kết nối thứ hai đến server đích. Người sử dụng khởi tạo một ứng dụng client với địa chỉ IP của server đích. Thay vì khởi tạo một session trực tiếp với server đích, client khởi tạo một session đến SOCKS server trên Firewall. Sau đó SOCKS sẽ xác nhận tính hợp lệ của địa chỉ nguồn và user ID, nếu hợp lệ sẽ cho phép user thiết lập kết nối hướng đến mạng không an toàn (non-secure)/bên ngoài, và rồi tạo một session thứ hai.
· SSH: Secure Shell: Có thể được sử dụng để kết nối an toàn giữa các hệ thống. Nó cho phép mã hoá và nén các traffic được sinh ra bởi TELNET, FTP, POP3,… SSH thường sử dụng nén trên các liên kết modem tốc độ chậm. SSH cũng cho phép người sử dụng chọn lựa phương pháp mã hoá khi cài đặt nó. Các phần mềm client thường hỗ trợ cả 2 SSH là SSH1 (DES, 3DES, RC4), SSH2 (3DES, RC4). Người sử dụng và các hệ thống ở xa được xác thực bởi password hoặc khoá public/private. SSH thiết lập một kết nối đơn từ client đến server, tất cả traffic gửi qua kết nối này đều được mã hoá, và có thể được nén.
· SSL: Secure Sockets Layer: Là một giao thức an toàn được phát triển bởi tập đoàn Netscap Communications và RSA Data Security. Mục tiêu chính của giao thức SSL là cung cấp một kênh riêng giữa các ứng dụng truyền thông cần có sự xác thực các đối tác truyền thông và đảm bảo tính toàn vẹn và riêng tư của dữ liệu. SSL cung cấp một sự thay thế cho các socket API chuẩn TCP/IP, trong đó có cài đặt các tính năng an toàn. Do đó, về lý thuyết nó có thể chạy bất kỳ ứng dụng TCP/IP nào trong một môi trường an toàn mà không cần thay đổi ứng dụng. SSL thường được cài đặt để hỗ trợ các traffic như HTTP, NNTP, Telnet, …
· Kerberos: Dịch vụ xác thực mạng Kerberos v5 được đề nghị như là một giao thức chuẩn và được mô tả trong RFC 1510. Dịch vụ Kerberos thường chạy trên các hệ thống riêng của nó, trong một phạm vi an toàn. Người sử dụng cần sự xác nhận tính hợp lệ của chính họ bởi Kerberos trước khi họ được phép kết nối đến các server khác trên mạng. Các nhận dạng của server cũng được kiểm tra ngược lại bởi Kerberos. Hệ thống cho phép và xác thực Kerberos là một hệ thống an toàn dựa trên mã hoá, nó cung cấp sự xác thực lẫn nhau giữa các user và server trên môi trường mạng. Nhiệm vụ mà các hệ thống này đảm trách là:
Hệ thống Kerberos được sử dụng cho mục đích xác thực là chính, nhưng nó cũng cung cấp một sự mềm dẻo để thực hiện sự cấp phép.
Trong các hệ thống Kerberos, một client khi muốn kết nối với server dịch vụ của nó, thì trước hết nó phải hỏi một “ticket” từ một thành phần thứ 3 - được tin cậy lẫn nhau, đó là KAS (Kerberos Authentication Server). Ticket này có thể là một khoá riêng mà chỉ được hiểu bởi dịch vụ và KAS, vì thế mà dịch vụ có thể tin chắc rằng thông tin trong Ticket là được sinh ra bởi Kerberos. Client biết KAS như là người ủy nhiệm (danh nghĩa). Khóa riêng là được xác thực và khóa chỉ được biết đến bởi user và KAS. Khi có được Ticket hợp lệ thì client mới có thể truy cập vào server dịch vụ của nó.
· Các giao thức xác thực truy cập từ xa (thường gọi là bộ ba chữ A - AAA:Authentication: Xác thực – Authorization: Cấp phép – Accounting: Kiểm toán): Mô hình an toàn 3 chữ A này được phát triển để giải quyết vấn đề an toàn truy cập từ xa. Authentication, Authorization, Accounting trả lời lần lượt 3 câu hỏi: who, người sử dụng đó là ai; what, người sử dụng đó được phép làm gì; when, ghi lại thời gian và các thông tin liên quan khác khi người sử dụng thực hiện việc gì đó, và/hoặc khi họ đã hoàn thành (sau khi đã qua xác thực và cấp phép). Hai dịch vụ/hệ thống xác thực từ xa được sử dụng hiện nay là RADIUS (Remote Access Dial In User Service) và TACACS (Terminal Access Controller Access Control System).
(Nguyễn Kim Tuấn - CNTT)
» Tin mới nhất:
» Các tin khác: