Đồ án Môn học bảo mật thông tin Ipsec và triển khai hệ thống ipsec-vpn trên windows server 2003

Tài liệu Đồ án Môn học bảo mật thông tin Ipsec và triển khai hệ thống ipsec-vpn trên windows server 2003: 1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TPHCM KHOA CÔNG NGHỆ THÔNG TIN ———***——— Đồ án môn học Bảo mật thông tin IPSEC và TRIỂN KHAI HỆ THỐNG IPSEC/VPN TRÊN WINDOWS SERVER 2003 Giáo viên hướng dẫn: Thầy LÊ PHÚC Nhóm sinh viên thực hiện: 1.Trương Thế Linh 2.Tô Đình Nghị 3.Phùng Huy Khương 4.Nguyễn Thị Phúc TPHCM / 11. 2009 Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 2 Mục lục I. Lời mở đầu ................................................................................................................. 4 II. Tìm hiểu về IPSEC ...................................................................................................... 5 1. Giới thiệu về IPSEC ......................................................................................... 5 2. Kiến trúc giao thức IPSEC................................................................................ 5 2.1 Mô hình chung………………………………………………………………...

pdf59 trang | Chia sẻ: haohao | Lượt xem: 1439 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Môn học bảo mật thông tin Ipsec và triển khai hệ thống ipsec-vpn trên windows server 2003, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1 HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CƠ SỞ TPHCM KHOA CÔNG NGHỆ THÔNG TIN ———***——— Đồ án môn học Bảo mật thông tin IPSEC và TRIỂN KHAI HỆ THỐNG IPSEC/VPN TRÊN WINDOWS SERVER 2003 Giáo viên hướng dẫn: Thầy LÊ PHÚC Nhóm sinh viên thực hiện: 1.Trương Thế Linh 2.Tô Đình Nghị 3.Phùng Huy Khương 4.Nguyễn Thị Phúc TPHCM / 11. 2009 Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 2 Mục lục I. Lời mở đầu ................................................................................................................. 4 II. Tìm hiểu về IPSEC ...................................................................................................... 5 1. Giới thiệu về IPSEC ......................................................................................... 5 2. Kiến trúc giao thức IPSEC................................................................................ 5 2.1 Mô hình chung……………………………………………………………… 5 2.2 Các giao thức cơ bản………………………………………………………... 6 2.3 Liên kết bảo mật……………………………………………………………. 6 2.4 Transport mode và Tunnel mode…………………………………………… 7 3. Giao thức AH…………………………………………………………………… 7 3.1 Các cơ chế bảo vệ được cung cấp bởi giao thức AH……………………….. 7 3.2 Cấu trúc của AH……………………………………………………………. 8 3.3 Vị trí của AH……………………………………………………………….. 8 3.4 Các mode làm việc trong AH……………………………………………….. 9 3.5 Nested và Adjacent header trong AH…………………………………….. 10 3.6 Quá trình xử lí tiêu đề IPSEC……………………………………………… 11 3.7 Quá trình xử lí của AH với các gói tin Outbound …………………………. 12 3.8 Quá trình xử lí của AH đối với các gói tin Inbound……………………….. 16 3.9 Một số điểm phức tạp trong giao thức AH………………………………… 18 3.9.1 Vấn đề phân mảnh và việc quản lí các gói ICMP trong giao thức AH 19 3.9.2 Mối quan hệ giữa NAT và IPSEC……………………………………. 20 3.9.3 Vấn đề auditing (giám sát ) trong AH………………………………….21 4. Giao thức ESP……………………………………………………………………22 4.1 Các cơ chế bảo vệ được cung cấp bởi ESP…………………………………. 22 4.2 Cấu trúc của ESP……………………………………………………………. 23 4.3 Vị trí và các mode làm việc của ESP………………………………………. 25 4.4 Nested và Adjacent header trong ESP………………………………………26 4.5 Qúa trình xử lí của ESP đối với các gói tin Ounbound……………………. 27 4.6 Qúa trình xử lí của ESP đối với các gói tin Inbound…………………………30 4.7 Một số điểm phức tạp trong giao thức ESP………………………………… 30 4.8 Một số đánh giá ,phê bình của các chuyên gia về ESP……………………… 31 4.9 Lý do sử dụng hai tiêu đề bảo vệ……………………………………………. 32 5. Quản lý khóa với IKE ……………………………………………………………32 5.1 Tổng quan về quản lí khóa ............................................................................32 5.2 IKE phases..…………………………………………………………………..33 5.3 IKE modes..…………………………………………………………………..33 6. PF keys trong IPSEC………………………… ………………..............................36 6.1 Giới thiệu……………………………………………………………………...36 6.2 Cấu tạo………………………………………………………………………...37 Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 3 7. Mục đích và ưu khuyết điểm của IPSEC ……………………………………...38 8. Triển khai IPSEC ...............................................................................................40 8.1 .Các tác động bảo mật………………………………………………………...40 8.2 Các phương pháp chứng thực được Microsoft hỗ trợ....................................41 8.3 IPSEC policy ...............................................................................................41 8.4 IPSEC làm việc như thế nào ........................................................................42 III. Triển khai hệ thống IPSEC/VPN trên Windows Server 2003..........................................43 1. Mô hình triển khai ..............................................................................................43 2. Các bước thực hiện .............................................................................................43 IV Tài liệu tham khảo………………………………………………………………………..58 Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 4 I.Lời nói đầu: Trong thời đại Internet phát triển rộng khắp như ngày nay, những dịch vụ như đào tạo từ xa, mua hàng trực tuyến, tư vấn y tế trực tuyến đã trở thành hiện thực. Tuy nhiên, do Internet có phạm vi toàn cầu, không một tổ chức hay chính phủ nào quản lý nên sẽ có rất nhiều khó khăn trong việc bảo mật, đảm bảo an toàn dữ liệu cũng như chất lượng của các dịch vụ trực tuyến thông qua đường truyền mạng. Từ đó, người ta đã đưa ra mô hình mới nhằm thỏa mãn những yêu cầu trên mà vẫn tận dụng được cơ sở hạ tầng mạng vốn có, đó chính là mạng riêng ảo (Virtual Private Network-VPN). Để có thể gửi và nhận dữ liệu thông qua mạng công cộng mà vẫn bảo đảm tính an toàn và bảo mật, VPN cung cấp cơ chế mã hóa dữ liệu trên đường truyền tạo ra một đường ống bảo mật giữa nơi gửi và nơi nhận (Tunnel) giống như một kết nối point-point trên mạng riêng.Và IPSEC (Internet Protocol Security) chính là một trong những giao thức tạo nên cơ chế “đường ống bảo mật” cho VPN. Thông qua tài liệu này sẽ giúp chúng ta hiểu những khái niệm gần như cơ bản nhất về IPSEC cũng như cách triển khai một hệ thống IPSEC/VPN trên Windows Server 2003. Trong quá trình biên soạn chắc không tránh khỏi những sai sót, mong được sự đóng góp của thầy và các bạn.Xin chân thành cảm ơn. Nhóm thực hiện. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 5 II.Tìm hiểu về IPSEC 1:Giới thiệu về IPSEC IPSEC ( Internet Protocol Security) là giao thức ở lớp Network (OSI) cho phép gửi nhận các gói IP được mã hóa. Tùy theo mức độ cần thiết, IPSEC có thể cung cấp cả tính bảo mật và xác thực cho quá trình trao đổi dữ liệu dựa trên hai kiểu dịch vụ mã hóa: AH, ESP. Mục đích chính của việc phát triển IPSEC là cung cấp một cơ cấu bảo mật ở tầng 3 trong mô hình OSI. IPSEC cũng là một thành phần quan trọng hỗ trợ giao thức L2TP ( Layer two tunneling protocol ) trong công nghệ mạng riêng ảo VPN. 2 Kiến trúc giao thức IPSEC: 2.1 Mô hình chung: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 6 2.2 Các giao thức cơ bản trong IPSEC: -Hai giao thức cơ bản để thực thi IPSEC là AH và ESP. -AH chỉ cung cấp các dịch vụ xác thực,ESP vừa cung cấp các dịch vụ bảo mật vừa cung cấp các dịch vụ xác thực 2.3 Liên kết bảo mật: -SA (Security Associations) :Là một khái niệm cơ bản của bộ giao thức IPSEC. SA là một kết nối luận lý theo một phương hướng duy nhất giữa hai thực thể sử dụng các dịch vụ IPSEC. SA gồm có 3 trường : Hình biểu diễn 3 trường của SA Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 7 -SPI (Security Parameter Index) : là một trường 32 bits dùng nhận dạng giao thức bảo mật, được định nghĩa bởi trường Security protocol, trong bộ IPSEC đang dùng. SPI như là phần đầu của giao thức bảo mật và thường được chọn bởi hệ thống đích trong suốt quá trình thỏa thuận của SA. -Destination IP address : địa chỉ IP của nút đích. Cơ chế quản lý hiện tại của SA chỉ được định nghĩa cho hệ thống unicast mặc dù nó có thể là địa chỉ broadcast, unicast, hay multicast. -Security protocol : mô tả giao thức bảo mật IPSEC, là AH hoặc là ESP.SA trong IPSEC được triển khai bằng 2 chế độ đó là Tunnel mode và Transport mode. 2.4 Transport mode và Tunnel mode: Hiện tại, IPSEC có hai chế độ làm việc: Transport Mode và Tunnel Mode. Cả AH và ESP đều có thể làm việc với một trong hai chế độ này. Hình minh họa hai chế độ làm việc của IPSEC 3.Giao thức AH 3.1 Các cơ chế bảo vệ được cung cấp bởi giao thức AH: -Tính toàn vẹn thông tin( intergrity):Cơ chế này đảm bảo gói tin nhận được chính là gói tin đã gửi. -Xác thực nguồn gốc thông tin :Cơ chế này đảm bảo gói tin được gửi bởi chính người gửi ban đầu mà không phải là người khác. -Cơ chế chống phát lại(Replay protection)(đây là cơ chế tùy chọn(optional),không bắt buộc):Cơ chế này đảm bảo rằng một gói tin không bị phát lại nhiều lần.Cơ chế này là một thành phần bắt buộc đối với bên gửi tuy nhiên bên nhận có thể tùy chọn sử dụng hoặc không sử dụng . Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 8 3.2 Cấu trúc của AH: Các trường trong AH: -Next header(8 bits):Xác định loại dữ liệu chứa trong tiêu đề AH.Sử dụng các quy ước của TCP/IP. -Payload len(8 bits):Xác định độ dài tiêu đề AH , tính bằng đơn vị từ I( 32 bits) trừ đi 2 đơn vị. -Reserved(16 bits):Dành riêng chưa sử dụng,được gán chuỗi bit 0. -SPI(security paramaters index)(32 bits):Nhận dạng liên kết SA.Giá trị từ 1 đển 255 được giành riêng.Giá trị 0 được dùng vào mục đích đặc biệt.Ví dụ một cơ chế quản lí khóa có thể sử dụng SPI với giá trị 0 để thể hiện rằng không có một SA nào tồn tại trong quá trình IPSEC đã yêu cầu bộ quản lí khóa tạo một SA mới nhưng SA này vẫn chưa được khởi tạo. -Sequence number(32 bits):Số thứ tự gói truyền trên SA.Thông qua việc theo giỏi chỉ số này và gửi nó cho bên nhận,bên gửi có thể giúp bên nhận thực hiện việc chống phát lại (anti-replay) nếu bên nhận muốn. -Authentication data:Trường này có kích thước không xác định,không xác định trước,đảm nhiệm vai trò chính của AH.Nó bao gồm ICV(intergrity check value:kiểm tra sự toàn vẹn) . Bên nhận sử dụng nó để kiểm tra tính toàn vẹn và tính xác thực của thông điệp.Trường này có thể được chèn thêm nếu cần thiết để đảm bảo tổng chiều dài của AH là bội số của 32 bits ( đối với Ipv4) và 64 bits (đối với Ipv6). 3.3:Vị trí của AH trong gói tin IP: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 9 Hình trên mô tả vị trí của tiêu đề AH trong các gói tin Ipv4 và Ipv6. -Trong Ipv4 ,AH theo sau tiêu đề của gói tin Ip,tiếp đến là các tiêu đề của các giao thức ở trên ( TCP,UDP ,ICMP) hoặc tiêu đề ESP. -Trong Ipv6,vị trí của AH cũng tương tự như trên , tuy nhiên trong Ipv6 có thêm các tiêu đề tùy chọn.Vị trí tương quan của các tiêu đề này và AH như sau: Các tiêu đề của các tùy chọn mở rộng trong Ipv6 đứng trước AH là các tiêu đề hop-by-hop,tiêu đề định tuyến (routing header),tiêu đề phân mảnh ( fragment header); Tiêu đề đích tùy chọn( dest options header) có thể đứng trước hoặc theo sau AH.Vị trí tương quan của tiêu đề này với AH phụ thuộc vào việc quá trình xử lí xác định đối với nó diễn ra trước hay sau khi quá trình xác thực diễn ra. 3.4 Các chế độ làm việc trong AH: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 10 Hình trước minh họa vị trí của AH trong chế độ Transport,chế độ này thường được sử dụng để xác thực đầu cuối giữa hai host.Tuy nhiên trong trường hợp hai SG (security gateway) được sử dụng để bảo vệ cho nhiều host trong một mạng thì chế độ tunnel được sử dụng.Hình trên mô tả vị trí của AH trong chế độ tunnel.Chế độ tunnel cũng có thể sử dụng trong truyền thông giữa hai host trong trường hợp này địa chỉ trong tiêu đề ip ban đầu và tiêu đề ip bổ sung là như nhau. 3.5:Nested header (tiêu đề lồng) trong AH: -Nhiều SA có thể áp dụng cho một thông điệp.Nếu một trong hai đầu cuối của các thông điệp này là giống nhau thì các AH của các SA này được gọi là Adjacent AH.Nếu một hoặc hai đầu cuối của các SA khác nhau thì các AH này được gọi là các AH lồng ( nested AH). -Adjacent AH không cung cấp thêm bất cứ sự bảo vệ nào cả , việc áp dụng chúng là không bắt buộc (not mandated). -Nested AH có thể được áp dụng trong một số trường hợp nhất định. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 11 -Hình trên minh họa việc một trường hợp sử dụng nested AHs.Trong ví dụ này :Host 1 và host 2 yêu cầu xác thực đầu cuối.Tuy nhiên các gateway của mỗi host này lại yêu cầu xác thực tất cả các gói tin qua gateway.Trong tình huống này nested AHs được sử dụng để thỏa mãn yêu cầu trên. 3.6:Việc xử lí tiêu đề IPSEC: Thông thường cơ chế xử lí đối với thông điệp trong mạng như sau:Đối với các thông điệp đi ra ( Outbound messages ),tiêu đề ip được thêm vào các thông điệp,sau đó chúng có thể được phân mành nếu cần.Tiếp theo chúng được chuyển xuống các tầng dưới và đi ra ngoài.Đối với các thông điệp đi vào, các thông điệp sẽ được giải phân mảnh nếu cần thiết,sau đó bỏ phần tiêu để ip rồi chuyển lên các lớp trên để xử lí. Khi sử dụng IPSEC thì các cơ chế xử lí trên cần có sự biến đổi.Có ba hướng tiếp cận để giải quyết vấn để này: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 12 -Thay đổi cấu trúc mạng (IP stack code) .Đây là cách tiếp cận trực tiếp nhất.Tuy nhiên điều này dẫn tới phải thay đổi ở trong lớp nhân ( kernel code) .Do đó nó thường áp dụng đối với các nhà phát triển hệ thống.Nó có thể áp dụng cho cả các host và gateways. -Tách cấu trúc ip ra khỏi cấu mạng.Cách làm này không cần thay đổi cấu trúc của nhân.Tuy nhiên nó kéo theo việc phải thay đổi lại các cơ chế phân mảnh và giải phân mảnh.Cách làm này thường được gọi là “Bump in the stack” (BITS) bởi vì gói ipsec nằm giữa tầng internet và tầng network của mô hình mạng.Cách này thường áp dụng cho cả host và gateway.Tuy nhiên nó thường được áp dụng đối với các host trong một hệ điều hành cũ.(legacy operating systems) -Đặt IPSEC ra ngoài hệ thống,cách làm này gọi là “Bump in the wire” (BITW).Trong cách làm này IPSEC có thể được tích hợp trong router hay firewall và được đặt trong router hoặc firewall,hoặc nó có thể đứng độc lập trong một IPSEC box.nó có thể được gắn cho một host ,gateway hoặc một máy đa năng. 3.7:Quá trình xử lí của AH đối với các gói tin Outbound: Một khi đã xác định rằng thông điệp gửi đi (outbound message) được bảo vệ bởi AH,và đã xác định được một SA phù hợp quản lí việc truyền thông điệp này.Thông điệp được chuyển tới quá trình xử lí IPSEC.Quá trình này gồm các bước như sau: -1: Thêm một khuôn dạng AH vào vị trí thích hợp . -2: Thêm vào trường next header. -3: Thêm vào trường SPI bằng giá trị SPI của SA được chọn ở trên. -4: Tính giá trị sequence number ( giá trị max của trường này là 2^32 -1 ).Nếu giá trị nàychưa đạt giá trị max thì chỉ cần tăng sequence number lên một đơn vị.Giá trị mới này được cất vào AH và SAD.Ngược lại khi sequence number đã đạt đến giá trị max thì có thể xáy ra các tình huống như sau:Nếu khóa bí mật giữa các bên của SA đã được thỏa thuận,đây là thời điểm thỏa thuận một khóa mới bất kể bên nhận có sử dụng chức năng chống phát lại hay không.Thông điệp này có thể được giữ lại hoặc hủy bỏ cho đến khi quá trình thỏa thuận khóa mới diễn ra.Nếu khóa của SA được tạo ra thủ công ,nghĩa là hai bên thỏa thuận khóa với nhau thông qua một số cách xác định như là qua điện thoại hoặc sử dụng thư và nếu bên gửi biết rằng bên nhận không sử dụng chức năng chống phát lại thì sequence number đơn giản được reset về giá trị một.Đối với việc thỏa thuận khóa thủ công,trong trường hợp người nhận sử dụng chức năng chống phát lại,cần phải thỏa thuận một khóa mới.Cho tới lúc đó thông điệp chưa được gửi đi và quá trình xử lí AH lúc này bị treo ( halt). -5: Đối với chế độ transport ,trường next header được chuyển thành AH. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 13 -6: Thêm trường tiêu đề tunnel nếu cần thiết.Nếu SA sử dụng chế độ tunnel thì một tiêu để ip bổ sung được tạo ra và thêm vào thông điệp.Địa chỉ nguồn và đích của tiêu đề ip bổ sung này là các đầu cuối của tunnel được xác định bởi SA. Nếu cả tiêu đề bên trong và bên ngoài đều là Ipv4 thì một số trường sau được chép từ inner header ra outer header :Version,TOS,Protocol,Fragment identification,MF Flag và Fragment offset.Một số trường sau cần phải tính toán lại:Header length,total length, và header checksum.Việc tính toán lại các giá trị này là cần thiết vì các trường này thể hiện cho cả outer header và inner header lẫn AH.Trường next header được thiết lập là AH.Trường optional không được sao chép.Trường TTL được thiết lập giá trị mặc định của hệ thống.Giá trị của cờ DF ( don’t fragment) tùy thuộc vào các policy của hệ thống cục bộ.Giá trị này có thể được chép từ inner header hoặc được gán giá trị bằng 1 để chống phân mảnh,hoặc gán giá trị bằng 0 để cho phép phân mảnh.Các trường của inner header được giữ nguyên ngoại trừ một ngoại lệ:Nếu địa chỉ nguồn của inner header và outer header là khác nhau có nghĩa là gói tin bên trong đã đi đến địa điểm nguồn của tunnel do đó giá trị TTL( Time to live ) bị giảm và do đó cần phải tính lại giá trị checksum trong inner header để phản ánh sự thay đổi này. Nếu cả hai tiêu đề đều là Ipv6,một số trường sau được chép từ inner header ra outer header:Version và Traffic class.Trường Payload length được tính toán lại do tại thời điểm này trường này thể hiện giá trị tổng cộng của inner header ,outer header và AH .Trường next header được thiết lập là AH hoặc là giá trị của phần mở rộng tùy chọn đứng trước AH.Những trường mở rộng này không thể sao chép một cách thuần túy.Trường Hop limited được gán giá trị mặc định của hệ thống.Các trường của inner header được giữ nguyên ngoại trừ một ngoại lệ nếu địa chỉ nguồn của inner header và outer header khác nhau tức là gói tin inner đã đi đến địa điểm nguồn của tunnel.Lúc này giá trị Hop-limmited bị giảm đi một đơn vị.Điều này dẫn tới việc phải tính toán và cập nhật lại giá trị của trường checksum trong inner header. Nếu inner header là Ipv4 header và outer header là Ipv6 header hoặc ngược lại thì quá trình xử lí có vài điểm khác biệt.Trường version field được thiết lập là 4 đối với Ipv4 header và 6 đối với Ipv6 header.Trường Traffic class được chuyển sang TOS,địa chỉ nguồn và địa chỉ đích được chuyển đổi sang định dạng phù hợp nếu cần thiết. -7:Tính toán dữ liệu xác thực.Lưu ý rằng toàn bộ thông điệp không được bảo vệ bởi AH,bởi vì ip header chứa 3 loại dữ liệu cơ bản sau:Immutable data ( các dữ liệu không thay đổi trong quá trình truyền),mutable data but predicable ( các dữ liệu thay đổi trong quá trình truyền nhưng có thể dự đoán được) và mutable unpredicable data ( các dữ liệu thay đổi trong quá trình truyền và không thể dự đoán trước được).Bảng dưới đây sẽ phân loại các trường này trong Ipv4 header và Ipv6 header.Chỉ những trường chứa immutable data hoặc mutable data but predicable được đưa vào hàm băm để tính.Trong transport mode chỉ những trường này của ip header được đưa vào hàm băm.Trong tunnel mode toàn bộ inner header và thông điệp gốc được đưa vào hàm băm tuy nhiên chỉ những immutable data và mutable data but predicable của outer header được đưa vào hàm băm.Đối với các trường chứa dữ liệu mutable unpredic data có các hướng giải quyết như Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 14 sau.Không đưa chúng vào hàm băm hoặc thay thế chúng bằng các giá trị zero.Trên thực tế người ta áp dụng cách thứ 2.Vì cách làm này đảm bảo hàm băm luôn thực hiện trên dữ liệu có chiều dài xác định ,đây là cách làm tổng quát. Thuật toán băm áp dụng với AH là HMAC-MD5 (sinh ra 128 bits ) và HMAC-SHA1 (sinh ra 160 bits).Trong AH để đảm bảo cho số lượng byte ngoài biên được phù hợp cho quá trình xử lí ,AH giảm số lượng bits xuống còn 96 bits.Một khi đã thêm trường ICV vào AH thông điệp đã sẵn sàng . Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 15 -8:Phân mảnh thông điệp nếu cần thiết.Nếu việc thêm AH và đặc biệt thêm các tiêu đề trong tunnel mode làm kích thước thông điệp quá lớn thì việc phân mảnh là cần thiết.Việc phân mảnh có thể diễn ra tại thời điểm này. -Trong transport mode địa chỉ nguồn luôn luôn là địa chỉ khởi tạo của thông điệp nên toàn bộ thông điệp có thể xác thực trước khi quá trình phân mảnh diễn ra. -Trong tunnel mode địa chỉ nguồn của inner header luôn là địa chỉ khởi tạo của thông điệp,nếu địa chỉ này khác địa chỉ source của outer header thì thông điệp có thể đã bị phân mảnh trước khi rời khỏi host ban đầu.Trong trường hợp đó tunnle header xác thực trên thông điệp đã bị phân mảnh và có thể sẽ bị phân mảnh tại thời điểm này. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 16 3.8:Quá trình xử lí của AH đối với các gói tin Inbound: Khi nhận được một thông điệp có chứa AH,quá trình xử lí ip trước tiên sẽ tống hợp các phân mảnh thành thông điệp hoàn chỉnh.Sau đó thông điệp này sẽ được chuyển tới quá trình xử lí IPSEC.Quá trình này gồm các bước như sau: -1:Xác định inbound SA tương ứng trong SAD.Bước này được thực hiện dựa trên các thông số:SPI,địa chỉ nguồn,giao thức AH.SA tương ứng kiểm tra trong gói AH để xác định xem mode nào được áp dụng transport mode hay tunnel mode hay cả hai.Gói cũng phải cung cấp một số thông số để giới hạn tầm tác động của SA(ví dụ:port hay protocol).Nếu đây là tunnel header SA phải so sánh các thông số này trong packer inner vì các thông số này không được sao chép sang tunnel header.Khi SA phù hợp được tìm thấy,quá trình được tiếp tục ,ngược lại gói tin sẽ bị hủy bỏ. -2:Nếu chức năng chống phát lại được kích hoạt,phía xuất phát của gói tin AH luôn tăng số đếm chống phát lại.Bên nhận có thể bỏ qua hoặc sử dụng chỉ số này để chống phát lại.Tuy nhiên giao thức IP không đảm bảo rằng trình tự của các gói khi đến bên nhận giống như trình tự các gói lúc chúng được gửi đi.Do đó chỉ số này không thể dùng để xác định thứ tự của các gói tin.Tuy nhiên Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 17 chỉ số này vẫn có thể sử dụng để xác định mối liên hệ về thứ tự với một cửa sổ có chiều dài là bội số của 32 bits. Đối với mỗi inbound SA,SAD lưu trữ một cửa sổ chống phát lại.Kích thước của cửa sổ là bội số của 32 bits với giá trị mặc định là 64 bits.Một cửa sổ chống phát lại có kích thước N kiểm soát sequence number của N thông điệp được nhận gần nhất.Bất cứ thông điêp nào có sequence number nhỏ hơn miền giá trị của cửa sổ phát lại đểu bị hủy bỏ.Các thông điệp có số sequence number đã tồn tại trong cửa sổ phát lại cũng bị hủy bỏ. Một bit mask ( hoặc một cấu trúc tương tự ) được sứ dụng để kiểm soát sequence number của N thông điệp được nhận gần nhất đối với SA này .Ban đầu một bit-mask 64 bít có thể giám sát sequence number của các thông điệp có sequence number nằm trong đoạn 1 , 64.Một khi xuất hiện một thông điệp có số sequence number lớn hơn 64 ( ví dụ 70),bit-mask sẽ dịch chuyển để giám sát các số sequence number trong đoạn 7 , 70. Do đó nó sẽ hủy bỏ các thông điệp có sequence number nhỏ hơn 7,hoặc các thông điệp có số sequence number đã xuất hiện trong cứa sổ chống phát lại.hình dưới đây minh họa hoạt động của cửa sổ chống phát lại. -3:Kiểm tra tính xác thực của dữ liệu.Hàm băm được tính toán tương tự như outbound message.Nếu kết quả tính không trùng với ICV trong thông điệp thì hủy bỏ thông điệp ,ngược lại sẽ chuyển sang giai đoạn tiếp theo. -4:Loại bỏ AH và tiếp tục quá trình xử lí IPSEC cho các phần còn lại của tiêu đề IPSEC.Nếu có một nested IPSEC header xuất hiện tại đích đến này.Mỗi header cần phải được xử lí cho đến khi một trong hai điều kiện được thỏa mãn.Khi ipsec header cuối cùng đã được xử lí thành công và Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 18 quá trình xử lí tiếp cận đến các protocol của lớp trên gói tin được gửi đến chu trình xử lí gói ip tiếp tục di chuyển trong tầng ip.Trong trường hợp khác,nếu quá trình xử lí tiếp cận với một tunnel ip header mà đích đến không phải là host này thì thông điệp được chuyển đến host phù hợp tại đó các giai đoạn tiếp theo của quá trình xử lí IPSEC được diễn ra. -5:Kiểm tra trong SAD để đảm bảo rằng các ipsec policy áp dụng với thông điệp trên thỏa mãn hệ thống các policy yêu cầu.Giai đoạn quan trọng này rất khó minh họa trong trường hợp quá trình xác thực chỉ sử dụng mình AH.Một ví dụ có sức thuyết phục cao hơn khi chúng ta tiếp tục tìm hiểu một loại tiêu đề bảo mật khác,ESP. 3.9:Một số điểm phức tạp trong giao thức AH: 3.9.1:Vấn đề phân mảnh và việc quản lí các gói ICMP trong giao thức AH: Hai vấn đề sau trong giao thức ip làm cho giao thức AH trở nên phức tạp:Quá trình phân mảnh và các thông điệp ICMP lỗi.Chúng ta sẽ tìm hiểu vấn đề này thông qua các ví dụ sau: Xét ví dụ sau:Giả sử tunnel mode được thiết lập SG1 và SG2 để bảo vệ truyền thông giữa hai mạng N1 và N2.Nếu một gói tin từ H1 đến H2 đã được phân mảnh trước khi nó đến SG1(ta gọi đây là trường hợp 1) ( việc này có thể được thực hiện bởi một router trung gian ( trong Ipv4 ) hoặc host xuất phát (trong Ipv6),SG1 sẽ tính các giá trị ICV cho từng phân mảnh.Khi các phân mảnh này đến SG2 từng phân mảnh được xác thực riêng biệt trước khi chúng được giải phân mảnh.Gói tin sau khi đã được giải phân mảnh và được xác thực được chuyển tiếp đến đích đến H2.Tiếp theo ta giả sử tình huống sau quá trình phân mảnh được thực hiện tại một router nằm giữa SG1 và SG2 ( chỉ xét trong Ipv4) ( ta gọi đây là trường hợp 2).SG1 đã tính ICV cho toàn bộ gói tin.Khi các phân mảnh đến SG2 chúng cần phải được tổng hợp lại trước khi xác thực vì ICV đã được tính trước khi việc phân mảnh diễn ra. Ta thay đổi tình huống như sau.Giả sử SG1 biết một số đoạn (segment) của đường truyền gặp vấn đề nghẽn cổ chai về kích thước gói.Do đó SG1 quyết định không thực thi tunnel mode trong AH để tránh việc thêm outer header nhằm làm giảm kích thước gói tin.Cách giải quyết này Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 19 không phù hợp với kiến trúc của giao thức ipsec vì nó đã loại bỏ một số thành phân trong ipsec mà cụ thể là (tunnle mode ). Ta tiếp tục thay đổi mô hình mạng như sau: Giả sử ngoài SG2,còn có SG3 phục vụ N2,được minh họa như hình vẽ trên.Nếu SA giữa N1 và N2 tất cả đều là tunnel mode SA, được thỏa thuận giữa SG1 và SG2 thì tất cả các gói phân mảnh sẽ được định tuyết qua các gateway thích hợp và thông điệp sẽ được xử lí một cách chính xác.Tuy nhiên nếu SG1 và SG2 quyết định giảm kích thước các gói tin và thiết lập transport mode SA thì vấn đề sẽ xuất hiện.SG2 thiết lập transport mode SA với giả định rằng nó là ngõ vào duy nhất với N2 do đó nó có thể bắt được tất cả các gói tin và thực hiện xác thực trước khi các gói tin đến H2.Nếu bất kì một gói tin nào được định tuyến thông qua SG3 thì quá trình tổng hợp sẽ diễn ra không chính xác.Trường hợp 1 ,SG2 xác thực mỗi gói tin nó nhận được và cố gắng tổng hợp chúng lại .Tuy nhiên vì không phải tất cả các phân mảnh đều đi qua SG2,nên gói tin đang tổng hợp dở sẽ bị hủy bỏ khi thời gian tổng hợp hết(reasembly timer expires).Cùng lúc đó phân mảnh đến SG3 có thể bị SG3 hủy bỏ hoặc chuyển tiếp đến H2,tại đây không xác định được SA phù hợp cho phân mảnh trên ,nên nó bị hủy bỏ.Trong trường hợp 2 ,SG2 cố gắng tổng hợp các gói tin trước khi xác thực chúng.Tuy nhiên kết quả vẫn diễn ra tương tự như trường hợp1.Đây là trường hợp xấu nhất.Nhưng trên thực tế tình huống này lại xảy ra với tần suất đáng báo động.Minh họa trên lý giải vì sao phải áp dụng tunnel mode giữa hai gateway. -Để chống quá trình phân mảnh ,các gateway cần phải thông báo với các host mà nó bảo vệ về kích thước header mà nó có thể thêm vào gói được gửi bởi host đó.Host ban đầu thường cố gắng gửi các gói tin có kích thước xấp xỉ PMTU (path maximum tranmisstion unit).Chỉ cần trừ đi kích thước header mà các security gateway phải thêm vào thì quá trình phân mảnh có thể tránh được. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 20 Ngoài ra còn có một cách tránh việc phân mảnh.Host ban đầu có thể kiểm tra mô hình mạng để xác định giá trị PMTU và dựa vào đó để điều chỉnh kích thước gói tin cho phù hợp.Kĩ thuật này trong Ipv4 đòi hỏi host source phải bật bit DF (Don’t fragment) lên một,để tránh việc phân mảnh tại các router trung gian.Cách làm này có thể làm xuất hiện vấn đề khi áp dụng đối với IPSEC.Nếu một gói tin có kích thước quá lớn ,không thể đi qua toàn bộ các route, khi đó một router trung gian sẽ gửi một ICMP với thông điệp là “gói tin quá lớn” đến host ban đầu.Trong trường hợp tunnel mode SA,gói ICMP sẽ được gửi đến cho security gateway có địa chỉ là điạ chỉ source trong outer header.Vấn đề rất nghiêm trọng đặt ra là khi gói tin ICMP trên không phải được gửi từ đích đến cuối cùng của thông điệp mà là từ một router trung gian.Điều này lại càng nghiêm trọng khi áp dụng IPSEC vì trong ipsec các gói tin đều phải xác thực rõ nguồn gốc.Gateway sau khi nhận được gói tin trên sẽ phải lựa chọn giữa các phương án:Liệu có thể tin tưởng thông điệp trong gói ICMP chưa xác thực trên hay không ? Nếu tin tưởng thì phải chuyển tiếp gói tin ICMP trên cùng với số PMTU mới đến host nguồn ban đầu( trong inner header).Nếu gateway không chuyển tiếp gói tin ICMP trên về host nguồn thì một lỗ hổng lớn sẽ xuất hiện:Host nguồn tiếp tục gửi các gói tin với cờ DF được bật lên vì nó không bao giờ nhận được gói tin thông báo về số PMTU mới, do đó nó không giảm kích thước của gói tin.Do đó các gói tin cứ tiếp tục được gửi đi làm tăng truyền thông trên mạng một cách vô ích vì chúng không bao giờ đến được đích cuối cùng. Việc sử dụng các gói tin ICMP để gửi thông điệp về PMTU có thể bị lợi dụng để tấn công deny of service.Một attacker gửi một gói ICMP với một số PTMU nhỏ hơn giá trị PMTU cần thiết.Nếu gateway chấp nhận gói tin ICMP chưa được xác thực này và chuyển tiếp cho host ban đầu .Host ban đầu sẽ giàm kích thước cho tất cả các gói tin lưu thông trên con đường đó.Điều này dẫn tới việc gia tăng số lượng của các gói tin có kích thước nhỏ hơn đồng nghĩa với việc gia chi phí tính toán với các vấn đề IP liên quan,có thể làm gia tăng lưu lượng trên mạng và làm giảm chất lượng dịch vụ. Một số giải pháp đưa ra để khắc phục vấn đề đưa ra về PMTU.Giải pháp đầu tiên đòi hỏi sự hợp tác giữa SG1 và SG2.SG1 cho phép các gói tin đã phân mảnh từ H1 tiếp tục con đường của chúng.Để làm được điều này nếu innner header set bit DF thì outer header không set bit này.Khi SG2 nhận được các gói tin đã bị phân mảnh.Nó gửi một số PMTU đến SG1,thông báo cho SG1 biết về kích thước của phân mảnh lớn nhất đi qua đoạn đường từ SG1 đến SG2 thành công.Bởi vì đoạn đường từ SG1 đến SG2 đã thiết lập các cơ chế bảo vệ gói tin.Gói tin PMTU này khác so với các gói tin PMTU thông thường vì PMTU được gửi sau khi đã nhận các phân mảnh.Trong khi bình thường,gói PMTU là kết quả của việc truyền không thành công một phân mảnh.Một cách khác SG2 có thể lưu trữ PMTU như một thành phần của SA và đều đặn thông báo SG1 giá trị PMTU mới nhất.Nếu H1 cố gắng gửi một gói tin có kích thước quá lớn,SG1 sẽ thông báo giá trị PMTU hiện tại với H1.Cho đến thời điểm này chưa có thêm giải pháp nào cho vấn đề này được đưa ra. 3.9.2:Mối quan hệ giữa NAT và IPSEC: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 21 - Một NAT(network address translation) box có thể là một thực thể riêng biệt hoặc được kết hợp với các security gateway.NAT được áp dụng trong hai tình huống sau.Thứ nhất trong các mạng riêng đòi hỏi tính bí mật nhằm bảo đảm tính bảo mật và riêng tư.Thứ hai là trong các mạng riêng sử dụng các địa chỉ riêng có thể đã được sử dụng tại một nơi nào đó trong mạng internet,cách làm này nhằm tiết kiệm địa chỉ ip.Khi một gói tin đi qua NAT box .địa chỉ nguồn riêng của gói tin outbound được chuyển đổi thành một địa chỉ chung (public address) và địa chỉ đến chung của một gói tin inbound ( public destion address ) được chuyển đổi địa chỉ riêng tương ứng.Việc áp dụng NAT có thể làm cho việc xác thực AH trong transport mode bị sai.Vì trong mode này AH xác thực cả địa chỉ nguồn và địa chỉ đích.Việc thay đổi lại địa chỉ nguồn và địa chỉ đích làm cho quá trình xác thực bị sai khi gói tin tới đích.Nếu quá trình chuyển đổi NAT được diễn ra trước quá trình xử lí IPSEC cho các gói tin outbound và sau quá trình xử lí IPSEC cho các gói tin inbound cơ chế bảo vệ gateway to gateway vẫn được thỏa mãn.Hình dưới đây mô tả một trường hợp một cấu hình mạng giữa NAT và các security gateway có thể hoạt động tốt. Một giao thức IPSEC thân thiện với NAT với tên gọi realm-specific-internet protocol (RSIP) đã đuợc xuất hiện .Khi áp dụng RSIP các gói tin từ một host với địa chỉ riêng không cần sử dụng địa chỉ này cho các gói tin đích nằm ngoài mạng riêng.Host này đóng vai trò là một RSIP client có thể xin một địa chỉ ip công cộng (public ip address) từ RSIP server .Bằng cách này địa chỉ nguồn của các gói tin xuất phát là một trá trị duy nhất trong mạng internet và có thể sử dụng trong xác thực đầu cuối . 3.9.3:Cơ chế giám sát trong IPSEC: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 22 Nếu một sự kiện được lưu trữ trong audit log thì giá trị lưu trữ cần chứa ngày ,giờ ,địa chỉ nguồn,địa chỉ đích,SPI ,riêng đối với Ipv6 thì flow ID cũng cần được lưu trữ.Ngoài ra nếu hệ thống có áp dụng khả năng giám sát với IPSEC thì cần có một cơ chế hỗ trợ admin kích hoạt hoặc vô hiệu hóa chức năng này.Các gói tin cảnh báo không yêu cầu phải gửi cho các bên vì nó có thể làm tăng truyền thông giữa các bên ảnh hưởng đến chất lượng mạng. -Một số các sự kiện được lưu trữ lại trong audit log là: +Việc cố gắng sử dụng một outbound SA có replay counter đã đạt đến giá trị max trong tình huống bên nhận có sử dụng chức năng chống phát lại. +Việc xử lí IPSEC trên một gói tin inbound đã bị phân mảnh. +Việc nhận được một gói tin inbound mà không tìm thấy SA phù hợp. +Việc nhận được một gói tin inbound mà việc kiểm tra lại tính xác thực của gói tin không đáp ứng được yêu cầu. 4. Giao thức ESP 4.1:Các cơ chế bảo vệ được cung cấp bởi cơ chế ESP ESP cung cấp hai cơ chế bảo vệ một cơ chế là của riêng ESP và một cơ chế là sự lặp lại cơ chế được cung cấp bởi AH.Các cơ chế bảo vệ sau được cung cấp bởi ESP mà không có trong AH: -Tính riêng tư (confidentialy):Điều này đảm bảo một thông điệp nếu bị bắt trên đường truyền thì bên trung gian không thể hiểu được nội dung của thông điệp mà điều này chỉ có bên gửi và bên nhận mới hiểu được. -Bảo vệ việc phân tích truyền thông(chỉ trong mode tunnel):Điều này đảm bảo rằng các bên trung gian không thể xác định được các đối tượng đang liên lạc với nhau,tần số và lượng thông tin trao đổi giữa các bên. ESP có thể cung cấp một số cơ chế bảo vệ đã được cung cấp trong AH:Tính toàn vẹn dữ liệu ,xác thực nguồn gốc ,chống phát lại. Có một số điểm khác biệt về tính toàn vẹn dữ liệu và xác thực nguồn gốc được cung cấp bởi AH và ESP .Một AH hoạt động ở transport mode bảo vệ cả tiêu đề ip và dữ liệu trong gói trong khi transport mode ESP chỉ bảo vệ dữ liệu trong gói tin.Trong chế độ tunnel cả 2 cơ chế đều bảo vệ tiêu đề ban đầu ,tuy nhiên chỉ mình AH bảo vệ tiêu đề bên ngoài.Tuy nhiên việc tạo ra SA, có thể gián tiếp xác thực địa chỉ ip do đó giúp xóa bỏ sự khác biệt này. 4.2 Cấu trúc của ESP: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 23 ESP gồm có các trường sau: -SPI giá trị được cất vào SAD. -Sequence number:Tương tự như đối với AH. -Pay load data là gói dữ liệu ip đã được mã hóa -Padding(độ dài bất kì ) và pad length ( 8 bits) dữ liệu chèn và kích thước của nó. -Next header :Loại dữ liệu bên trong ESP. -Authentiaction data (bội số của 32 bits):Thông tin xác thực được tình trên toàn bộ gói ESP ngoại trừ phần authentiaction data. ESP header thường được chia làm bốn phần như sau: -Initial ESP header chứa SPI và sequence number. -Data chứa một số dữ liệu đặc biệt không mã hóa(nếu có),phần mở rộng tiêu đề của địa chỉ đích theo sau ESP header ( chỉ xét trong Ipv6),TCP hoặc UDP header,và dữ liệu của thông điệp. -ESP trailer chứa padding ( nếu có ),trường pad length, và trường next header -ESP authentication data chứa các dữ liệu xác thực nếu có. 4.3:Vị trí và các mode làm việc của ESP: ESP header có thể được sử dụng trong cả transport mode và tunnel mode.Hình dưới đây mô tả vị trí của ESP transport header trong cả Ipv4 và Ipv6.Trong Ipv4 nó có thể theo sau bởi ip header hoặc AH.Kế đó là trường next header (TCP,UDP,ICMP).Trong Ipv6 không hoặc nhiều tiêu đề mở rộng (hop by hop,routing,fragment,hoặc destination header option) có thể đứng trước ESP Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 24 header.Ngoài ra trường destination header option có thể đứng sau ESP header.Vị trí tương quan giữa trường này và ESP header tùy thuộc vào quá trình xử lí riêng của nó được thực hiện trước hay sau quá trình xử lí ESP.Nếu gói tin đã được mã hóa một destionation option header theo sau trường ESP header không thể được đọc bởi bất cứ một đích đến trung gian nào.Nó chỉ xuất hiện (visible ) trở lại khi quá trình xử lí ESP header mã hóa đã thực hiện ở đích đến cuối cùng. Hình tiếp theo minh họa vị trí của ESP header trong tunnel mode.Trong Ipv4 ESP header theo sau IP header mới và IP header gốc.Trong Ipv6 ESP theo sau các trường mở rộng (nếu có) như trong transport mode và đứng trước IP header gốc. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 25 4.4: Nested và Adjacent header trong ESP Với hai loại security header việc việc áp dụng nhiều hơn một SA cho một thông điệp trở nên phức tạp hơn.Nếu adjacent header được sử dụng ( ví dụ : khi các điểm đầu cuối của cả hai SA là giống nhau),AH header sẽ đứng trước ESP header.Điều này có nghĩa là gói tin sẽ được mã hóa trước rồi mới được xác thực.Bằng cách này gói tin đã được mã hóa được bảo vệ khỏi vấn đề xáo trộn .Tuy nhiên kết quả này có thể đạt được một cách tốt hơn bằng cách sử dụng một ESP header cung cấp cả xác thực và mã hóa. Nested header thường được sử dụng thường xuyên hơn.Trong trường hợp hai(đã trình bày ở phần về AH) ,nếu 2 gateway SG1 và SG2 yêu cầu tất cả các truyền thông gateway to gateway đều được xác thực và mã hóa.Điều này có thể thực hiện bằng hai cách như sau: Thông qua một ESP SA cung cấp cả xác thực và mã hóa ,hoặc thông qua một adjacent AH và ESP SA.Đối với những gateway bảo vệ truyền thông giữa các host H1 và H2 ,SA nên là tunnel mode SA.Tuy nhiên điều này dẫn tới truyền thông giữa H1 và SG1 chưa được bảo vệ.Nếu H1 không tưởng security gateway của nó để vận chuyển truyền thông ,hoặc có một user trong mạng cục bộ của H1 không đáng tin cậy,lúc này H1 cũng cần xác thực truyền thông trong mạng cục bộ.Để đạt Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 26 được điều này ,sử dụng một nested (lồng) SA là giải pháp lí tưởng.Một cặp ESP tunnel mode SA giữa SG1 và SG2 và một cặp AH transport mode SA giữa H1 và H2.Hình dưới đây mô tả cách sử dụng của một nested SA. Trong trường hợp này khi một thông điệp được truyền từ H1 đến H2,nó có một tranport mode AH kể từ thời điểm nó rời H1 đến khi nó tới SG1.Khi nó được truyền từ SG1 đến SG2 nó kết hợp giữa AH và ESP thông qua một inner transport mode AH header và một outer tunnel mode ESP header.Khi truyền từ SG2 đến H2, lúc này nó chỉ còn transport mode AH header. 4.5 Quá trình xử lí ESP đối với các thông điệp Outbond Một số bước xử lí diễn ra tương tự như đối với AH.Những bước này sẽ không được trình bày lại chi tiết ở đây.Một khi đã xác định thông điệp Outbound được bảo vệ bởi ESP header và Outbound SA đảm nhận việc quản lí thông điệp này đã được tìm thấy hoặc được thỏa thuận,thông điệp này được chuyển sang các quá trình xử lí trong IPSEC,bao gồm các bước sau: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 27 -1:Thêm một khuôn dạng ESP header vào vị trí thích hợp. -2:Thêm vào trường SPI bằng giá trị SPI của SA đuợc chọn. -3:Tính toán trường sequence number. -4: Nếu quá trình mã hóa diễn ra,thuật toán mã hóa phù hợp sẽ yêu cầu một số dữ liệu cần thiết ( không được mã hóa) và thêm những dữ liệu này vào gói tin. -5:Thêm tunnel header nếu cần thiết. -6:Thêm các dữ liệu còn lại của gói tin. -7:Tính toán chiều dài của phần padding nếu cần thiết.Các giá trị padding cần phải được xác định bởi một thuật toán mã hóa xác định hoặc nếu không xác định trước một thuật toán mã hóa nào một chuỗi các số tự nhiên liên tiếp có thể sử dụng làm phần padding. -8:Thêm trường next header. -9:Mã hóa thông điệp nếu SA yêu cầu mã hóa dữ liệu .Các trường packet data, padding,pad length và next header được mã hóa cùng với tunnel header của tunnel mode SA.Các thuật toán mã hóa được xác định cho quá trình xử lí IPSEC đối với ESP là DES-CBC hoặc null encycrypt algorithm.Thuật toán sau không cup cấp sự mã hóa dữ liệu.Bởi vì ESP header cần phải cung cấp tính riêng tư,tính xác thực hoặc cả hai , khi null encycrypt algortithm được sử dụng cho việc mã hóa, null authentication algorithm không được sử dụng để xác thực. -10:Tính toán dữ liệu xác thực nếu việc xác thực được yêu cầu bởi SA.Các dữ liệu được xác thực gồm có initial ESP header cũng như các dữ liệu đã được mã hóa.Thuật toán xác thực được dùng trong quá trình xử lí IPSEC đối với ESP là HMAC-MD5 ,HMAC-SHA1 và null authentication algorithm.Thuật toán cuối cùng không cung cấp sự xác thực.Bởi vì ESP header cần phải cung cấp tính toàn vẹn ,tính xác thực hoặc cả hai ,nên khi null authentication algorithm được sử dụng để xác thực thì null encycript algorithm không được sử dụng để mã hóa. -11:Phân mảnh nếu cần thiết. 4.6:Quá trình xử lí ESP đối với các thông điệp Inbound: Khi nhận được một thông điệp có chứa ESP header.Quá trình xử lí gói tin IP sẽ đảm bảo tổng hợp tất cả các phân mảnh thành một thông điệp hoàn thiện.Thông điệp sau đó được chuyển sang quá trình xử lí IPSEC,gồm các bước sau: -1:Tìm kiếm trong SAD để xác định inbound SA phù hợp để quản lí thông điệp này. -2:Nếu bên nhận có sử dụng chức năng chống phát lại,thực hiện viêc kiểm tra chống phát lại. -3:Kiểm tra tính xác thực.Nếu việc kiểm tra xác định rằng gói tin không xác thực được thì sẽ loại bỏ gói tin này,ngược lại tiếp tục chuyển sang bước tiếp theo.Việc thực hiện xác thực trước quá Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 28 trình giải mã giúp bớt chi phí tính toán mã hóa khi thông điệp đã bị xáo trộn ( không thể xác thực đúng). -4:Mã hóa phần còn lại của gói tin.Nếu quá trình giải mã không thành công hoặc kết quả giải mã bị xáo trộn so về vị trí của các trường thì thông điệp sẽ bị hủy bỏ. -5:Loại bỏ phần padding nếu chúng đã được thêm vào. -6:Loại bỏ trường ESP header và tiếp tục quá trình xử lí IPSEC đối với bất kì tiêu đề IPSEC nào còn lại. -7:Kiểm tra số SPI để đảm bảo các chính sách IPSEC đã áp dụng cho thông điệp trên phù hợp với các chính sách IPSEC được yêu cầu cho thông điệp. Việc xác thực và mã hóa thành công một thông điệp inbound bằng một SA trong SAD chưa chắc đảm bảo SA này nên được sử dụng để bảo vệ các loại truyền thông tương tự. Trong trường hợp 1 (Đã được trình bày ở chương trước),giả sử H1 và H2 đã thiết lập một số SA để bảo vệ truyền thông giữa hai đầu cuối của chúng.SA1 và SA2 bảo vệ các gói tin HTTP không bị xáo trộn là các AH SA. SA3 và SA4 bảo vệ các gói tin FTP là các ESP SA. Khi một thông điệp đến H2 và các thông số như SPI,protocol(ESP) và địa chỉ đích gắn gói tin với SA3,SA này sẽ được sử dụng để mã hóa thông điệp.Tuy nhiên điều gì sẽ xảy ra nếu H1 sử dụng nhầm SA3 cho các gói tin HTTP để gửi đến H2.Các chỉ số của thông điệp inbound như địa chỉ đích ,SPI,protocol (ESP) tất cả đều chỉ đến SA3.Chỉ số port number (chỉ số này dùng để xác Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 29 định gói tin này không phải là gói FTP(lưu ý rằng theo giả định của ta SA3 chỉ dùng để bảo vệ các gói FTP)) không thể đọc được trước khi gói tin được mã hóa.Gói tin này sẽ tiếp tục được mã hóa vì nó xác định được một SA phù hợp trong SAD.Quá trình kiểm tra các policy đã áp dụng cho gói tin xác định rằng policy đã áp dụng cho gói tin trên không giống với các policy yêu cầu đối với SA3 và do đó gói tin bị hủy bỏ.Việc này khiến chi phí tính toán mã hóa..là vô ích.(vấn đề này sẽ được thảo luận tiếp ở mục sau). Một tình huống nghiêm trọng hơn khi SA sử dụng một SA budle ,một nhóm các SA có quan hệ với nhau, để bảo vệ cùng một thông điệp Giả sử H1 và H2 thiết lập hai SA bảo vệ đầu cuối (end to end):SA1 và SA2 là các ESP encycrypt only SA (Các ESP SA chỉ cung cấp việc mã hóa) và SA3,SA4 là các AH SA xác thực các thông điệp đã được mã hóa và ip header của chúng.Điều gì xảy ra nếu H1 chỉ sừ dụng SA1 để gửi các FTP request đến H2.Các thông số của gói tin inboud như SPI,protocol,địa chỉ đích đều chỉ đến SA1.Gói tin sẽ được mã hóa thành công vì nó chỉ đến một SA hợp lệ trong SAD.Tuy nhiên khi chuyển sang quá trình kiểm tra các policy áp dụng cho gói tin trên có phù hợp không thì gói tin Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 30 trên sẽ bị loại bỏ vì quá trình kiểm tra policy xác định rằng gói tin trên phải có hai security header tuy nhiên nó chỉ có một security header.Trường hợp a trong hình trên mô tả tình huống sủ dụng sai SA bundle còn trường hợp b mô tả tình huống sử dụng SA bundle đúng. 4.7:Một số điểm phức tạp trong ESP Mặc dù việc mã hóa các tiêu đề của lớp trên nhằm mục đích bảo mật,nó mã hóa luôn một số trường ở transport header bao gồm transport protocol và port.Nó cũng mã hóa luôn một số trường mà các trường này thường được sử dụng để phân tích truyền thông trên internet.Một số trường trong transport header có thể sử dụng cho một số mục đich khác như network traffic analyst ( phân tích truyền thông trên mạng):sự quản lí ,cách cải tiến hiệu suất, kiểm tra sự xâm nhập bất hợp pháp và cách xử lí cho một số loại truyền thông nhất định (được phân loại thành một số loại chất lượng dịch vụ (QOS) khác nhau. Một giao thức mới với tên gọi transport-friendly ESP (TF-ESP) đã được đề xuất ( tuy nhiên chi tiết của giao thức này vẫn chưa được đưa ra).Có hai giải pháp được đưa ra: +Xác định một TF-ESP header sẽ nhân đôi các trường dữ liệu cần thiết và lưu trữ chúng dưới dạng không mã hóa. +Thực hiện việc mã hóa tại các trường trong của gói tin và để lại các trường cần thiết ở dạng không mã hóa. Giải pháp thứ nhất có hai nhược điểm : +Việc nhân đôi một số trường cần thiết làm tăng kích thước gói tin. +Việc chấp nhận tồn tại cả dạng mã hóa và không mã hóa của một số trường tại một số vị trí xác định trong gói tin là một lỗ hổng bảo mật.Thông qua việc phân tích các dữ liệu này hacker có thể xác định được cách giải mã gói tin. Giải pháp thứ hai làm phức tạp hóa một giao thức vốn đã phức tạp,nó đòi hỏi phải thêm vào một số quá trình xử lí nhất định 4.8:Một số đánh giá phê bình của các chuyên gia: Nhà mật mã học nổi tiếng Bruce Schneier và cộng sự của ông Neil Ferguson đặc biệt chỉ trích kiến trúc của IPSEC và IKE.Hai ông cho rằng sự phức tạp là đối thủ lớn của bảo mật(điều này có thể hiểu là muốn có tính bảo mật càng cao thì đồng nghĩa phải xây dựng các giao thức ngày càng phức tạp).Đương nhiên quan điểm của họ là đúng.Tuy nhiên thật không may là IPSEC được xây dựng để nhằm vào một trong những lĩnh vực đặc biệt phức tạp và đa phương diện. IPSEC không chỉ nhằm bảo vệ các gói tin IP mà nó còn phải đảm bảo tính tương thích ,sự hợp tác với rất nhiều các giao thức khác,phải đối mặt với một mô hình mạng mở (open –end network topology) và tính tương thích với các giao thức mạng sẽ được xây dựng trong tương lai. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 31 Để đạt được sự đơn giản theo Bruce Schneier và Neil Ferguson nên loại bỏ giao AH và transport mode .Rất nhiều nhà phát triển IPSEC cho rằng giao thức AH nên bị bỏ đi và điều này có thể xảy ra trong phiên bản tiếp theo của IPSEC.Tuy nhiên có một số ý kiến đối lập cho rằng có một số giao thức đòi hỏi sử dụng AH và điều này chống lại ý kiến phải loại bỏ giao thức này.Tiếp theo khi giới hạn tất cả các SA về tunnel mode, hai ông đề xuất nên sử dụng một header phức hợp nào đó để giúp tiết kiệm kích thước gói thêm vào khi sử dụng tunnel mode nếu chúng không thật sự cần thiết.Các tác giả thú nhận rằng họ không phải là các chuyên gia về mạng máy tính.Những chuyên gia làm việc trong lĩnh vực này kiên quyết bảo vệ rằng việc bao gồm cả transport mode và tunnel mode là do sự tất yếu của kiến mạng máy tính. Bruce Schneier và Neil Ferguson không hài lòng với trình tự xử lí của giao thức ESP.Hai ông cho rằng gói tin đi ra ngoài cần được xác thực trước khi mã hóa.Trình tự này được lựa chọn một cách có chủ ý giúp gói tin inbound nếu không xác thực đúng sẽ không cần phải trải qua việc giải mã tốn thời gian,chi phí.Các tác giả dẫn ra một tình huống khi các quá tình xác thực và mã hóa khóa chưa hoàn thành,do đó một gói tin sau khi đã được xác thực đúng chưa chắc đảm bảo sẽ được giả mã đúng.Để giải quyết vấn đề này mà không làm thay đổi trình tự của việc xử lí ESP,hai ông cho rằng nên xác thực cả khóa giải mã và các dữ liệu cần dùng trong mã hóa cùng với dữ liệu của gói tin.Về phía đối lập ,các chuyên gia mật mã (những người đã tham gia và quá trình xây dựng IPSEC) hài lòng với trình tự này và cho rằng không cần thiết phải xác thực thêm một số dữ liệu như trên.Ngoài ra ,khi IKE thỏa thuận về khóa việc xác thực và mã hóa khóa của ESP là một thành phần của cả quá trình tổng thể. Các tác giả cho rằng việc sử dụng các SA không định hướng là một điều không thực sự cần thiết,có thể làm tăng kích thước của SAD.Họ đề xuất một SA có hai hướng,cách làm này có thể làm giảm kích thước của SAD.Tuy nhiên một entry SAD đơn lẻ không thể cho phép một phía có thể lựa chọn cho nó giá trị SPI inbound.Một entry kép.mỗi cái với một SPI riêng của nó có thể làm cho kích thước SAD lớn trở lại.Ngoài ra IPSEC còn được sử dụng trong tình huống các truyền thông chỉ được thực hiện theo một hướng(trong multicast). 4.9:Lý do sử dụng hai tiêu đề bảo vệ: Ta có thể dễ dàng nhận thấy rằng ESP cung cấp sự xác thực như AH ngoài ra còn cung cấp thêm cả việc bảo vệ tính riêng tư .Vậy việc sử dụng hai tiêu đề riêng biệt có thật sự cần thiết? Câu trả lời cho câu hỏi này liên quan đến lịch sử và chính trị.Một số quốc gia cấm xuất khẩu các phần mềm thực hiện hoặc hỗ trợ việc mã hóa.Phiên bản đầu của RFC tách biệt phần có thể xuất khẩu được là AH với phần liên quan đến vấn đề về vũ khí chiến tranh (ESP header)( vì một số quốc gia cho rằng các phần mềm mã hóa là một vũ khí chiến tranh).Trong dạng nguyên thủy của nó,ESP header chỉ cung cấp việc mã hóa nếu việc xác thực được yêu cầu thì cả hai tiêu đề được sử dụng.Bởi vì một gói tin đã được mã hóa mà chưa được xác thực tạo lỗ hổng cho một số loại tấn công sửa đổi dữ liệu ( modification attack).Mỗi gói tin đã được mã hóa cần phải xác thực,việc này yêu cầu hai SA riêng biệt và phân chia công bằng các xử lí không cần thiết cho mỗi gói tin đã bảo vệ.Do đó trong bản thứ hai của RFC(RFC 2402 và RFC 2406),tính xác thực Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 32 được đưa vào ESP header.Từ đây ESP header luôn cung cấp việc mã hóa còn việc xác thực là một tùy chọn.Việc định nghĩa null encycrypt algorithm là một thuật toán mã hóa cho phép ESP cung cấp sự xác thực mà không cung cấp sự mã hóa. Có thể khẳng định rằng AH bảo vệ các tiêu đề không được cung cấp bởi ESP,cụ thể là địa chỉ nguồn và địa chỉ đích.Tuy nhiên việc xác thực của quá trình trao đổi khóa gắn địa chỉ của các bên tham gia với khóa ,điều này là đủ để cung cấp sự bảo vệ địa chỉ nguồn và địa chỉ đích.Ngòai ra quá trình xử lí với AH phải đối mặt với nhiều vấn đề phức tạp như là việc phân biệt giữa các loại dữ liệu immutable và mutable …để đưa vào hàm băm,điều này phức tạp hơn so với ESP.Việc giữ lại giao thức AH là do các lí do về chính trị,cũng như tránh việc thường xuyên thay đổi giao thức IP ,một giao thức đã và đang sử dụng.Tuy nhiên sẽ đến một thời điểm giao thức AH sẽ bị loại bỏ hoặc chuyển thành một thành phần tùy chọn trong IPSEC 5. Quản lý khóa với IKE: 5.1 Tổng quan về quản lý khóa: Bộ IPSec đưa ra 3 khả năng chính đó là : tính xác nhận và tính toàn vẹn dữ liệu( data authentication and integrity) cùng sự cẩn mật được cung cấp bởi hai giao thức chính trong bộ giao thức IPSec là AH và ESP. IPSec dùng một giao thức thứ ba Internet Exchange Key (IKE) thực hiện tính năng thứ ba là quản lý khóa để thỏa thuận các giao thức bảo mật và các thuật toán mã hóa trước và tron suốt quá trình giao dịch. IKE SA là quá trình hai chiều và cung cấp một kênh giao tiếp bảo mật giữa hai bên. IKE SA được nhận ra bởi các cookies của bên khởi tạo, được theo sau bởi các cookies của trả lời phía đối tác. Thứ tự các cookies được thiết lập bởi phase1 sẽ tiếp tục chỉ ra IKE SA, bất chấp chiều của nó. Chức năng chủ yếu của IKE là thiết lập và duy trì các SA. Các thuộc tính sau đây là mức tối thiểu phải được thống nhất giữa hai bên như là một phần của ISAKMP SA: - Thuật toán mã hóa. - Thuật giải băm được sử dụng. - Phương thức xác thực sẽ dùng. - Thông tin về nhóm và giải thuật DH. IKE làm gì ? Nó thực hiện quá trình dò tìm , quá trình xác thực, quản lý và trao đổi khóa. IKE sẽ dò tìm ra một hợp đồng giữa hai đầu cuối IPSec và sau đó SA sẽ theo dõi tất cả các thành phần của một phiên làm việc IPSec. Sau khi đã dò tìm thành công, các thông số SA hợp lệ sẽ được lưu trữ trong cơ sở dữ liệu của SA. 5.2 IKE Phases : Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 33 IKE có giai đoạn làm việc đó là : giai đoạn 1 và giai đoạn 2 có một số đặc điểm chung như hình minh họa bên dưới Trong một phiên làm việc của IKE, nó giả sử đã có một kênh bảo mật được thiết lập sẵn. Kênh bảo mật này phải được thiết lập trước khi có bất kỳ thỏa thuận nào xảy ra. 5.2.1 Giai đoạn 1 : - Đầu tiên, xác nhận các điểm thông tin , sau đó thiết lập một kênh bảo mật cho sự thiết lập SA. Tiếp đó các thông tin thỏa thuận một ISAKMP SA đồng ý lẫn nhau, bao gồm các thuật toán mã hóa, hàm băm , các phương pháp xác nhận bảo vệ mã khóa. - Sau khi cơ chế mã hóa và hàm băm đã được đồng ý ở trên, một khóa sẽ bí mật phát sinh. Theo sau là những thông tin được dùng để phát sinh khóa bí mật: giá trị Diffie-Hellman, SPI của ISAKMP SA ở dạng cookies, số ngẫu nhiên known as nonces (dùng ký xác nhận) - Nếu hai bên đồng ý sử dụng phương pháp xác nhận dựa trên public key , chúng cũng cần trao đổi IDs. Sau khi trao đổi thông tin cần thiết, cả hai bên phát sinh những khóa riên của chính mình sử dụng chúng để chia sẻ bí mật. Theo cách này, những khóa mã hóa được phát sinh mà không cần thực sự trao đổi bất kỳ khóa nào thông qua mạng. 5.2.2Giai đoạn 2: - Trong khi giai đoạn 1 thỏa thuận thiết lập SA cho ISAKMP , giai đoạn 2 giải quyết bằng việc thiết lập SAs cho IPSec. Trong giai đoạn này SAs dùng nhiều dịch vụ khác nhau thỏa thuận. Cơ chế xác nhận, hàm băm, và thuật toán mã hóa bảo vệ gói dữ liệu IPSec tiếp theo (sử dụng AH và ESP) dưới hình thức một phần của giai đoạn SA. - Sự thỏa thuận của giai đoạn xảy ra thường xuyên hơn giai đoạn 1. Điển hình sự thỏa thuận có thể lặp lại sau 4- 5 phút. Sự thay đổi thường xuyên các mã khóa ngăn cản các hacker bẻ gãy những khóa này và sau đó là nội dung của gói dữ liệu. - Tổng quát một phiên làm việc ở giai đoạn 2 tương đượng với một phiên làm việc đơn của giai đoạn 1. Tuy nhiên, nhiều sự thay đổi ở giai đoạn 2 cũng có thể được hỗ trợ bởi một trường hợp đơn ở giai đoạn 1. Điều này làm cho quá trình giao dịch chậm chạp có vẻ nhanh hơn. 5.3 IKE Modes Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 34 Oakley là một trong số các giao thức của IKE. Oakley lần lượt định nghĩa 4 chế độ IKE phổ biến : chế độ chính (Main mode), chế độ linh hoạt ( Aggressive mode), chế độ nhanh (Quick mode), chế độ nhóm mới (Neu Group mode) * Main mode: - Main mode xác nhận và bảo vệ tính đồng nhất của các bên có liên quan trong quá trình giao dịch. Trong chế độ này có 6 thông điệp được trao đổi giữa các điểm: + Hai thông điệp đầu tiên dùng để thỏa thuận chính sách bảo mật cho sự thay đổi. + Hai thông điệp kế tiếp phục vụ để thay đổi các khóa Diffie-Hellman và nonces. Những khóa sau này thực hiện một vai trò quan trọng trong cơ chế mã hóa. + Hai thông điệp cuối cùng của chế độ này dùng để xác nhận các bên giao dịch với sự giúp đỡ của chữ ký, các hàm băm, và tùy chọn với chứng nhận. * Aggressive mode : - Về bản chất giống Main mode. Chỉ khác nhau thay vì main mode có 6 thông điệp thì chế độ này chỉ có 3 thông điệp được trao đổi. Do đó, Aggressive mode nhanh hơn Main mode. Các thông điệp bao gồm: + Thông điệp đầu tiên dùng để đưa ra chính sách bảo mật , pass data cho khóa chính và trao đổi nonces cho việc ký và xác minh tiếp theo. + Thông điệp kế tiếp hồi đáp lại cho thông điệp đầu tiên. Nó xác thực người nhận và hoàn thành chính sách bảo mật bằng các khóa. + Thông điệp cuối cùng dùng để xác nhận người gửi ( hoặc bộ khởi tạo của phiên làm việc) Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 35 Cả Main mode và Aggressive mode đều thuộc giai đoạn 1. * Quick mode: - Chế độ này nằm ở giai đoạn 2. Nó dùng để thỏa thuận SA cho các dịch vụ bảo mật IPSec. Ngoài ra, Quick mode cũng có thể phát sinh khóa chính mới. Nếu chính sách của Perfect Forward Secrecy (PFS) được thỏa thuận trong giai đoạn 1, một sự thay đổi hoàn toàn Diffie- Hellman key được khởi tạo. Mặt khác, khóa mới được phát sinh bằng các giá trị băm. * New group mode : - Được dùng để thỏa thuận một private group mới nhằm tạo điều kiện trao đổi Diffie-Hellman key được dễ dàng. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 36 Mặc dù chế độ này được thực hiện sau giai đoạn 1 nhưng nó không thuộc giai đoạn 2. * Ngoài 4 chế độ phổ biến trên còn có thêm Information mode. Chế độ này kết hợp với quá trình thay đổi của giai đoạn 2 và SAs. Chế độ này cung cấp cho các bên có liên quan một số thông tin thêm, xuất phát từ những thất bại trong quá trình thỏa thuận. Ví dụ, nếu việc giải mã thất bại tại người nhận hoặc chữ ký không được xác minh thành công, Informational mode được dùng để thông báo cho các bên khác biết. 6:PF key trong IPSEC: 6.1:Giới thiệu: Khả năng tương tác khác nhau của IPSec và IKE là một vấn đề hiện thực quan trọng để có thể triển khai rộng rãi IPSec. Liệu có thể thực thi IPSec và IKE ở 2 máy khác nhau trong cùng 1 host?? Điều đó phụ thuộc vào định dạng, nội dung, và trình tự các tin nhắn trao đổi giữa máy thực thi IPSec và máy thực thi IKE. PF_Key được tạo ra như là một nỗ lực nhằm tiêu chuẩn hóa việc liên lạc cục bộ, thúc đẩy khả năng tương tác IPSec-IKE. Trong hình thức chung nhất, PF_Key là một giao diện trình ứng dụng (API: Application Programming Interface) giữa 1 ứng dụng trao đổi SA, chẳng hạn như là IKE, và mức độ hệ thống thường hay tạo và truy cập vào Cơ sở dữ liệu SA. Trong thực tế, 1 quy trình IPSec thông thường thể hiện 2 chức năng khác nhau: _Tạo ra và duy trì SAD. _Ứng dụng 1 SA cụ thể trên đường truyền vào-ra. Việc tạo ra và duy trì SAD bao gồm: thêm IPSec SAs vào SAD, nhận SAs từ SAD và xóa các SAs hết hạn ra khỏi SAD. PF_Key RFC sử dụng thời hạn “key engine” để mô tả, định rõ các IPSec thường tạo ra và duy trì SAD. Mặc dù IKE đúng ra được gọi là một ứng dụng hay chương trình trao đổi SA, nhưng do thông dụng hơn nên nó được gọi là ứng dụng hay chương trình trao đổi khóa. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 37 6.2. Cấu tạo: a.PF_Key API bao gồm 10 tin nhắn: 1.SADB_Register: IKE gởi 2 tin nhắn SADB_Register đến IPSec nhằm thông báo rằng IKE lúc này có thể thương lượng, trao đổi cả 2 loại IPSec SAs: AH và ESP. 2.SADB_Acquire: Khi 1 trình ứng dụng truyền ra ngoài với sự đòi hỏi bảo vệ của IPSec, nhưng SA thì không có SA thích hợp, lúc đó IPSec gởi 1 SADB_Acquire tới tất cả trình ứng dụng đã đăng ký, bao gồm luôn cả IKE. 3.SADB_GetSPI: Để trao đổi 1 IPSec SA, IKE đầu tiên phải tạo ra 1 SPI bên trong. SPI là một loại khá độc nhất dùng để truy cập và nhận biết SA. SPI được gởi trong tin Quick Mode thứ nhất hay thứ hai với IPSec SA dự kiến. Để chắc rằng 1 SPI là duy nhất và thích hợp với mọi ràng buộc cục bộ, tốt nhất là IPSec tạo tất cả các SPI. Đó là chức năng của SADB_GetSPI gởi đến IPSec. Một giá trị của IPSec SPI phải lớn hơn 255. 4.SADB_Update: Mỗi một IKE thỏa mãn, việc trao đổi IPSec SA hoàn thành, “larval” (1 phần IPSec SA) bên trong IPSec SA sẽ truyền đến SAD. IKE gởi 1 SADB_Update tới IPSec , bao gồm tất cả các thông số IPSec SA đã được đàm phán. 5.SADB_Add: Một PF_Key SADB_Add được dùng đến khi 1 SA được thêm vào SAD, với đầy đủ hình thức của nó. Một tin nhắn SADB_Add, trừ đi khóa bí mật, sau đó được trả về từ IPSec tới tất cả trình ứng dụng đã đăng ký. 6.SADB_Get: Ta có 1 ví dụ như sau, một nhà quản trị mạng muốn kiểm tra định kỳ toàn bộ SAD hoặc một số SA đặc biệt nào đó trong SAD, lúc đó, một SADB_Get có thể được gởi từ 1 trình ứng dụng đặc quyền đến IPSec nhằm yêu cầu thông tin về 1 SA cụ thể nào đó. 7.SADB_Dumb: Giống như cách thức việc sử dụng SADB_Get, SADB_Dumb được dùng để hiển thị tất cả các SA trong SAD, hoặc là các SA cụ thể nào đó. Một ứng dụng đặc quyền gởi đến IPSec 1 SADB_Dump, IPSec sau đó sẽ gởi số thứ tự của SADB_Dump, có chứa thông tin của mổi SA, trở về các trình ứng dụng đã phát ra SADB_Dump đó. 8.SADB_Expire: Khi thời gian sử dụng sắp hết, IPSec sẽ gởi 1 SADB_Expire đến IKE nhằm gợi ý rằng IKE nên bắt đầu đàm phán 1 SA mới. Một tin nhắn SADB_Dump bao gồm thời gian sử dụng hiện tại của SA, thờ gian đã dùng, gói đã gởi… 9.SADB_Delete: Khi một IPSec SA đã hết hạn hay cần được xóa (do vi phạm lỗi hệ thống hay vấn đề bảo mật…), IKE sẽ gởi 1 SADB_Delete tới IPSec. Một SA tương ứng sẽ được bố trí trong SAD, phù hợp với địa chỉ nguồn, địa chỉ đích và SPI. IPSec xóa SA và gởi thông báo SADB_Delete tới các trình ứng dụng đã đăng ký. 10.SADB_Flush: Cũng như SADB_Dump là một tổng quát của SADB_Get, SADB_Flush cũng là một hình thức mở rộng của SADB_Delete. Đôi khi nó là cần thiết để khởi động lại SAD bằng Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 38 cách xóa tất cả các SA cụ thể nào đó, cũng như tất cả các IPSec SA, hoặc tất cả các SA trong SAD, hoặc bất kể loại gì. Một chương trình ứng dụng đặc quyền hoặc chương trình trao đổi khóa có thể dùng SADB_Flush để thực hiện chức năng này. Mỗi khi IPSec xóa tất cả các SA có liên quan, nó sẽ thông báo SADB_Flush lại tất cả các trình ứng dụng đã đăng ký. b.Kết cấu của 1 PF_Key message: Mỗi PF_Key chứa các thành phần bất biến, tiêu đề tin nhắn nền tảng, bao gồm các thông tin dưới đây: .PF_Key message type: loại PF_Key message, chẳng hạn như SADB_Register, SADB_Flush… .PF_Key sequence number: giá trị này được tạo ra bởi IPSec trong SADB_Acquire nhằm bắt đầu một dãy số đặc biệt của PF_Key và được bao gồm trong các phần tiếp theo của quá trình tạo SA và đàm phán. .Key management program process ID: Nó bằng không nếu việc trao đổi tin nhắn được khởi tạo bởi IPSec. Nếu thông điệp trao đổi (chẳng hạn như SADB_GetSPI…) được khởi tạo bởi chương trình quản lý khóa và thông báo lại bởi IPSec, nó sẽ chứa PID của chương trình trao đổi khóa khởi tạo. Nhằm bổ sung cho các tiêu đề tin nhắn cơ bản, hầu hết PF_Key chứa một hoặc nhiều tiêu đề mở rộng. Với mỗi PF_Key loại này, tiêu đề mở rộng được yêu cầu và tùy chọn. Chúng gồm các thành phần sau: _Security Association: sự kết hợp an toàn _Lifetime: thời gian sống _Address: địa chỉ _Key: khóa _Identify: nhận dạng _Proposal: đề xuất _Algorithms Supported: thuật toán hỗ trợ _SPI Range: dãy SPI. 7 Mục đích và ưu khuyết điểm khi dùng IPSEC a.Mục đích sử dụng IPSEC: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 39 Được dùng để bảo mật dữ liệu cho các chuyển giao thông tin qua mạng. Người quản trị chính sách này bao gồm bộ lọc chỉ rõ loại lưu lượng nào đòi hỏi phải mã hóa ( encryption ) , xác nhận (digital signing) hoặc cả hai. Sau đó mỗi gói máy tính gửi đi được ấn định để tự nhận thấy liệu có phù hợp với điều kiện của chính sách. Tiến trình này trong suốt với người dùng. b.Ưu điểm khi dùng IPSEC: Thuận lợi chính khi dùng IPSEC là cung cấp được giải pháp mã hóa cho tất cả các giao thức hoạt động tại lớp 3 – Network Layer (OSI model), và cả các giao thức lớp cao hơn. Nó có khả năng cung cấp : -Chứng thực hai chiều trước và trong suốt quá trình giao tiếp. -Sự tin cậy qua việc mã hóa và xác nhận số các gói. IPSEC có hai chế độ (ESP) cung cấp cơ chế mã hóa dùng nhiều thuật toán khác nhau, và AH xác nhận các thông tin chuyển giao mà không mã hóa. -Toàn vẹn lưu lượng IP bằng cách loại bỏ lưu lượng đã được thay đổi. Cả ESP và AH đều được dùng để xác nhận tính toàn vẹn của tất cả lưu lượng IP. Nếu gói đã đựơc thay đổi thì chữ kí số sẽ không đính kèm và gói sẽ bị hủy. -Ngăn chặn tấn công replay. IPSEC dùng kỹ thuật đánh số liên tiếp (sequence numbers ) cho các gói dữ liệu của mình nhằm làm cho attacker không thể sử dụng được các dữ liệu chặn được với ý đồ bất hợp pháp. Việc dùng Sequencer numbers còn giúp bảo vệ dùng những thông tin lấy được bằng cách chặn và đánh cắp dữ liệu để truy cập bất hợp pháp vào lúc khác. Ví dụ về sử dụng IPSEC : Như ta đã biết, việc truyền thông tin qua mạng là thuận tiện nhưng đi kèm theo đó là những nguy cơ đáng e ngại có thể gây thiệt hại cho hoạt động của các tổ chức. Do đó, mỗi một tổ chức cần trang bị và xây dựng cho mình những hệ thống bảo mật chặt chẽ các thông tin quan trọng như dữ liệu thông tin nhân viên hay báo cáo tài chính, kế hoạch marketing… Trong trường hợp nên sử dụng IPSEC để đảm bảo an toàn của truyền thông mạng. Có thể tạo các IPSEC policies cho các computer kết nối với Server (nắm giữ những dữ liệu quan trọng). IPSEC policy sẽ bảo vệ dữ liệu của tổ chức khỏi những mối đe dọa từ bên ngoài. c.Khuyết điểm khi dùng IPSEC: Khi ứng dụng IPSEC vào VPN ta có IPSEC VPN và khi dùng SSL (cũng là một giao thức bảo mật đang được hướng đến do một số tính năng dễ chịu mà nó mang lại) trong VPN ta có SSL/VPN. Sự so sánh giữa IPSEC VPN và SSL VPN sẽ cho thấy được những khuyết điểm của IPSEC khi ứng dụng vào một trường hợp cụ thể là mạng riêng ảo VPN. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 40 Khía cạnh IPSEC VPN IPSEC SSL Kiểu kết nối, kiểu truy cập Site to site, kiểu kết nối yêu cầu băng thông rộng, hiệu suất cao, dữ liệu lớn, kết nối liên tục, cố định. Di động, tạm thời. Truy cập tài nguyên tập trung từ các vị trí phân bố rải rác khắp nơi. Phần mềm yêu cầu Yêu cầu phải có phần mềm client cài đặt tại các máy tính để bàn hoặc máy tính xách tay => làm hạn chế tính linh động của người dùng vì không kết nối VPN được nếu không có phần mềm IPSEC client được nạp. =>làm tăng chi phí quản trị, cấu hình. Chỉ cần hệ điều hành có tích hợp một trình duyệt (browser) bất kỳ hỗ trợ SSL là có thể thực hiện kết nối. Tương thích firewall, NAT Không tương thích Tương thích Mã hóa RC5,DES,3DES RC4,DES,3DES Xác thực RADIUS, Active Directory, RSA SecureID RADIUS, Active Directory, RSA SecureID Ứng dụng Tất cả các ứng dụng trên IP Các ứng dụng trên nền Web. Một số ứng dụng như email, Terminal services, CIFS Độ bảo mật Như nhau Như nhau Kiểm soát truy cập (Access Control) Không chi tiết Chi tiết ( granular access control) 8.Triển khai IPSEC: 8.1.Các tác động bảo mật: Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 41 IPSEC của Microsoft hỗ trợ bốn tác động bảo mật, các tác động này giúp hệ thống có thể thiết lập những cuộc trao đổi thông tin giữa các máy được an toàn. - Block: Có chức năng ngăn chặn những gói dữ liệu được truyền. -Encrypt: Có chức năng mã hóa những gói dữ liệu được truyền. IPSEC sử dụng giao thức ESP để mã hóa dữ liệu. -Sign: Có chức năng ký tên vào các gói dữ liệu truyền. IPSEC cho phép làm điều này bằng một giao thức AH. -Permit: Có chức năng cho phép dữ liệu được truyền qua, chúng dùng để tạo ra các qui tắc hạn chế một số điều. 8.2.Các phương pháp chứng thực được Microsoft hỗ trợ: - Kerberos: Chỉ áp dụng được giữa các máy trong cùng một miền Active Directory -Certificate: Cho phép sử dụng các chứng chỉ PKI ( public key infrastructure ) để nhận diện một máy. -Agreed-upon key: Dùng chìa khóa chia sẻ trước khi cho phép dùng một chuỗi kí tự thông thường làm chìa khóa . 8.3.IPSEC policy: - Triển khai IPSEC bằng cách thiết lập policy. Mỗi policy chứa một vài quy tắc và một phương pháp chứng thực nào đó . Mỗi quy tắc gồm một hay nhiều bộ lọc và một hay nhiều tác động bảo mật. Tại một thời điểm thì chỉ có một chính sách IPSEC được hoạt động. - Các Policy mặc định: + Client ( Respond Only ): chính sách quy định máy tính của bạn không chủ động dùng IPSEC trừ khi nhận được yêu cầu dùng IPSEC từ máy đối tác. Policy này có 1 rule được gọi là Default Response. Rule này cho phép host đáp ứng đòi hỏi ESP cũng như host trong Active Directory domains tin cậy. + Server ( Request Security ): chính sách này quy định máy server của bạn chủ động cố gắng khởi tạo IPSEC mỗi khi thiết lập kết nối với các máy tính khác, nhung nếu client không thể dùng IPSEC thì server vẫn chấp nhận kết nối. Chính sách này có 3 rule : ▪ Default Response. ▪ All ICMP Traffic: là giao thức duy trì trong TCP/IP, thông báo lỗi và cho phép kết nối đơn giản. Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 42 ▪ All IP Traffic: đòi hỏi ESP cho tất cả lưu lượng IP. + Secure Server ( Require Security ): chính sách này qui định không cho phép bất cứ cuộc trao đôi dữ liệu với server hiện tại mà không dùng IPSEC. 8.4.IPSEC làm việc như thế nào : Có thể cấu hình IPSEC thông qua Local policy hoặc triển khai trên diện rộng dùng Active Directory Group Policy ( GPO). -Giả sử có hai máy : A và B, IPSEC policy đã được cấu hình trên 2 computer này. Sau khi được cấu hình IPSEC policy sẽ báo cho IPSEC Driver cách làm thế nào để vận hành và xác định các liên kết bảo mật giữa 2 máy khi kết nối được thiết lập. Các liên kết bảo mật ảnh hưởng đến những giao thức mã hóa sẽ được sử dụng cho những loại thông tin giao tiếp nào và những phương thức xác thực nào sẽ được đem ra thương lượng. -Liên kết bảo mật mang tính chất thương lượng IKE sẽ có trách nhiệm thương lượng để tạo liên kết bảo mật. IKE kết hợp từ 2 giao thức : Internet Security Association and Key Management Protocol ( ISAKMP) và Oakley Key Determination Protocol . Nếu máy A yêu cầu xác thực thông tin qua Certificate và máy B yêu cầu dùng giao thức Kerberos thì IKE sẽ không thể thiết Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 43 lập liên kết bảo mật giữa hai máy. Nếu dùng Network Monitor để theo dõi hoạt động, sẽ không thấy bất cứ gói AH hoặc ESP nào, vì giao tiếp IPSEC chưa được thiết lập, chúng ta chỉ quan sát được các gói ISAKMP . -Nếu như liên kết bảo mật được thiết lập giữa hai máy IPSEC Driver sẽ quan sát tất cả IP traffic , so sánh các traffic đã được định nghĩa trong các Filter, nếu có hướng đi tiếp các traffic này sẽ được mã hóa hoặc xác nhận số. III-Triển khai hệ thống IPSec/VPN trên windows server 2003 1.Mô hình : Trong mô hình này ta sử dụng 3 máy: 1 máy làm DC(domain controler), 1 máy làm VPN server, 1 máy làm VPN client. Ta sẽ cấu hình IPSec trên máy DC và máy VPN client để khi 2 máy này thực hiện phương thức truyền thông thì dữ liệu sẽ được mã hóa . 2.Các bước thực hiện: - Máy 1 cài windows server 2003, sau đó nâng cấp lên DC - Máy 2 cài windows server 2003, sau đó join DC và cấu hình VPN server - Máy 3 cái windows xp, sau đó tạo kết nối VPN tới DC - Cài Network Monitor Tool trên VPN server để bắt gói - Cấu hình IPSec trên DC và VPN client, tương tự nhau * Nâng cấp máy lên Domain Controller ( DC ) thực hiện trên máy 1 - Start > run nhập dcpromo Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 44 - Tiếp theo hộp thoại Active Directory Installation Wizard xuất hiện bạn ấn Next > hộp thoại Operating System Compatibility ấn Next - Hộp thoại Domain Controller Type - Hộp thoại Create New Domain Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 45 - Hộp thoại New Domain Name - Các hộp thoại còn lại để mặc định * Join VPN server vào DC thực hiện trên máy 2 - Click phải chuột lên My Computer > Properties > Tab Computer Name > Change > Check vào Domain Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 46 - Server yêu cầu xác thực với tài khoản người dùng cấp miền có quyền quản trị - Sau đó Restart lại máy * Cấu hình VPN server: trên máy 2 mở Routing and Remote Access - Start > Programs > Adminstrative Tool > Routing and Remote Access Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 47 - Kích hoạt VPN Server bằng cách nhấp phải chuột lên tên server và chọn Configure and Enable Routing and Remote Access - Đánh dấu chọn vào mục Custom configuration - Check vào ô VPN access > Next > Finish Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 48 - Cấu hình cấp IP cho VPN Client khi kết nối Click phải lên DC2 > Properties Qua tab IP > static address pool > add Qua tab Security > check vào Allow custom IPSec policy for L2TP connection Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 49 * Cấu hình VPN client - Click phải My Network Places > Properties > Create a new connection > Next - Hộp thoại Network Connection Type - Hộp thoại Network Connection - Hộp thoại Connection Name > VPN - Hộp thoại VPN Server Selection Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 50 - Sau đó Next > Finish - Hộp thoại Connect VPN : điền tài khoản mà máy DC cho phép truy cập bằng VPN - Hộp thoại VPN Properties: Tab Security > click vào nút IPSec setting Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 51 Tab Networking > Type of VPN > L2TP IPSec VPN * Cài Network Monitor Tool trên VPN server Start > Settings > Control panel > Add/Remove Program > Add/Remove Windows Component > check Management and Monitoring Tools > Details > check Network Monitor Tools > OK > Next Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 52 * Cấu hình IPSec trên DC và VPN Client tương tự nhau - Trên máy DC : Start > Programs > Administrative Tools > Domain Controller Security Settings - Click phải chuột IP Security Policies….. > Create IP Security Policy > Next - Hộp thoại IP Security Policy Name Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 53 - Hộp thoại Request for Secure Communication > bỏ check ở mục Activate the default response rule - Hộp thoại Test Properties > add Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 54 - Cửa sổ Wellcome ấn Next > cửa sổ Tunnel Endpoint chọn This rule does not specify a tunnel > Next - Hộp thoại Network Type Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 55 - Hộp thoại IP Filter List - Hộp thoại Filter Action Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 56 - Hộp thoại Authentication Method -Trên máy Client: Start > run >mmc > trong cửa sổ Console1 > menu File > Add/Remove Stap-in > Add > chọn IP Security Policy Management > Add >Finish Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 57 Sau đó thực hiện lại các bước tương tự như trên máy DC *Máy DC và VPN Client assign policy Test * Thực hiện việc bắt gói - Máy VPN Server mở chương trình Network Monitor > Capture > start - Máy VPN Client dùng lệnh ping địa chỉ máy DC: start > run >cmd > ping 192.168.1.1 Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 58 - Máy VPN Server quay lại chương trình Network Monitor Captere > Stop and View > double click lên dòng có Protocol là ESP > ESP Ta thấy dữ liệu trên đường truyền đã được mã hóa IV Tài liệu tham khảo: -Sách Demistifying the ipsec puzzle tác giả Sheila Frankel Đồ án bảo mật thông tin –IPSEC và Triển khai hệ thống IPSEC/VPN trên Windows Server 2003 59 -Slide bài giảng của thầy Lê Phúc.

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

  • pdfĐồ án môn học Bảo mật thông tin - IPSEC và TRIỂN KHAI HỆ THỐNG IPSEC-VPN TRÊN WINDOWS SERVER 2003.pdf
Tài liệu liên quan