ỨNG DỤNG CHUẨN MÃ HÓA NÂNG CAO (AES) TRONG GIAO
THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP)
i
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------
ĐẶNG VĂN TUẤN
ỨNG DỤNG CHUẨN MÃ HÓA NÂNG CAO (AES) TRONG GIAO
THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP)
CHUYÊN NGÀNH : KỸ THUẬT VIỄN THÔNG
MÃ SỐ: 60.52.02.08
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
HÀ NỘI – NĂM 2014
ii
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS. Ngô Đức Thiện
(Ghi rõ học hàm, học vị)
Phản biện 1: PGS.TS. Trần Hồng Quân
Phản biện 2: PGS.TS. Trương Vũ Bằng Giang
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại
Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: 8 giờ 30 ngày 15 tháng 02 năm 2014
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1
MỞ ĐẦU
Với sự phát triển nhanh chóng của khoa hoc và công nghệ, tốc độ xử
lý của các bộ vi xử lý ngày càng cao, phương pháp mã hóa tiêu chuẩn
(DES - Data Encryption Standard) đã trở nên không an toàn trong bảo mật
thông tin do độ dài khóa mã ngắn (56 bits). Thuật toán Rijndael của hai tác
giả Vincent Rijmen và Joan Daeman đã được Viện tiêu chuẩn và công
nghệ Hoa kỳ (NIST - National Institute Standards of Technology) chính
thức chọn trở thành chuẩn mã hóa nâng cao (AES - Advanced Encryption
Standard) từ ngày 02 tháng 10 năm 2000 nhằm phục vụ nhu cầu bảo mật
thông tin liên lạc của Chính phủ Hoa Kỳ cũng như trong các ứng dụng dân
sự.
Ngày nay, ứng dụng của chuẩn mật mã nâng cao đang được sử dụng
ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới. Chuẩn mật
mã nâng cao không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn
bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giải quyết như
ứng dụng trong các giao thức bảo mật dữ liệu truyền đi trên mạng Internet.
Với sự phát triển ngày càng nhanh chóng của Internet và các ứng
dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ
thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức
quan trọng. Vì thế việc nghiên cứu về chuẩn mật mã nâng cao và ứng dụng
nó trong các trường bảo mật thông tin là rất cần thiết.
Ngoài phần mở đầu, kết luận và mục tài liệu tham khảo luận văn
gồm 3 chương:
Chương 1: Tổng quan về chuẩn mã hóa nâng cao (AES)
Chương 2: Giao thức đóng gói bảo mật dữ liệu (ESP)
Chương 3: Ứng dụng của chuẩn mã hóa nâng cao trong giao thức
đóng gói bảo mật dữ liệu
2
CHƢƠNG 1: TỔNG QUAN VỀ CHUẨN MÃ HÓA NÂNG CAO
(AES)
1.1. Đặt vấn đề
Với tốc độ và khả năng xử lý của các bộ vi xử lý ngày càng được
nâng cao, phương pháp mã hóa chuẩn DES, Tri DES đã trở nên không an
toàn trong bảo mật thông tin. Vì thế cần nghiên cứu chuẩn mật mã đáp ứng
được nhu cầu bảo mật thông tin, và chuẩn mã hóa nâng cao AES ra đời.
Có năm thuật toán được vào vòng chung kết, gồm có: Mars, RC6,
Serpent, Twofish và Rijndael. Các thuật toán này đều đạt các yêu cầu của
AES nên được gọi chung là các thuật toán ứng viên AES. Các thuật toán
ứng viên AES có độ an toàn cao, chi phí thực hiện thấp. Tuy nhiên với
thiết kế đẹp và đơn giản thuật toán Rijndael do hai nhà mật mã học người
Bỉ là Joan Deamen và Vincent Rijmen thiết kế đã được chọn là thuật toán
của AES.
1.2. Thuật toán AES
Cơ sở toán học của AES
Trong AES các phép toán cộng và nhân được thực hiện trên các byte
trong trường hữu hạn Galois GF( ). Các phần tử của trường GF( )
được xem như là các đa thức. [1]
Phép cộng:
Phép cộng giữa hai phần tử (các byte) trong trường hữu hạn được
thực hiện bằng cách cộng theo modulo 2 các bít tương ứng trong biểu diễn
của các byte này. Phép cộng các byte A và B với:
A a1 a 2
a3 a 4
a5 a6
a7
a8
B b1 b2
b3 b 4
b5
b7
b8
là C = A + B với
trong đó
b6
C c1 c2 c3 c4 c5 c6 c7 c8
Ci a i bi mod 2
với
i 1,8
Các phần tử của trường hữu hạn còn có thể được biểu diễn dưới dạng
đa thức. Ví dụ tổng của
73H 4EH 3DH
A 73H
và
B 4EH
(viết dưới dạng cơ số 16 - hexa) là:
3
Viết dưới dạng nhị phân:
01110011 01001110 00111101
Viết dưới dạng đa thức:
x
6
x5 x 4 x 1 x 6 x3 x 2 x x5 x 4 x3 x 2 1
Phép nhân:
Phép nhân được thực hiện trên GF(
) bằng cách nhân hai đa thức
rút gọn theo modulo của một đa thức bất khả quy m(x).
Trong AES đa thức bất khả quy này là
m x x8 x 4 x 3 x 1
Ví dụ:
A C3H , B 85H
a x x7 x6 x 1
tương ứng với:
và b x x7 x 2 1
Khi đó C = A. B
c x a x .b x mod x8 x 4 x 3 x 1
c x x7 x5 x3 x 2 x
hay
C AEH 10101110
1.3. Mô tả AES theo Rijndael
1.3.1. Đầu vào và đầu ra của phép mã và giải mã
AES mã hóa một khối bản rõ M 128 bít thành một khối bản mã C
128 bít bằng cách dùng một khóa mã K có độ dài 128 bít (hoặc 192 hoặc
256 bít) tương ứng với AES-128 (hoặc AES-192 hoặc AES-256). Thuật
toán thực hiện trên các byte và kích thước khối đối với đầu vào đầu ra và
khóa được biểu thị bằng các từ 32 bít (4 byte). Đối với phép mã hóa, đầu
vào là khối rõ và khóa, đầu ra là bản mã. Đối với phép giải mã, đầu vào là
khối mã và khóa, đầu ra là khối rõ. Biến đổi vòng của Rijndael và các
bước của nó, thao tác trên một kết quả trung gian, được gọi là trạng thái.
Trạng thái có thể được vẽ như là một mảng chữ nhật các byte với 4 dòng.
Số các cột trong trạng thái được ký hiệu bởi Nb và bằng độ dài khối chia
cho 32 (đối với AES thì Nb bằng 4). Độ dài khóa thì được ký hiệu bởi Nk
=4, 6, hoặc 8 (bằng độ dài khóa chia cho 32 bit word). Số các vòng được
4
ký hiệu bởi Nr và phụ thuộc vào độ dài khối và độ dài khóa, với N r = 10
khi Nk = 4, Nr = 12 khi Nk = 6, Nr = 14 khi Nk = 8.
Bảng 1.1: Bảng kết hợp độ dài khóa- kích thƣớc khối- số vòng
1.3.2.
Cấu trúc AES
Rijndael là một mã khối khóa - lặp: nó bao gồm việc áp dụng lặp một
ánh xạ vòng trên trạng thái. Hình vẽ 1.1 sau minh họa cấu trúc cơ sở của
thuật toán AES.
Hình 1.1: Cấu trúc cơ sở của thuật toán AES
Tầng phi tuyến: Áp dụng song song của các S - box mà có các tính
chất phi tuyến trong trường hợp tối ưu nhất.
Tầng trộn tuyến tính: Đảm bảo khuếch tán cao qua nhiều vòng.
Tầng cộng khóa: Là phép XOR từng bit của Round key và trạng thái
trung gian.
Trong thực tế, tầng trộn tuyến tính của Rijndael lại bao gồm hai tầng
con, đó là ShiftRows và MixColumns.
1.3.3.
Quy trình mã hóa và giải mã
Quy trình mã hóa và giải mã AES sử dụng một hàm lặp là kết hợp
5
của bốn hàm biến đổi sau (đơn vị xử lý là byte):
+ Mỗi byte trong trạng thái sẽ được thay thế bằng một byte khác sử
dụng theo bảng thế (S-box).
+ Dịch chuyển, các hàng trong trạng thái được dịch vòng theo số
bước khác nhau.
+ Quá trình trộn làm việc theo các cột trong khối theo một phép biến
đổi tuyến tính.
+ Cộng một khóa RoundKey vào trạng thái.
Giải mã AES bằng cách biến đổi ngược của các biến đổi ở phép mã
hóa AES hoặc bằng cách biến đổi tương đương. Các biến đổi này được
minh họa qua hình 1.2 dưới đây (với độ dài khóa 128bits, Nr =10) [1]:
Hình 1.2: Quy trình mã hóa và giải mã AES
1.3.3.1. Quy trình mã hóa
Toàn bộ của phép mã hóa có thể mô tả như sau:
(1) S = AddRoundKey (P,W0)
(2) For i = 1 to Nr -1
S = SubBytes (S)
S = ShiftRows (S)
S = MixColumns (S)
S = AddRoundKey (S, W)
(3) S = SubBytes (S), S = ShiftRows (S)
6
(4)
C = AddRoundKey (S, WNr)
1.3.3.2. Quy trình giải mã
Giải mã Rijndael có 2 cách giải mã đó là: giải mã trực tiếp và giải mã
bằng thuật toán giải mã tương đương.
Giải mã trực tiếp: Mọi biến đổi được dùng trong các phép tính mã
hóa là khả nghịch. Cài đặt phép tính giải mã là giữ nguyên các thứ tự các
biến đổi đã dùng trong phép mã hóa, chỉ thay các phép biến đổi bằng các
biến đổi ngược của chúng.
Giải mã tương đương: được thực hiện bằng cách đảo ngược thứ tự
của hàm SubByte-1() và ShiftRows-1(), thay đổi thứ tự của
AddRoundKey(), MixColumns-1 () trong các lần lặp sau khi thay đổi khóa
cho giá trị Round = 1 → Nr-1 bằng cách sử dụng biến đổi MixColumns().
Các từ đầu tiên và cuối cùng của danh sách khóa không bị thay đổi khi ta
áp dụng phương pháp này.
1.3.4.
1.3.4.1.
Các phép biến đổi trong mã hóa và giải mã AES
Biến đổi SubBytes()
Biến đổi SubBytes() thay thế mỗi byte riêng rẽ của state sr,c bằng một
giá trị mới s’r,c sử dụng bảng thay thế (S - box), nó là bảng có ngược. Hình
1.3 chỉ ra ảnh hưởng của biến đổi SubBytes() trên state [1]
Hình 1.3: SubBytes() áp dụng S - box cho mỗi byte của state
1.3.4.2. Biến đổi ShiftRows()
Hình 1.4 chỉ ra biến đổi ShiftRows()
7
Hình 1.4: Dịch vòng ShiftRows() ba hàng cuối cùng trong state
Trong biến đổi ShiftRows(), các byte trong ba hàng cuối cùng của
trạng thái được dịch vòng đi các số byte khác nhau (độ lệch). Cụ thể, biến
đổi ShiftRows(), xử lý như sau:
s’rc = sr(c+r) mod 4, với 0 < r < 4 và 0 c <4 (trong đó r là số hàng)
1.3.4.3.
Biến đổi MixColumns()
Biến đổi MixColumns() tính toán trên từng cột của state. Các cột
được coi như là đa thức trong trường GF(28) và nhân với một đa thức a(x)
theo modulo (x4+1), với [1]
a(x) = (03)x3 +(01)x2 +(01)x + (02)
Biến đổi này có thể được trình bày như phép nhân một ma trận, mà
mỗi byte được hiểu như là một phần tử trong trường GF(28):
s’(x) = a(x) s(x):
Vì kết quả của phép nhân này, bốn byte trong một cột được thay thế
như sau:
S’0,c = ({02} s0,c) ({03} s1,c) s2,c s3,c
S’1,c = s0,c ({02} s1,c) ({03} s2,c) s3,c
S’2,c = s0,c s1,c ({02} s2,c) ({03} s3,c)
S’3,c = ({03} s0,c) s1,c s2,c ({02} s3,c)
Phép trong biểu thức này ký hiệu phép cộng trong GF(28), mà
tương ứng với phép XOR từng bit. Hình 1.5 chỉ ra biến đổi MixColumns ()
8
Hình 1.5: MixColumns() tính toán trên từng cột của state
1.3.4.4.
Biến đổi Addroundkey()
Trong biến đổi Addroundkey(), một khóa vòng được cộng với state
bằng một phép XOR theo từng bit đơn giản. Mỗi khóa vòng gồm có 4 từ
(128 bit) được lấy từ lịch trình khóa. 4 từ đó được cộng vào mỗi cột của
state, sao cho:
[s’0,c, s’1,c, s’2,c, s’3,c ] = [s0,c, s1,c, s2,c, s3,c ] [w(4*i + c)]
với 0 c < 4.
Trong đó w(4*i + c) là các từ thứ c của khóa vòng thứ i
wi = [w(4*i), w(4*i + 1), w(4*i + 2), w(4*i + 3) ]
của lịch trình khóa và i là một giá trị nằm trong khoảng 0 i Nr. Trong
phép mã hóa, phép cộng khóa vòng khởi đầu thực hiện với i = 0, trước khi
áp dụng đầu tiên của hàm vòng. Việc áp dụng biến đổi Addroundkey() vào
Nr vòng của phép mã hóa xày ra khi 1 i Nr.
Biến đổi vòng và số các vòng
Biến đổi vòng của Rijndael và các bước của nó, thao tác trên một kết
quả trung gian, được gọi là byte với 4 dòng. Số các cột trong trạng thái ký
1.3.5.
hiệu bởi Nb và bằng độ dài khối chia cho 32 (đối với AES thì Nb bằng 4).
Số vòng biến đổi, ký hiệu là Nr theo công thức: Nr = max {Nb, Nk} +
6.
Lịch trình khóa
Lịch trình khóa bao gồm 2 thành phần: mở rộng khóa (Key
Expansion) và chọn khóa vòng (Round Key Selection). Mở rộng khóa chỉ
1.3.6.
ra các ExpandedKey nhận được từ khóa mã. Để có tính hiệu quả đối với
các bộ xử lý 8 bit, lược đồ kéo dài đơn giản, định hướng byte đã được chấp
9
nhận. Việc áp dụng phép thế SRD phi tuyến đảm bảo tính phi tuyến của
lược đồ, không cần phải thêm nhiều các yêu cầu lưu trữ tạm thời trên bộ
xử lý 8 bit.
Kéo dài khóa
Trong khi kéo dài khóa, khóa mã được kéo dài thành mảng khóa kéo
dài, bao gồm 4 dòng và Nb(Nr + 1) cột. Mảng này được ký hiệu bởi
W[4][Nb (Nr +1)]. Hàm kéo dài khóa phụ thuộc vào giá trị của N k: Có một
1.3.7.
phiên bản cho Nk 6, và một phiên bản cho Nk > 6.
1.4. Phạm vi, ý nghĩa và ứng dụng của AES
1.4.1.
Phạm vi và ý nghĩa của AES
Phạm vi chính thức của một chuẩn FIPS là tương đối hạn chế: FIPS
chỉ áp dụng cho hành chính liên bang. Hơn thế nữa, AES mới chỉ được sử
dụng cho các tài liệu chứa thông tin nhạy cảm nhưng không mật. AES từ
khi được chấp nhận đã được sử dụng như một chuẩn mật mã ngầm định
trên toàn thế giới. Việc chấp nhận Rijndael như một chuẩn chính phủ đã
đem đến cho nó một số sự chứng thực về chất lượng.
Các nhân tố chính làm cho sự chấp nhận nhanh chóng đối với
Rijndael là việc nó không có bản quyền, có thể cài đặt dễ dàng.
1.4.2. Ưu, nhược điểm của AES
1.4.2.1. Ưu điểm
+) AES đã được chính phủ Hoa kỳ tuyến bố là có độ an toàn cao, và
đã được sử dụng thông tin mật;
+) AES có mô tả toán học đơn giản;
+) Cấu trúc rõ ràng đơn giản.
1.4.2.2. Nhược điểm
+) AES không đủ an toàn đối với dạng tấn công (side channel
attack).
+) Cấu trúc toán học của AES có mô tả toán học khá đơn giản. Tuy
điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu
sợ rằng sẽ có người lợi dụng được cấu trúc này trong tương lai.
10
1.4.3. Ứng dụng của AES
+) Hiện nay, AES được sử dụng phổ biến trên toàn thế giới để bảo vệ
dữ liệu ở các tổ chức ngân hàng, tài chính, chính phủ, thương mại điện tử,
chữ ký điện tử;…
+) Mã hóa AES được ứng dụng nhanh đối với cả phần cứng và phần
mềm, và chỉ yêu cầu một không gian lưu trữ nhỏ, lý tưởng để sử dụng cho
việc mã hóa những thiết bị cầm tay nhỏ như ổ USB flash, ổ đĩa CD;…
+) Sử dụng trong đóng gói bảo mật dữ liệu;
+) Sử dụng trong các giao thức mạng như VPN-IPsec, wifi
Kết luận chƣơng I
Chương I đã đưa ra được cấu trúc của AES, các bước mã hóa và giải
mã của thuật toán AES. Ngoài ra, tất cả các bước của việc mã hóa và giải
mã đều được thiết kế thích hợp với cơ chế xử lý song song nên AES càng
chứng tỏ thế mạnh của mình trên các hệ thống thiết bị mới. Tuy nhiên, vẫn
tồn tại một số hạn chế mà hầu hết liên quan đến quá trình giải mã.
11
CHƢƠNG II: GIAO THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP)
2.1. Giới thiệu về giao thức ESP
Tiêu đề ESP được thiết kế để cung cấp một kết hợp các dịch vụ bảo
mật trong IPv4 và IPv6. ESP có thể được áp dụng một mình, hoặc kết hợp
với AH, hoặc trong dạng kết hợp cả ESP và AH. Dịch vụ bảo mật có thể
được cung cấp giữa một cặp giao tiếp máy chủ, giữa một cặp giao tiếp
cổng an ninh, hoặc giữa một cổng an ninh và một máy chủ. Tiêu đề ESP
được chèn vào sau tiêu đề IP và trước tiêu đề giao thức lớp kế tiếp (chế độ
vận chuyển) hoặc trước một tiêu đề IP đóng gói (chế độ đường hầm). [10]
Mặc dù bảo mật và toàn vẹn có thể được cung cấp một cách độc lập,
ESP thường sẽ sử dụng cả hai dịch vụ, tức là, các gói dữ liệu sẽ được bảo
vệ liên quan đến bảo mật và tính toàn vẹn. Do đó, có ba kết hợp dịch vụ
bảo mật ESP có thể liên quan đến các dịch vụ:
- Chỉ có bảo mật (có thể được hỗ trợ)
- Chỉ có tính toàn vẹn (phải được hỗ trợ)
- Kết hợp cả bảo mật và tính toàn vẹn (phải được hỗ trợ)
2.2. Định dạng gói tin của ESP
Hình 2.1: Định dạng Top-Level của một gói ESP
Hình 2.1 minh họa định dạng Top-Level của một gói ESP [10]. Gói tin
bắt đầu với hai trường 4-byte (Security parameters index (SPI) và
Sequence Number). Sau các trường này là Payload Data, mà cấu trúc của
nó phụ thuộc vào sự lựa chọn chế độ và thuật toán mã hóa, và việc sử
dụng TFC (Traffic Flow Confidentiality) đệm. Sau trường Payload Data là
12
các trường Padding và Pad Length, và trường Next Header. Trường
Integrity Check Value (ICV) là cuối cùng của gói.
Payload Data có thể có cấu trúc con. Một thuật toán mã hóa đòi hỏi
một Vector khởi tạo rõ ràng (IV), ví dụ như, chế độ chuỗi khối mã (CBC),
thường thì tiền tố Payload Data được bảo vệ với giá trị đó. Một số thuật
toán kết hợp chế độ bảo mật và toàn vẹn vào một hoạt động đơn lẻ, chế độ
thuật toán như vậy là "thuật toán chế độ kết hợp". Sự thuận tiện của thuật
toán chế độ kết hợp đòi hỏi rằng thuật toán mô tả một cách rõ ràng cấu trúc
con của tải trọng được sử dụng để truyền tải toàn vẹn dữ liệu.
Hình 2.2: Cấu trúc con của Payload Data
2.2.1. Chỉ số các tham số bảo mật ( SPI )
SPI là một giá trị 32-bit tùy ý được sử dụng bởi phía thu để xác định
SA mà một gói tin đến được ràng buộc. Trường SPI là bắt buộc.
2.2.2. Chuỗi số
Trường 32- bit này chứa một giá trị đếm mà sẽ tăng một cho mỗi gói
tin gửi đi, tức là, một số thứ tự trên mỗi gói SA. Đối với một SA unicast
hoặc một người gửi đơn lẻ SA multicast, người gửi phải tăng trường này
cho mỗi gói tin truyền đi.
Chuỗi số mở rộng ( 64-bit)
Cơ sở ESN cho phép sử dụng một chuỗi số 64-bit cho một SA. Chỉ
có 32 bits bậc thấp của chuỗi số được truyền đi trong bản rõ ESP header
của mỗi gói tin, do đó giảm thiểu chi phí gói. Các 32 bits bậc cao được duy
trì như một phần của bộ đếm chuỗi số bởi cả hai bộ truyền và nhận và
13
được bao gồm trong các tính toán của ICV (nếu dịch vụ toàn vẹn được
chọn). Nếu một thuật toán toàn vẹn riêng biệt được sử dụng, các bits bậc
cao có trong ESP trailer ngầm định, nhưng không truyền đi, tương tự như
thuật toán toàn vẹn bits đệm. Nếu một thuật toán chế độ kết hợp được sử
dụng, sự lựa chọn thuật toán xác định xem ESN bits bậc cao được truyền
hoặc được bao gồm ngầm định trong tính toán.
2.2.3. Tải trọng dữ liệu
Tải trọng dữ liệu là một trường có chiều dài thay đổi chứa dữ liệu (
từ các gói tin IP ban đầu ) được mô tả bởi trường Next Header. Trường
Payload Data là bắt buộc và có chiều dài là một số nguyên byte. Nếu thuật
toán được sử dụng để mã hóa tải trọng yêu cầu đồng bộ hóa dữ liệu mã
hóa, ví dụ như, một vector khởi tạo (IV), sau đó dữ liệu này được thực
hiện một cách rõ ràng trong trường Payload, nhưng nó không được gọi ra
như là một trường riêng biệt trong ESP, tức là, việc truyền tải của một IV
rõ ràng là vô hình đối với ESP.
2.2.4. Đệm ( cho mã hóa )
Hai yếu tố chính yêu cầu hoặc khuyến khích sử dụng trường đệm.
- Nếu một thuật toán mã hóa được sử dụng yêu cầu phải có bản rõ là một
bội số của một số của byte, ví dụ, kích thước khối của một khối mã,
trường đệm được sử dụng để điền vào bản rõ (bao gồm các trường
Payload Data, Padding, Pad Length, và Next Header) với kích thước
theo yêu cầu của thuật toán.
- Đệm cũng có thể được yêu cầu, không phân biệt các yêu cầu về thuật
toán mã hóa, để đảm bảo rằng kết quả bản mã kết thúc trong một giới
hạn 4 bytes. Cụ thể, các trường Pad Length và Next Header phải được
phải liên kết trong một từ 4 bytes, như minh họa trong định dạng gói tin
ESP phía trên, để đảm bảo rằng trường ICV (nếu có) được xếp trên một
giới hạn 4 bytes.
14
2.2.5. Pad Length
Trường độ dài đệm cho biết số byte đệm ngay trước nó trong trường
đệm. Phạm vi của các giá trị hợp lệ là từ 0 đến 255, trong đó giá trị 0 chỉ ra
rằng không có byte đệm nào. Như đã nói ở trên, trường này không bao
gồm bất kỳ byte đệm TFC nào. Trường độ dài đệm là bắt buộc.
2.2.6. Next Header
Trường Next Header là một trường bắt buộc, có độ dài 8 bits để xác
định các loại dữ liệu chứa trong trường Payload Data, ví dụ, một gói tin
IPv4 hay IPv6, hoặc một tiêu đề lớp tiếp theo và dữ liệu. Giá trị của trường
này được chọn từ tập các số giao thức IP được xác định trên trang web của
IANA, ví dụ, một giá trị của 4 cho biết IPv4, giá trị 41 cho biết IPv6, và
giá trị 6 cho biết là giao thức TCP.
2.2.7. Bảo mật luồng lưu lượng (TFC) đệm
Về nguyên tắc, việc triển khai IPsec hiện tại có thể đã sử dụng năng
lực này trước đây một cách rõ ràng. Tuy nhiên, do phía thu có thể không
được chuẩn bị để đối phó với lớp đệm này, giao thức quản lý SA phải đàm
phán dịch vụ này trước khi phía phát sử dụng nó, để đảm bảo tính tương
thích ngược. Kết hợp với các thỏa thuận được mô tả trong phần trên, về
việc sử dụng giao thức ID 59, việc triển khai ESP là khả năng tạo ra các
gói tin giả và thực sự thể hiện chiều dài biến đổi lớn hơn nhiều, trong hỗ
trợ của TFC.
2.2.8. Giá trị kiểm tra tính toàn vẹn (ICV)
Giá trị kiểm tra tính toàn vẹn là một trường có chiều dài thay đổi tính
trên các trường tiêu đề ESP, tải trọng, và ESP Trailer. Trường ESP Trailer
ngầm định (tính toàn vẹn đệm và ESN bits bậc cao, nếu có) được bao gồm
trong các tính toán ICV. Trường ICV là tùy chọn. Nó chỉ có mặt nếu các
dịch vụ toàn vẹn được chọn và được cung cấp bởi một thuật toán toàn vẹn
riêng biệt hoặc một thuật toán chế độ kết hợp sử dụng một ICV. Chiều dài
của trường này được xác định bởi thuật toán toàn vẹn lựa chọn và kết hợp
với SA.
15
2.3. Quá trình đóng gói bảo mật dữ liệu
2.3.1. Chế độ xử lý
ESP có thể được sử dụng trong hai phương thức xử lý: chế độ vận
chuyển hoặc chế độ đường hầm [6].
2.3.1.1. Xử lý chế độ vận chuyển
2.3.1.2. Xử lý chế độ đường hầm
2.3.2. Các thuật toán
Các thuật toán bắt buộc thực hiện để sử dụng với ESP, để tạo điều
kiện cập nhật các yêu cầu thuật toán độc lập với các giao thức cho mỗi gia
nhập. Các thuật toán bổ sung, ngoài những thuật toán bắt buộc cho ESP, có
thể cũng được hỗ trợ. Mặc dù cả tính bảo mật và tính toàn vẹn là tùy chọn,
ít nhất một trong các dịch vụ này phải được lựa chọn, do đó cả hai thuật
toán không thể không thực hiện cùng một lúc.
2.3.2.1. Thuật toán mã hóa
2.3.2.2. Thuật toán toàn vẹn
2.3.2.3. Chế độ kết hợp thuật toán
2.3.3. Quá trình xử lý gói tin đi
Trong chế độ vận chuyển, người gửi đóng gói thông tin giao thức lớp
tiếp theo giữa các tiêu đề ESP và các trường ESP Trailer, và giữ lại tiêu đề
IP được chỉ định (và bất kỳ tiêu đề IP mở rộng trong trường hợp IPv6).
Trong chế độ đường hầm, bên ngoài và bên trong tiêu đề IP / phần mở
rộng có thể liên hệ với nhau bằng nhiều cách khác nhau.
2.3.3.1. Tra cứu bảo mật liên quan
ESP được áp dụng cho một gói tin đi chỉ sau một thực hiện IPsec xác
định rằng các gói dữ liệu có liên quan đến SA mà các cuộc gọi cho quá
trình ESP. Quá trình xác định những gì, nếu có, xử lý IPsec được áp dụng
cho lưu lượng đi được mô tả trong kiến trúc bảo mật.
2.3.3.2. Tính toán mã hóa gói tin và giá trị kiểm tra tính toàn vẹn (ICV)
Trong phần này, ta nói về mã hóa luôn luôn được áp dụng vì những
tác động định dạng. Điều này được thực hiện biết rằng "không có bảo mật"
16
được cung cấp bằng cách sử dụng thuật toán mã hóa NULL (là thuật toán
cung cấp tính xác thực và toàn vẹn mà không cần bảo mật). Có nhiều lựa
chọn thuật toán.
2.3.3.2.1. Thuật toán bảo mật và toàn vẹn riêng biệt
2.3.3.2.2. Thuật toán kết hợp bảo mật và toàn vẹn
2.3.3.3. Khởi tạo Sequence Number
Bộ đếm của người gửi được khởi tạo bằng 0 khi SA được thành lập.
Người gửi gia tăng chuỗi số (hoặc ESN) bộ đếm cho SA này và chèn 32
bit bậc thấp của giá trị vào trường Sequence Number. Do đó, các gói tin
đầu tiên được gửi bằng cách sử dụng SA cho sẽ có một số thứ tự là 1.
Nếu chống phát lại được kích hoạt (mặc định), người gửi sẽ kiểm tra
để đảm bảo rằng các truy cập đã không quay vòng trước khi chèn các giá
trị mới trong trường Sequence Number. Nói cách khác, người gửi không
phải gửi một gói tin trên một SA nếu làm như vậy sẽ gây ra các chuỗi số
theo chu kỳ. Một nỗ lực để truyền tải một gói tin sẽ cho kết quả trong
chuỗi số tràn là một sự kiện có thể kiểm tra.
2.3.3.4. Phân mảnh
Nếu cần thiết, phân mảnh được thực hiện sau khi ESP xử lý trong
một thực hiện IPsec. Vì vậy, chế độ vận chuyển ESP chỉ được áp dụng cho
toàn bộ các gói tin IP (không phân mảnh IP). Một gói tin IP mà ESP đã
được áp dụng chính nó có thể được phân mảnh bởi các router trên đường
đi, và những phần đó phải được tập hợp lại trước khi xử lý ESP ở người
nhận. Trong chế độ đường hầm, ESP được áp dụng cho một gói tin IP, có
thể là một mảnh của một gói tin IP.
2.3.4. Quá trình xử lý gói tin đến
2.3.4.1. Tái hợp
Nếu cần thiết, tái hợp được thực hiện trước quá trình ESP. Nếu một
gói cung cấp cho ESP để xử lý dường như là một phân mảnh IP, ví dụ,
trường OFFSET là khác 0 hoặc cờ MORE FRAGMENTS được thiết lập,
người nhận phải loại bỏ các gói, đây là một sự kiện có thể kiểm tra. Phần
17
nhật ký kiểm tra cho sự kiện này nên bao gồm giá trị SPI, ngày / giờ nhận
được, theo địa chỉ nguồn, địa chỉ đích, chuỗi số, và Flow ID (trong IPv6).
Đối với gói hợp lại, các thông số IPv4 hiện tại không yêu cầu hoặc là
quy về 0 của trường OFFSET hoặc bù trừ của cờ MORE FRAGMENTS.
Để cho một gói tái hợp lại được xử lý bởi IPsec (trái ngược với loại bỏ như
một phân mảnh rõ ràng), mã IP phải làm hai điều này sau khi nó hợp lại
thành một gói.
2.3.4.2. Tra cứu bảo mật liên quan
Sau khi nhận được một gói có chứa một tiêu đề ESP, người nhận xác
định SA thích hợp (một chiều) thông qua tra cứu trong SAD. Đối với một
unicast SA, xác định này được dựa trên SPI hoặc SPI cộng với trường
giao thức. Nếu thực hiện hỗ trợ lưu lượng multicast, địa chỉ đích cũng
được sử dụng trong tra cứu (ngoài các SPI), và địa chỉ người gửi cũng có
thể được sử dụng. Danh mục SAD cho SA cũng chỉ ra cho trường chuỗi số
sẽ được kiểm tra, có 32 hoặc 64 bit chuỗi số được sử dụng cho SA, và
trường ICV(rõ ràng) nên có. Ngoài ra, SAD sẽ xác định các thuật toán và
các khóa được sử dụng để giải mã và tính toán ICV (nếu có).
2.3.4.3. Xác minh chuỗi số
Tất cả việc triển khai ESP phải hỗ trợ dịch vụ chống phát lại, mặc dù
việc sử dụng nó có thể được kích hoạt hoặc vô hiệu hóa bởi người nhận
trên một cơ sở cho mỗi SA. Dịch vụ này không phải được kích hoạt trừ khi
dịch vụ toàn vẹn ESP cũng được kích hoạt cho SA, bởi vì nếu không
trường chuỗi số sẽ không được bảo vệ toàn vẹn. Chống phát lại được áp
dụng cho SA unicast cũng như multicast. Tuy nhiên, tiêu chuẩn này quy
định không có cơ chế để cung cấp chống phát lại cho nhiều người gửi SA
(unicast hoặc multicast). Trong trường hợp không có thỏa thuận (hoặc cấu
hình bằng tay) của một cơ chế chống lại như vậy cho một SA, khuyến nghị
người gửi và người nhận kiểm tra chuỗi số với các SA bị vô hiệu hóa
(thông qua đàm phán hoặc cấu hình bằng tay).
2.3.4.4. Xác minh giá trị kiểm tra tính toàn vẹn
18
Như với xử lý gói tin đi, bao gồm một số tùy chọn cho xử lý gói tin
đến, dựa trên tính năng của các thuật toán được sử dụng.
2.3.4.4.1. Thuật toán bảo mật và toàn vẹn riêng biệt
2.3.4.4.2. Thuật toán kết hợp bảo mật và toàn vẹn
Kết luận chƣơng II
Chương II phân tích định dạng gói tin ESP và các chế độ xử lý đóng
gói bảo mật dữ liệu. 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 mã hóa hay xác thực.
- Xem thêm -