MỤC LỤC
DANH MỤC HÌNH
CHƯƠNG I: TỔNG QUAN VỀ IPV6
I. Tổng quan về địa chỉ IPv6
1. Những hạn chế của IPv4
Sự thiếu hụt địa chỉ.
Cấu trúc định tuyến không hiệu quả.
Hạn chế tính bảo mật và kết nối đầu cuối - đầu cuối.
Thay thế cho nguồn ipv4 cạn kiệt để tiếp nối hoạt động internet.
Khắc phục các hạn chế của ipv4.
=> Sự ra đời của IPv6.
2. Kiến trúc của IPv6
- Không gian địa chỉ: 128 Bits
2128= 340 282 366 920 938 463 463 374 607 431 768 211 456
- So sánh header của ipv4 và ipv6
Hình 1.1. Header IPv4 và IPv6.
- So sánh IPv4 và IPv6
IPv4
Địa chỉ 32 bit
Không định dạng luồng dữ liệu
Sự phân mảnh được thực hiện tại các host và
tại router, nên khả năng thực thi của router
chậm
Có checksum header
Header có phần tùy chọn
IPv6
Địa chỉ 128 bit
Định dạng luồng dữ liệu nên hỗ trợ Qos tốt
hơn
Sự phân mảnh chỉ xảy ra tại host gửi
Không có checksum header
Tất cả dữ liệu tùy chòn được chuyênr vào
phần header mở rộng
3
Có địa chỉ broadcast
IGMP (Internet Group Management Protocol)
được dùng để quản lý các thành viên của
mạng con cục bộ
IGMP Router Discovery được dùng để xác định
địa chỉ cảu gateway mặc định tốt nhất và là
tùy chọn
Sử dụng các mẫu tin (A) chứa tài nguyên địa
chỉ host trong DNS để ánh xạ tên host thành
địa chỉ IPv4
Không có địa chỉ broadcast vì đã bao gồm
trong địa chỉ multicast
IGMP được thay thế bởi MLD (Mutilcast
Listener Discovery)
IGMP Router Discovery được thay thế bởi
ICMPv6
Sử dụng các mẫu tin AAA trong DNS để ánh xạ
tên host thành địa chỉ IPv6
- Trường Flow Label
Trường hoàn toàn mới trong IPv6, có 20 bit chiều dài.
Trường này biểu diễn luồng cho gói tin và được sử dụng trong các kỹ thuật
chuyển mạch đa lớp , nhờ đó các gói tin được chuyển mạch nhanh hơn trước.
Nơi gửi gói tin hoặc thiết bị hiện thời có thể xác định một chuỗi các gói tin, ví
dụ VoIP, thành 1 dòng, và yêu cầu dịch vụ cụ thể cho dòng đó.
Tuy nhiên, những thiết bị này không những kiểm tra thông tin tầng IP ví dụ địa
chỉ nơi gửi và nơi nhận, mà còn phải kiểm tra cả số port là thông tin thuộc về
tầng cao hơn. Trường Flow Label trong IPv6 cố gắng đặt tất cả những thông tin
cần thiết vào cùng nhau và cung cấp chúng tại tầng IP.
- Một số tính năng vượt trội của IPv6 so với IPv4
Đơn giản hóa việc đặt địa chỉ Host
Tự động cấu hình địa chỉ
Một Interface có thể được gán nhiều địa chỉ
Tổng hợp địa chỉ
End-to-end mà không cần NAT
Hỗ trợ tốt tính năng di động
Tính năng bảo mật cao
Hiệu suất cao
- Các quy tắc biểu diễn
128 bits
Format
X : X : X : X : X : X : X : X
16 bits
Ví dụ: X: 16 bits, được biểu diễn dưới dạng số hexadicemal.
Ví dụ: FA08, 2013, FEC4, 0031…
2031:0000:130F:0000:0000:09C0:876A:130B
1088:0:0:0:8:800:200C:463A
Trong dãy địa chỉ IPv6, nếu có số 0 đứng đầu có thể lượt bỏ.
4
0081
81
0F01
F01
0000
0
Trong dãy địa chỉ IPv6, nếu có các nhóm số 0 liên tiếp, có thể đơn giản các nhóm
này bằng 2 dấu :: (chỉ áp dụng khi dãy 0 liên tiếp nhau).
Trong IPv6, chúng ta chỉ có thể sử dụng 2 dấu hai chấm một lần với địa chỉ.
Không được viết ::AB65:8952::, vì nếu viết như thế sẽ gây nhầm lần khi dịch ra
đầy đủ.
2031::130f::9c0:876a:130b
FEC0::FCB9:0067::2A4
II. Các loại địa chỉ IPv6
Có 3 loại địa chỉ IPv6:
Unicast Address (địa chỉ đơn hướng)
Multicast Address (địa chỉ đa hướng)
Anycast Address (địa chỉ hướng tùy ý)
1. Unicast Address (địa chỉ đơn hướng)
Hình 1.2. Minh họa Unicast Address.
a. Global Unicast Address
5
Hình 1.3. Global Unicast Address.
Bắt đầu với chuỗi bit nhị phân là 001, hay với hệ thập lục phân là 2 hoặc 3 :
2000::/3, 3001::/3 …
6
b. Link-local Address
Hình 1.4. Link-local Address.
Trong Link-local Address: 64 bit đầu là giá trị cố định không thay đổi tương
ứng với prefix là FE80::/10
c. Site-local Address
Hình 1.5. Site-local Address.
Trong Site-local Address: 10 bit đầu là giá trị cố định không thay đổi tương ứng
với prefix là FEC0::/10
2. Multicast Address (địa chỉ đa hướng)
Hình 1.6. Minh họa Multicast Address.
7
Hình 1.7 Cấu trúc Multicast Address của IPv6.
- Địa chỉ IPv6 Multicast được định nghĩa với prefix là FF::/8
- Từ FF00:: đến FF0F:: là địa chỉ dành riêng được quy định bởi IANA để sử
dụng cho mục đích Multicast.
- Octet thứ hai chỉ ra cờ (flag) và phạm vi (Scope) của địa chỉ multicast.
Flag xác định thời gian sống của địa chỉ. Có 2 giá trị của flag :
Flag = 0 : Địa chỉ multilcast vĩnh viễn.
Flag = 1 : Địa chỉ multilcast tạm thời.
Scope chỉ ra phạm vi hoạt động của địa chỉ. Có 7 giá trị của Scope :
Scope = 1 : Interface-local.
Scope = 5 : Site-local.
Scope = 2 : Link-local.
Scope = 8 : Organization.
Scope = 3 : Subnet-local.
Scope = E : Global.
Scope = 4 : Admin-local.
8
3. Anycast Address (địa chỉ hướng tùy ý)
Hình 1.8. Minh họa Anycast Address.
Hình 1.9. Cấu trúc Anycast Address.
One-to-nearest
Địa chỉ Anycast không bao giờ được sử dụng làm địa chỉ nguồn của một gói tin.
4. Các loại địa chỉ đặc biệt
Loopback Address:
0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 hay : : 1/128
Unspecified Address:
1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 hay : :/128
III. Triển khai IPv6
- Triển khai, chuyển đổi và thay thế một giao thức Internet không phải là
một chuyện dễ dàng.
- Địa chỉ IPv6 không thể ngay tức khắc thay thế IPv4 trong thời gian ngắn
mà phải trải qua một quá trình lâu dài.
- Thế hệ địa chỉ IPv6 phát triển khi IPv4 đã hoàn thiện và hoạt động trên
mạng lưới rộng khắp toàn cầu.
- Triển khai IPv6 trên cơ sở hạ tầng IPv4
9
Automatic Tunnel
Dual Stack
Tunneling
Configured Tunnel
NAT-PT
ISATAP Tunneling
Công nghệ chuyển đổi qua lại giữa các IPv4 node sang IPv6 node trong mạng
Intranet, các địa chỉ được chuyển đổi là địa chỉ dành riêng (private) IPv4 và IPv6 linklocal.
Hình 1.10. Công nghệ chuyển đổi qua lại giữa IPv4 và IPv6.
Teredo Tunneling
Sử dụng cho các địa chỉ private IPv4, kỹ thuật này đóng gói gói tin IPv6 bên
trong các gói UDP của IPv4 để có thể được định tuyến hay đi qua các thiết bị NAT
trong mạng IPv4.
Manual Tunnel
Hình 1.11. Maual Tunnel.
Đường hầm được cấu hình bằng tay tại các thiết bị điểm đầu và điểm cuối
đường hầm. Phương thức này có thể được áp dụng với các mạng có ít host.
Tunnel Broker
10
Tunnel Broker là hình thức tunnel, trong đó một tổ chức đứng ra làm trung
gian, cung cấp kết nối tới Internet IPV6 cho những thành viên đăng ký sử dụng dịch
vụ Tunnel Broker do tổ chức cung cấp.
Hình 1.12. Tunnel Broker.
NAT-PT
Giúp một thiết bị chỉ hỗ trợ IPv6 giao tiếp với một thiết bị chỉ hỗ trợ IPv4.
Hình 1.13. Minh họa NAT-PT.
Hiện tại chỉ có VNPT và NetNam đã tham gia đề tài “triển khai thử nghiệm
mạng IPv6 ở Việt Nam và kết nối mạng IPv6 Quốc tế
VNPT cũng là đơn vị đầu tiên yêu cầu địa chỉ IPv6 và cũng là doang nghiệp
duy nhất đủ tiêu chuẩn cấp phát địa chỉ IPv6
Đến nay đã có tổng cộng 28 khối địa chỉ IPv6 được cấp phát cho các doanh
nghiệp, tổ chức Việt Nam.
Mức độ ứng dụng IPv6 trong hoạt động mạng tại Việt Nam còn thấp
Các ISP Việt Nam vẫn chưa thực sự bắt tay vào việc nghiên cứu, hoạch định và
xây dựng kế hoạch sử dụng thế hệ địa chỉ IPv6
Tính đến tháng 6/2010, Việt Nam là Quốc gia đứng thứ 38 trên thế giới về số
lượng vùng địa chỉ IPv6 được cấp phát.
11
CHƯƠNG II: GIAO THỨC BẢO MẬT IPSEC TRONG IPV6
I. Tổng quan về giao thức IPSEC
1. Tổng quan
IPsec thực hiện mã hóa và xác thực ở lớp mạng. Nó cung cấp một giải pháp an
toàn dữ liệu từ đầu cuối-đến-đầu cuối trong bản thân cấu trúc mạng (ví dụ khi thực
hiện mạng riêng ảo VPN). Vì vậy vấn đề an toàn được thực hiện mà không cần thay
đổi các ứng dụng cũng như các hệ thống cuối. Các gói mã hóa có khuôn dạng giống
như gói tin IP thông thường, nên chúng dễ dàng được định tuyến qua mạng Internet
mà không phải thay đổi các thiết bị mạng trung gian, qua đó cho phép giảm đáng kể
các chi phí cho việc triển khai và quản trị. IPsec cung cấp bốn chức năng quan trọng
sau:
- Bảo mật (mã hóa) - Confidentiality: Người gửi có thể mã hóa dữ liệu trước khi
truyền chúng qua mạng. Bằng cách đó, không ai có thể nghe trộm trên đường truyền.
Nếu giao tiếp bị ngăn chặn, dữ liệu không thể đọc được.
- Toàn vẹn dữ liệu - Data integrity: Người nhận có thể xác minh các dữ liệu
được truyền qua mạng Internet mà không bị thay đổi. IPsec đảm bảo toàn vẹn dữ liệu
bằng cách sử dụng checksums (cũng được biết đến như là một giá trị băm).
- Xác thực - Authentication: Xác thực đảm bảo kết nối được thực hiện và các
đúng đối tượng. Người nhận có thể xác thực nguồn gốc của gói tin, bảo đảm, xác thực
nguồn gốc của thông tin.
- Antireply protection: xác nhận mỗi gói tin là duy nhất và không trùng lặp.
IPsec là một nền (Frame work) kết hợp giao thức bảo mật và cung cấp mạng
riêng ảo với các dữ liệu bảo mật, toàn vẹn và xác thực. Làm việc với sự tập hợp của
các chuẩn mở được thiết lập để đảm bảo sự bảo mật dữ liệu, đảm bảo tính toàn vẹn dữ
liệu, và chứng thực dữ liệu giữa các thiết bị tham gia vào mạng VPN. Các thiết bị này
có thể là các host hoặc là các security gateway (routers, firewalls, VPN
concentrator,...) hoặc là giữa 1 host và gateway như trong trường hợp remote access
VPNs.
Các giao thức chính sử dụng trong IPsec:
- IP Security Protocol (IPsec)
+ Authentication Header (AH): cung cấp tính toàn vẹn phi kết nối và chứng
thực nguồn gốc dữ liệu cho các gói dữ liệu IP và bảo vệ chống lại các cuộc tấn công
replay.
+ Encapsulation Security Protocol (ESP): cung cấp tính năng bảo mật, chứng
thực nguồn gốc dữ liệu, tính toàn vẹn phi kết nối và dịch vụ chống replay.
- Message Encryption
+ Data Encryption Standard (DES): Được phát triển bởi IBM. DES sử dụng 1 khóa 56-
bít, đảm bảo hiệu năng mã hóa cao. DES là một hệ thống mã hóa khóa đối xứng.
+ Triple DES (3DES): là một biến thể của DES 56-bít. Hoạt động tương tự như DES,
trong đó dữ liệu được chia thành các khối 64 bít. 3DES thực thi mỗi khối ba lần, mỗi
lần với một khóa 56 bít độc lập. 3DES cung cấp sức mạnh khóa đáng kể so với DES.
12
- Message Integrity (Hash) Functions
+ Hash- based Message Authentication Code (HMAC) : là một thuật toán toàn
vẹn dữ liệu đảm bảo tính toàn vẹn của bản tin. Tại đầu cuối, bản tin và một khóa chia
sẻ bí mật được gửi thông qua một thuật toán băm, trong đó tạo ra một giá trị băm. Bản
tin và giá trị băm được gửi qua mạng. Hai dạng phổ biến của thuật toán HMAC như
sau:
i) Message Digest 5 (MD5): là một hàm băm để mã hóa với giá trị băm là 128
bít. MD5 biến đổi một thông điệp có chiều dài bất kỳ thành một khối có kích thước cố
định 128 bít. Thông điệp đưa vào sẽ được cắt thành các khối 512 bít, thông điệp sau đó
được độn sao cho chiều dài của nó chia chẵn cho 512.
ii) Secure Hash Algorithm-1,2 (SHA-1,2): Sử dụng một khóa 160 bít, 224 bít….
- Peer Authentication
+ Rivest, Shamir, and Adelman (RSA) Digital Signutures: là một hệ thống mật
mã khóa bất đối xứng. Nó sử dụng một chiều dài khóa là 512 bít, 768 bít, 1024 bít
hoặc lớn hơn. IPsec không sử dụng RSA để mã hóa dữ liệu. Chỉ sử dụng RSA để mã
hóa trong giai đoạn xác thực ngang hàng.
+ RSA Encrypted Nonces.
- Key Management
+ Diffie-Hellman (D-H).
+ Certificate Authority (CA).
- Security Association
+ Internet Exchange Key (IKE): IPsec dùng một giao thức thứ ba, Internet Key
Exchange (IKE), để thỏa thuận các giao thức bảo mật và các thuật toán mã hóa trước
và trong suốt phiên giao dịch.
+ Internet Security Association and Key Management Protocol (ISAKMP).
2. Chế độ vận hành
IPSEC có thể được hoạt động theo chế độ chuyển giao (transport mode) từ máy
chủ này đến máy chủ khác cũng như chế độ đường hầm (tunnel mode) trong mạng.
- Chế độ chuyển giao: chỉ có trọng tải (dữ liệu được truyền) của gói tin IP mới
được mã hóa và/hoặc chứng thực. Trong quá trình Routing cả IP header đều không bị
chỉnh sửa hay mã hóa. Transport mode sử dụng trong tình huống giao tiếp host to host.
- Chế độ Tunnel: Trong chế độ tunnel, toàn bộ gói tin IP sẽ được mã hóa
và/hoặc chứng thực. Sau đó nó được đóng gói vào một gói tin IP mới với tiêu đề IP
mới. Chế độ tunnel được sử dụng để tạo Virtual Private Network (mạng riêng ảo) phục
vụ cho việc liên lạc giữa các mạng, liên lạc giữa máy chủ và mạng (ví dụ như truy cập
người sử dụng từ xa), và giữa các máy chủ.
13
Hình 2.1. Chế độ hoạt động của IPsec.
II. Giao thức bảo mật IPsec trong 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ũ.
Giao thức IPsec được làm việc tại tầng Network Layer – Layer 3 của mô hình
OSI. Các giao thức bảo mật khác trên Internet như SSL, TLS và SSH được thực hiện
tại tầng Transport Layer trở lên (từ tầng 4 đến tầng 7 của mô hình OSI). Điều này tạo
ra tính mềm dẻo cho IPsec, giao thức này có thể hoạt động từ tầng 4 của TCP, UDP,
hầu hết các giao thức sử dụng tại tầng này. IPsec có một tính năng cao cấp hơn SSL và
các phương thức khác hoạt động tại các tầng trên của mô hình OSI. Với một ứng dụng
sử dụng IPsec mã (code) không bị thay đổi, nhưng nếu ứng dụng đó bắt buộc sử dụng
SSL và các giao thức bảo mật trên các tầng trên trong mô hình OSI thì đoạn mã ứng
dụng đó sẽ bị thay đổi lớn.
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ả.
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
14
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.2. Cấu trúc gói tin IPv6.
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.
- Soure 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.
15
Hình 2.3. Cấu trúc mào đầu của IPv6 Header.
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].
16
Hình 2.4. Next Value Headers.
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 2.5. Next Header.
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.
17
- Destination Options Header: Chỉ được xử lý bởi đích đến cuối cùng trong gói
tin.
- Upper-layer Header.
Hình 2.6. Ext Hdr Data.
2. Tích hợp bảo mật trong IPSEC trong IPv6
Cấu trúc địa chỉ IPv6 sử dụng IPsec để đảm bảo tính toàn vẹn, bảo mật và xác
thực nguồn gốc dữ liệu sử dụng hai mào đầu mở rộng tùy chọn: mào đầu Xác thực(AH -Authentication Header) và mào đầu Mã hóa (ESP - Encrypted Security Payload).
Hai Header này có thể được sử dụng chung hay riêng để hỗ trợ nhiều chức năng bảo
mật.
Các chế độ làm việc chính của giao thức IPsec, bao gồm:
- Transport mode: chế độ hoạt động này bảo vệ giao thức tầng trên và các ứng
dụng. Trong đó, phần IPsec header được chèn vào giữa phần IP header và phần header
của giao thức tầng trên.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. Transport mode có thể được dùng khi cả hai host hỗ trợ
IPsec. Hoạt động của ESP trong chế độ này được sử dụng để bảo vệ thông tin giữa hai
host cố định và bảo vệ các giao thức lớp trên của IP datagram. Trong Transport Mode,
AH header được chèn vào trong IP datagram sau IP header và các tuỳ chọn. Ở trong
chế độ này, AH được xem như phần tải đầu cuối tới đầu cuối (end-to-end payload),
nên sẽ xuất hiện sau các phần header mở rộng hop-to-hop, routing, và fragmentation.
Còn phần mào đầu đích (Destination Options Header) có thể được đặt trước hoặc sau
AH.
18
Hình 2.7. Ipsec trong chế độ Transport.
- Tunnel mode: chế độ này 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 đầu nguyên bản (Original Header) và phần đầu mới của IP. Trong chế độ
Tunnel IP header ở đầu vào mang địa chỉ nguồn và địa chỉ đích cuối cùng, còn IP
header ở đầu ra mang địa chỉ để định tuyến qua Internet. Trong chế độ này, AH bảo vệ
toàn bộ gói tin IP bên trong, bao gồm cả IP header đầu vào.
Hình 2.8. IPsec trong chế độ Tunnel.
3. Nguyên tắc hoạt động của các giao thức bảo mật trong địa chỉ IPv6
3.1. Nguyên tắc hoạt động của AH
AH được mô tả trong RFC 4302, là một IPSec header cung cấp xác thực gói tin
và kiểm tra tính toàn vẹn. AH cho phép xác thực và kiểm tra tính toàn vẹn dữ liệu của
các gói tin IP truyền giữa 2 hệ thống. Nó là phương tiện để kiểm tra xem dữ liệu có bị
thay đổi trong khi truyền hay không. Tuy nhiên các dữ liệu đều truyền dưới dạng bản
Plaintext vì AH không cung cấp khả năng mã hóa dữ liệu.
19
Hình 2.9. Định dạng mào đầu Ipsec AH.
Định dạng AH:
- Next Header: Trường này có độ dài 8 bits để xác định mào đầu tiếp theo sau
AH. Giá trị của trường này được lựa chọn từ các tập các giá trị IP Protocol Numbers
định nghĩa bởi IANA- Internet Assigned Numbers Authority (xem chi tiết Hình 4)
- Payload Length: Trường này có độ dài 8 bits để xác định độ dài của AH không
có tải.
- Reserved: Trường này có độ dài 16 bits dành để dự trữ cho việc sử dụng trong
tương lai. Giá trị của trường này được thiết lập bằng 0 bởi bên gửi và sẽ được loại bỏ
bởi bên nhận.
- SPI (Security Parameters index): Đây là một số 32 bits bất kì, cùng với địa chỉ
đích và giao thức an ninh ESP cho phép nhận dạng duy nhất chính sách liên kết bảo
mật SA (xác định giao thức IPSec và các thuật toán nào được dùng để áp dụng cho gói
tin) cho gói dữ liệu này. Các giá trị SPI 1-255 được dành riêng để sử dụng trong tương
lai. SPI thường được lựa chọn bởi phía thu khi thiết lập SA.
- Sequence Number: Trường này có độ dài 32 bits, chứa một giá trị đếm tăng
dần (SN), đây là trường không bắt buộc cho dù phía thu không thực hiện dịch vụ
chống trùng lặp cho một SA cụ thể nào đó. Việc thực hiện SN tùy thuộc phía thu,
nghĩa là phía phát luôn phải truyền trường này, còn phía thu có thể không cần phải xử
lí nó. Bộ đếm của phía phát và phía thu đều được khởi tạo 0 khi một SA được thiết lập
(Gói đầu tiên truyền đi với SA đó sẽ có SN=1).
- 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 (Integrity Check Value) cho gói tin, có độ dài là số nguyên lần 32 bits.
Trường này có thể chứa thêm một phần dữ liệu đệm để đảm bảo độ dài của AH header
là số nguyên lần 32 bít (đối với IPV4) hoặc 64 bít (đối với IPV6).
Chế độ xác thực:
- Xác thực từ đầu cuối đến đầu cuối (End-to-End Authentication): là trường hợp
xác thực trực tiếp giữa hai hệ thống đầu cuối (giữa máy chủ với trạm làm việc hoặc
20
giữa hai trạm làm việc), việc xác thực này có thể diễn ra trên cùng mạng nội bộ hoặc
giữa hai mạng khác nhau, chỉ cần hai đầu cuối biết được khoá bí mật của nhau. Trường
hợp này sử dụng chế độ vận chuyển (Transport Mode) của AH.
- Xác thực từ đầu cuối đến trung gian (End-to-Intermediate Authentication): là
trường hợp xác thực giữa hệ thống đầu cuối với một thiết bị trung gian (router hoặc
firewall). Trường hợp này sử dụng chế độ đường hầm (Tunnel Mode) của AH.
Hình 2.10. Hai chế độ xác thực của AH.
Gói tin IPv6 AH ở chế độ Transport:
Hình 2.11: Mào đầu được xác thực trong chế độ IPv6 AH Transport.
Gói tin IPv6 AH ở chế độ Tunnel:
Hình 2.12. Mào đầu được xác thực trong chế độ IPv6 AH Tunnel.
21
Nguyên tắc hoạt động của AH gồm 4 bước:
B1: AH sẽ đem gói dữ liệu (packet) bao gồm : Payload + IP Header + Key cho
chạy qua giải thuật Hash 1 chiều và cho ra 1 chuỗi số và chuỗi số này sẽ được gán vào
AH Header.
B2: AH Header này sẽ được chèn vào giữa Payload và IP Header và chuyển
sang phía bên kia.
B3: Router đích sau khi nhận được gói tin này bao gồm: IP Header + AH
Header + Payload sẽ được cho qua giải thuật Hash một lần nữa để cho ra một chuỗi số.
B4: so sánh chuỗi số nó vừa tạo ra và chuỗi số của nó nếu giống nhau thì nó
chấp nhận gói tin.
Hình 2.13. Mô tả AH xác thực và đảm bảo tính toàn vẹn dữ liệu.
3.2. Nguyên tắc hoạt động của ESP
ESP Header được mô tả trong RFC 4303, cung cấp mã hóa bảo mật và toàn vẹn
dữ liệu trên mỗi điểm kết nối IPv6. ESP là một giao thức an toàn cho phép mật mã dữ
liệu, xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn của dữ liệu. Khác với AH, ESP
cung cấp khả năng bí mật của thông tin thông qua việc mã hóa gói tin ở lớp IP, tất cả
các lưu lượng ESP đều được mã hóa giữa 2 hệ thống, do đó xu hướng sử dụng ESP
nhiều hơn AH trong tương lai để làm tăng tính an toàn cho dữ liệu. Sau khi đóng gói
xong bằng ESP, mọi thông tin và mã hoá và giải mã sẽ nằm trong ESP Header. Các
thuật toán mã hoá sử dụng trong giao thức như: DES, 3DES, AES. Định dạng của ESP
Header như sau:
22
Hình 2.14.S Định dạng mào đầu IPsec ESP
Định dạng ESP: ESP thêm một header và Trailer vào xung quanh nội dung của
mỗi gói tin.
- SPI (Security Parameters Index): Trường này tương tự như bên AH.
- SN (Sequence Number): Trường này tương tự như bên AH.
- Payload Data: Trường này có độ dài biến đổi chứa dữ liệu mô tả bên trong
Next Header. Đây là trường bắt buộc và có độ dài là số nguyên lần bytes.
- Padding: Trường này được thêm vào bởi nếu thuật toán mật mã được sử dụng
yêu cầu bản rõ (plaintext) thì padding được sử dụng để điền vào plaintext (bao gồm
các trường Payload Data, Pad Length, Next Header và Padding) để có kích thước theo
yêu cầu.
- IVC: Giá trị kiểm tra tính toàn vẹn, là trường có độ dài thay đổi được tính trên
các trường ESP trailer, Payload, ESP header. Thực chất các trường ESP trailer đã bao
gồm kiểm tra tính toàn vẹn (IVC).
23
Gói tin IPv6 ESP ở chế độ Transport:
Hình 2.15. Mào đầu được mã hóa trong chế độ IPv6 ESP Transport.
Gói tin IPv6 ESP ở chế độ Tunnel:
Hình 2.16. Mào đầu được mã hóa trong chế độ IPv6 ESP Tunnel.
Nguyên tắc hoạt động:
Về nguyên tắc hoạt động thì ESP sử dụng mật mã đối xứng để cung cấp sự mật
hoá dữ liệu cho các gói tin IPSec. Cho nên, để kết nối của cả hai đầu cuối đều được
bảo vệ bởi mã hoá ESP thì hai bên phải sử dụng key giống nhau mới mã hoá và giải
mã được gói tin. Khi một đầu cuối mã hoá dữ liệu, nó sẽ chia dữ liệu thành các khối
(block) nhỏ, và sau đó thực hiện thao tác mã hoá nhiều lần sử dụng các block dữ liệu
và khóa (key). Khi một đầu cuối khác nhận được dữ liệu mã hoá, nó thực hiện giải mã
sử dụng key giống nhau và quá trình thực hiện tương tự, nhưng trong bước này ngược
với thao tác mã hoá.
Hình 2.17. Nguyên tắc hoạt động của ESP Header.
24
So sánh giữa AH và ESP:
Tính bảo mật
AH
ESP
Giao thức IP lớp 3
51
50
Toàn vẹn dữ liệu
Có
Có
Xác thực dữ liệu
Có
Có
Mã hóa dữ liệu
Không
Có
Chống tấn công phát
Có
lại
Có
Hoạt động với NAT
Không
Có
Hoạt động với PAT
Không
Không
Bảo vệ gói tin IP
Có
Không
Chỉ bảo vệ dữ liệu
Không
Có
3.3. Quản lý khóa
Để áp dụng hai mào đầu AH và ESP yêu cầu các bên tham gia phải thỏa thuận
một khóa chung để sử dụng trong việc kiểm tra an toàn thông tin.
- Quản lý khóa thủ công: IPv6 yêu cầu tất cả các thao tác đều có thể cho phép
thiết lập thủ công khóa bí mật. Công nghệ cấu hình bằng tay được cho phép trong
IPsec chuẩn và có thể được chấp nhận để cấu hình một hay hai gateway nhưng việc gõ
key bằng tay không thích hợp trong một số trường hợp số lượng các gateway nhiều và
cũng gây ra các vấn đề không an toàn trong quá trình tạo khóa.
- Quản lý khóa tự động.
- Internet Key Exchange (IKE) cung cấp key một cách tự động, quản lý SA hai
chiều, tạo key và quản lý key. IKE thương thuyết trong hai giai đoạn.
+ Giai đoạn 1: thương thuyết bảo mật, kênh chứng thực mà dựa trên đó hệ
thống có thể thương thuyết nhiều giao thức khác. Chúng đồng ý thuật toán mã hoá,
thuật toán hash, phương pháp chứng thực và nhóm Diffie-Hellman để trao đổi key và
thông tin.
+ Giai đoạn 2: xác định dịch vụ được sử dụng bởi IPsec. Chúng đồng ý giao
thức IPsec, thuật toán hash, và thuật toán mã hoá. Một SA được tạo ra cho inbound và
outbound của mỗi giao thức được sử dụng.
25