« Home « Kết quả tìm kiếm

Bài giảng An ninh mạng máy tính - Chương 4: Mã hóa công khai và xác thực thông điệp (ThS. Lương Minh Huấn)


Tóm tắt Xem thử

- CHƯƠNG 4: MÃ HÓA CÔNG KHAI VÀ XÁC THỰC THÔNG ĐIỆP.
- Các nguyên lý mã hóa công khai..
- Giải thuật mã hóa công khai RSA..
- IV.Mã xác thực thông điệp..
- CÁC NGUYÊN LÝ MÃ HÓA CÔNG KHAI.
- Mã hóa đối xứng có 2 yếu điểm:.
- Vào năm 1976 Whitfield Diffie và Martin Hellman đã tìm ra một phương pháp mã hóa khác mà có thể giải quyết được hai vấn đề trên, đó là mã hóa khóa công khai (public key cryptography) hay còn gọi là mã hóa bất đối xứng (asymetric cryptography)..
- Mô hình mã hóa công khai.
- Để khắc phục điểm yếu của mã hóa đối xứng người ta tập trung vào nghiên cứu theo hướng: có phương pháp nào để việc mã hóa và giải mã dùng hai khóa khác nhau?.
- Phương án 1: người nhận (Bob) giữ bí mật khóa K2, còn khóa K1 thì công khai cho tất cả mọi người biết..
- Alice muốn gởi dữ liệu cho Bob thì dùng khóa K1 để mã hóa.
- Bob dùng K2 để giải mã..
- Do đó chỉ có duy nhất Bob mới có thể giải mã được.
- Phương án 2: người gửi (Alice) giữ bí mật khóa K1, còn khóa K2 thì công khai cho tất cả mọi người biết..
- Ở đây Trudy cũng biết khóa K2 nên Trudy cũng có thể giải mã được..
- Vì vậy nếu kết hợp phương án 1 và phương án 2, thì mô hình đề xuất của chúng ta khắc phục được các nhược điểm của mã hóa đối xứng..
- Trong cả hai phương án, một khóa được giữ bí mật chỉ một người biết, còn khóa kia được công khai..
- Khóa công khai (public key) được ký hiệu là K U.
- Các phương pháp mã hóa thuộc loại mã hóa công khai:.
- Phương pháp đường cong elliptic ECC;.
- Một số vấn đề cần nắm khi tìm hiểu mã hóa công khai:.
- Số nguyên tố.
- Số nguyên tố cùng nhau.
- GIẢI THUẬT MÃ HÓA CÔNG KHAI RSA.
- Phương pháp RSA là một phương pháp mã hóa khóa công khai..
- Về mặt tổng quát RSA là một phương pháp mã hóa theo khối..
- Chọn khóa công khai K U là cặp (e, N), khóa riêng K R là cặp (d, N)..
- Việc mã hóa thực hiện theo công thức:.
- Theo phương án 1, mã hóa bảo mật:.
- Theo phương án 2, mã hóa chứng thực:.
- Ví dụ: Để minh họa ta sẽ thực hiện một ví dụ về mã hóa RSA với kích thước khóa là 6 bít..
- Khóa công khai K U = (e, N.
- Mã hóa bản rõ M = 15:.
- Giải mã bản mã C = 9:.
- Các phép tính mã hóa/giải mã.
- Phép tính mã hóa và giải mã dùng phép lũy thừa modulo.
- Nếu thực hiện bằng cách tính phép lũy thừa trước sau đó rút gọn modulo, thì giá trị của phép lũy thừa là quá lớn để có thể lưu trữ và tính toán.
- Chúng ta có thể sử dụng tính chất này để đơn giản phép tính lũy thừa modulo thông qua một phương pháp gọi là “bình phương liên tiếp”.
- Để tăng tốc quá trình mã hóa dữ liệu, người ta thường chọn một khóa công khai e cụ thể nào đó.
- Hiện nay chưa có phương pháp nào để sinh ra số nguyên tố lớn tùy ý..
- Xem xét một số cách tấn công phương pháp RSA:.
- Vét cạn khóa: cách tấn công này thử tất cả các khóa d có thể có để tìm ra bản giải mã có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng.
- Giả sử Alice muốn gửi dữ liệu cho Bob dùng mã hóa khóa công khai, trước tiên Alice và Bob sẽ chọn cặp khóa riêng-khóa công khai..
- Ký hiệu khóa riêng-khóa công khai của Alice là K RA và K UA , của Bob là K RB và K UB.
- Như vậy để gửi dữ liệu bảo mật cho Bob, Alice sẽ dùng phương án 1: mã hóa dữ liệu bằng khóa công khai K UB của Bob, và Bob dùng khóa riêng K RB để giải mã..
- Để đảm bảo tính chứng thực và Alice không từ chối trách nhiệm gửi dữ liệu, Alice sẽ dùng phương án 2: Alice mã hóa dữ liệu bằng khóa riêng KRA, và Bob dùng khóa công khai KRA của Alice để giải mã..
- Giống như mã hóa đối xứng, nếu Trudy can thiệp chỉnh sửa trên bản mã C thì Bob sẽ giải mã ra bản rõ là một dãy bít vô nghĩa.
- Khi hai người sử dụng muốn truyền dữ liệu với nhau bằng phương pháp mã hóa khóa công khai, trước tiên họ phải trao đổi khóa công khai cho nhau..
- Vì đây là khóa công khai nên không cần giữ bí mật việc trao đổi này, khóa có thể truyền công khai trên kênh thường..
- Alice và Bob, hay bất cứ người nào khác có thể công bố rộng rãi khóa công khai của mình..
- Để giảm gánh nặng cho từng cá nhân, một mô hình gọi là „chứng chỉ khóa công khai‟ (public-key certificate) được sử dụng..
- Alice gửi định danh ID A và khóa công khai K UA của mình đến trung tâm chứng thực..
- Dựa trên cơ sở đó, trung tâm chứng thực cấp một chứng chỉ CA để xác nhận rằng khóa công khai K UA đó là tương ứng với ID A .
- Alice công khai chứng chỉ CA.
- Bob muốn trao đổi thông tin với Alice thì sẽ giải mã CA bằng khóa công khai của trung tâm chứng thực để có được khóa công khai K UA của Alice.
- Như vậy có thể thấy rằng nếu Bob muốn gởi thông điệp cho Alice, Cindy, hay Darth…, thì Bob không cần phải tin tưởng vào khóa công khai của Alice, Cindy, hay Darth nữa.
- Bob chỉ cần tin tưởng vào trung tâm chứng thực và khóa công khai của trung tâm chứng thực là đủ..
- Hiện nay mô hình chứng chỉ khóa công khai đang được áp dụng rộng rãi với chuẩn của chứng chỉ là chuẩn X.509..
- DÙNG MÃ HÓA KHÓA CÔNG KHAI TRAO ĐỔI KHÓA BÍ MẬT.
- Do đặc điểm toán học của phương pháp mã hóa khóa công khai, thời gian mã hóa và giải mã của phương pháp này chậm hơn so với phương án mã hóa đối xứng..
- Trong thực tế đối với vấn đề bảo đảm tính bảo mật, người ta vẫn sử dụng phương pháp mã hóa đối xứng..
- Mã hóa khóa công khai được dùng để thiết lập khóa bí mật cho mỗi phiên trao đổi dữ liệu..
- CÁC GIẢI PHÁP XÁC THỰC THÔNG ĐIỆP.
- Ta có hai kết luận sau về tính chứng thực của mã hóa đối xứng và mã hóa khóa công khai:.
- Lúc này các phương pháp mã hóa đối xứng và mã hóa công khai không thể bảo đảm tính chứng thực..
- Để có thể xác thực thông tin gửi đến là chính xác, người ta có thể sử dụng phương pháp checksum để xác thực thông điệp..
- Sau đó tiến hành mã hóa đối xứng hay mã hóa công khai trên dãy bít mới..
- Vì kích thước của checksum là ngắn nên cũng không ảnh hưởng lắm đến tốc độ mã hóa và băng thông sử dụng.
- Ngoài ra còn 2 phương pháp xác thực sử dụng khá phổ biến là:.
- Mã chứng thực thông điệp (MAC).
- MÃ XÁC THỰC THÔNG ĐIỆP (MAC).
- Mã chứng thực thông điệp (MAC) có thể coi là một dạng checksum của mã hóa, được tính theo công thức MAC = C(M, K), trong đó:.
- Vì MAC có khóa K bít mật giữa người gởi và người nhận nên chỉ có người gởi và người nhận mới có thể tính được giá trị MAC tương ứng..
- Mô hình ứng dụng MAC để chứng thực thông điệp như sau:.
- Để có tính bảo mật, M và MAC A cần được mã hóa trước khi truyền đi..
- Trong thực tế, người ta hay dùng mô hình CBC và phương pháp DES của mã hóa đối xứng để tính giá trị MAC..
- dùng thêm một vector khởi tạo IV, thì bản mã C n-1 được chọn làm giá trị MAC cho M..
- H(y) thì có thể chắc chắn rằng x = y..
- Như vậy trung bình có khoảng 2 384 giá trị x mà có cùng giá trị h..
- Đối với hàm băm, việc phá hàm băm cũng khó giống như là việc tấn công vét cạn khóa của mã hóa đối xứng DES..
- Kích thước giá trị băm của MD5 là 128 bít, mà chúng ta coi như là an toàn (theo nghĩa không tìm được 2 thông điệp có cùng giá trị băm)..
- Tuy nhiên vào năm 1994 và 1998, một phương pháp tấn công MD5 đã được tìm thấy và một số thông điệp có cùng giá trị băm MD5 được chỉ ra (vi phạm tính chống trùng mạnh)..
- Hàm băm MD5 với kích thước giá trị băm là 128 bít, được dùng để tính giá trị băm của thông điệp có kích thước tối đa là 2 64 bít..
- Hàm băm SHA-1 với giá trị băm có kích thước là 160 bít, được dùng để tính giá trị băm của thông điệp có kích thước tối đa là 2 64 bít..
- Sơ đồ tổng thể của SHA1 cũng giống như của MD5, chỉ có điểm khác là kích thước của giá trị hash tại mỗi bước là 160 bít..
- Khi người sử dụng đăng ký mật khẩu, giá trị băm của mật khẩu được tính bằng một hàm băm nào đó (MD5 hay SHA-1.
- Giá trị băm được lưu trữ vào file hay cơ sở dữ liệu.
- Vì hàm băm là một chiều, nên dù biết được giá trị băm và loại hàm băm, hacker cũng không thể suy ra được mật khẩu.
- Khi người sử dụng đăng nhập, mật khẩu đăng nhập được tính giá trị băm và so sánh với giá trị băm đang được lưu trữ..
- Do tính chống trùng, chỉ có một mật khẩu duy nhất có giá trị băm tương ứng, nên không ai khác ngoài người sử dụng có mật khẩu đó mới có thể đăng nhập ứng dụng..
- Gọi file cần download trên server là X, và giá trị hash theo MD5 của file X mà server đã tính sẵn và cung cấp trên trang web là H X .
- Người sử dụng sẽ tính giá trị MD5 H Y cho file Y..
- Trong mô hình này Alice tính giá trị băm của thông điệp cần gửi và gửi kèm cho Bob.
- Bob tính lại giá trị băm của thông điệp nhận được và so sánh với giá trị băm của Alice..
- Tuy nhiên, Trudy cũng có thể sửa luôn giá trị băm H A do Alice gửi và Bob không thể phát hiện.
- Để tránh vấn đề này cần sử dụng mã hóa khóa công khai để chứng thực H A theo mô hình sau:.
- Trong mô hình này, Alice sau khi tính giá trị hash H A cho thông điệp M thì sẽ mã hóa H A bằng khóa riêng của Alice để tạo thành chữ ký điện tử DS..
- Bob dùng khóa công khai của Alice để giải mã chữ ký điện tử DS và có được giá trị hash H A của Alice.
- Chữ ký điện tử chỉ cần mã hóa giá trị hash mà không cần mã hóa toàn bộ thông điệp M..
- Vì phương pháp mã hóa khóa công khai tốn kém thời gian nên nếu M là một thông điệp dài, thì việc không mã hóa M giúp tiết kiệm được nhiều thời gian.

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt