MAC Dựa Trên Hàm Băm HMAC - .6 Mô Hình An Toàn Mạng - 123doc
Có thể bạn quan tâm
1 .6 Mô hình an toàn mạng
4.2.5 MAC dựa trên hàm băm HMAC
hần này chúng ta sẽ xem xét các ví dụ của MAC dựa trên việc s dụng mã khối đối xứng. Theo truyền thống, đ y là tiế cận chung nhất để cấu trúc nên một MAC.
Trong nhưng năm gần đ y, sự quan t m đã tăng lên đối v i việc hát triển một MAC nhận được từ hàm băm mã hóa. Động lực của mối quan t m này là:
Các hàm băm mã hóa như là MD5 hay SHA nói chung thực hiện nhanh hơn
trong hần mềm so v i mã khối đối xứng như DES.
Thư viện mã cho các hàm băm mã hóa được hổ biến rộng rãi.
V i sự hát triển của AES và sự hổ biến của mã chương trình cho các thuật toán mã hóa, những vẫn đề này trở nên ít quan trọng hơn, nhưng MAC dựa trên hmà băm tiế tục được s dụng rộng rãi.
Một hàm băm như SHA không được thiết kế cho việc s dụng như là một MAC và không thể được s dụng trực tiế cho mục đích đó, bởi vì nó không dựa trên một khóa bí mật. Đã có một số đề xuất đối vứi việc liên kết một khóa bí mật v i một thuật toán băm có sẵn. Tiế cận đã nhận được nhiều sự ủng hộ nhất là HMAC. HMAC đã được đề xuất trong RFC 2104, đã được chọn như là MAC buộc hải thực hiện cho an ninh I , và được s dụng trong các giao thức Internet khác như là SSL. HMAC cũng được đề xuất là một chuẩn NIST.
Các mục tiêu thiết kế HMAC
RFC 2104 liệt kê các mục tiêu thiết kế sau đ y của HMAC
Để s dụng mà không cần s a đổi các hàm băm có sẵn. Đặc biệt, để s dụng các hàm băm thực hiện tốt trong hần mềm và mã chương trình là miễn hí và hổ biến.
Để cho hé khả năng thay thế các hàm băm được nhúng nếu các hàm băm
khác nhanh hơn hoặc bảo mật hơn được tìm ra hoặc yêu cầu.
Để kế thừa hiệu năng ban đầu của hàm băm mà không g y ra sự suy giảm
đáng kể.
Để s dụng và x lý khóa theo một cách đơn giản.
Để có được các h n tích mã hóa dễ hiểu về độ mạnh của của cơ chế nhận thực dựa trên các giả thiết hợ lý về hàm băm được nhúng.
115
Hai mục tiêu đầu tiên là quan trọng đối v i khả năng chấ nhận HMAC. HMAC coi
hàm băm như là một “hộ đen” và đem lại hai lợi ích. Đầu tiên, một sự thực hiện có sẵn của một hàm băm có thể được s dụng như là một mô-đun trong thực thi HMAC. Theo
cách này, cụm mã HMAC được đóng gói trư c và sẵn sàng được s dụng mà không cần s a đổi. Thứ hai, khi muốn thay thế một hàm băm cho trư c trong sự thực thi HMAC, tất cả những gì được yêu cầu là loại bỏ môđun hàm băm có sẵn và đưa môđun m i vào. Điều này có thể được thực hiện nếu muốn một hàm băm nhanh hơn. Quan trọng hơn, nếu an ninh ninh của hàm băm được nhúng bị x m hại, an ninh của HMAC có thể được giữ lại ch đơn giản bằng cách thay thế hàm băm được nhúng bằng một hàm băm an ninh toàn hơn (ví dụ thay thế SHA-2 bằng SHA-3).
Mục tiêu thiết kế cuối cùng trong danh sách thực tế là ưu điểm chính của HMAC đối v i các cơ chế dựa trên hàm băm. Dư i đ y sẽ tóm tắtcấu trúc của HMAC.
T ậ A
Hình 4.6 minh họa hoạt động của HMAC. Định nghĩa các thuật ngữ sau:
H = hàm băm được nhúng (ví dụ MD5, SHA-1, RIPEMD-160) IV = giá trị khởi tạo đầu vào của hàm băm
M = bản tin đầu vào cho HMAC (bao gồm phần đệm xác định trong hàm băm được nhúng)
i
Y block thứ i của M, 0 i ( 1)L - L = số block trong M
b = số bit trong một block
n = chiều dài mã băm được tạo bởi hàm băm được nhúng
K = khóa bí mật; chiều dài được đề xuất n; nếu chiều dài khóa l n hơn b, khóa là đầu vào của hàm băm để tạo ra một khóa n bit
116
Hình 4.6: Cấu trúc HMAC Ipad = 00110110 (36 trong hệhexa) được lặp lại b/8 lần Opad = 01011100 (5C trong hệhexa) được lặp lại b/8 lần
hi đó HMAC có thểđược biểu diễn như sau:
HMAC(K ,M) H[( Kopad) H[(|| Kipad)|| ]]M
Ta có thể miêu tả thuật toán như sau:
(1)Thêm các số 0 vào phía cuối bên trái của để tạo một chuỗi b bit K (ví dụ
nếu K có chiều dài 160 bit và b512 khi đó cần thêm 44 số 0 vào K). (2)XOR K v i i ad để tạo khối b bit Si.
(3)Thêm M vào Si.
117 (5)XOR K v i o ad để tạo khối b bit So.
(6)Thêm giá trị băm nhận được ởbư c 4 vào So.
(7)S dụng hàm H v i luồng được tạo trong bư c 6 và đưa ra kết quả.
Lưu ý rằng kết quả của hé XOR v i i ad làm đảo một n a số bit của K. Tương tự, hé XOR v i o ad làm đảo một n a số bit của K, v i một tậ bit khác. Trong thực tế, bằng cách đưa Si và So qua hàm nén của thuật toán băm, ta đã tạo hai khóa từ K theo
hương thức ngẫu nhiên giả tạ m.
HMAC nên thực hiện trong thời gian xấ x thời gian hàm băm nhúng đối v i các bản tin dài. HMAC thêm ba lệnh của hàm nén băm (v i Si và So và khối được tạo ra từ giá trị băm bên trong).
Có thể thực hiện hiệu quả hơn, như trình bày trong hình 4.7. Hai đại lượng được tính trư c: f( ( ipad)) f( ( ipad)) IV, K IV, K
Trong đó f(cv,block) là hàm nén đối v i hàm băm được đóng vai trò như các đối số một biến chuỗi nbit và một khối bbit và tạo ra một biến chuỗi n bit. Các đại lượng này ch cần được tính lúc ban đầu và mỗi khi khóa thay đổi. Trên thực tế, các đại lượng được tính trư c thay thế cho giá trị khởi tạo (IV) trong hàm băm. V i sự thực hiện này, ch một trường hợ bổ sung của hàm nén được thêm vào quá trình thông thường được sinh ra bởi hàm băm. Sự thực hiện hiệu quả hơn này đặc biệt có giá trị nếu hầu hết các bản tin cần tính MAC đều là ngắn.
An ninh của HMAC
An ninh của bất kỳ hàm MAC nào dựa trên hàm băm nhúng đều hụ thuộc vào độ mạnh mã hóa của hàm băm bên dư i theo một cách nào đó. Sự ủng hộ HMAC là do người thiết kế ra nó có khả năng thể chứng minh mối quan hệ chính xác giữa độ mạnh của hàm băm được nhúng và độ mạnh của HMAC.
An ninh của một hàm HMAC được biểu diễn tổng quát theo xác suất giả mạo thành
công v i cùng khoảng thời gian cho trư c và số cặ bản tin-mã cho trư c được tạo v i cùng một khóa. Về cơ bản, đã chứng minh được rằng v i một mức độ nỗ lực cho trư c (thời gian, các cặ bản tin-nhãn) đối v i các bản tin được tạo bởi một người dùng hợ
118
pháp và được theo dõi bởi một kẻ tấn công, xác suất tấn công vào HMAC thành công tương đương v i một trong các tấn công sau đ y vào hàm băm được nhúng:
ẻ tấn công có khả năng tính toán một đầu ra của hàm nén ngay cả v i một IV ngẫu nhiên, bí mật và kẻ tấn công không biết trư c.
ẻ tấn công tìm các xung đột trong hàm băm ngay cả khi IV là ngẫu nhiên và bí mật.
Trong tấn công đầu, ta có thể xem hàm nén tương đương v i hàm băm á dụng đối v i một bản tin bao gồm một khối b bit đơn. V i tấn công này, IV của hàm băm được thay thế bởi một giá trị bí mật, ngẫu nhiên n bit. Một tấn công vào hàm băm này cần có tấn công vét cạn vào khóa – có mức độ nỗ lực 2n
, hoặc tấn công ngày sinh – là trường hợ đặc biệt của tấn công thứ hai, sẽ được thảo luận sau đ y.
Trong tấn công thứ hai, kẻ tấn công tìm kiếm hai bản tin M vàM’tạo ra cùng giá trị băm H(M)= H(M’) còn gọi là tấn công ngày sinh. Tấn công này yêu cầu nỗ lực 2n /2
đối v i giá trị băm có chiều dài n. Trên cơ sở đó, an ninh của MD5 được xem xét lại, vì một mức độ nỗ lực 264 có vẻ khả thi v i công nghệ hiện nay. Liệu điều này có nghĩa là một hàm băm 128 bit như MD5 là không hù hợ v i HMAC? C u trả lời là không, vì lý do sau đ y. Để tấn công MD5, kẻ tấn công có thể chọn bất một tậ bản tin nào và làm việc v i chúng ngoại tuyến trên hương tiện tính toán chuyên dụng để tìm ra một xung đột. Do kẻ tấn công biết thuật toán băm và giá trị IV mặc định, kẻ tấn công có thể tạo mã băm v i mỗi bản tin mà kẻ tấn công tạo ra. Tuy nhiên, khi tấn công HMAC, kẻ tấn công không thể tạo các cặ bản tin/mã ngoại tuyến do kẻ tấn công không biết K. Do đó, kẻ tấn công hải quan sát một chuỗi các bản tin được tạo bởi HMAC dư i cùng một khóa và thực hiện tấn công vào các bản tin đã biết này. V i chiều dài mã băm 128 bit, nó yêu cầu
64
2 khối được quan sát (272 bit) được tạo s dụng cùng một khóa. Trên một đường truyền tốc độ 1 Gb/gi y, một người sẽ cần quan sát một luồng các bản tin liên tục không có sự thay đổi về khóa trong khoảng 150 nghìn năm để có thể thành công. Do vậy, nếu tốc độ được xét t i, có thể hoàn toàn chấ nhận được việc s dụng MD5 thay vì SHA-1 làm
119
Hình 4.7: Sự thực hiện HMAC hiệu quả
Đối v i hương há mã khóa đối xứng, các thành viên chia sẻ cùng một khóa và khóa được bảo vệ bởi các thành hần ngoài. Hơn nữa, khóa được thay đổi thường xuyên nhằm tránh các tấn công. Vì vậy, sức mạnh của bất kỳ một hệ thống mã hóa nào cũng đều lien quan t i kỹ thuật h n hối khóa, một thuật ngữ s dụng để tạo ra khóa giữa hai thành viên đảm bảo tính bí mật v i các bên khác.
MAC dựa trên mật mã khối
hần này xem xét hai cơ chế hoạt động của MAC trên cơ sở s dụng mã khối. Đầu tiên, chúng ta đi vào thuật toán xác thực dữ liệu DAA (Data Authentication Algorithm) là một thuật toán cũ và sau đó tậ trung vào thuật toán CMAC, được thiết kế v i mục đích khắc hục những nhược điểm của DAA.
hu t t án nh n thực iệu DAA
Thuật toán xác thực dữ liệu DAA dựa trên DES là một trong những thuật toán hổ biến dựa trên FI S (FI S B 113) và chuẩn ANSI (X9.17). Tuy nhiên, mặt bảo mật của thuật toán này đã bị khai thác cho nên chúng dần được thay thế bằng các thuật toán m i, mạnh mẽ hơn.
120
Thuật toán DAA được tạo ra bằng cách s dụng chế độ chuỗi mã khối CBC trong hoạt động của DES v i vector khởi tạo zero. Dữ liệu (ví dụ như tin nhắn, tệ , chương trình) cần nhận thực được nhóm vào các khối 64 bit liên tiế nhau: D1, D2,…, DN. Nếu cần, khối cuối bao gồm 64 bit zero được chèn vào bên hải chuỗi. S dụng thuật toán mã hóa tiêu chuẩn E và khóa bí mật K, mã nhận thực dữ liệu DAC (Data Authentication Code) được tính toánnhư sau (hình 4.8)
1 E( , )1 O K D 2 E( ,[ 2 1]) O K D O 3 E( ,[ 3 2]) O K D O . . . 1 E( ,[ ]) N N N O K D O
DAC hoặc có thể là toàn bộ khối ON hoặc là M bit bên trái của khối ON , v i 16M 64 .
CMAC
Như hần trên đã trình bày, DAA được s dụng rộng rãi trong khi MAC được chứng minh rằng có thể đá ứng các tiêu chí an ninh v i một số hạn chế nhất định. Ch các bản tin có chiều dài cố định m n bit được x lý, v i nlà kích thư c khối mã vàm là
số nguyên dương cố định. Một ví dụ đơn giản, thực hiện CBC MAC cho một khối bản tin X bằng hé T=MAC(K,X), kẻ tấn công ngay lậ tức biết được CBC MAC cho hai khối bản tinX || (X T) khi thực hiện hé biến đổi Tmột lần nữa.
Tuy nhiên, hạn chế này có thể được khắc hục bằng cách s dụng ba khóa: Một khóa K chiều dài k được dùng tại mỗi bư c của chuỗi mã khối và hai khóa còn lại có chiều dài bbằng v i chiều dài của khối mã. Cơ chế này được đề xuất cụ thể v i hai khóa
n-bit dùng để tạo một mã khóa duy nhất thay vì s dụng đơn lẻ.
Đầu tiên, chúng ta xem xéthoạt động của CMAC khi bản tin là tậ hợ nkhối mã , mỗi khối có chiều dài b. V i AES, b = 128 và v i tri le DES, b= 64. Bản tin được chia
121
K1. V i AES, kích thư c khóa k thường là 128, 192 hoặc 256 bit; v i triple DES, kích
thư c khóa hoặc 122 hoặc 168 bit. CMAC được tính như sau (hình 4.8)
Hình 4.8: Thuật toán nhận thực dữ liệu
1 E( , 1) C K M C2 E( ,[K M2C1]) C3 E( ,[K M3C2]) . . . Cn E( ,[K MnCn1K1]) T MSB ( )Tlen Cn V i T = Mã nhận thực bản tin
Tlen = Độ dài của T (bit)
MSB ( )s X = s bit bên trái của chuỗi X
Nếu bản tin không chia được thành một số nguyên chiều dài khối mã, khi đó khối cuối cùng sẽ được chèn vào hía bên hải (least significant bits) v i một bít 1 và (b– 1)
122
bit còn lại bằng 0. Hoạt động sau đó của CMAC được x lý như trư c, thay s dụng b-bit
K2 khác nhau bằngK1.
Hình 4.9: Mã hóa nhận thực bản tin dựa trên mật mã
Hai khóa b-bit được đưa ra từ k-bit của khóa mã như sau
E( ,0 )b L K 1 K L x 2 2 ( ) K L x L x x
ở đ y nh n t (.) được thực hiện trong trường hữu hạn GF(2b); x và x2 là các đa thức bậc nhất và bậc hai trong các thành hần của GF(2b). Do đó, bit nhị h n biểu diễn
cho xbao gồm (b– 2) số zero; bit nhị h n biểu diễn cho x2 bao gồm (b– 3) số zero. V i hai kích thư c được chấ nhận như trên, các đa thức bao gồmx64x4x3 x 1 và
128 7 2 1
x x x x .
Để tạo khóa K1 và K2, mã khối được s dụng bao gồm toàn bộ bit 0. hóa con đầu tiên có nguồn gốc từ kết quả bản mã bằng cách dịch trái một bit và thực hiện hé XOR
123
hụ thuộc vào kích thư c khối mã. hóa con thứ hai cũng được đưa ra như cách x y dựng khóa con đầu tiên.
Từ khóa » đặc Trưng Của Hmac
-
Giới Thiệu Về Mã Xác Thực Thông Báo Và ứng Dụng Trong Một Số Sản ...
-
Toàn Vẹn Dữ Liệu Và HMAC - Medium
-
Định Nghĩa Hashed Message Authentication Code (HMAC) Là Gì?
-
[PDF] XÁC THỰC THÔNG ĐIỆP - Soict
-
Hmac Là Gì - Toàn Vẹn Dữ Liệu Và Hmac
-
[PDF] BÀI 4: MÃ CÔNG KHAI VÀ XÁC THỰC THÔNG ĐIỆP - Topica
-
[PDF] AN NINH MẠNG 1. Trình Bày Về Mã Hóa Và Mã Hóa đối Xứng Khái ...
-
Hàm Băm Mật Mã Học – Wikipedia Tiếng Việt
-
Một Số Chú ý Khi Triển Khai Mã Xác Thực Thông Báo
-
CRYPTOGRAPHIC SYSTEMS (hệ Thống Mật Mã) – Part 2 - LEARNS
-
Giáo Trình Nhập Môn An Toàn Thông Tin - Chương 3: Toàn Vẹn Dữ Liệu
-
Giới Thiệu Tiêu Chuẩn Mật Khẩu Dùng Một Lần HOTP Và TOTP
-
HMAC | PDF - Scribd
-
[PDF] HÀM BĂM HASH FUNCTIONS - Cit..vn