Giao thức bảo mật IPSEC trong IPv6 – Phần 2

Giao thức bảo mật IPSEC trong IPv6 – Phần 2

2. Giao thức bảo mật IPSec trong mạng IPv6      

IP Security (IPSec) là tiêu chuẩn của IETF (Internet Engineering Task Force) nhằm cung cấp bảo mật cho mạng Internet. IPSec đảm bảo tính toàn vẹn, xác thực và bảo mật. IPSec được tích hợp sẵn trong IPv4 và IPv6 và được định nghĩa trong cùng các RFC. Chức năng này chủ yếu có cả trong môi trường IPv4 và IPv6 nhưng tính năng IPSec là bắt buộc trong IPv6. Điều này có nghĩa mọi điểm kết nối IPv6 đều phải kích hoạt IPsec và phải luôn sử dụng tính năng này, do đó mạng Internet IPv6 được bảo mật tốt hơn mạng Internet IPv4 cũ.

2.1. Mào đầu gói tin IPv6

Header của IPv6 đơn giản và hợp lý hơn IPv4. IPv6 chỉ có 6 trường và 2 địa chỉ, trong khi IPv4 chứa 10 trường và 2 địa chỉ, IPv6 header có kích thước cố định. Trong khi IPv4 header có kích thước thay đổi. Với kích thước cố định thì một router có thể xử lý gói tin một cách hiệu quả.

2.1.1. Chiều dài phần mào đầu

Mào đầu IPv4 có một trường chiều dài không cố định đó là Tùy chọn(Option). Trường này được sử dụng để thêm các thông tin về các dịch vụ tùy chọn khác nhau trong IPv4(Ví dụ như thông tin liên quan đến mã hóa). Do đó, chiều dài của mào đầu IPv4  thay đổi tùy theo tình trạng. Vì sự thay đổi đó, các bộ định tuyến điều khiển giao tiếp dựa trên những thông tin trong phần mào đầu không thể biết trước chiều dài của mào đầu. Điều này cản trở việc tăng tốc xử lý gói tin. Gói tin IPv6 có hai dạng mào đầu: mào đầu cơ bản và mào đầu mở rộng. Phần mào đầu cơ bản có chiều dài cố định 40 byte, chứa những thông tin cơ bản trong xử lý gói tin IPv6. Những thông tin liên quan đến dịch vụ mở rộng kèm theo được chuyển hẳn tới một phân đoạn khác gọi là mào đầu mở rộng. Cấu trúc gói tin IPv6:

Hình 2: Cấu trúc gói tin IPv6

2.1.2. Định dạng các trường mào đầu

Cấu trúc mào đầu của IPv6 header gồm:

  • Phiên bản (Version): Gồm 4 bít được sử dụng để xác định phiên bản của giao thức  IP đang được sử dụng và nó có giá trị là 6 với IPv6.
  • Phân dạng lưu lượng (Traffic Class): Gồm 8 bít thực hiện chức năng tương tự trường Dạng dịch vụ (Type of Service) của IPv4. Trường này được sử dụng để biểu diễn mức độ ưu tiên của gói tin, mỗi điểm kết nối IPv6 có thể đánh dấu gói tin với từng loại dữ liệu, ví dụ gói tin nên được truyền với tốc độ nhanh hay thông thường.
  • Nhãn dòng(Flow Label): Có chiều dài 20 bít, là trường mới được thiết lập trong IPv6. Trường này được sử dụng để chỉ định gói tin thuộc một dòng(Flow) nhất định giữa nguồn và đích, yêu cầu bộ định tuyến IPv6 phải có cách xử lý đặc biệt. Bằng cách sử dụng trường này, nơi gửi gói tin có thể xác định một chuỗi các gói tin, ví dụ gói tin của dịch vụ thoại VoIP thành một dòng và yêu cầu chất lượng cụ thể cho dòng đó. Khi một router xác định dòng lưu lượng lần đầu, nó sẽ nhớ dòng lưu lượng đó, cũng như các xử lý đặc biệt ứng với lưu lượng này, và khi các lưu lượng khác thuộc dòng này đến, nó sẽ xử lý nhanh hơn là xử lý từng packet.
  • Chiều dài tải dữ liệu(Payload Length): Gồm 16 bít, tương tự như trường total length của IPv4, xác định tổng kích thước của gói tin IPv6 bao gồm cả phần mào đầu mở rộng (không chứa header).
  • Next header: Gồm 8 bít, thay thế trường Thủ tục(Protocol). Trường này chỉ định đến mào đầu mở rộng đầu tiên của gói tin IPv6, đặt sau mào đầu cơ bản hoặc chỉ định tới thủ tục lớp trên như TCP, UDP, ICMPv6 khi trong gói tin IPv6 không có mào đầu mở rộng.
  • Hop limit: Gồm 8 bít, được sử dụng để giới hạn số hop mà packet đi qua, được sử dụng để tránh cho packet được định tuyến vòng vòng trong mạng. Trường này giống như trường TTL (Time-To-Live) của IPv4.
  • Source Address: Gồm 128 bít, xác định địa chỉ nguồn của gói tin.
  • Destination Address: Gồm 128 bít, xác định địa chỉ đích của gói tin

Hình3: Định dạng gói tin IPv6

2.1.3. Các trường mào đầu mở rộng

Mào đầu mở rộng (extension header) là đặc tính mới của thế hệ địa chỉ IPv6.

Những thông tin liên quan đến dịch vụ kèm theo được chuyển hẳn tới một phân đoạn khác gọi là header mở rộng, mỗi header mở rộng được nhận dạng bởi trường Next Header. Các header mở rộng được đặt giữa IPv6 header và header của các giao thức lớp trên, được sử dụng để mang các thông tin tuỳ chọn ở lớp mạng (Network layer) trong gói tin. Một gói tin IPv6 có thể chứa một hay nhiều header mở rộng , được đặt sau mào đầu cơ bản. Các mào đầu mở rộng được đặt nối tiếp nhau theo thứ tự quy định, mỗi dạng có cấu trúc trường riêng. Thông thường, các mào đầu mở rộng được xử lý tại đích. Tuy nhiên cũng có dạng mào đầu mở rộng được xử lý tại mọi bộ định tuyến mà gói tin đó đi qua, đó là dạng mào đầu mở rộng Từng bước (Hop by Hop). Mỗi header mở rộng sẽ có giá trị đại diện cho nó. Ví dụ: TCP (6); UDP (7); Routing header (43); Fragment header (44); ESP (50); AH (51); ICMP (58)… [1].

Hình4: Các giá trị của trường Next Header

Mào đầu cơ bản và mọi mào đầu mở rộng IPv6 đều có trường mào đầu tiếp theo (Next Header) chiều dài 8 bít. Trong mào đầu cơ bản, trường Next Header sẽ xác định gói tin có tồn tại mào đầu mở rộng hay không. Nếu không có mào đầu mở rộng giá trị của trường sẽ xác định phần mào đầu của tầng cao hơn (TCP hay UDP…) phía trên của tầng IP. Nếu có, giá trị trường Next Header chỉ ra loại mào đầu mở rộng đầu tiên theo sau mào đầu cơ bản. Tiếp theo, trường Next Header của mào đầu mở rộng thứ nhất sẽ trỏ tới mào đầu mở rộng thứ hai, đứng kế tiếp nó. Trường Next Header của mào đầu mở rộng cuối cùng sẽ có giá trị xác định mào đầu tầng cao hơn.

Hình 5: Mào đầu mở rộng của địa chỉ IPv6

Khi gói đi từ nguồn đến đích, các trạm trung gian không được phép xử lý các Extension Header đến khi đến trạm đích. Và việc xử lý các Header này cũng phải diễn ra theo đúng tuần tự mà các Header sắp xếp trong gói tin IPv6. Không bao giờ được phép xảy ra trường hợp trạm đích quét qua toàn bộ gói tin và chọn ra một Header nào đó để xử lý trước. Trường hợp ngoại lệ là trường hợp Hop-by-hop Extension Header, sự hiện diện của Hop-by-hop Extension Header buộc gói tin phải bị kiểm tra bởi tất cả các trạm trung gian trên đường từ nguồn đến đích, bao gồm cả trạm nguồn và đích. Vì vậy, Hop-by-hop Extension Header luôn phải đứng sau IPv6 Header. Sự hiện diện của Extension Header này được chỉ thị bởi giá trị 0 trong Next-Header của IPv6 Header. Kích thước của các Extension Header có thể tùy ý, nhưng luôn là bội số của 8 octet. Nếu trong gói tin có chứa nhiều Extension Header, chúng được sắp xếp theo thứ tự sau :

  • IPv6 Header.
  • Hop-by-Hop Options Header.
  • Destination Options Header : Được xử lý bởi trạm đích đầu tiên trong IPv6 Header và những trạm còn lại được chỉ ra trong Routing Header.
  • Routing Header.
  • Fragment Header.
  • Authentication Header.
  • Encapsulating Security Payload Header.
  • Mobility header
  • Destination Options Header: Chỉ được xử lý bởi đích đến cuối cùng trong gói tin
  • Upper-layer Header.

Hình 6: Định dạng của Extension Header

Giao thức bảo mật IPSEC trong IPv6 – Phần 1

Giao thức bảo mật IPSEC trong IPv6 – Phần 3

Nguồn: VNNIC

About the Author

Leave a Reply