ESP cung cấp thêm sự tin cậy trong quá trình xác thực phía gửi cũng như toàn vẹn dữ liệu trong quá trình truyền. ESP mã hóa nội dung của gói dữ liệu sử dụng các giải thuật mã hóa nâng cao như DES-CBG, NULL, CAST-128, IDEA và 3DES.
Các giải thuật này cũng tương tự các giải thuật sử dụng trong AH như HMAC- MD5 và HMAC-SHA.
Hình 3.5. Gói IP sau khi thêm ESP header và trailer
So với AH – chú trọng xác thực và đảm bảo toàn vẹn dữ liệu cho toàn bộ gói dữ liệu thì ESP chỉ xác thực và đảm bảo toàn vẹn dữ liệu cho phần tải payload. Do đó mà tốc độ mã hóa của ESP nhanh hơn AH.
Giống như tiêu đề AH, tiêu đề ESP cũng được chèn giữa tiêu đề IP và nội dung tiếp theo của gói. Tuy nhiên ESP chỉ mã hóa tải payload nên nội dung của gói sẽ bị thay đổi.
Định dạng ESP header gồm có SPI cho biết cơ chế bảo mật thích hợp cho việc xử lý gói. Số tuần tự trong tiêu đề ESP là một bộ đếm và sẽ tăng khi một gói dữ liệu được gửi đến cùng một địa chỉ và sử dụng cùng SPI. Số tuần tự chỉ ra có bao nhiêu gói được gửi có cùng một nhóm các tham số.
ESP có thể hỗ trợ bất kỳ giao thức mã hóa nào. Người dùng có thể dùng những giao thức khác nhau cho mỗi kết nối truyền thông. Tuy nhiên, IPSec quy định mật mã DES-CBC (DES with Cipher Block Chaining) là giá trị mặc định để bảo đảm tính hoạt động liên mạng.
Sử dụng ESP yêu cầu khóa DES 56 bít. Để sử dụng một chuỗi các từ mã , một vec tơ 64 bit được khởi động và dữ liệu được xử lý theo từng khối 64bit.
ESP cũng có thể sử dụng cho mục đích xác thực. Trường xác thực ESP, một trường tùy chọn trong tiêu đề ESP bao gồm một kiểm tra tổng mã hóa. Độ dài của tổng kiểm tra này thay đổi tùy theo giải thuật xác thực được sử dụng. Nó cũng có thể được bỏ qua nếu như dịch vụ xác thực không được chọn trong ESP. Xác thực được tính toán sau khi tiến trình mã hóa dữ liệu đã hoàn thành.
Dịch vụ xác thực cung cấp bởi AH khác so với ESP ở chỗ dịch vụ xác thực trong ESP không bảo mật tiêu đề IP đặt trước ESP mặc dù nó bảo mật tiêu đề IP đã bọc gói trong chế độ đường hầm.
Định dạng của gói dữ liệu dựa trên ESP như trên hình vẽ gồm có các trường sau:
Hình 3.6. Định dạng của ESP Header 3.5. Các chếđộ IPSec
SAs trong IPSec hiện tại được triển khai trên 2 chế độ: chế độ truyền tải và chế độ đường hầm. Cả AH và ESP đều có thể hoạt động ở cả hai chế độ này .
Hình 3.7. Hai chế độ làm việc của IPSec. 3.5.1. Chếđộ truyền tải
Chế độ truyền tải là chế độ đường hầm giữa hai host hay hai thiết bị đầu cuối nhận và gửi cùng hỗ trợ IPSec. Chế độ truyền tải bảo vệ các giao thức lớp trên và các ứng dụng. Trong chế độ truyền tải, phần IPSec header được chèn vào giữa phần IP header và phần header của giao thức lớp trên, như hình mô tả bên dưới. Vì vậy chỉ có tải (IP payload) là được mã hóa và IP header ban đầu là được giữ nguyên vẹn.
Hình 3.8. Chèn mã xác thực AH hoặc ESP trong chế độ truyền tải
Chế độ truyền tải có thuận lợi là chỉ thêm vào vài bytes cho mỗi gói tin và nó
cũng cho phép các thiết bị trên mạng thấy được địa chỉ đích cuối cùng của gói. Khả năng này cho phép các tác vụ xử lý đặc biệt trên các mạng trung gian dựa trên các thông tin trong IP header. Tuy nhiên các thông tin tầng 4 sẽ bị mã hóa, làm giới hạn khả năng kiểm tra của gói.
3.5.2. Chếđộđường hầm
Không giống chế độ truyền tải, chế độ đường hầm bảo vệ toàn bộ gói dữ liệu. Toàn bộ gói dữ liệu IP được đóng gói trong một gói dữ liệu IP khác và một IPSec header được chèn vào giữa phần tiêu đề gốc và phần tiêu đề mới của gói IP. Toàn bộ gói IP ban đầu sẽ bị đóng gói bởi AH hoặc ESP và một IP header mới sẽ được bao bọc xung quanh gói dữ liệu. Toàn bộ các gói IP sẽ được mã hóa và trở thành dữ liệu mới của gói IP mới. Chế độ này cho phép những thiết bị mạng, như router, hoạt động như một IPSec proxy thực hiện chức năng mã hóa thay cho host. Router nguồn sẽ mã hóa các gói tin và chuyển chúng dọc theo đường hầm. Router đích sẽ giải mã gói IP ban đầu và chuyển nó về hệ thống cuối. Vì vậy header của gói IP mới có địa chỉ nguồn chính là địc chỉ của cổng mạng.
Hình 3.9. Chèn mã xức thực AH hoặc ESP trong chế độ đường hầm
Với đường hầm hoạt động giữa hai cổng mạng, địa chỉ nguồn và đích có thể được mã hóa. Chế độ đường hầm được dùng khi một trong hai đầu của kết nối IPSec là cổng mạng và địa chỉ đích thật sự phía sau các cổng mạng không hỗ trợ IPSec.
3.6. Trao đổi khóa IKE
IKE là giao thức thứ ba trong bộ giao thức IPSec. Nó khắc phục được những khó khăn trong việc quản lý khóa bằng cách thực hiện đàm phán các chính sách bảo mật giữa hai bên. Hai bên sẽ thực hiện một quá trình trao đổi dựa trên thuật toán DH để tìm ra một khóa chung. Khóa này được dùng để tạo ra khóa mã hóa và chứng thực được sử dụng trong phiên VPN để chống lại sự tấn công từ ngoài mạng.
IKE được xem là một giao thức kết hợp, do nó dựa trên ba giao thức trao đổi khóa khác:
- Giao thức quản lý khóa và kết hợp bảo mật ISAKMP: ISAKMP được coi là giao thức cơ bản, là nền tảng cung cấp các cơ chế và định dạng bản tin cho việc thiết lập các chính sách bảo mật và thực hiện trao đổi khóa. ISAKMP độc lập với các phương thức trao đổi khóa khác và được xem là nền tảng hỗ trợ nhiều giao thức trao đổi khóa.
- Giao thức xác định khóa Oakley: Oakley mô tả một chuỗi các chế độ gồm các phương thức sử dụng thuật toán DH để bảo mật quá trình trao đổi khóa. IKE sử dụng các chế độ khác nhau dựa trên giao thức Oakley.
- Giao thức SKEME: SKEME là giao thức trao đổi khóa linh hoạt. IKE sử dụng phương pháp mã hóa khóa công cộng của SKEME cho việc chứng thực.
Do đó IKE còn có một tên gọi khác là ISAKMP/Oakley.
3.6.1. Các giai đoạn IKE
Giai đoạn hoạt động của IKE cũng tương tự như quá trình bắt tay trong TCP/IP. Quá trình hoạt động của IKE được chia ra làm hai pha chính: Pha 1 sẽ thiết lập một kênh truyền được chứng thực bằng cách sử dụng thuật toán trao đổi khóa DH. Pha 2 sẽ sử dụng kênh truyền đã được thiết lập để đàm phán các chính sách bảo mật SA IPSec.
Hình 3.10. Hai pha IKE 3.6.2.1. IKE pha 1
Pha này có mục đích cơ bản là thoả thuận các tập chính sách IKE, xác thực các đối tác, và thiết lập một kênh an toàn giữa các đối tác. Sau đó các thành phần truyền thông đàm phán một ISAKMP SA trao đổi lẫn nhau, bao gồm các thuật giải mã hóa, các hàm băm, và các phương pháp xác thực để mã hóa khóa. ISAKMP sử dụng kết hợp bảo mật SA được xác định trong pha này.
Sau khi cơ chế mã hóa và các hàm băm đã được thông qua ở trên, một khóa bí mật chia sẻ chung được tạo ra. Những thông tin được sử dụng để tạo khóa này bao gồm:
- Giá trị Diffie-Hellman
- Giá trị SPI của kết hợp bảo mật ISAKMP
- Các số ngẫu nhiên gọi là nonces (được sử dụng cho mục đích báo hiệu) Nếu hai thành phần đồng ý sử dụng một xác thực khóa công cộng, nó cũng cần phải trao đổi các ID của nhau. Sau khi trao đổi những thông tin cần thiết này, cả hai tạo ra tập hợp khóa sử dụng bí mật chung này. Khi đó, khóa mật mã được tạo ra mà không trao đổi thực tế bất kỳ khóa nào qua mạng.
9 Các tập chính sách IKE
Khi thiết lập một kết nối an toàn giữa host A và host B thông qua Internet, một đường hầm an toàn sẽ được thiết lập giữa Router A và Router B. Thông qua đường hầm, các giao thức mật mã, xác thực…được thoả thuận. Thay vì phải thoả thuận từng giao thức một, các giao thức được nhóm thành các tập (set) được gọi là tập chính sách IKE (IKE Policy set). Tập chính sách này gồm
- Thuật toán mã hóa : DES, 3DES hoặc AES - Thuật toán xác thực : MD5 hoặc SHA-1 - Phương thức xác thực: pre-shared key, RSA - Nhóm khóa Diffie-Hellman: 1,2,5 hoặc 7 - Thời gian kết nối tồn tại
Các tập chính sách IKE này được trao đổi trong IKE pha 1, chế độ chính. Nếu một chính sách thống nhất (matching policy) được tìm thấy ở hai phía thì chế độ chính tiếp tục. Nếu không tìm thấy thì đường hầm sẽ bị loại bỏ. Trong ứng dụng điểm- điểm, mỗi bên chỉ cần định nghĩa một tập chính sách IKE. Tuy nhiên ở mạng trung tâm có thể phải định nghĩa nhiều chính sách IKE.
9 Trao đổi khoá Differ-Hellman
Trao đổi khoá Differ-Hellman là một phương pháp mật mã khoá công khai cho phép hai bên thiết lập một khoá bí mật chung qua một môi trường truyền thông
không an toàn. Có 7 thuật toán hay nhóm DH được định nghĩa: DH group 1-7. Ví dụ nhóm 1 định nghĩa thuật toán MODP với một số nguyên tố 768 bit, còn nhóm 2 định nghĩa thuật toán MODP với một số nguyên tố 1024 bit.
Khi đã hoàn tất việc thoả thuận nhóm, khoá bí mật chung SKEYID sẽ được tính. SKEYID được sử dụng để tạo ra ba khoá khác: SKEYID_a( dùng cho quá trình xác thực), SKEYID_e (dùng cho quá trình mã hoá), còn SKEYID_d ( dùng để tạo khoá cho các kết hợp an ninh không theo giao thức ISAKMP.
9 Xác thực đối tác
Các thiết bị ở hai đầu đường hầm VPN phải được xác thực trước khi đường truyền thông được coi là an toàn. Trao đổi cuối cùng trong IKE pha 1 có mục đích là để xác thực các đối tác.
Hai phương pháp xác thực nguồn gốc chủ yếu là:
• Pre-shared key (khoá chia sẻ trước).
• RSA signatures (Các chữ kí RSA)- sử dụng việc trao đổi các chứng thực số (digital certificate) để xác thực các đối tác.
3.6.2.1. IKE pha 2
Trong khi đàm phán trong pha 1 là để thiết lập kết hợp bảo mật cho ISAKMP, pha 2 sẽ giải quyết những yêu cầu cần thiết của các kết hợp bảo mật cho IPSec. Trong pha này, các kết hợp bảo mật sử dụng các dịch vụ khác nhau cho việc đàm phán, các thông số an ninh IPSec được thoả thuận để bảo vệ đường hầm.
Đàm phán pha 2 diễn ra tuần tự hơn đàm phán pha 1. Điển hình là, một đàm
phán có thể lặp lại sau khoảng 4,5 phút. Việc hiệu chỉnh thường xuyên các khóa mật mã sẽ ngăn cản các hacker có thể phá khóa cũng như đột nhập vào nội dung của gói ban đầu.
IKE pha 2 thoả thuận một tập chuyển đổi IPSec chung (shared IPSec Transform), tạo các khoá bí mật chung sử dụng cho các thuật toán bảo mật IPSec và
thiết lập các IPSec SA. Chế độ Quick Mode được sử dung để thỏa thuận lại một kết hợp bảo mật mới khi SA cũ đã hết hạn.
9 Các tập chuyển đổi IPSec
Mục đích cuối cùng của IKE pha 2 là thiết lập một phiên IPSec an toàn giữa hai hệ thống. Trước khi thực hiện được điều đó, mỗi cặp điểm cuối phải thoả thuận mức an toàn cần thiết. Thay vì thoả thuận từng giao thức riêng lẻ, các giao thức được nhóm lại thành từng tập, chính là các tập chuyển đổi IPSec. Các tập này được trao đổi giữa hai bên trong chế độ Quick Mode. Nếu tìm thấy một tập chuyển đổi tương đương ở hai phía thì quá trình thiết lập phiên tiếp tục. Nếu không phiên đó sẽ bị loại bỏ. Các thuật toán mật mã, xác thực trong tập chuyển đổi thống nhất hình thành nên một kết hợp bảo mật (SA).
9 Thời hạn của một kết hợp bảo mật
Vấn đề tương đương với thời hạn sử dụng của một mật khẩu trong máy tính, thời hạn càng dài thì nguy cơ mất an toàn càng lớn. Các khoá và các SA cũng vậy,
để đảm bảo tính an toàn cao thì các khoá và các SA phải được thay đổi một cách
thường xuyên. Có hai thông số cần được xác định để thay đổi khoá và các SA: lifetime type (kiểu tính là theo số byte đã truyền hay thời gian) và duration (xác định đơn vị tính là KBs hay giây). Ví dụ lifetime là 10000KBs dữ liệu đã truyền đi hay 28800 s.
9 Đường hầm mật mã IPSec
Sau khi đã hoàn thành IKE pha 2và Quick Mode đã thiết lập các kết hợp an ninh IPSec SA, lưu lượng trao đổi giữa hai điểm đầu cuối thông qua một đường hầm an toàn. Lưu lượng được mật mã, giải mã sủ dụng các thuật toán xác định trong IPSec SA.
9 Kết thúc đường hầm
Các kết hợp bảo mật IPSec SA kết thúc khi bị xoá hay hết hạn. Khi các SA kết
thúc thì các khoá cũng bị loại bỏ. Lúc đó các SA mới cần được thiết lập, một KE pha 2 mới sẽ được thựuc hiện, và nếu cần thiết thì sẽ thoả thuận một IKE pha1 mới. Một thoả thuận thnàh công sẽ lại tạo ra các khoá và SA mới. Các SA mới được thiết lập trước khi các SA cũ hết hạn để đảm bảo tính liên tục của thông tin.
3.6.2. Các chếđộ IKE
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)
3.6.2.1. Chếđộ chính
Chế độ chính xác nhận và bảo vệ các thành phần liên quan đến quá trình truyền. Trong chế độ này, có 6 bản tin được trao đổi giữa các đầu cuối truyền thông:
• Hai bản tin đầu tiên dùng để thỏa thuận chính sách bảo mật cho sự trao đổi khóa.
• Hai bản tin kế tiếp phục vụ cho trao đổi các khóa Diffie-Hellman và nonces. Trong đó khóa nonces đóng vai trò quan trọng trong việc mã hóa.
• Hai bản tin cuối được sử dụng để xác thực các thành phần truyền thông cùng với sự hỗ trợ của chữ ký, các hàm băm, và tuỳ chọn với chứng nhận.
Hình 3.11. Quá trình trao đổi các bản tin trong chế độ chính 3.6.2.2. Chếđộ linh hoạt
Chế độ linh hoạt về bản chất giống chế độ chính. Sự khác nhau là thay vì chế độ chính có 6 bản tin thì chế độ này chỉ có 3 bản tin được trao đổi. Do đó, chế độ linh hoạt sẽ nhanh hơn chế độ chính. Các bản tin trao đổi gồm :
• Bản tin đầu tiên để đưa ra chính sách bảo mật, truyền dữ liệu cho khóa chính, và trao đổi nonces cho việc ký và xác minh tiếp theo.
• Bản tin kế tiếp trả lời lại bản 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.
• Bản tin 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).
Hình 3.12. Quá trình trao đổi các bản tin trong chế độ linh hoạt 3.6.2.3. Chếđộ nhanh
Sau khi hai đối tượng đã thiết lập một ISAKMP SA bằng chế độ chính hay chế độ năng động thì bước tiếp theo là sử dụng chế độ nhanh.
Chế độ này có hai mục đích chính sau: đàm phán về dịch vụ bảo mật IPSec và tạo ra một khóa mới. Chế độ nhanh đơn giản hơn chế độ chính và chế độ năng động bởi vì nó đã sẵn một đường hầm bên trong (tất cả các gói đều được mã hóa). Các gói
chế độ nhanh đều được mã hóa và khởi tạo với một tải băm. Tải băm được tạo ra
bằng cách dùng một hàm tạo giả ngẫu nhiên đã được đồng ý trước và một khóa xác thực nhận được. Tải băm dùng để xác thực phần còn lại của gói dữ liệu. Chế độ