1. Trang chủ
  2. » Tất cả

Password hashing và ứng dụng xác thực người dùng sử dụng bcrypt

31 40 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Password Hashing và ứng dụng xác thực người dùng sử dụng bcrypt
Tác giả Nhóm tác giả
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành An Ninh Mạng
Thể loại Bài tiểu luận
Năm xuất bản 2019
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 0,99 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN VỀ HÀM BĂM (6)
    • 1.1. Khái niệm hàm băm (6)
      • 1.1.1. Tính năng của hàm băm (7)
      • 1.1.2. Tính chất cơ bản của hàm băm (7)
    • 1.2. Cơ chế hoạt động của hàm băm (8)
    • 1.3. Một số hàm băm phổ biến (10)
    • 1.4. Ứng dụng của hàm băm (11)
    • 1.5. Yêu cầu về độ an toàn của hàm băm (0)
    • 1.6. Kết luận chương (16)
    • CHƯƠNG 2: PASSWORD HASHING VÀ THUẬT TOÁN BCRYPT (17)
      • 2.1. Các phương thức lưu trữ mật khẩu (17)
      • 2.2. So sánh Hashing và Encryption (18)
      • 2.3. Khái niệm Password Hashing, Salt và Pepper (20)
      • 2.4. Các phương thức tấn công đối với hàm băm (23)
      • 2.5. Giới thiệu về Bcrypt (24)
      • 2.6. Kết luận chương (25)
    • CHƯƠNG 3: ỨNG DỤNG XÁC THỰC NGƯỜI DÙNG SỬ DỤNG BCRYPT (26)
      • 3.1. Các thành phần của ứng dụng (26)
      • 3.2. Các bước ứng dụng sử dụng Bcrypt để Hash Password dùng Salt (26)
      • 3.3. Các bước ứng dụng xác thực người dùng (27)
      • 3.4. Kết quả (28)
      • 3.5. Kết luận chương (29)
  • KẾT LUẬN (0)
  • TÀI LIỆU THAM KHẢO (0)

Nội dung

Ví dụ: Nếu bạn gửi một tệp và bạn muốn biết liệu nó đã được gửi đến một người dùng dự định mà không có bất kỳ thay đổi nào hay chưa, thì có một số cách để kiểm tra, như liên hệ với người

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG I

Trang 2

LỜI NÓI ĐẦU

Bảo mật an ninh mạng hiện nay là một vấn đề quan trọng và được đặt lên hàng đầu với bất kỳ tổ chức, doanh nghiệp nào có sử dụng hệ thống mạng dù lớn hay nhỏ Hiện nay, luôn có các hacker luôn tìm cách xâm nhập và tấn công vào các hệ thống mạng để thu thập các thông tin nội bộ, bí mật của các tổ chức doanh nghiệp và các người dùng cá nhân nhằm trục lợi hay có các ý định xấu với thông tin đoạt được Do đó, các nhà quản trị mạng phải luôn cố gắng bảo vệ hệ thống của mình tốt nhất có thể và hoàn thiện, nâng cấp hệ thống để khắc phục được các vấn đề bảo mật cũng như các phương thức tấn công ngày một tinh vi hơn của các hacker

Kỹ thuật Password Hashing (Băm mật khẩu) hiện nay đang là một kỹ thuật tốt để

sử dụng trong việc bảo vệ mật khẩu của người dùng hệ thống trước các cuộc tấn công Tuy nhiên chỉ sử dụng mỗi Password Hashing thôi là chưa đủ để bảo vệ do đó các hệ thống sẽ sử dụng thêm Salt hoặc thậm chí là cả Pepper Trong bài tiểu luận này sẽ làm rõ các khái niệm trên và thực hiện xây dựng một ứng dụng xác thực người dùng và bảo vệ mật khẩu người dùng sử dụng thuật toán Bcrypt

Bố cục của bài tiểu luận gồm 3 chương:

Chương 1: Tổng quan về hàm băm

Chương 2: Password Hashing và Bcrypt

Chương 3: Ứng dụng xác thực người dùng sử dụng Bcrypt

Bằng sự cố gắng và nỗ lực nhóm em đã hoàn thành xong bài tiểu luận của nhóm

Do có sự hạn chế về mặt thời gian và mức độ hiểu biết của bản thân nên không thể tránh khỏi những thiếu sót trong quá trình nghiên cứu Vì thế, nhóm em rất mong nhận được những lời góp ý và sự chỉ bảo thêm của các thầy cô và các bạn để em có thêm những kiến thức phục vụ cho học tập cũng như công việc sau này

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU i

MỤC LỤC iii

BẢNG PHÂN CÔNG CÔNG VIỆC iiii

DANH MỤC HÌNH VẼ iv

DANH MỤC BẢNG BIỂU iv

CHƯƠNG I: TỔNG QUAN VỀ HÀM BĂM 1

1.1 Khái niệm hàm băm 1

1.1.1 Tính năng của hàm băm 2

1.1.2 Tính chất cơ bản của hàm băm 2

1.2 Cơ chế hoạt động của hàm băm 3

1.3 Một số hàm băm phổ biến 5

1.4 Ứng dụng của hàm băm 6

1.5 Yêu cầu về độ an toàn của hàm băm 8

1.6.Kết luận chương 11

CHƯƠNG 2: PASSWORD HASHING VÀ THUẬT TOÁN BCRYPT 12

2.1 Các phương thức lưu trữ mật khẩu 12

2.2 So sánh Hashing và Encryption 13

2.3 Khái niệm Password Hashing, Salt và Pepper 15

2.4 Các phương thức tấn công đối với hàm băm 18

2.5 Giới thiệu về Bcrypt 19

2.6 Kết luận chương 20

CHƯƠNG 3: ỨNG DỤNG XÁC THỰC NGƯỜI DÙNG SỬ DỤNG BCRYPT 21

3.1 Các thành phần của ứng dụng 21

3.2 Các bước ứng dụng sử dụng Bcrypt để Hash Password dùng Salt 21

3.3 Các bước ứng dụng xác thực người dùng 22

3.4 Kết quả 23

3.5 Kết luận chương 24

KẾT LUẬN 25

TÀI LIỆU THAM KHẢO 26

Trang 4

BẢNG PHÂN CÔNG CÔNG VIỆC

Nội dung tìm hiểu Nội dung triển khai Thành viên thực

hiện

Chương 1: Tổng quan

về hàm băm

- Khái niệm về hàm băm

- Đặc điểm của hàm băm

- Cơ chế hoạt động của hàm băm

- Các ứng dụng của hàm băm

- Các yêu cầu về hàm băm

- So sánh hàm băm với mã hoá

- Giới thiệu về thuật toán Bcrypt

- Các ví dụ của Bcrypt trong các ngôn ngữ lập trình khác nhau

Chương 3: Ứng dụng

xác thực người dùng sử

dụng Bcrypt

- Xây dựng một ứng dụng sử dụng thuật toán Bcrypt để xác thực người dùng

- Các thành phần của ứng dụng

- Các bước ứng dụng sử dụng để xác thực người dùng

- Các bước ứng dụng sử dụng Bcrypt để Password Hashing và sử dụng Salt

Trang 5

DANH MỤC HÌNH VẼ

Hình 1.1: Hàm băm 2

Hình 1.2: Cơ chế hoạt động của hàm băm 4

Hình 1.3: Dữ liệu qua các khối của hàm băm 4

Hình 1.4: Ví dụ về sử dụng hàm băm trong nhận thực bản tin 8

Hình 2.1: Minh họa quá trình mã hoá 14

Hình 2.2: Minh hoạ quá trình băm 14

Hình 2.3: Ví dụ về Salt 17

Hình 2.4: Ví dụ về Pepper 17

Hình 2.5: Ví dụ về tấn công từ điển 19

Hình 2.6: Ví dụ về tấn công Brute Force 19

Hình 3.1: Sử dụng hàm genSaltSync 21

Hình 3.2: Sử dụng thư viện issacjs 22

Hình 3.3: Sử dụng hàm hashSync 22

Hình 3.4: Xác thực người sử dụng 23

Hình 3.5: Màn hình đăng ký, đăng ký thành công cùng mật khẩu đã mã hóa 23

Hình 3.6: Màn hình đăng nhập và các kết quả trả về 24

DANH MỤC BẢNG BIỂU

Bảng 1.1:Các yêu cầu đối với hàm băm bảo mật 10

Bảng 2.1:Lưu trữ mật khẩu dạng văn bản thô 12

Bảng 2.2:Lưu trữ mật khẩu dạng mã hoá 13

Bảng 2.3:Lưu trữ mật khẩu dạng hàm băm 13

Bảng 2.4:So sánh Hashing và Encryption 15

Trang 6

CHƯƠNG I: TỔNG QUAN VỀ HÀM BĂM

Hiện nay, dữ liệu là một trong những phần có giá trị nhất Nó đã trở thành một trong những yếu tố cần thiết trong một số lĩnh vực như hành chính công, nghiên cứu khoa học và nền kinh tế kỹ thuật số ngày càng phát triển Hơn nữa, đó là một trong những yếu tố phụ thuộc vào các công nghệ đầy hứa hẹn như Machine Learing và BigData Do đó, nhu cầu ngày càng tăng về dữ liệu đã kéo theo sự quan tâm trở lại đối với các kỹ thuật và quy trình ẩn danh Và một trong những cách tiếp cận được

sử dụng là Hashing, được sử dụng để cung cấp khả năng bảo vệ bổ sung bất cứ khi nào dữ liệu cá nhân được xử lý

Hashing là một trong những thuật toán tính toán một giá trị chuỗi từ một tệp

có kích thước cố định Về cơ bản, nó chứa các khối dữ liệu được chuyển đổi thành một khóa hoặc giá trị có độ dài cố định ngắn từ chuỗi ban đầu Thông thường, một bản tóm tắt thông tin hoặc dữ liệu trong tệp đã gửi đó

Hơn nữa, đây là một trong những cách thuận tiện và an toàn khi xác định hoặc

so sánh cơ sở dữ liệu và tệp Đó là quá trình biến đổi tập dữ liệu thành một chuỗi ký

tự có độ dài cố định mà không cần xem xét đến kích thước của dữ liệu đầu vào Và đầu ra nhận được được gọi là giá trị băm, thông báo, mã hoặc đơn giản là băm

Ngoài ra, thuật ngữ “băm” được sử dụng để mô tả cả hàm băm cũng như giá trị băm Nói một cách khác, nó chủ yếu được sử dụng để xác nhận tính nguyên gốc của tin nhắn đã gửi Ví dụ: Nếu bạn gửi một tệp và bạn muốn biết liệu nó đã được gửi đến một người dùng dự định mà không có bất kỳ thay đổi nào hay chưa, thì có một

số cách để kiểm tra, như liên hệ với người nhận địa chỉ hoặc xác minh tệp và một trong các cách tiếp cận cũng là thuật toán hàm băm này

1.1 Khái niệm hàm băm

Hàm băm là một hàm toán học điển hình được sử dụng để ánh xạ dữ liệu có kích thước khác nhau thành các giá trị có kích thước cố định Đó là một hàm toán học được sử dụng để chuyển đổi giá trị đầu vào thành giá trị số định dạng nén được gọi là giá trị băm hoặc đơn giản là băm

Trang 7

Hiệu quả hoạt động:

- Nói chung đối với bất kỳ hàm băm nào h với đầu vào x, tính toán h (x) là một phép toán nhanh

- Các hàm băm được tính toán nhanh hơn nhiều so với mã hóa đối xứng

1.1.2 Tính chất cơ bản của hàm băm

Kháng tiền ảnh:

- Thuộc tính này có nghĩa là rất khó tính toán để đảo ngược một hàm băm

- Nói cách khác, nếu một hàm băm h tạo ra giá trị băm z, thì sẽ là một quá trình

Trang 8

khó khăn để tìm bất kỳ giá trị đầu vào x nào có giá trị băm thành z

- Thuộc tính này bảo vệ chống lại kẻ tấn công chỉ có giá trị băm và đang cố gắng tìm đầu vào

- Thuộc tính này của hàm băm bảo vệ chống lại kẻ tấn công có giá trị đầu vào

và giá trị băm của nó và muốn thay thế giá trị khác làm giá trị hợp pháp thay cho giá trị đầu vào ban đầu

Kháng xung đột:

- Thuộc tính này có nghĩa là khó có thể tìm thấy hai đầu vào khác nhau có độ dài bất kỳ dẫn đến cùng một hàm băm Thuộc tính này còn được gọi là hàm băm không va chạm

- Nói cách khác, đối với một hàm băm h, rất khó để tìm thấy bất kỳ hai đầu vào khác nhau x và y sao cho h (x) = h (y)

- Vì hàm băm là hàm nén với độ dài băm cố định, không thể để hàm băm không

có xung đột Tính chất không va chạm này chỉ xác nhận rằng những va chạm này sẽ khó tìm thấy

- Thuộc tính này khiến kẻ tấn công rất khó tìm thấy hai giá trị đầu vào có cùng một hàm băm

- Ngoài ra, nếu một hàm băm có khả năng chống va chạm thì nó có khả năng chống trước hình ảnh thứ hai

1.2 Cơ chế hoạt động của hàm băm

Hash là trung tâm của thuật toán băm Để nhận được giá trị băm của một độ dài được xác định trước, trước tiên cần phải chia dữ liệu đầu vào thành các khối có kích

Trang 9

thước cố định, bởi vì một hàm băm lấy dữ liệu có độ dài cố định Ngoài ra, các khối này được gọi là khối dữ liệu

Hình 1.2: Cơ chế hoạt động của hàm băm

Kích thước của các khối dữ liệu này khác nhau tùy thuộc vào thuật toán.Mặc dù vậy, đối với một số thuật toán, nó giống nhau Ví dụ: thông điệp 1024-bit được chia thành hai khối khác nhau có độ dài 512-bit trong khi chạy hàm băm hai lần Mặt khác, nếu thông báo có độ dài chính xác 512-bit, thì hàm băm sẽ chỉ chạy một lần

Tuy nhiên, không có gì đảm bảo rằng thông báo sẽ là bội số của 512 bit Trong một số trường hợp, một kỹ thuật có tên là Padding được sử dụng, trong đó toàn bộ thông điệp được chia đều trong một khối dữ liệu có kích thước cố định Ví dụ dưới đây cho thấy cách các khối dữ liệu được xử lý

Hình 1.3: Dữ liệu qua các khối của hàm băm

Như trong hình 1.3 trên, mỗi khối được xử lý riêng biệt Và, đầu ra của khối dữ liệu đầu tiên được gửi giống như một đầu vào cùng với khối dữ liệu thứ hai Do đó, đầu

ra của khối dữ liệu thứ ba được gửi cùng với khối dữ liệu thứ ba, v.v Cuối cùng, đến

Trang 10

với đầu ra cuối cùng, là các giá trị kết hợp của tất cả các khối dữ liệu Vì vậy, ngay cả một sự thay đổi một bit ở giữa thông báo cũng sẽ thay đổi toàn bộ giá trị băm - được gọi

là hiệu ứng tuyết lở

1.3 Một số hàm băm phổ biến

Có nhiều loại thuật toán băm khác nhau như RipeMD, Tiger, xxhash và hơn thế nữa, nhưng loại băm phổ biến nhất được sử dụng để kiểm tra tính toàn vẹn của tệp là MD5, RSA, SHA-2 và CRC32

vân tay 128 bit MD5 thường được sử dụng như một tổng kiểm tra để xác minh tính toàn vẹn của dữ liệu Tuy nhiên, do tuổi đời của nó, MD5 cũng được biết là có nhiều lỗ hổng xung đột băm, nhưng nó vẫn là một trong những thuật toán được sử dụng rộng rãi nhất trên thế giới

hàm băm mật mã SHA-2 bao gồm những thay đổi đáng kể so với người tiền nhiệm của

nó, SHA-1 Họ SHA-2 bao gồm sáu hàm băm với các thông báo (giá trị băm) là 224,

256, 384 hoặc 512 bit: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA -512/256

được sử dụng để phát hiện các thay đổi ngẫu nhiên đối với dữ liệu Mã hóa cùng một chuỗi dữ liệu bằng cách sử dụng CRC32 sẽ luôn dẫn đến cùng một đầu ra băm, do đó CRC32 đôi khi được sử dụng như một thuật toán băm để kiểm tra tính toàn vẹn của

RSA - Được đặt theo tên các nhà thiết kế của nó (Rivest-Shamir-Adleman), RSA

là một hệ thống mật mã có nguồn gốc từ cuối thế kỷ XX RSA sử dụng một phương pháp phân phối đơn giản: Người A sử dụng khóa công khai của Người B để mã hóa một tin nhắn và Người B sử dụng khóa riêng tư, vẫn là bí mật đối với người dùng, để khám phá ý nghĩa của nó Không có tiền điện tử đang hoạt động nào sử dụng khuôn khổ RSA

Ngoài ra, ta có thể liệt kê một số hàm băm khác như:

Trang 11

SHA-1 - Được sử dụng phổ biến, được sử dụng để an toàn, nhưng không còn khả

năng chống va chạm

RipeMD160 - được sử dụng trong OpenPGP và một số chứng chỉ X.509

SHA-3 - Chưa được chỉ định, nhưng có thể sẽ trở nên phổ biến sau đó Chờ thông

số kỹ thuật Sẽ là một họ các chức năng

MD4, RIPEMD160 - Chưa thấy chúng cho các tệp băm, nhưng chúng vẫn tồn

tại trong một số ngữ cảnh khác MD4 bị hỏng, một số thành viên cũ của gia đình RIPEMD bị hỏng, nhưng RIPEMD160 vẫn an toàn Nơi duy nhất tôi thấy xoáy nước là KDF của TrueCrypt

TTH / TigerTreeHash - Được sử dụng trong một số bối cảnh chia sẻ tệp, vẫn an

toàn nhưng biên độ bảo mật ngày càng giảm

ED2K - Được sử dụng trong một số ngữ cảnh chia sẻ tệp, dựa trên MD4, khả

Xác thực bản tin

Xác thực bản tin là một cơ chế hay dịch vụ được dùng để xác minh tính toàn vẹn của bản tin Điều này nghĩa là đảm bảo nội dung bản tin nhận được chính xác như bản tin gửi đi (không có bất kỳ sự sửa đổi, chèn, xoá nội dung, phát lại) Trong nhiều trường hợp thì cơ chế xác thực còn yêu cầu việc xác thực người gửi Hàm băm được sử dụng trong cơ chế xác thực bản tin để cung cấp một giá trị băm, thường được gọi là bản tin rút gọn

Trang 12

Bản chất của việc áp dụng hàm băm trong cơ chế xác thực như sau: Người gửi tính toán một giá trị băm từ các bít trong bản tin và truyền đi đồng thời bản tin và giá trị băm đó Người nhận cũng thực hiện việc tính giá trị băm tương tự từ các bít trong bản tin nhận được và so sánh với giá trị băm được gửi kèm Nếu như các giá trị băm được

so sánh không trùng với nhau thì có nghĩa là bản tin nhận được (hoặc các giá trị băm)

đã bị thay đổi Các hàm băm phải được truyền đi một cách an toàn Điều này nghĩa là ngay cả khi bản tin bị sửa đổi hoặc thay thế thì kẻ xấu không thể thay đổi được giá trị băm để đánh lừa người nhận Hình 1.4 minh hoạ các cách áp dụng hàm băm trong việc xác thực bản tin

i) Mã băm được nối vào bản tin, sau đó được mã hoá bởi mã hoá đối xứng Vì chỉ có A và B biết khoá bí mật nên bản tin được đảm bảo truyền từ A và không bị sửa đổi Do cả mã băm và bản tin đều được mã hoá nên tính bảo mật cũng được cung cấp trong trường hợp này

ii) Chỉ có các mã băm được mã hoá bằng mã hoá đối xứng Điều này giúp giảm gánh nặng xử lý cho các ứng dụng không yêu cầu bảo mật

iii) Giả sử bên gửi và nhận chia sẻ một giá trị bí mật S Giá trị này được nối vào bản tin M và được sử dụng để tính toán giá trị băm Sau đó, giá trị băm này được cộng với bản tin và truyền đi Tại đầu nhận, B cũng có khả năng tính toán giá trị băm vì nó cũng biết S Vì chỉ có A và B biết S, nên kẻ xấu không thể sửa đổi hoặc làm giả bản tin Trong phương pháp này, tính bảo mật không được cung cấp

iv) Phương pháp này khác phương pháp (c) ở việc tính bảo mật được thêm vào

để mã hoá toàn bộ bản tin và mã băm trước khi truyền đi

Khi tính bảo mật không cần thiết thì phương pháp (b) ưu việt hơn hai phương pháp (a) và (d) trong việc phải tính toán ít hơn Thậm chí việc tránh mã hoá như trong phương pháp (c) ngày càng nhận được nhiều sự quan tâm hơn bởi một vài nguyên do sau:

- Mã hoá bằng phần mềm tương đối chậm Nên dù lượng dữ liệu cần mã hoá trong mỗi bản tin là nhỏ nhưng mỗi hệ thống đều chứa rất nhiều bản tin cần trao đổi

- Chi phí cho việc mã hoá bằng phần cứng là không nhỏ Mặc dù, những chip giá

rẻ có khả năng chạy thuật toán DES nhưng đối với một hệ thống có rất nhiều nút mạng thì chi phí cũng tăng lên đáng kể

Trang 13

Hình 1.4: Ví dụ về sử dụng hàm băm trong nhận thực bản tin

- Mã hoá bằng phần cứng phù hợp hơn trong việc mã hoá dữ liệu lớn Đối với các dữ liệu nhỏ thì phần lớn thời gian bị chiếm bởi các thủ tục khởi tạo và gọi hàm

- Các thuật toán mã hoá thường bị giới hạn bởi các bằng sáng chế Do đó, cần thêm một khoản chi phí để nhận được sự cho phép sử dụng các thuật toán đó

Xác thực bản tin sử dụng mã xác thực bản tin (MAC), hay được biết đến như hàm băm có khoá, thường được sử dụng phổ biến hơn Thông thường, MACs được sử dụng bởi hai bên cùng chia sẻ khoá bí mật để xác định thông tin trao đổi giữa chúng Hàm MAC sử dụng đầu vào là một khoá bí mật và bản tin để tạo ra một mã băm được gọi là MAC Giả sử, một kẻ tấn công muốn sửa đổi bản tin, hắn không thể thay đổi được giá trị MAC nếu không có khoá bí mật Chú ý rằng, bên nhận (xác thực) phải biết bên nhận bởi vì không có ai khác biết được khoá bí mật

Chú ý rằng, MAC là hàm kết hợp của kết quả băm và mã hoá (hình 4.3b) E(K, H(M)) là hàm của bản tin có độ dài bất kỳ và khoá bí mật K, nó tạo ra đầu ra có độ dài

cố định Trong thực tế, các thuật toán MAC thường hiệu quả hơn các thuật toán mã hoá

1.5 Yêu cầu về độ an toàn quả hàm băm

Trang 14

Để hiểu rõ yêu cầu và an toàn của hàm băm, ta cần định nghĩa hai điều kiện Đối với giá trị băm h = H(x), x được gọi là nghịch ảnh của h Nghĩa là x là một khối

dữ liệu có hàm băm là h sử dụng hàm H Vì hàm H là phép ánh xạ từ nhiều phần tử thành một, nên với một giá trị h cho trước, có thể tạo ra nhiều nghịch ảnh Một xung đột xảy ra nếu x ≠ y và H(x) = H(y) Do chúng ta sử dụng các hàm băm để đảm bảo tính toàn vẹn của dữ liệu nên các xung đột là điều không mong muốn

Chúng ta sẽ phân tích xem có bao nhiêu nghịch ảnh có thể được tạo ra với một giá trị băm cho trước như là một phép đo số xung đột có thể xảy ra với một giá trị băm cho trước Giả sử rằng, độ dài của giá trị băm là n bit và hàm H có các bản tin đầu vào hay các khối dữ liệu có độ dài b bit (b > n) Khi đó, tổng số bản tin có thể là 2b và tổng số các giá trị băm là 2n Trung bình, mỗi giá trị băm tương ứng với 2b – n nghịch ảnh Trên thực tế, nếu H phân bố đều các giá trị băm thì mỗi giá trị băm sẽ có xấp xỉ 2b – n nghịch ảnh Nếu bây giờ, chúng ta xét đầu vào có độ dài bất kỳ, không phải chỉ là một độ dài cố định như trước thì số nghịch ảnh tạo ra từ mỗi giá trị băm là một giá trị lớn bất kỳ Tuy nhiên, rủi ro an ninh trong việc sử dụng hàm băm không nghiêm trọng như vốn dĩ theo phân tích này Để hiểu hơn về vấn đề bảo mật của hàm băm mã hóa, chúng ta cần định nghĩa chính xác các yêu cầu về bảo mật của chúng

1.5.1 Các yêu cầu bảo mật cho các hàm băm bảo mật

Bảng 1.1 liệt kê các yêu cầu được chấp nhận chung cho một hàm băm mã hóa

Ba yêu cầu đầu tiên được áp dụng cho các ứng dụng thực tế của hàm băm Yêu cầu thứ tư, chống nghịch ảnh, là một đặc tính một chiều, nghĩa là: một mã băm có thể dễ dàng tạo ra bởi một bản tin cho trước nhưng hầu như không có khả năng tái tạo lại bản tin thông qua một mã băm cho trước Đặc tính này vô cùng quan trọng nếu các

kỹ thuật xác thực sử dụng các giá trị bí mật Giá trị bí mật không được gửi đi nhưng nếu hàm băm không phải là hàm một chiều thì kẻ tấn công có thể dễ dàng phát hiện

ra được giá trị bí mật Nếu kẻ tấn công có thể quan sát hoặc chặn một đường truyền,

kẻ tấn công có thể thu được bản tin M và mã băm h = H(S || M) Sau đó, kẻ tấn công

có thể triển khai ngược hàm băm để lấy được S||M = H-1(MDM) Do bây giờ, kẻ tấn công có cả M và SAB||M, nên có thể dễ dàng tìm ra được SAB

Trang 15

Bảng 1.1: Các yêu cầu đối với hàm băm bảo mật

Đặc tính thứ năm, chống nghịch ảnh bậc 2, đảm bảo việc không thể tìm được một bản tin thay thế với giá trị băm của bản tin cho trước điều này ngăn chặn sự giả mạo khi mã băm mã hóa được sử dụng Nếu đặc tính này không thỏa mãn, kẻ tấn công có khả năng thực hiện các hành động sau đây: Đầu tiên, quan sát hoặc chặn một bản tin cùng với mã băm mã hóa của nó; tiếp theo, tạo một mã băm không mã hóa từ bản tin; cuối cùng, tạo ra bản tin thay thế với mã băm tương tự

Hàm băm thỏa mãn năm đặc tính đầu tiên được xem như hàm băm yếu Nếu đặc tính thứ sáu, chống xung đột, thỏa mãn thì hàm băm đó được gọi là hàm băm mạnh Một hàm băm mạnh có khả năng chống lại tấn công trong dó một bên tạo ra bản tin cho một bên khác ký

1.5.2 Các tấn công đoán thử đúng sai

Đối với các thuật toán mã hoá, có hai loại tấn công nhằm vào hàm băm là: Tấn công đoán thử đúng sai và giải mã Tấn công đoán thử đúng sai không phụ thuộc vào một thuật toán cụ thể mà chỉ phụ thuộc vào độ dài bit Trong trường hợp của hàm băm, tấn công đoán thử đúng sai chỉ phụ thuộc vào độ dài của giá trị băm Ngược lại, giải mã là tấn công dựa trên các điểm yếu trong một thuật toán mã hóa cụ thể nào đó

Ngày đăng: 26/02/2023, 15:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w