Giao thức ESP cung cấp xác thực, độ toàn vẹn, đảm bảo tính bảo mật cho gói tin. ESP cũng hỗ trợ tính năng cấu hình sử dụng trong tính huống chỉ cần bảo mã hoá và chỉ cần cho authentication, nhưng sử dụng mã hoá mà không yêu cầu xác thực không đảm bảo tính bảo mật. Không như AH, header của gói tin IP, bao gồm các option khác. ESP thực hiện trên top IP sử dụng giao thức IP và mang số hiệu 50 và AH mang số hiệu 51.
0 - 7 bit 8 - 15 bit 16 - 23 bit 24 - 31 bit
Security parameters index (SPI)
Sequence number
Padding (0-255 bytes)
Pad Length Next Header
Authentication Data (variable)
Ý nghĩa của các phần:
Security parameters index (SPI)
Nhận ra các thông số được tích hợp với địa chỉ IP.
Sequence number
Tự động tăng có tác dụng chống tấn công kiểu replay attacks.
Payload data
Cho dữ liệu truyền đi
Padding
Sử dụng vài block mã hoá
Pad length
Độ lớn của padding.
Next header
Nhận ra giao thức được sử dụng trong quá trình truyền thông tin.
Authentication data
Bao gồm dữ liệu để xác thực cho gói tin.
7. Trao đổi khóa trong IPSEC - Key Exchange(IKE)
IPsec được thực hiện trong nhân với các trình quản lý các key và quá trình thương lượng bảo mật ISAKMP/IKE từ người dùng. Tuy nhiên một chuẩn giao diện cho quản lý key, nó có thể được điều khiển bởi nhân của
khai trên nhân của Linux. Dự án FreeS/WAN là dự án đầu tiên hoàn thành việc thực hiện IPsec trong mã nguồn mở cụ thể là Linux. Nó bao gồm một nhấn IPsec stack (KLIPS), kết hợp với trình quản lý key là deamon và rất nhiều shell scripts. Dự án FreeS/WAN được bắt đầu vào tháng 3 năm 2004. Openswan và strongSwan đã tiếp tục dự án FreeS/WAN. Dự án KAME cũng hoàn thành việc triển khai sử dụng IPsec cho NetBSB, FreeBSB. Trình quản lý các khoá được gọi là racoon. OpenBSB được tạo ra ISAKMP/IKE, với tên đơn giản là isakmpd (nó cũng được triển khai trên nhiều hệ thống, bao gồm cả hệ thống Linux)
7.1 Trao đổi khóa trong IpSec - Key Exchange(IKE)
Chức năng chính của IKE là chấp nhận các thiết bị trao đổi thông tin dưới mức an toàn. Thêm vào khóa mã hóa là sử dụng cho việc chứng thực thông tin và mã hóa thông tin. IKE được biết đến như một giao thức lai bởi vì nó được phối hợp từ ba giao thức khác. Đầu tiên là ISAKMP(internet secury associaction and key management protocol). Cung cấp một nền tảng cho việc trao đổi khóa mã hóa và bảo mật thông tin. ISAKMP hổ trợ nhiều phương thức trao đổi khóa khác nhau, hai giai đoạn chính của ISAKMP đó là
7.1.2 ISAKMP phase 1: Giai đoạn I của IKE đầu tiên xác nhận các điểm thông tin, và sau đó thiết lập một kênh bảo mật cho sự thiết lạp SA. Tiếp đó, các bên 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, và 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 chi sẽ bí mật được 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 (used for signing purposes) 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 các thông tin cần thiết, cả hai bên phát sinh những key riêng 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
7.1.2 ISAKIMP phase 2:
Trong khi giai đoạn I thỏa thuận thiết lập SA cho ISAKMP, giai đoạn II 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ướihì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 I. Đ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 II tương đương với một phiên làmviệc đơn của giai đoạn I. Tuy nhiên, nhiều sự thay đổi ở giai đoạn II cũng có thể được hổ trợ bởi một trường hợp đơn ở giai đoạn I. Điều này làm quá trình giao dịch chậm chạp của IKE tỏ ra tương đối nhanh hơn
7.2 IKE Modes
4 chế độ IKE phổ biến thường được triển khai : · Chế độ chính (Main mode)
· Chế độ linh hoạt (Aggressive mode) · Chế độ nhanh (Quick mode)
· Chế độ nhóm mới (New Group mode) 7.2.1. 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 qua trình giao dịch. Trong chế độ này, 6 thông điệp được trao đổi giữa các điểm:
· 2 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.
· 2 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 tro quan trọng trong cơ chế mã hóa.
đỡ của chữ ký, các hàm băm, và tuỳ chọn với chứng nhận.
7.2.2 Aggressive Mode
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ết độ này chỉ có 3 thông điệp được trao đổi. Do đó, Aggressive mode nhanh hơn mai 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 tin đầ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).
7.2..3 Quick Mode
Chế độ thứ ba của IKE, Quick mode, là chế độ trong giai đoạn II. 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 I, 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
7.2.4 New Group Mode
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. Hình 6-18 mô tả New Group mode. Mặc dù chế độ này được thực hiện sau giai đoạn I, nhưng nó không thuộc giai đoạn II.
Ngoài 4 chế độ IKE phổ biến trên, còn có thêm Informational mode. Chế độ này kết hợp với quá trình thay đổ của giai đoạn II 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.
Chương IV.Demo
Thực hành: Chuẩn bị:
-1 Server: Windơw Server 2008 ( domain thuchanhipsec.local),ipv6 -1 client: win 2k8 ,ipv6
-Cài wireshark,Network monitor trên máy Server
1.Cấu hình TCP/IPv6
Tại máy Server, vào Run=>ncpa.cpl
Hộp thoại Local Area Connection Properties, bỏ dấu chọn Internet Protocol Version 4 (TCP/IPv4), chọn Internet Protocol Version 6 (TCP/IPv6), chọn Properties
Trong cửa sổ Internet Protocol Version 6 (TCP/IPv6) Properties, nhập thông số như hình : IPv6 address: fc00:192:168:5::25
Subnet prefix length: 64
Preferred DNS server: fc00:192:168:5::25
-Tương tự ta cũng cấu hình địa chỉ IPv6 của client fc00:192:168:5::27, Preferred DNS server: fc00:192:168:5::25
2.Khi chưa triển khai IPSec
+ 2 máy chưa triển khai IPSec. Trên network monitor của Server. Menu Capture. Nhấn
Pause để thấy kết quả khi capture gói tin ICMP (Destination Mac. Source Mac. IP) từ máy nào đến máy nào
--Cụ thể gói tin ICMP thì trong phần dữ liệu chưa có mã hóa. Dữ liệu gồm 32 bit. Từ a đến w và a đến i đổi từ con số hexa.
** Tương tự nếu ta gửi gói tin ICMP từ Server qua máy client. Thì khi client capture gói tin dữ liệu cũng không bị mã hóa. ( Dữ liệu cũng là 32 bit từ a dến w và a đến i đổi từ con số hexa của gói tin)
3.Cấu hình IP Sec
+ Chúng ta lần lượt cấu hình IP Sec trên máy Server và máy client
-Server: Vào Run=> Gõ secpol.msc để vào Local Security Policy
+ Trong Local Security Policy. Right click vào IP Security Policices on Local Computer
+ Màn hình Welcome nhấn Next
+ Hộp thoại IP Security Policy Name. Điền 1 tên bất kỳ. Nhấn Next
+ Hộp thoại Requests for Secure Communication. Gỡ dấu check Active the default response rule. Nhấn Next
+ Right click vào policy mới tạo. Chọn Assign
+ Tiếp tục right click vào policy. Chọn Properties
+ Hộp thoại Welcome. Nhấn Next
+ Hộp thoại Tunnel Endpoint. Để mặc định. This rule does not specify a tunnel. Nhấn
Next
+ Hộp thoại Network Type. Chọn Local area network (Lan). Nhấn Next
+ Hộp thoại IP Filter List. chúng ta có thể chọn All IP Traffic (mặc định của IPsec). Chọn Add.
Tại đây chúng ta có thể tùy chọn danh sách lọc IP đích,nguồn …
Click add,nhấn Next để chọn source address
Next để chọn 1 loại giao thức
Nhấn Next,ấn finish .Ra bảng IP filter,chọn IP filter list mà ta vừa cấu hình
Click chọn Filter Action,nhấn Edit để chỉnh sửa kiểu Security methods,chọn Negotiate security ,sau đó nhấn Edit để chỉnh sửa
Chọn Custom,click setting ,tại đây ta có thể chọn các kiểu mã hóa dữ liệu như MD5,SHA1..
Tiếp theo làm như hình vẽ,tùy chọn các ô Tạm dịch
Accept unsecured communication,but always respond using ipsec(Chấp nhận không có bảo đảm thông tin liên lạc, nhưng luôn luôn đáp ứng bằng cách sử dụng ipsec)
Allow fallback to unsecured communication if a secure connection can not be established(Cho phép dự phòng để giao tiếp không có bảo đảm nếu một kết nối an toàn không thể được thiết lập)
Use session key perfect forward secrecy(PFS)(Sử dụng khóa an toàn chuyển tiếp cho phiên làm việc)
,Apply,Nhấn Next làm như hình vẽ,Next tiếp
Chọn Apply ,OK để kết thúc quá trình cài đặt ,cấu hình Ipsec
** Trên máy Client ta cũng làm tương tự như vậy. Bây giờ ta kiểm tra xem gói tin ICMP gửi đi đã được mã hóa hay chưa ?
---Trường hợp 1: Server cấu hình IPsec,Client không cấu hình IPSec
- Trên máy Client thực hiện lệnh ping –t tới Server. Báo không thấy đích đến,do ta đã cấu hình IPsec trên Server Block,negotiate security tất cả traffic từ bên ngoài vào,tắt IPsec trên Client
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, và các phương pháp xác nhận bảo vệ mã khóa.
Bật wireshark trên Server ta thấy: ISAKMP(internet secury associaction and key
management protocol) việc trao đổi xác thực khóa 2 bên,nếu Client không có khóa sẽ nhận được kết quả như trên
---Trường hợp 2: Server,Client đều cấu hình IPsec
Khi đã bật Ipsec trên Client ta thấy kết quả Ping –t tới Server trên Network moniter trên Server
Nếu ta chọn Block tất cả traffic trong IPSEc thì kết quả như sau: