Kiến trúc IPSec cung cấp một bộ khung an toàn tại tầng IP với cả IPV4 và IPV6. Bằng cách cung cấp khả năng an toàn tại tầng này, các giao thức tầng giao vận và các ứng dụng có thể dùng IPSec để đảm bảo an toàn mà không phải thay đổi gì cả.
Một số ứng dụng cung cấp dịch vụ bảo mật trên tầng ứng dụng như SSL hay TLS. Đối với các giao thức này, trình ứng dụng gọi tới ứng dụng bảo mật do tầng dưới cung cấp để tạo các ứng dụng bảo mật (ví dụ như giao diện cung cấp các hỗ trợ bảo mật -SSPI). Trong sản phẩm Window 2000 cung cấp giao diện chung cho phép các ứng dụng ở tầng trên truy nhập vào các module bảo mật ở tầng dưới), các ứng dụng ít nhất cần nhận thức được vấn đề bảo mật. IPSec giải quyết được yêu cầu này bằng cách chuyển vấn đề bảo mật xuống tầng 3. Điều này cho phép các ứng dụng duy trì được tính không phụ thuộc vào hạ tầng bảo mật của các tầng dưới. Các gói IP sẽ được bảo vệ mà không phụ thuộc vào các ứng dụng đã sinh ra chúng. Nói một cách khác, các ứng dụng không cần biết tới vấn đề bảo mật trên nền IP. Các quy tắc bảo mật được định nghĩa thống nhất giữa các nhà quản trị mà không phụ thuộc vào một ứng dụng nào được chạy trên hệ thống và IPSec là trong suốt đối với các ứng dụng. Điều này đem lại những lợi ích vô cùng to lớn, đó là khả năng xác thực, bảo mật và kể cả mã hoá dữ liệu được truyền qua bất kỳ mạng IP nào. Như vậy, IPSec cung cấp khả năng bảo mật đầu cuối - tới - đầu cuối giữa các máy tính và mạng máy tính.
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 tươ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 chỉ 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 cung cấp khả năng bảo mật thông tin giữa hai đầu cuối nên chỉ có nơi gửi và nơi nhận là cần biết chi tiết về các vấn đề liên quan đến bảo mật. Các thiết bị khác nằm trên đoạn đường giữa hai đầu không phải bận tâm đến công việc mã hoá, trao đổi khoá bảo mật vv… khi chuyển tiếp dữ liệu. Đối với khách hàng, điều này đồng nghĩa với việc một chế độ bảo mật mức cao có thể được thiết lập mà không đòi hỏi sự đầu tư hay thay đổi quá lớn đối với hạ tầng mạng, người ta gọi giải pháp VPN ứng dụng giao thức IPSec là “Desktop VPN” vì toàn bộ chức năng bảo mật dữ liệu được thực hiện ngay tại trạm làm việc và các thiết bị mạng không cần quan tâm đến các công tác bảo đảm an
toàn. Khi sử dụng các thuật toán xác thực và mã hoá dữ liệu đã được chuẩn hoá, IPSec đã khai thác tối đa lợi ích của các công nghệ này và tạo ra một cách tiếp cận hiệu quả tới mục tiêu bảo vệ luồng dữ liệu truyền trên mạng.
Công việc bảo mật các gói tin IP được thực hiện bằng hai giao thức: Xác thực tiêu đề(AH) và đóng gói tải bảo mật(ESP). AH được sử dụng để đảm bảo tính toàn vẹn của dữ liệu, cung cấp khả năng bảo vệ trước sự giả mạo và chế độ xác thực đối với máy chủ. ESP cũng thực hiện các chức năng tương tự như AH nhưng nhưng kèm thêm khả năng bảo mật dữ liệu. Cũng cần nhấn mạnh rằng cả hai giao thức này đều không chỉ ra bất kỳ một thuật toán mã hoá và xác thực cụ thể nào mà chỉ tạo ra khả năng ứng dụng tốt nhất một trong các thuật toán đang hiện hành.
Hình 2.2: Kiến trúc bộ giao thức IPSec
- Bộ giao thức IPSec mang lại ba khả năng chính, đó là:
- Đảm bảo tính toàn vẹn và xác thực dữ liệu: IPSec cung cấp một cơ chế mạnh để xác minh tính xác thực của người gửi và nhận ra bất kỳ sự thay đổi nào không bị phát giác trước đó về nội dung của gói dữ liệu bởi người nhận không mong muốn. Giao thức IPSec mang lại sự bảo vệ tốt chống lại sự giả mạo, do thám hoặc tấn công dịch vụ.
- Sự tin cậy: Giao thức IPSec mã hoá dữ liệu bằng việc dùng các kỹ thuật mật mã cao cấp, nó ngăn chặn những người dùng trái phép truy cập dữ liệu trong khi nó đang
Encapsulating Security Payload (ESP) protocol
IP Security architecture Key management Protoccol Domain of Interpretation AuthenticationHeader (AH) Protocol Encryption Algorithms Authentication
được truyền đi. IPSec cũng sử dụng các cơ chế đường hầm để dấu địa chỉ IP của Node nguồn và đích đối với kẻ nghe trộm.
- Quản lý khóa: IPSec sử dụng giao thức bên thứ ba, trao đổi khoá Internet (IKE) để thương lượng giao thức bảo mật và thuật toán mã hóa trước và trong một phiên làm việc. Quan trọng hơn, IPSec phân phối, kiểm soát khoá và cập nhật các khoá này khi được yêu cầu.
Hai khả năng thứ nhất của IPSec, xác thực tính toàn vẹn dữ liệu và sự tin cậy được cung cấp bởi hai giao thức khoá trong bộ giao thức IPSec. Các giao thức này bao gồm AH và ESP.
Khả năng thứ ba, quản trị khoá, nằm trong địa hạt của giao thức khác. Nó được chấp nhận bởi bộ IPSec vì dịch vụ quản lý khoá tốt của nó
2.1.2. Liên kết bảo mật IPSec (SA-IPSec)
Liên kết bảo mật là một khái niệm cơ sở của giao thức IPSec. Như một lời trích dẫn của các nhà phát triển IPSec: Một SA là một kết nối logic theo hướng duy nhất giữa hai thực thể sử dụng các dịch vụ IPSec, được định danh một cách duy nhất bởi ba phần sau:
<Security Parameter Index, IP Destination Address, Security Protocol> Một IPSec SA được xác định là:
- Các thuật toán, khoá, các giao thức xác thực.
- Mô hình và khoá cho các thuật toán xác thực được dùng bởi các giao thức AH hoặc ESP của IPSec thích hợp.
- Các thuật toán mã hoá, giải mã và các khoá.
- Thông tin liên quan đến khoá như: thời gian thay đổi và thời gian sống của khoá. - Thông tin liên quan đến chính SA, bao gồm: địa chỉ nguồn SA, thời gian sống. Sau đây ta sẽ lần lượt xem xét ba phần của một SA
Sercurity Protocol SPI Destination IP Address
Hình 2.3 Mô tả ba trường của một IPSec SA
- SPI(Security Parameter Index): Là một trường 32 bít, nó định danh giao thức bảo mật, được xác định bởi trường giao thức bảo mật(Security Protocol), từ IPSec thích hợp đang sử dụng. SPI được mang như một phần trên tiêu đề của giao thức bảo mật và thường được lựa chọn bởi hệ thống đích trong khi thương lượng thiết lập SA. SPI chỉ có ý nghĩa lôgic, được định nghĩa bởi người tạo SA. SPI nhận các giá trị trong phạm vi 1 đến 255, giá trị 0 được dùng cho mục đích thực thi đặc biệt cục bộ
- Địa chỉ IP đích: Đây là địa chỉ IP của Node đích. Mặc dù nó có thể là một địa chỉ broadcast, unicast hoặc multicast, các cơ chế quản trị SA hiện tại được định nghĩa chỉ với các địa chỉ unicast.
- Giao thức bảo mật: Trường này mô tả giao thức bảo mật IPSec, nó có thể là AH hoặc ESP.
Trước khi hai máy chủ có thể liên lạc được với nhau sử dụng giao thức IPSec, chúng cần thống nhất các hướng dẫn cho phiên làm việc đó (ví dụ như cách xác thực lẫn nhau hay thuật toán mã hoá hai bên cùng sử dụng). Đây chính là việc liên kết bảo mật, đó chính là thoả thuận cách thức thống nhất được sử dụng cho việc bảo mật dữ liệu giữa hai đầu cuối.
Một SA IPSec sử dụng hai cơ sở dữ liệu:
+ Cơ sở dữ liệu chính sách bảo mật (SPD): duy trì thông tin về dịch vụ bảo mật trong một danh sách có thứ tự của các thực thể chính sách vào ra. Rất giống với các luật và bộ lọc gói tin của Firewall. Các thực thể này định nghĩa lưu lượng phải được xử lý và lưu lượng được bỏ qua trên các chuẩn IPSec.
+ Cơ sở dữ liệu liên kết bảo mật(SAD): duy trì thông tin liên quan tới mỗi SA. Thông tin này bao gồm cả các khoá và thuật toán, khoảng thời gian sống của SA, chế độ giao thức và số tuần tự.
Liên kết bảo mật là đa hướng, có nghĩa là cần thiết lập các liên kết bảo mật khác nhau cho luồng dữ liệu đi và đến. Thêm vào đó, nếu máy chủ liên lạc với một hay nhiều máy chủ khác trong cùng một thời điểm thì cũng cần thiết lập từng đó liên kết. Các liên kết bảo mật được lưu trữ trong cơ sở dữ liệu tại mỗi máy tính với chỉ số về thông số bảo mật (SPI) cho mỗi phần tiêu đề AH và ESP tương ứng. Phía nhận sẽ sử dụng các thông số này để quyết định sẽ áp dụng liên kết bảo mật nào để xử lý gói tin vừa nhận được. Trên thực tế, thủ tục trao đổi khoá Internet (IKE) là thủ tục cho phép quản lý việc
tạo ra các liên kết bảo mật và tạo ra các khoá bảo mật để bảo vệ nội dung thông tin. IKE sử dụng thuật toán Diffie- Hellman để tạo ra và quản lý các khoá bí mật, thiết lập kênh trao đổi khoá đối xứng dùng cho việc mã hoá và giải mã thông tin giữa hai đầu, cuối.
2.1.3. Các giao thức của IPSec
Đó là các giao thức xác thực tiêu đề (AH) và giao thức đóng gói tải bảo mật (ESP). Các giao thức này có thể được cấu hình để bảo vệ toàn bộ phần thân của gói tin IP hoặc chỉ riêng phần thông tin liên quan đến các giao thức ở tầng trên.
AH được định nghĩa bởi nhóm làm việc RFC 2402, đảm bảo tính toàn vẹn dữ liệu trên đường truyền bằng khoá H (Hàm băm – Hashing function). AH thực hiện phần thuật toán băm cả phần đầu và phần thân của gói tin IP nhưng không áp dụng cho các thông tin sẽ thay đổi trên đường truyền như số đếm của mỗi nút mạng, vì thế AH cho phép thay đổi thông tin địa chỉ và đảm bảo dữ liệu của gói tin IP sẽ không bị nghe trộm. Điều này dẫn đến một chức năng nữa của AH là khả năng chống lại việc giả mạo (đột nhập vào giữa đường truyền của các gói tin và tạo ra các gói tin giả) khi sử dụng các số thứ tự tăng dần gắn vào mỗi gói tin. Tuy nhiên, AH không cung cấp khả năng mã hoá dữ liệu.
ESP là một giao thức Internet được nhóm công tác RFC 2406 định nghĩa. Khi được sử dụng riêng rẽ hoặc kết hợp với giao thức AH, ESP đảm bảo tính toàn vẹn và chức năng mã hoá dữ liệu. Các thuật toán mã hoá do ESP hỗ trợ bao gồm DES-CBC, DES 56 bit và 3DES. Ngoài ra ESP còn cho phép kiểm tra tính toàn vẹn của gói tin thông qua HMAC MD5 và HMAC SHA.
2.1.3.1. Giao thức xác thực tiêu đề (AH)
Giao thức xác thực tiêu đề 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 đang 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 (HAMC) đượ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, cái 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, HAMC đượ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 được để mặc. 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ác trường nào không thay đổi trong quá trình truyền là được bảo vệ bởi AH. Địa chỉ IP nguồn và địa chỉ IP đích là những trường như vậy và vì thế được bảo vệ bởi AH. Tóm lại, 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)
1. Khuôn dạng gói tin
Khuông dạng của gói tin theo giao thức AH được minh hoạ như trong hình 2.4. Các trường trong AH header đều là bắt buộc.
- Next Header: Trường này nhận biết giao thức bảo mật, có độ dài 8 bít để xác định kiểu dữ liệu của phần Payload phía sau AH. Giá trị của trường này được chọn từ các giá trị của IP Protocol number được định nghĩa bởi IANA (Internet Assigned Numbers Authority).
- Payload Length: Trường này chỉ định độ dài của thông điệp gắn sau tiêu đề AH.
Authentication Data (Integrity Check Value)
Next Header PayloadLength Reserved Security Parameter Index(SPI)
Sequence Number
Hinh 2.4 : Tiêu đề AH
- Reserved: Trường 16 bit dự trữ để sử dụng cho tương lai, giá trị của trường này bằng 0.
- SPI: Là một số 32 bit bất kì, cùng với địa chỉ IP đích và giao thức an ninh mạng cho phép nhận dạng một thiết lập an toàn duy nhất cho gói dữ liệu. SPI thường được lựa chọn bởi phía thu.
- Sequence Number(SN): Trường gồm 32 bit không dấu đếm tăng dần để sử dụng cho việc chống trùng lặp. Chống trùng lặp là một lựa chọn nhưng trường này là bắt buộc đối với phía phát. Bộ đếm của phía phát và thu khởi tạo 0 khi một liên kết an toàn (SA) được thiết lập, giá trị SN mỗi gói trong một SA phải hoàn toàn khác nhau để tránh trùng lặp. Nếu số gói vượt quá con số 232 thì một SA khác phải được thiết lập.
- Authentication Data: Trường có độ dài biến đổi chứa một giá trị kiểm tra tính toàn vẹn (ICV) cho gói tin, ICV được tính bằng thuật toán đã được chọn khi thiết lập SA. Độ dài của trường này là số nguyên lần của 32 bit, chứa một phần dữ liệu đệm để đảm bảo độ dài của AH là n*32 bit. Giao thức AH sử dụng một hàm băm và băm toàn bộ gói tin trừ trường Authentication Data để tính ICV.
2. Chế độ hoạt động
AH có thể sử dụng ở hai chế độ: Chế độ truyền tải (Transport) và chế độ đường hầm(Tunnel).
- Chế độ Transport: Chế độ Transport cho phép bảo vệ các giao thức lớp trên cùng với một số trường trong IP Header. Trong chế độ này, AH đượ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ế độ Transport thường được sử dụng bởi các Host chứ không được sử dụng bởi Gateway. Ưu điểm của chế độ này là đỡ tốn kém chi phí xử lý nhưng nó có khuyết điểm là các trường có thể thay đổi không được xác thực.
IP Hdr Payload
IP Hdr AHHdr Payload Gói tin IP ban đầu
Hình 2.5. Gói tin IP trước và sau khi xử lý AH trong chế độ Transport
- Chế độ Tunnel: Trong chế độ Tunnel, một gói tin IP khác được thiết lập dựa trên các gói tin IP cũ. Header của gói IP cũ (bên trong) mang địa chỉ nguồn và đích cuối