Mật mã được xác thực

Một phần của tài liệu Bài giảng an ninh mạng viễn thông (HV công nghệ bưu chính viễn thông) (Trang 129)

1 .6 Mô hình an toàn mạng

4.2.7 Mật mã được xác thực

Mã hóa xác thực AE (Authenticated Encry tion) là một thuật ngữ dùng để mô tả các hệ thống mã hóa v i mục đích bảo vệ đồng thời cả tính bảo mật và xác thực (toàn vẹn)cho quá trình truyền thông. Nhiều ứng dụng và giao thức yêu cầu cả hai hình thức an ninh này, nhưng cho đến gần đ y hai dịch vụ này đã được thiết kế riêng biệt. Có bốn hương há chungđể cung cấ cả mật và mã hóa cho một bản tin M.

Băm sau khi mã hóa (HE): Đầu tiên tính toán mã hàm băm trên bản tin M bằng hH M( ). Sau đó thực hiện mã hóa bản tin đã được thêm hàm băm:

E( ,(K M h|| )).

Xác thực sau khi mã hóa (AE): S dụng hai khóa. Đầu tiên nhận thực bản rõ bằng tính toán giá trị MAC bởi T MAC( , )K M1 . Sau đó mã hóa bản tin được thêm mã xác thực bản tin: E(K2,[M T|| ]). Tiếp cận này được thực hiện bởi các giao thức SSL/TLS.

Mã hóa sau khi nhận thực (EA): S dụng hai khóa. Đầu tiên mã hóa bản tin thành bản mã CE( , )K M2 . Sau đó xác thực bản mã v i T MAC( , )K M1 để

tạo thành cặp ( , )C T . Tiếp cận này được s dụng trong giao thức IPSec.

Độc lập mã hóa và nhận thực (E + A): S dụng hai khóa. Mã hóa bản tin thành bản mã CE( , )K M2 . Xác thực bản rõ v i T MAC( , )K M1 để tạo thành cặp ( , )C T . Hoạt động này có thể được thực hiện độc lậ và được ứng dụng trong giao thức SSH.

Giải mã và xác thực hoàn toàn được minh bạch trong mỗi hương há . V i HE, AE và E + A, giải mã trư c m i xác nhận. V i EA, tiến hành xác nhận trư c m i giải mã. Cả bốn hương há này đều tồn tại lỗ hổng an ninh. Tiế cận theo HE được s dụng trong giao thức WE nhằm bảo vệ mạng WiFi. hương há này có những

nhược điểm cơ bản dẫn đến sự thay thế của giao thức WE bằng W A. Tuy vậy, bất kỳ hương há nào cũng có thể cung cấ một mức độ an ninh cao nếu có thiết kế hù hợ . Đ y là mục tiêu của hai tiế cận được thảo luận trong hần này, cả hai đã được tiêu chuẩn hóa bởi NIST.

124

Cơ chế bộ đếm v i bản tin mã hóa theo chuỗi khối CCM (Counter with Cipher Block Chainning - Message) được chuẩn hóa bởi NIST để hỗ trợ các yêu cầu an ninh cho mạng cục bộ IEEE 802.11 WiFi, nhưng chúng có thể được s dụng trong bất kỳ ứng dụng mạng nào yêu cầu mã hóa và nhận thực. CCM là một biến thể của hương há mã hóa MAC nhằm thực hiện mã hóa nhận thực, được định nghĩa trong NIST S 800-38C.

Các thành hần then chốt của thuật toán CCM là thuật toán mã hóa AES, chế độ hoạt động CTR và thuật toán nhận thực CMAC. hóa riêng K được dùng cả mã hóa và thuật toán MAC. Đầu vào của quá trình mã hóa CCM bao gồm ba hần t :

1. Dữ liệu sẽ được nhận thực và mã hóa. Đ y là bản rõ của khối dữ liệu.

2. Dữ liệu liên quan A sẽ được nhận thực nhưng không được mã hóa. Ví dụ như tiêu đề của giao thức được truyền chính xác cho đúng loại giao thức sẽ cần hải nhận thực.

3. Một nonce N được ấn định cho tải và dữ liệu liên quan. Đ y là một chuỗi duy nhất và khác nhau trong mỗi trường hợ trong toàn bộ xuyên suốt quá trình liên kết và nhằm ngăn chặn các cuộc tấn công lặ và một số loại tấn công khác.

Hình 4.10 minh họa hoạt động của CCM. Đối v i nhận thực, đầu vào bao gồm nonce, dữ liệu liên quan và bản rõ. Đầu vào này được định dạng như một chuỗi các khối từ B0 đến Br. hối đầu tiên bao gồm nonce được thêm một số bit định dạng biểu thị độ dài của các hần t N, A và . Tiế theo sau là một lượng không m số khối chứa A và một lượng không m số khối chứa . Chuỗi kết quả của khối hục vụ như một đầu vào của thuật toán CMAC, tạo ra giá trị MAC có chiều dài Tlen bé hơn hoặc bằng chiều dài khối (Hình 4.10a).

V i mã hóa, một chuỗi của bộ đếm được tạo gần như độc lậ v i nonce. Mã nhận thực được mã hóa trong chế độ CTR s dụng bộ đếm đơn Ctr0. Các bit quan trọng nhất MSB (Most Significant bits) ở đầu ra được XOR v i mã nhận thực để tạo thành một thẻ mã hóa. hần còn lại của bộ đếm được s dụng cho chế độ mã hóa CTR của bản rõ. Bản rõ đã mã hóa được nối v i thẻ mã hóa để tạo thành các đầu ra cho bản mã (Hình 4.10b). SP 800-38C định nghĩa quá trình nhận thực/mã hóa như sau

1. Áp dụng hàm định dạng gồm (N, A, P) để tạo các khối B0, B1,…, Br. 2. Thiết lập Y0 = E( , )K B0 .

3. V i i1 t i r, thực hiện Yi=E( ,(K BiYi1)). 4. Thiết lập T MSB ( )Tlen Yr .

125 5. Áp dụng hàm khởi tạo bộ đếm để tạo ra các khối đếm Ctr0, Ctr1,…, Ctrm v i /128 m Plen . 6. V i j0 t i m, thực hiện Sj E( ,K Ctrj). 7. Thiết lập SS1||S1|| ...||Sm. 8. C(PMSBPlen( )) || (S TMSB ( ))Tlen S0 .

Hình 4.10: Bộ đếm v i chuỗi khối mã hóa - mã nhận thực bản tin

Đối v i giải mã và xác thực, hía nhận yêu cầu các đầu vào sau: Bản mã C, nonce

N, dữ liệu liên quan A, khóa K, bộ đếm khởi tạo Ctr0. Các bư c thực hiện như sau:

1. Nếu Clen Tlen , trả về INVALID.

2. S dụng hàm khởi tạo bộ đếm để tạo các khối đếm Ctr0, Ctr1,…, Ctrm v i /128

m Clen .

3. V i j0 t i m, thực hiện Sj E( ,K Ctrj). 4. Thiết lập SS1||S1|| ...||Sm.

126

5. Thiết lập PMSBClen Tlen ( ) MSBCClen Tlen ( )S .

6. Thiết lập T LSB ( ) MSB ( )Tlen CTlen S0 .

7. Áp dụng hàm định dạng (N, A, P) để tạo các khối B0, B1,…, Br . 8. Thiết lập Y0 = E( , )K B0 .

9. V i i1 t i r, thực hiện Yi=E( ,(K BiYi1)).

10.Nếu T MSB ( )Tlen Yr thì trả kết quả INVALID, nếu không trả kết quảP.

CCM là một thuật toán tương đối hức tạ . Lưu ý rằng nó đòi hỏi hai công việc trên các bản rõ, một lần để tạo ra giá trị MAC, và một lần để mã hóa. Hơn nữa, các chi tiết của các đặc điểm kỹ thuật yêu cầu một sự c n bằng giữa độ dài của nonce và độ dài của thẻ mã dù đ y là một hạn chế không cần thiết. Cũng lưu ý rằng khóa mã được s dụng hai lần trong chế độ mã hóa CTR: một lần để tạo ra thẻ mã và một lần để mã hóa bản rõ cộng v i thẻ mã. Cho dù những sự hức tạ thêm vào sự an toàn của thuật toán là không rõ ràng thì trong mọi trường hợ , các h n tích cũng kết luận rằng CCM cung cấ một mức độ bảo mật cao.

Chế độ Ga is/bộ đếm

Chế độ GCM (Galois/Couter Mode) được chuẩn hóa bởi NIST trong NIST S 800-

38D được thiết kế song song để cung cấ thông lượng cao v i chi hí và trễ thấ . Về bản chất, bản tin được mã hóa trong biến thể của chế độ CTR. ết quả của bản mã được nh n v i thông tin về khóa và chiều dài bản tin thông qua GF(2128) để tạo thẻ nhận thực. Các tiêu chuẩn cũng quy định một chế độ hoạt động ch cung cấ cho MAC, được gọi là

GMAC.

Chế độ GMAC tận dụng hai hàm: GHASH là một khóa hàm băm, và GCTR là chế độ thiết yếu v i bộ đếm được xác định bởi một số gia đơn giản trong một thao tác.

GHASHH(X) có các đầu vào là khóa băm H và một chuỗi bit X có len(X) = 128m

bit (m nguyên dương) để tạo ra một giá trị MAC 128 bit. Hàm có thể được xác định như

sau (Hình 4.11a) 1. Gọi X X1, 2,...,Xm1,Xm là một chuỗi duy nhất gồm các khối và 1|| 2|| ...|| m1|| m XX X XX . 2. Gọi Y0 là một khối gồm 128 bit 0, biểu diễn bằng 0128. 3. V i i1,...,m, đặt Yi (Yi1Xi) H, v i là phép nhân trong GF(2128). 4. Trả về Ym.

127 Hàm GHASHH(X) có thể x y dựng bằng 1 2 1 2 1 ( m) ( m ) ... ( ) ( ) m m X HX H    XHX H .

Nếu các khóa băm giống nhau được s dụng để nhận thực nhiều bản tin, khi đó giá trị H2, H3,… có thể tính toán trư c khi s dụng cho mỗi bản tin đã được nhận thực ngay trư c đó. Sau đó các khối dữ liệu đã được nhận thực (X1, X2, …, Xm) có thể được x lý song song bởi các quá trình tính toán cho mỗi khối là độc lậ .

GCTR (ICB,X) có đầu vào là một khóa bí mật và một chuỗi bit X có độ dài tùy ý, kết quả trả ra là một bản mã Y có độ dài bằng len(X). Hàm có thể được xác định như

sau (Hình 4.11b).

Hình 4.11: Chức năng mã hóa và nhận thực GCM

1. Nếu X là chuỗi rỗng, trả về một chuỗi rỗng Y.

2. Đặt n(len( ) /128)X , ởđ y n là số nguyên nhỏ nhất l n hơn hoặc bằng len(X)/128. 3. Gọi X X1, 2,...,Xn1,Xn* là các chuỗi 128 bit duy nhất và XX1|| X2|| ...||Xn1|| Xn*. 4. Đặt CB1 = ICB.

128

5. V i i2 đến n, đặt CBi = inc32(CBi-1), trong đó hàm inc32(S) là hé tăng 32 bit bên phải của S lên 1 đơn vị, và các bit còn lại không đổi.

6. V i i1 đến n – 1, thực hiện YiXiE( ,K CBi). 7. Đặt * * * len( ) MSB (E( , )) n n n X i YXK CB . 8. Đặt YY Y1|| 2|| ...||Yn1||Yn*. 9. Trả kết quảY.

Chú ý rằng giá trị của bộ đếm có thể tạo nhanh và quá trình mã hóa này có thể thực hiện song song.

Có thể định nghĩa toàn bộ quá trình mã hóa nhận thực như trong hình 4.12. Đầu vào bao gồm một khóa bí mật , vector khởi tạo IV, bản rõ và dữ liệu xác thực bổ sung A. ý hiệu [x]scó nghĩa là s-bit nhị h n biểu diễn cho số nguyên không m x.

Hình 4.12: Bộ đếm galois- Mã nhận thực bản tin Các bư c được thực hiện như sau

1. Đặt H E( ,0 )K 128 . 2. Định nghĩa khối J0 sao cho

129

Nếu len(IV)  96, thì 0 GHASH ( || 0s 64||[len( )] )64

H

JIVIV v i

128 len( ) /128 len( )

s  IV  IV .

3. Đặt CGCTR (inc ( ), )K 32 J0 P .

4. Đặt u128 len( ) /128 C len( )Cv128 len( ) /128 A len( )A . 5. Định nghĩa khối S v i

64 64

GHASH ( || 0 || || 0 ||[len( )] || len( )] )v u H

SA C A C .

6. Đặt T MSB (GCTR ( , ))t K J S0 v i tlà độ dài thẻ hỗ trợ. 7. Trả về (C,T)

Trong bư c 1, khóa băm được tạo bằng cách mã hóa khối toàn bit 0 v i khóa bí mật . bư c 2, bộ đếm trư c khối (J0) được tạo từ vector khởi tạo IV. Đặc biệt, v i độ dài IV bằng 96 bit, khi đó chuỗi đếm 0 ||1 31 được thêm vào IV để tạo thành khối đếm trư c. Nếu không, vector IV được đệm vào một số lượng tối thiểu bit 0 (có thể không cần) do đó độ dài của chuỗi thu được là bội số của 128 bit (kích thư c khối); chuỗi này lần lượt được nối thêm 64 bit 0, theo sau 64 bit biểu diễn cho độ dài vector IV, và hàm GHASH được á dụng cho chuỗi thu được để hình thành khối đếm trư c.

Vì vậy, GCM dựa trên chế độ hoạt động CTR và MAC thêm vào để nhận thực cả bản tin và dữ liệu bổ sung mà ch yêu cầu nhận thực. Hàm tính toán băm này ch s dụng hé nh n trong trường Galois. Lựa chọn này được đề xuất bởi nó dễ dàng thực hiện

phép nhân trong trường Galois và dễ hoạt động trong các hần cứng. Đã có nghiên cứu thực hiện các hương thức mã hóa khối có sẵn và cho thấy cách tiế cận mã hóa nhận thực dựa trên CTR là hương thức hoạt động hiệu quả nhất cho các mạng gói tốc độ cao. Ngoài ra cũng chứng tỏ rằng GCM đá ứng một mức độ cao về yêu cầu an ninh.

ạ số giả ngẫu nhiên sử ụng hàm băm và MAC

Các yếu tố cần thiết v i bất kỳ bộ tạo số giả ngẫu nhiên RNG ( seudorandom Number Generator) nào đều là các giá trị hạt giống (seed) và một thuật toán xác định để tạo ra mội chuỗi bit giả ngẫu nhiên. Nếu thuật toán được dùng như một hàm giả ngẫu nhiên RF ( seudorandom Function) để tạo một giá trị yêu cầu, ví dụ như khóa hiên, khi đó hạt giống ch được biết bởi người s dụng trong RF. Nếu thuật toán được dùng để tạo ra một chuỗi hàm mã hóa, thì hạt giống đóng vai trò như một khóa bí mật ch được biết bởi người g i và người nhận.

Do thuật toán mã hóa cho đầu ra gần như ngẫu nhiên, nó có thể hoạt động như cơ

130

nhiên và có thể được s dụng để x y dựng RNG. Chuẩn ISO 18031 (Tạo bit ngẫu

nhiên) và NIST SP 800-90 (Đề xuất cho số giả ngẫu nhiên s dụng bộ tạo bit ngẫu nhiên xác định) đã định nghĩa một hương há nhằm tạo số ngẫu nhiên bằng hàm băm mật mã

hóa. SP 800-90 cũng định nghĩa bộ tạo số ngẫu nhiên dựa trên HMAC. Hai hương há được trình bày dư i đ y.

PRNG ự r à bă

Hình 4.13a biểu diễn chiến lược cơ bản cho RNG dựa trên hàm băm được xác định

trong SP 800-90 và ISO 18031. Thuật toán có các đầu vào như sau

V = hạt giống

Seedlen = độ dài bit của V, V  k 64 v i klà mức bảo mật mong muốn thể hiện trong các bit

n = số mong muốn của bit đầu ra

Hình 4.13: iến trúc cơ sở của hàm băm dựa trên RNG

Thuật toán s dụng hàm băm mật mã hóa H v i giá trị băm đầu ra outlen bit. Hoạt động cơ bản của thuật toán bao gồm

/

m n outlen

data = v W= chuỗi null

131 For i = 1 to m Wi = H(data)

W = W || wi

data = (data + 1) mod 2seedlen

Trả về n bit bên trái của W

Do đó, luồng bit giả ngẫu nhiên thu được w w1|| 2...||wm v i khối cuối cùng có thể loại bỏ nếu cần thiết.

PRNG ự r à A

Mặc dù v i thuật toán băm mật mã hóa mạnh như SHA-2, có thể đạt được độ tin

cậy cao hơn bằng cách s dụng MAC. Bên cạnh đó, HMAC được s dụng để x y dựng

RNG dựa trên MAC do HMAC được s dụng rộng rãi như một hàm MAC tiêu chuẩn

hóa và có thể á dụng trong nhiều giao thức và ứng dụng. Như trong SP 800-90, những bất lợi của hương há này so v i hương há dựa trên hàm băm là thời gian thực hiện tăng lên gấ đôi, bởi vì HMAC liên quan đến hai quá trình băm cho mỗi khối đầu ra. Ưu điểm của hương há HMAC là chúng cung cấ mức độ tin cậy cao hơn đối v i an ninh so v i tiế cận theo hàm băm đơn thuần.

Đối v i hương há dựa trên MAC, cần hai đầu vào gồm: một khóa K và một hạt giống V. Sự kết hợ của KV tạo thành một hạt giống chung cho PRNG. Hình 4.13b

cho thấy cấu trúc cơ bản của cơ chế RNG. Lưu ý rằng các khóa còn lại tương tự nhau cho mỗi khối đầu ra, và các dữ liệu đầu vào cho mỗi khối chính là thẻ đầu ra của khối trư c. Các đặc điểm kỹ thuật S 800-90 cũng cậ nhật định kỳ các tham số KV để tăng cường an ninh.

Trong thực tế, v i chuẩn bảo mật mạng LAN không d y IEEE 802.11i, dữ liệu đầu vào gồm hạt giống kết hợ v i một bộ đếm. Bộ đếm tăng v i mỗi khối đầu ra wi. hương

pháp này có thể cung cấ mức độ bảo mật n ng cao so v i tiế cận trong S 800-90. Trong SP 800-90, dữ liệu đầu vào cho khối đầu ra wichính là đầu ra của quá trình (wi -1)

trư c của HMAC. Vì vậy, một kẻ tấn công có thể quan sát đầu ra giả ngẫu nhiên và biết cả đầu vào lẫn đầu ra của HMAC. Mặc dù vậy, v i giả định rằng HMAC an toàn, hiểu biết về đầu vào và đầu ra không đủ để tái tạo lại khóa K và do đó kẻ tấn công không đủ khả năng để đoán trư c bit giả ngẫu nhiên trong tương lai. Vì vậy, các hương há đưa ra bởi giao thức bản mật l truyền tải nói chung và giao thức bảo mật l truyền tải

Một phần của tài liệu Bài giảng an ninh mạng viễn thông (HV công nghệ bưu chính viễn thông) (Trang 129)

Tải bản đầy đủ (PDF)

(159 trang)