Đăng ký Đăng nhập
Trang chủ Ứ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 (E...

Tài liệu Ứ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)

.PDF
26
561
128

Mô tả:

Ứ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 -

Tài liệu liên quan