Chương 1 - Bộ phần mềm OpenSwan: Trình bày tổng quan về VPN, giao thức IPSec VPN và giới thiệu bộ phần mềm OpenSwan: lịch sử, các thành phần của bộ phần mềm OpenSwan. Chương 2 - Triển khai hệ thống VPN dựa trên OpenSwan: Trình bày thực nghiệm triển khai mô hình VPN Remote access dựa trên gói cài đặt bộ phần mềm OpenSwan. Chương 3 - Phân tích và tùy biến mã nguồn OpenSwan: Trình bày về cấu trúc thư mục mã nguồn và phân tích các module của bộ phần mềm OpenSwan. Thực hiện tùy biến mã nguồn bộ phần mềm OpenSwan.
Chương 4 - Thực nghiệm: Trình bày thực nghiệm triển khai mô hình VPN site to site được biên dịch từ mã nguồn gốc và mã nguồn đã tùy biến của bộ phần mềm OpenSwan. BỘ PHẦN MỀM OPENSWAN 1. Tổng quan về VPN 1. Khái niệm VPN Mạng riêng ảo là mạng sử dụng mạng công cộng (như Internet, ATM/Frame Relay của các nhà cung cấp dịch vụ) làm cơ sở hạ tầng để truyền thông tin nhưng vẫn đảm bảo là một mạng riêng và kiểm soát được truy nhập.
Nói cách khác, VPN được định nghĩa là liên kết của tổ chức được triển khai trên một hạ tầng công cộng với các chính sách như là trong một mạng riêng. Giao thức IPSec trong VPN IPSec (Internet Protocol Security) là sự kết hợp của các chuẩn được định nghĩa trong RFC 2406, giao thức IPSec cho phép chứng thực, kiểm tra tính toàn vẹn dữ liệu, điều khiển truy cập và đảm bảo bí mật dữ liệu. Hoạt động tại tầng 3 của mô hình OSI. IPSec bảo đảm tính tin cậy, tính toàn vẹn và tính xác thực của dữ liệu khi qua mạng IP (Internet Protocol) công cộng.
Nó sử dụng hai giao thức để điều khiển quá trình xác thực và mã hóa tiêu đề gói IP: - Xác thực tiêu đề AH (Authentication Header): AH đảm bảo tính toàn vẹn cho tiêu đề gói tin và dữ liệu - Đóng gói tải tin an toàn ESP (Encapsulation Security Payload): thực hiện mã hóa và đảm bảo tính toàn vẹn cho gói dữ liệu nhưng không bảo vệ tiêu đề cho gói IP như AH. IPsec sử dụng giao thức trao đổi khóa IKE (Internet Key Exchange) để thỏa thuận liên kết an toàn SA (Security Association) giữa hai thực thể và trao đổi các thông tin khóa. IKE cần được sử dụng phần lớn trong các ứng dụng thực tế để đem lại sự truyền tải thông tin an toàn trên diện rộng. Cấu trúc bảo mật của IPSec IPSec là một kiến trúc an toàn dựa trên chuẩn mở, nó có các đặc trưng sau: - Cung cấp tính xác thực, mã hóa, toàn vẹn dữ liệu và bảo vệ sự phát lại.
- Cung cấp khả năng tạo và tự động làm mới các khóa mật mã một cách an toàn. - Sử dụng các thuật toán mật mã mạnh để cung cấp tính bảo mật. - Cung cấp khả năng xác thực dựa trên chứng thư số. - Điều chỉnh các thuật toán mật mã và các giao thức trao đổi khoá.
- Cung cấp tính năng an toàn cho các giao thức đường hầm truy cập từ xa như L2TP, PPTP. IPSec là một phần bắt buộc của IPv6, có thể được lựa chọn khi sử dụng IPv4. Trong khi các chuẩn đã được thiết kế cho các phiên bản IP giống nhau, phổ biến hiện nay là áp dụng và triển khai trên nền tảng IPv4. IPSec được định nghĩa 1 từ RFC 1825 đến 1829 và được phổ biến vào năm 1995.
Năm 1998, được nâng cấp với các phiên bản RFC 2401-2412, nó không tương thích với chuẩn 1825- 1829. Trong tháng 12 năm 2005, thế hệ thứ ba của IPSec được mô tả trong RFC 4301- 4309. Chế độ làm việc của IPSec IPSec có 2 chế độ làm việc là giao vận (transport) và đường hầm (tunnel). 2 chế độ làm việc này được chỉ ra trong Hình 1.1: sau: Untrusted IPsec IP L2 IP TCP/UDP Frame/ Data Header Header Header Packet AH L2 IP AH TCP/UDP Transport Data Header Header Header Header Mode Authenticated AH L2 New IP AH IP TCP/UDP Tunnel Data Header Header Header Header Header Mode Authenticated ESP L2 IP ESP TCP/UDP ESP ESP Transport Data Header Header Header Header Trailer Auth Mode Encrypted Authenticated ESP L2 New IP ESP IP TCP/UDP ESP ESP Tunnel Data Header Header Header Header Header Trailer Auth Mode Encrypted Authenticated Hình 1.1: Xử lý gói tin IP ở chế độ giao vận và chế độ đường hầm a.
Chế độ giao vận (Transport Mode) Chế độ giao vận cho phép bảo vệ các giao thức lớp trên và một số trường trong IP Header. Trong chế độ này, AH Header hoặc ESP Header được chèn vào sau IP Header và trước một giao thức lớp trên như TCP hoặc UDP. Chế độ giao vận thường được sử dụng bởi các Host chứ không được sử dụng bởi Gateway. Chế độ giao vận có ưu điểm là chỉ thêm vào gói IP ban đầu một số ít bytes, nhược điểm của chế độ này là nó cho phép các thiết bị trong mạng nhìn thấy địa chỉ nguồn và đích của gói tin và có thể thực hiện một số xử lý (ví dụ như 2 phân tích lưu lượng) dựa trên thông tin của tiêu đề IP.
Tuy nhiên, nếu dữ liệu được mã hóa bởi ESP thì sẽ không biết được thông tin cụ thể bên trong gói IP là gì. Theo IETF thì chế độ giao vận chỉ có thể được sử dụng khi hai hệ thống đầu cuối IP-VPN có thực hiện IPSec. Chế độ đường hầm (Tunnel Mode) Trong chế độ đường hầm, một gói tin IP khác được thiết lập dựa trên gói tin IP cũ. Header của gói IP cũ mang địa chỉ nguồn và đích cuối cùng, còn Header của gói IP mới mang địa chỉ để định tuyến trên Internet.
Trong chế độ này, gói tin được bảo vệ toàn bộ bao gồm cả IP Header. Ưu điểm của chế độ đường hầm là bảo vệ toàn bộ gói IP và các địa chỉ cá nhân trong IP Header, nhược điểm là việc xử lý các gói tin sẽ trở nên khó khăn hơn. Các thành phần bên trong IPSec a. Giao thức xác thực tiêu đề AH Giao thức xác thực tiêu đề AH sẽ thêm một tiêu đề vào gói IP.
Như tên gọi của nó, tiêu đề này phục vụ cho việc xác thực gói dữ liệu IP gốc tại người nhận cuối cùng, tiêu đề này giúp nhận biết bất kỳ sự thay đổi nào về nội dung của gói dữ liệu bởi người dùng không mong muốn trong khi truyền, tuy nhiên AH không đảm bảo tính tin cậy. Để tạo một AH, một giá trị mã thông điệp cần xác thực qua hàm băm (HMAC) được tạo tại người gửi. Giá trị băm này được tạo trên cơ sở của SA, SA xác định trình tự giao dịch sẽ được áp dụng cho gói dữ liệu. Mã kết quả được gắn kèm vào gói dữ liệu sau tiêu đề IP gốc.
Tại người nhận cuối, HMAC được giải mã và được dùng để thiết lập việc xác thực người gửi cũng như tính toàn vẹn của thông điệp. AH không mang lại sự tin cậy trong một giao dịch. Nó chỉ thêm một tiêu đề vào gói IP, phần còn lại của nội dung gói dữ liệu không được can thiệp đến. Hơn nữa, AH không bảo vệ bất kỳ trường nào trong tiêu đề IP vì một trong số đó có thể thay đổi trong quá trình truyền, chỉ có địa chỉ IP nguồn và địa chỉ IP đích là những trường mà không thay đổi trong quá trình truyền được bảo vệ bởi AH.
Giao thức AH có các đặc trưng cơ bản như sau: - Cung cấp tính toàn vẹn dữ liệu và bảo vệ chống phát lại - Sử dụng mã xác thực thông điệp được băm (HMAC), dựa trên chia sẻ bí mật - Nội dung các gói tin không được mã hoá - Không sử dụng các trường changeable IP header để tính toán giá trị kiểm tra tính toàn vẹn (IVC) 3 AH Header bao gồm các trường như trong Hình 1.2: Các trường trong AH Header - Next Header: Trường này dài 8 bits, chứa chỉ số giao thức IP + Trong chế độ đường hầm, Payload là gói tin IP, giá trị Next Header được cài đặt là 4. + Trong chế độ giao vận, Payload luôn là giao thức ở Transport Layer. Nếu giao thức lớp Transport là TCP thì trường giao thức trong IP là 6. Nếu giao thức lớp transport là UDP thì trường giao thức trong IP là 17.
- Payload Length: Trường này chứa chiều dài của AH Header. - Reserved: Giá trị này được dành để sử dụng trong tương lai( cho đến thời điểm này nó được biểu thị bằng các chỉ số 0). - Security Parameters Index (SPI): Mỗi đầu cuối của một kết nối IPSec tuỳ ý chọn giá trị SPI. Hoạt động này chỉ được dùng để nhận dạng cho kết nối.
Bên nhận sử dụng giá trị SPI cùng với địa chỉ IP đích và loại giao thức IPSec (trong trường hợp này là AH) để xác định chính sách liên kết an toàn SA được dùng cho gói tin. - Sequence Number: Chỉ số này tăng lên 1 cho mỗi AH Datagram khi một host gửi có liên quan đến chính sách SA. Giá trị bắt đầu của bộ đếm là 1, chuỗi số này không bao giờ được phép ghi đè lên là 0. - Authentication Data: Trường này chứa giá trị ICV (Integrity Check Value).
Trường này luôn là bội của 32-bit và phải được đệm vào nếu chiều dài của ICV trong các bytes chưa đầy. Giao thức trao đổi khóa IKE (Internet Key Exchange) Trong IPSec sử dụng giao thức trao đổi khóa IKE (Internet Key Exchange). Giao thức IKE được thiết kế ra để cung cấp 5 khả năng: - Cung cấp những phương tiện cho hai bên về sự thống nhất những giao thức, 4 thuật toán và những khoá để sử dụng. - Đảm bảo trao đổi khoá đến đúng người dùng.
- Quản lý khoá sau khi được chấp nhận. - Đảm bảo rằng sự điều khiển và trao đổi khoá là an toàn. - Cho phép sự chứng thực động giữa các đối tượng ngang hàng. Giao thức IKE có các đặc tính sau: - Các khoá tự phát sinh và những thủ tục nhận biết.
- Tự động làm mới lại khoá. - Giải quyết vấn đề một khoá. - Mỗi một giao thức an toàn (AH, ESP) có một không gian chỉ số an toàn của chính mình. - Gắn sẵn sự bảo vệ.
Trước khi IPSec gửi xác nhận hoặc mã hoá dữ liệu IP, giữa bên gửi và bên nhận phải thống nhất về giải thuật mã hoá và khoá mã hoá hoặc những khoá để sử dụng. IPSec sử dụng giao thức IKE để tự thiết lập những giao thức đàm phán về những khoá sử dụng cho việc mã hoá, thuật toán sử dụng. - Liên kết an toàn SA (Security Association) Dịch vụ bảo mật liên kết giữa hai hay nhiều thực thể để thỏa thuận truyền thông an toàn được gọi là liên kết an toàn SA (Security Association).