Bảo mật mạng với Ip Security

Dùng cookies để tránh bị tấn công từ chối dịch vụ. Dựa vào bản chất của Diffie-Hellman là dùng các phép tính lũy thừa bậc cao trên các sốnguyên lớn, nên hacker chỉcần liên tiếp gởi các giá trịmạo nhận là Xa, hệthống sẽliên tiếp thực hiện các phép tính đểxác định khóa và do đó không có khảnăng xử lý các công việc khác. Cookies là các sốgiảngẫu nhiên, được mỗi bên chọn và trao đổi nhau ngay ởgiai đọan khởi tạo, và sau đó dùng lại các cookies này trong các message tiếp theo sau. Việc một máy khác cốý tạo ra các message giảnhằm tấn công hệthống sẽ được hệthống phát hiện bằng cách kiểm tra các giá trịcookies đã thống nhất ban đầu. Đểgắn cookies với các thông tin nhận dạng hệ thống, cookies thường được tạo ra dùng hàm băm (MD5) trên các thông tin cố định như địa chỉIP nguồn, IP đích, port nguồn, port đích và một khóa bí mật được chọn riêng.

pdf15 trang | Chia sẻ: lylyngoc | Lượt xem: 3749 | Lượt tải: 1download
Bạn đang xem nội dung tài liệu Bảo mật mạng với Ip Security, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 CHƯƠNG 5 BẢO MẬT MẠNG VỚI IP SECURITY I- TỔNG QUAN VỀ IPSec I.1- Giới thiệu Giao thức TCP/IP đóng một vai trò rất quan trọng trong các hệ thống mạng hiện nay. Về nguyên tắc, có nhiều tùy chọn khác nhau về giao thức để triển khai các hệ thống mạng như TCP/IP, IPX/SPX, NetBEUI, Apple talk, …Tuy nhiên, TCP/IP là lựa chọn gần như bắt buộc do giao thức này được sử dụng làm giao thức nền tảng của mạng Internet. Vào thời điểm thiết kế giao thức này, vấn đề bảo mật thông tin chưa thật sự được quan tâm, do đó, các giao thức trong bộ TCP/IP hầu như không được trang bị bất kỳ một cơ chế bảo mật nào. Cấu trúc gói dữ liệu (IP, TCP, UDP và cả các giao thức ứng dụng) được mô tả công khai, bắt được một gói IP trên mạng, ai cũng có thể phân tích gói để đọc phần dữ liệu chứa bên trong, đó là chưa kể hiện nay, các công cụ bắt và phân tích gói (Packet capture) được xây dựng với các tính năng mạnh và phát hành rộng rãi. Việc bổ sung các cơ chế bảo mật vào mô hình TCP/IP, bắt đầu từ giao thức IP là một nhu cầu cấp bách. IP security (IPSec) là một giao thức được chuNn hóa bới IETF từ năm 1998 nhằm mục đích cung cấp các cơ chế mã hóa và xác thực thông tin cho chuỗi thông tin truyền đi trên mạng bằng giao thức IP. IPSec được thiết kế như phần mở rộng của giao thức IP, được thực hiện thống nhất trong cả hai phiên bản của IP và IPv4 và IPv6. Đối với IPv4, việc áp dụng IPSec là một tùy chọn nhưng đối với IPv6, giao thức bảo mật này được triển khai bắt buộc. Các ứng dụng điển hình của IPSec bao gồm: • Kết nối giữa các chi nhánh của một tổ chức thông qua mạng Internet: bằng cách xây dựng các mạng riêng ảo VPN (Virtual Private Network) trên nền của mạng WAN công cộng hoặc mạng Internet. Các tổ chức có thể kết nối các mạng con ở các chi nhánh của mình lại thành một mạng riêng với chi phí thấp nhưng vẫn đảm bảo được độ an tòan. Mô hình này còn được gọi là mô hình site-to-site VPN. • Truy xuất từ xa thông qua mạng Internet: Thực chất đây là một dạng khác của VPN (remote access VPN). Với IPSec, người dùng có thể kết nối đến hệ thống mạng nội bộ của mình từ một điểm bất kỳ nào đó trên Interent, đảm bảo truy xuất được các tài nguyên nội bộ một cách an toàn. • Nâng cao tính an tòan của các giao dịch thương mại trên mạng Internet, áp dụng cho các website bán hàng qua mạng hoặc các dịch vụ thanh tóan qua Internet. Người dùng thiết lập kết nối đến các hệ thống này thông qua các kết nối có hỗ trợ IPSec, do đó mặc dù thông tin vẫn truyền đi qua mạng Internet công cộng nhưng tính bảo mật vẫn được đảm bảo. Như vậy, ứng dụng rộng rãi nhất của IPSec chính là làm công nghệ nền tảng để triển khai các mạng VPN. Tuy nhiên, IPSec là một giao thức phức tạp, đồng thời còn Nn chứa một số vấn đề về tính an toàn, trong khi thực tế hiện nay còn nhiều giải pháp thiết lập VPN khác (L2TP, MPLS, SSL, …), cho nên việc ứng dụng IPSec cũng còn hạn chế. 2 Các ưu điểm của IPSec: -Khi IPSec được triển khai trên bức tường lửa hoặc bộ định tuyến của một mạng riêng, thì tính năng an tòan của IPSec có thể áp dụng cho tòan bộ lưu lượng vào ra mạng riêng đó mà các thành phần khác không cần phải xử lý thêm các công việc liên quan đến bảo mật. -IPSec được thực hiện bên dưới của lớp TCP và UDP, đồng thời nó họat động một cách trong suốt với các lớp này. Do vậy, không cần phải thay đổi phần mềm hay cấu hình lại các dịch vụ khi IPSec được triển khai. -IPSec có thể được cấu hình để họat động một cách trong suốt đối với các ứng dụng đầu cuối, điều này giúp che giấu những chi tiết cấu hình phức tạp mà người dùng phải thực hiện khi kết nối đến mạng nội bộ từ xa thông qua mạng Internet. I.2- Kiến trúc IPSec Thiết bị mạng có hỗ trợ IPSec Thiết bị mạng có hỗ trợ IPSec Thiết bị đầu cuối có hỗ trợ IPSec Mạng WAN / Internet Mạng LAN / intranet Mạng LAN / intranet Tiêu đề IP (IP header) Tiêu đề IPSec (IPSec header) Dữ liệu của gói IP (IP Payload) Các thành phần của gói dữ liệu: Hình 3.5: Ứng dụng của IPSec 3 IPSec là một giao thức phức tạp, dựa trên nền của nhiều kỹ thuật cơ sở khác nhau như mật mã, xác thực, trao đổi khóa, …Xét về mặt kiến trúc, IPSec được xây dựng dựa trên các thành phần bảo mật cơ bản sau đây, mỗi thành phần được định nghĩa trong một tài liệu riêng tương ứng (hình 3.6): -Kiến trúc IPSec (RFC 2401): Quy định cấu trúc, các khái niệm và yêu cầu của IPSec. -Giao thức ESP (RFC 2406): Mô tả giao thức ESP, là một giao thức mật mã và xác thực thông tin trong IPSec. -Giao thức AH (RFC 2402): Định nghĩa một giao thức khác với chức năng gần giống ESP. Nhưng vậy, khi triển khai IPSec, người sử dụng có thể chọn dùng ESP hoặc AH. Mỗi giao thức có ưu và nhược điểm riêng, sẽ được trình bày trong phần này. -Thuật tóan mật mã: Định nghĩa các thuật tóan mã hóa và giải mã sử dụng trong IPSec. IPSec dựa chủ yếu vào các giải thuật mã hóa đối xứng. -Thuật tóan xác thực: Định nghĩa các thuật tóan xác thực thông tin sử dụng trong AH và ESP. -Quản lý khóa (RFC 2408): Mô tả các cơ chế quản lý và trao đổi khóa trong IPSec. -Miền thực thi (Domain of Interpretation_DOI): Định nghĩa môi trường thực thi IPSec. Như đã trình bày, IPSec không phải là một công nghệ riêng biệt mà sự tổ hợp của nhiều cơ chế, giao thức và kỹ thuật khác nhau, trong đó mỗi cơ chế, giao thức đều có nhiều Kiến trúc IPSec Giao thức ESP Giao thức AH Thuật tóan mật mã Thuật tóan xác thực DOI Quản lý khóa Hình 3.6: Kiến trúc IPSec 4 chế độ họat động khác nhau. Việc xác định một tập các chế độ cần thiết để triển khai IPSec trong một tình huống cụ thể là chức năng của miền thực thi. Xét về mặt ứng dụng, IPSec thực chất là một giao thức họat động song song với IP nhằm cung cấp hai chức năng cơ bản mà IP nguyên thủy chưa có, đó là mã hóa và xác thực gói dữ liệu. Một cách khái quát, có thể xem IPSec là một tổ hợp gồm 2 thành phần: -Giao thức đóng gói, bao gồm AH và ESP. -Giao thức trao đổi khóa IKE (Internet Key Exchange). I.3- Các dịch vụ của IPSec Các dịch vụ được cung cấp bởi IPSec bao gồm: • Quản lý truy xuất (access control) • Tòan vẹn dữ liệu ở chế độ không kết nối (connectionless integrity) • Xác thực nguồn gốc dữ liệu (data origin authentication) • Chống phát lại (anti-replay) • Mã hóa dữ liệu (encryption) • Bảo mật dòng lưu lượng (traffic flow confidentiality) Việc cung cấp các dịch vụ này trong từng tình huống cụ thể phụ thuộc vào giao thức đóng gói được chọn dùng là AH hay ESP. Theo đó, nếu giao thức được chọn là AH thì các dịch vụ mã hóa và bảo mật dòng dữ liệu sẽ không được cung cấp. I.4- Hai chế độ họat động của IPSec IPSec (cả AH và ESP) cung cấp hai chế độ làm việc khác nhau: -Chế độ vận chuyển (transport mode): cung cấp cơ chế bảo vệ cho dữ liệu của các lớp cao hơn (TCP, UDP hoặc ICMP). Ở cơ chế này, phần dữ liệu (payload) của gói IP được áp dụng các cơ chế bảo vệ (mật mã hoặc xác thực). Chế độ này thường dùng cho các kết nối từ đầu cuối đến đầu cuối, ví dụ từ trạm làm việc đến máy chủ hoặc giữa hai trạm làm việc với nhau. -Chế độ đường hầm (tunnel mode): cung cấp cơ chế bảo vệ ở lớp IP, nghĩa là gói IP cùng với các tiêu đề của AH hoặc ESP được gói thêm một lần nữa bằng các tiêu đề mới. Khi đó, các gói IP gốc được xem như di chuyển trong một đường hầm (tunnel) từ đầu này đến đầu kia của mạng mà các nút trung gian không xen vào được. Chế độ này thường được dùng trong các SA nối giữa hai gateway của hai mạng. Chế độ vận chuyển và chế độ đường hầm sẽ được trình bày riêng trong từng giao thức AH và ESP. I.5- Liên kết bảo mật Mục tiêu của IPSec là cung cấp một cơ chế truyền an tòan đảm bảo tính tòan vẹn và xác thực của các gói dữ liệu IP. Bản chất IP là một giao thức không có kết nối, và theo 5 nguyên tắc này, các gói IP sẽ được xử lý một cách độc lập nhau. Tuy nhiên, khi triển khai IPSec với các dịch vụ như mã hóa, xác thực, điều khiển truy xuất, chống phát lại, … thì các gói IP này cần phải nằm trong một mối liên quan nào đó, để hai đầu truyền nhận có thể áp dụng các cơ chế bảo mật lên tòan bộ dòng dữ liệu một cách thống nhất (cần chú ý rằng IPSec hòan tòan trong suốt đối với tất cả các giao thức phía trên IP). IPSec định nghĩa một khái niệm để mô tả các quan hệ này, được gọi liên kết bảo mật SA (Security association). Mỗi SA được xem như một quan hệ một chiều (đơn công) giữa hai đầu truyền nhận dữ liệu, nhằm mục đích xác định các thông số bảo mật áp dụng cho luồng dữ liệu theo chiều đó. Như vậy, một kết nối hai chiều thường thấy giữa hai hệ thống đầu cuối sẽ bao gồm 2 SA. Mỗi SA chỉ sử dụng một giao thức đóng gói nhất định (AH hoặc ESP) chứ không thể sử dụng đồng thời cả hai. Mỗi SA được nhận dạng bởi 3 thông số sau đây: • Security Parameters Index (SPI): là một chuỗi bit được gán cho SA có tác dụng phân biệt giữa SA này với SA khác. SPI được đặt trong tiêu đề của AH và ESP. Phía nhận sẽ chọn đúng SA tương ứng để xử lý các gói dữ liệu nhận được. • IP Destination Address: Đây là địa chỉ đầu cuối của SA, địa chỉ này là địa chỉ của thiết bị mà SA kết thúc tại đó, có thể là địa chỉ của một thiết bị đầu cuối hoặc của một thiết bị mạng (router, firewall, gateway). • Security Protocol Identifier: Xác định các thông số bảo mật áp dụng trên SA, cho biết SA sử dụng giao thức xác thực nào (AH hay ESP). Như vậy, trong mỗi gói IP của IPSec, SA được nhận dạng bằng tổ hợp gồm địa chỉ đích (destination address) và SPI IPSec (cả AH và ESP). Ngòai ra, mỗi SA còn chứa nhiều thông số, tùy thuộc vào từng hệ thống đầu cuối khác nhau. Các thông số này có thể là: • Sequence number counter: một giá trị 32 bit dùng để tạo ra các số thứ tự của các gói IP. • Sequence Counter Overflow: Xác định các thức xử lý khi số thứ tự gói bị tràn (dùng đến giá trị lớn nhất của 32 bit). Hai cách xử lý thường dùng là tạo ra một sự kiện giám sát hệ thống (auditable event) và kết thúc truyền dữ liệu trên SA hiện hành, đồng nghĩa với việc thiết lập một SA mới. • Anti-Replay Window: thông số dùng trong dịch vụ chống phát lại, có chức năng xác định gói IP nhận được là gói nguyên thủy hay gói phát lại. • AH Information: thông số họat động cho giao thức đóng gói AH, bao gồm thuật tóan xác thực, khóa, thời gian sống của khóa và các tham số khác. • ESP Information: thông số họat động cho giao thức đóng gói ESP, bao gồm thuật tóan mã hóa, thuật tóan xác thực, khóa, thờio gian sống của khóa, các giá trị khởi tạo ban đầu cho ESP và các thông số khác. • Lifetime of This Security Association: Thời gian tồn tại tối đa của SA, được xác định bằng thời gian họac số bte dữ liệu đã truyền đi trên SA. Hết giới hạn này, SA cần được giải tỏan và thiết lập SA mới. 6 • IPSec Protocol Mode: cho biết chế độ họat động của IPSec (vận chuyển hay đường hầm). • Path MTU: Xác định MTU trên SA (kích thuớc gói dữ liệu lớn nhất). IPSec là một giao thức tùy chọn ở lớp IP, trong suốt với các giao thức lớp trên. Việc thực hiện IPSec tại thiết bị đầu cuối làm tăng lưu lượng đối với bộ xử lý và làm chậm quá trình trao đổi dữ liệu của người dùng. Do đó, IPSec cho phép người dùng tùy chọn việc có dùng IPSec hay không và dùng IPSec cho lọai dữ liệu nào. Vídụ, trên một máy tính cá nhân, người dùng chỉ cần thực hiện IPSec khi họ kết nối đến hệ thống mạng riêng của họ, còn khi truy xuất đến các website công cộng thì dữ liệu được truyền đi dưới dạng các gói IP bình thường vì các giao dịch này không cần có nhu cầu bảo mật. Việc phân biệt các gói IP để quyết định áp dụng các dịch vụ bảo mật tương ứng trên IPSec được thực hiện thông qua một tập các chính sách được định nghĩa sẵn trên thiết bị đầu cuối gọi là Security Policy Database (SPD). SPD là một bảng danh sách các tiêu chuNn lọc gói cùng với nhận dạng các SA tương ứng. Việc xử lý các gói IP xuất phát tại một thiết bị đầu cuối theo quy trình như sau: 1-Đọc các giá trị trong các trường tiêu đề của gói IP để xác định SA tương ứng với gói này. Nếu không có SA nào được xác định, nghĩa là gói IP có thể được chuyển đi ngay mà không cần áp dụng bất kỳ thao tác xử lý bảo mật nào. 2-Xác định SPI của SA tương ứng 3-Xử lý gói theo định nghĩa trong SA. Các thông số trong tiêu đề gói IP thường được dùng để chọn lựa một SA trong SPD thường dùng -Địa chỉ nguồn của gói IP (Source IP address) -Địa chỉ đích của gói IP (Destination IP address) -Nhận dạng người dùng đầu cuối (UserID) -Giao thức lớp trên (TCP, UDP, ICMP, …) -Port nguồn và port đích Các chính sách IPSec trên hệ điều hành Windows thực thi theo đúng quy trình này, nhưng với các tên gọi khác nhau. SPD được gọi là IPSec policy, tiêu chuNn lọc gói gọi là filter rule và SA tương ứng gọi là filter action. II- GIAO THỨC XÁC THỰC AH AH là một trong hai giao thức đóng gói dùng trong IPSec. Mục tiêu chính của AH là đảm bảo tính tòan vẹn của dữ liệu chuyển đi trên mạng IP. AH cho phép xác thực người dùng, xác thực ứng dụng và thực hiện các cơ chế lọc gói tương ứng. Ngòai ra, AH còn có khả năng hạn chế các tấn công giả danh (spoofing) và tấn công phát lại (replay). Cơ chế xác thực của AH dựa trên mã xác thực MAC (Message Authetication Code), do đó, để thực thi AH thì hai đầu cuối của SA phải dùng chung một khóa bí mật, mặc dù không dùng một thuật tóan mật mã nào. II.1- Cấu trúc gói AH 7 Cấu trúc tiêu đề của gói AH (hình 3.7) bao gồm các phần sau: -Next Header (8 bits): Nhận dạng kiểu tiêu đề đi liền sau tiêu đề của AH, dùng các số nhận dạng IP theo quy định của Internet Assigned Number Authority (IANA). -Payload Length (8 bits): Chiều dài của gói AH, tính bằng đơn vị 32 bit trừ đi 2. Ví dụ, chiều dài phần dữ liệu xác thực là 96 bit (= 3 * 32 bit), cộng với chiều dài phần tiêu đề AH (cố định) là 3 * 32 bit nữa thành 6 * 32 bit, khi đó giá trị của trường kích thước dữ liệu là 4. -Reserved (16 bits): Phần dành riêng, chưa dùng. -Security Parameters Index (SPI - 32 bits): Nhận dạng SA như đã trình bày ở trên. -Sequence Number (32 bits): Số thứ tự gói. -Authentication Data: Mã xác thực, có chiều dài thay đổi nhưng phải là bội số của 32 bit. Trường này chứa giá trị kiểm tra ICV (Integrity Check Value) hoặc MAC (Message Authentication Code) cho tòan bộ gói II.2- Cơ chế chống phát lại Cơ chế này cho phép ngăn chặn các tấn công dạng phát lại (replay), tức là bắt gói, lưu trữ rồi phát lại. Trường số thứ tự (Sequence number) trong tiêu đề AH được dùng để đánh dấu thứ tự các gói được gởi đi trên một SA. Ban đầu, giá trị này được khởi tạo bằng 0 và tăng dần sau mỗi gói được gởi. Để đảm bảo không có gói lặp lại, khi số thứ tự đạt giá trị cực đại (232- 1), nó sẽ không được quay lại giá trị 0 mà thay vào đó, một SA cùng với khóa mới được thiết lập để tiếp tục việc truyền dữ liệu. Điều này đảm bảo trên cùng một SA, không bao giờ có hai gói dữ liệu có số thứ tự trùng nhau. Ở phía nhận, quá trình xử lý các gói nhận được thực hiện phức tạp hơn nhằm phát hiện các gói lặp nhau. Do IP không thiết lập kết nối và không đảm bảo truyền tin cậy, do đó việc sai thứ tự, lặp hoặc mất gói là điều có thể xảy ra. Việc phát hiện các sự cố này thực hiện theo cơ chế dịch cửa sổ như mô tả ở hình 3.8. Cửa sổ là một bộ nhớ đệm được thiết kế theo cơ chế Next header Hình 3.7: Cấu trúc gói AH Payload length Reserved Security Parameters Index (SPI) Sequence number Authentication data (Kích thước thay đổi) Bit 0 8 16 31 8 hàng đợi, có kích thước là W (mặc định W = 64). Số thứ tự gói trong hàng đợi được xếp tăng dần từ trái qua phải, như vậy, cạnh phải của cửa sổ là gói có số thứ tự là N thì cạnh trái của cửa sổ sẽ là gói có số thứ tự N – W. Mỗi khi nhận được một gói dữ liệu đúng (kiểm tra bằng mã xác thực) và số thứ tự của gói nằm trong khỏang từ N – W + 1 đến N, vị trí tương ứng với số thứ tự trong cửa sổ được đánh dấu. Cơ chế thực hiện như sau: • Nếu gói nhận được nằm trong vùng hợp lệ của cửa sổ (có số thứ tự từ N – W + 1 đến N) và là một gói mới thì giá trị MAC của gói đó sẽ được kiểm tra. Nếu chính xác (tức gói đã được xác thực) thì khe tương ứng trong cửa sổ được đánh dấu. • Nếu gói nhận được nằm bên phải của cửa sổ (có số thứ tự lớn hơn N) và là gói mới, giá trị MAC của gói được kiểm tra. Nếu đúng thì cửa sổ được dịch một khe sang bên phải, đồng thời khe tương ứng trong cửa sổ được đánh dấu. • Nếu gói nhận được nằm bên trái cửa sổ hoặc giá trị MAC không hợp hệ thì bị hủy bỏ, đồng thời hệ thống tạo ra cảnh báo tương ứng với sự kiện này. II.3- Xác thực thông tin Mã xác thực (trường Authentication Data) được tạo ra dùng một trong 2 cách: -HMAC-MD5-96: dùng phương pháp HMAC, hàm băm là MD5, cắt lấy 96 bit đầu tiên. -HMAC-SHA-1-96: dùng phương pháp HMAC, hàm băm là SHA-1, cắt lấy 96 bit đầu tiên. Thuật toán MAC được áp dụng trên các phần thông tin sau đây: • Các trường không bị thay đổi trong tiêu đề gói IP khi được chuyển tiếp trên mạng hoặc có thể dự đóan được tại đầu cuối của SA. Những trường còn lại trong tiêu đề gói IP được thay bằng các bit 0 khi tính tóan. Dịch cửa sổ qua bên phải nếu nhận được một gói hợp lệ. Cửa sổ với kích thước cố định W N - W Ô được đánh dấu biểu thị một gói hợp lệ vừa được nhận Ô không đánh dấu cho biết gói dữ liệu ở vị trí đó chưa được nhận N + 1 Hình 3.8: Cơ chế dịch cửa sổ trong AH 9 • Các trường trong tiêu đề AH ngọai trừ trường Authentication Data. Trường này được thay bằng các bit 0 khi tính. • Tòan bộ gói dữ liệu của lớp trên (tức phần payload của gói IP). Cơ chế tạo mã xác thực MAC được thực hiện như sau: HMAC = H[(K ⊕ opad) | | H[(K ⊕ ipad) | | M]] Trong đó: ipad = 00110110(0x36) lặp lại 64 lần để tạo thành 512 bits opad = 01011100(0x5c) lặp lại 64 lần để tạo thành 512 bits K là khóa đã thống nhất giữa hai bên khi thiết lập SA và M là tòan bộ các phần thông tin cần xác thực như đã mô tả ở trên. II.4- Chế độ vận chuyển và chế độ đường hầm Hình 3.9 mô tả hai trường hợp xác thực khác nhau: -Xác thực từ đầu cuối đến đầu cuối (End-to-End Authentication): là trường hợp xác thực trực tiếp giữa hai hệ thống đầu cuối (giữa máy chủ với trạm làm việc hoặc giữa hai trạm làm việc), việc xác thực này có thể diễn ra trên cùng mạng nội bộ hoặc giữa hai mạng khác nhau, chỉ cần 2 đầu cuối biết được khóa bí mật của nhau. Trường hợp này sử dụng chế độ vận chuyển của AH. -Xác thực từ đầu cuối đến trung gian (End-to-Intermediate Authentication): là trường hợp xác thực giữa một hệ thống đầu cuối với một thiết bị trung gian (router hoặc firewall). Trường hợp này sử dụng chế độ đường hầm của AH. Hình 3.10 mô tả phạm vi áp dụng cơ chế bảo vệ của AH lên gói dữ liệu trong hai chế độ khác nhau. Server Xác thực đầu cuối đến đầu cuối Xác thực đầu cuối đến đầu cuối Xác thực đầu cuối đến trung gian Router/Firewall Mạng nội bộ Mạng công cộng Hình 3.9: Hai chế độ xác thực của AH 10 III- GIAO THỨC ĐÓNG GÓI ESP ESP (Encapsulating Security Payload) là một lựa chọn khác để thực thi IPsec bên cạnh giao thức xác thực thông tin AH. Chức năng chính của ESP là cung cấp tính bảo mật cho dữ liệu truyền trên mạng IP bằng các kỹ thuật mật mã. Tuy nhiên, ESP cũng còn có một tùy chọn khác là cung cấp cả dịch vụ bảo đảm tính tòan vẹn của dữ liệu thông qua cơ chế xác thực. Như vậy, khi dùng ESP, người dùng có thể chọn hoặc không chọn chức năng xác thực, còn chức năng mã hóa là chức năng mặc định của ESP. III.1- Cấu trúc gói ESP Gói dữ liệu ESP gồm các thành phần sau (hình 3.11): -Security Parameters Index (SPI - 32 bits): Nhận dạng SA như trong giao thức AH. -Sequence Number (32 bits): Số thứ tự gói, có chức năng như số thứ tự trong AH. -Payload Data: Đây là phần dữ liệu được bảo vệ bằng mật mã. Trường này có độ dài thay đổi. Trong chế độ vận chuyển, đây là tòan bộ gói dữ liệu của lớp 4 (TCP hoặc UDP). Còn trong chế độ đường hầm, đây là tòan bộ gói IP. ESP chuNn sử dụng thuật toán mật mã đối xứng DES, tuy nhiên, có thể dùng các thuật toán mật mã khác như 3DES (3 khóa), RC5, IDEA, triple IDEA (3 khóa), CAST, Blowfish. -Padding (0-255 bytes): Dữ liệu chèn. Một số thuật toán mật mã yêu cầu kích thước dữ liệu gốc phải cố định. Các byte dữ liệu giả được thêm vào để đảm bảo độ dài vùng dữ liệu. Tuy nhiên, theo quy định của ESP, chiều dài trường pad-length và trường next-header phải cố định là 32 bit tính từ bên phải, do vậy, phần padding phải có kích thước sao cho tòan bộ phần thông tin cần mã hóa là bội số của 32 bit. - Pad Length (8 bits): Cho biết số byte của vùng dữ liệu chèn (padding). Data TCP IP Data TCP IP AH Phạm vi thông tin được xác thực Data TCP IP (cũ) AH IP (mới) Phạm vi thông tin được xác thực a- Gói IP gốc b- Gói IP ở chế độ transport b- Gói IP ở chế độ tunnel Hình 3.10: Phạm vi áp dụng của AH lên gói dữ liệu ở hai chế độ transport và tunnel 11 - Next Header (8 bits): Nhận dạng kiểu dữ liệu chứa trong phần payload data bằng cách chứa số nhận dạng IP của giao thức được đóng gói bên trong ESP. - Authentication Data: Chứa thông tin xác thực, có chiều dài thay đổi nhưng phải là bội số của 32 bit. Thông tin xác thực được tính trên tòan gói ESP ngọai trừ phần Authentication Data. III.2- Chế độ vận chuyển và chế độ đường hầm Chế độ vận chuyển: chức năng mã hóa và xác thực thông tin được thực hiện trên phần dữ liệu (payload data) của gói IP (tức tòan bộ đơn vị dữ liệu của lớp trên IP). Chế độ đường hầm: tòan bộ gói IP được mã hóa và xác thực. Security Parameters Index (SPI) Sequence number Payload (kích thước thay đổi) Padding (0 – 255 byte) Next header Authentication data (kích thước thay đổi) Pad length Hình 3. 11: Cấu trúc gói ESP Bit 0 8 16 24 31 12 Sự khác nhau giữa hai chế độ hoạt động được mô tả ở hình 3.12. IV-QUẢN LÝ KHÓA TRONG IPSEC IPSec dựa trên kỹ thuật xác thực HMAC (hashed based MAC) và các phương pháp mật mã đối xứng mà cơ bản là DES. Do vậy, vấn đề quản lý và phân phối các khóa bí mật giữa các đầu cuối SA là vấn đề quan trọng trong triển khai IPSec. Có hai cơ chế để quản lý khóa: -Quản lý khóa bằng tay (manual): người quản trị mạng tạo ra khóa và cài đặt cho các hệ thống đầu cuối. Cơ chế này chỉ phù hợp với các hệ thống có quy mô nhỏ. -Quản lý khóa tự động (automated): một hệ thống tự động tạo ra và phân phối khóa cho các hệ thống đầu cuối. Hệ thống quản lý khóa tự động IPSec bao gồm hai thành phần là Oakley và ISAKMP. -Oakley Key Determination Protocol: Đây là giao thức trao đổi khóa dựa trên thuật tóan mã Diffie-Hellman, có bổ sung thêm các tính năng bảo mật. -Internet Security Association and Key Management Protocol (ISAKMP): cung cấp một mô hình chung cho việc quản lý khóa trên Internet, định nghĩa các thủ tục và khuôn dạng riêng. IV.1- Giao thức trao đổi khóa Oakley Oakley là một giao thức trao đổi khóa đối xứng dựa trên giao thức gốc là Diffie- Hellman. Giao thức này có một số ưu điểm như: -Khóa được tạo ra ngay khi cần, do đó không cần lưu trữ và giảm được nguy cơ tiết lộ. -Không cần một cơ sở hạ tầng đặc biệt nào để thực hiện giao thức, ngòai việc hai bên phải thống nhất trước với nhau những giá trị dùng chung (p và g). Data TCP IP Data TCP IP ESP header a- Gói IP gốc b- Gói IP ở chế độ transport b- Gói IP ở chế độ tunnel Hình 3.12: Tác dụng của ESP lên gói IP ở hai chế độ transport và tunnel ESP auth ESP trailer Phạm vi thông tin được xác thực Phạm vi thông tin được mã hoá Data TCP IP (mới) ESP header ESP auth ESP trailer Phạm vi thông tin được xác thực Phạm vi thông tin được mã hoá IP (cũ) 13 Tuy nhiên, Diffie-Hellman cũng đồng thời tồn tại nhiều nhược điểm: -Không cung cấp cơ chế nhận dạng đầu cuối -Có thể bị tấn công dạng xen giữa (Man-in-the-middle) và tấn công từ chối dịch vụ (clogging). Giao thức Oakley được thiết kế để duy trì những ưu điểm của Diffie-Hellman, đồng thời khắc phục những nhược điểm của nó. Các tính năng của Oakley bao gồm: • Dùng cookies để tránh bị tấn công từ chối dịch vụ. Dựa vào bản chất của Diffie-Hellman là dùng các phép tính lũy thừa bậc cao trên các số nguyên lớn, nên hacker chỉ cần liên tiếp gởi các giá trị mạo nhận là Xa, hệ thống sẽ liên tiếp thực hiện các phép tính để xác định khóa và do đó không có khả năng xử lý các công việc khác. Cookies là các số giả ngẫu nhiên, được mỗi bên chọn và trao đổi nhau ngay ở giai đọan khởi tạo, và sau đó dùng lại các cookies này trong các message tiếp theo sau. Việc một máy khác cố ý tạo ra các message giả nhằm tấn công hệ thống sẽ được hệ thống phát hiện bằng cách kiểm tra các giá trị cookies đã thống nhất ban đầu. Để gắn cookies với các thông tin nhận dạng hệ thống, cookies thường được tạo ra dùng hàm băm (MD5) trên các thông tin cố định như địa chỉ IP nguồn, IP đích, port nguồn, port đích và một khóa bí mật được chọn riêng. • Cho phép các gộp các hệ thống đầu cuối thành nhóm và phân phối các giá trị công khai trong nhóm (p và g). Bằng việc định nghĩa trước các nhóm cùng với các thông số p và g tương ứng, các hệ thống đầu cuối chỉ cần thương lượng với nhau về việc sẽ thiết lập giao thức trao đổi khóa dựa trên nhóm nào, mà không cần phải chọn và trao đổi với nhau các giá trị công khai của thuật tóan. • Kết hợp dùng các số ngẫu nhiên (nonce) để hạn chế các tấn công dạng phát lại. • Bổ sung tính năng xác thực đầu cuối để tránh các tấn công dạng xen giữa. Giao thức xác thực trong Oakley có thể dúng chữ ký số, dùng mật mã đối xứng mật mã bất đối xứng. IV.2- Giao thức quản lý khóa và thiết lập liên kết bảo mật ISAKMP ISAKMP định nghĩa thủ tục thiết lập, duy trì và xóa bỏ các liên kết bảo mật (SA) giữa các hệ thống đầu cuối. Cấu trúc gói ISAKMP gồm các thành phần như sau: • Initiator Cookie (64 bits): Cookie của bên khởi tạo. Chú ý rằng khởi tạo không chỉ có nghĩa là thiết lập SA, mà còn có nghĩa là khởi tạo hững thủ tục khác như xóa SA, cảnh báo trên SA, … • Responder Cookie (64 bits): Cookie của bên chấp nhận. Trong message đầu tiên gởi đi thì giá trị này bằng 0 vì chưa nhận được cookie từ bên kia. • Next Payload (8 bits): Xác định lọai payload của message. • Major Version (4 bits): Phiên bản chính của ISAKMP. • Minor Version (4 bits): Phiên bản phụ của ISAKMP. 14 • Exchange Type (8 bits): xác định thủ tục thực hiện. • Flags (8 bits): Một số bit cờ cần thiết cho quá trình thiết lập SA. • Message ID (32 bits): Số nhận dạng message • Length (32 bits): Tổng chiều dài của payload (header và payload) tính bằng bytes. Một số thủ tục đển hình của ISAKMP: (a) Base Exchange (1)I → R: SA; NONCE Bắt đầu thương lượng ISAKMP-SA (2)R → I: SA; NONCE Chấp nhận thiết lập SA (3)I → R: KE; IDI AUTH Tạo khóa, xác thực I (4)R → E: KE; IDR AUTH Tạo khóa, xác thực R, thiết lập SA (b) Identity Protection Exchange (1)I → R: SA Bắt đầu thương lượng ISAKMP-SA (2)R → I: SA Chấp nhận thiết lập SA 15 (3)I → R: KE; NONCE Tạo khóa (4)R → I: KE; NONCE Tạo khóa (5)*I → R: IDI; AUTH Xác thực I (6)*R → I: IDR; AUTH Xác thực R, thiết lập SA (c) Authentication Only Exchange (1)I → R: SA; NONCE Bắt đầu thương lượng SA (2)R → I: SA; NONCE; IDR; AUTH Chấp nhận thiết lập SA, xác thực R (3)I → R: IDI; AUTH Xác thực I, thiết lập SA (d) Aggressive Exchange (1)I → R: SA; KE; NONCE; IDI; Bắt đầu thương lương ISAKMP-SA và trao đổi khóa (2)R → I: SA; KE; NONCE; IDR; AUTH Xác thực I, tạo khóa, chấp nhận thiết lập SA (3)*I → R: AUTH Xác thực R, thiết lập SA (e) Informational Exchange (1)*I → R: N/D Cảnh báo lỗi Ghi chú: I = initiator (bên khởi tạo) R = responder (bên đáp ứng) * = Dữ liệu có mã hóa AUTH = Sử dụng cơ chế xác thực

Các file đính kèm theo tài liệu này:

  • pdfchapter_5_ip_security_8356.pdf