Chương 11: Xác thực mẩu tin và các hàm Hash
I. Xác thực mẩu tin (Message Authentication)
Xác thực mẩu tin liên quan đến
Bảo vệ tính toàn vẹn của mẩu tin
Kiểm chứng danh tính và nguồn gốc
Không chối từ bản gốc
Sẽ xem xét các yêu cầu bảo mật
Sau đó 3 hàm lựa chọn được sử dụng
Mã mẩu tin
Mã xác thực mẩu tin (MAC)
Hàm hash
II. Các yêu cầu bảo mật (Security Requirements)
Chống:
Để lộ bí mật
Thám mã đường truyền
Giả mạo
Sửa đổi nội dung
Thay đổi trình tự
Sửa đổi thời gian
Từ chối gốc
Từ chối đích
22 trang |
Chia sẻ: khicon_1279 | Lượt xem: 2946 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Mã hóa và an ninh mạng ( Chapter 11), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 11: Xác thực mẩu tin và các hàm Hash Fourth Edition by William Stallings Lecture slides by Lawrie Brown Xác thực mẩu tinMessage Authentication Xác thực mẩu tin liên quan đến Bảo vệ tính toàn vẹn của mẩu tin Kiểm chứng danh tính và nguồn gốc Không chối từ bản gốc Sẽ xem xét các yêu cầu bảo mật Sau đó 3 hàm lựa chọn được sử dụng Mã mẩu tin Mã xác thực mẩu tin (MAC) Hàm hash Các yêu cầu bảo mậtSecurity Requirements Chống Để lộ bí mật Thám mã đường truyền Giả mạo Sửa đổi nội dung Thay đổi trình tự Sửa đổi thời gian Từ chối gốc Từ chối đích Mã mẩu tinMessage Encryption Nếu mã đối xứng được sử dụng thì Người nhận biết người gửi phải tạo ra mẩu tin vì chỉ có người gửi và người nhận biết được khoá sử dụng Biết nội dung không bị sửa đổi - nếu mẩu tin có cấu trúc phù hợp, tính dư thừa và tổng kiểm tra để phát hiện bất cứ thay đổi nào. Mã mẩu tinMessage Encryption Nếu khoá công khai được sử dụng thì Mã cung cấp không đủ độ tin cậy về người gửi vì mọi người đều có thể biết khoá công khai Tuy nhiên nếu người gửi ký mẩu tin sử dụng khoá riêng của họ sau đó mã với khoá công khai của người nhận Khi đó có cả tính bảo mật và xác thực Lại cần phải phát hiện các mẩu tin đã bị làm hỏng Nhưng với giá là phải dùng 2 khoá công khai trên mẩu tin Mã xác thực mẩu tin (MAC)Message AuthenticationCode Sinh ra bởi một thuật toán mà tạo ra một khối nhỏ kích thước cố định Phụ thuộc vào cả mẩu tin và khoá nào đó Giống như mã nhưng không cần phép toán ngược lại Bổ sung vào mẩu tin như chữ ký Người nhận thực hiện tính toán nào đó trên mẩu tin và kiểm tra xem nó có phù hợp với MAC không Tạo niềm tin rằng mẩu tin không bị thay đổi và đến từ người gửi Các mã xác thực mẩu tinMessage Authentication Codes Như đã biết MAC cung cấp sự tin cậy Cũng có thể sử dụng mã hoá MAC để bảo mật Nói chung sử dụng các khoá riêng biệt cho mỗi MAC Có thể tính MAC hoặc trước hoặc sau mã hoá Nói chung tốt hơn là thực hiện trước Tại sao sử dụng MAC Đôi khi chỉ cần xác thực Đôi khi cần xác thực giữ được lâu hơn mã hoá (chẳng hạn để lưu trữ) Lưu ý rằng MAC không phải là chữ ký điện tử Các tính chất của MAC MAC Properties MAC là tổng kiểm tra được mã hoá MAC = CK(M) Nén bản tin M có độ dài tùy ý Sử dụng khoá mật K về dấu xác thực có độ dài cố định Là hàm nhiều - một Có thể có nhiều mẩu tin có cùng MAC Nhưng tìm các mẩu tin như vậy là rất khó khăn Yêu cầu đối với MACRequirements for MACs Tuỳ thuộc vào kiểu tấn công MAC phải thỏa mãn các điều sau Biết mẫu tin và MAC, không thể tìm được mẩu tin khác có cùng MAC Các MAC cần phải phân bố đều MAC phải phụ thuộc như nhau vào tất cả các bit trong mẩu tin Sử dụng mã đối xứng cho MAC Có thể dùng mã khối chế độ chuỗi bất kỳ và sử dụng khối cuối cùng là MAC Thuật toán xác thực dữ liệu (DAA) là MAC được sử dụng rộng rãi dựa trên DES-CBC Sử dụng IV = 0 và bộ đệm 0 của block cuối cùng Mã mẩu tin sử dụng DES trong chế độ CBC Và gửi block cuối cùng như là MAC hoặc M bit trái nhất (16 M 64) của khối cuối cùng Nhưng MAC cuối cùng bây giờ quá nhỏ để đảm bảo an toàn Data Authentication Algorithm Các hàm Hash - Hash Functions Nén mẩu tin bất kỳ về kích thước cố định Hàm Hash tạo nên dấu vân tay của một tệp, mẩu tin hay dữ liệu h = H(M) Và giả thiết là hàm hash là công khai và không dùng khoá Hash chỉ phụ thuộc mẩu tin, còn MAC phụ thuộc thêm vào khoá Hash được sử dụng để phát hiện thay đổi của mẩu tin Có thể sử dụng nhiều cách với mẩu tin Thường được dùng để tạo chữ ký. Hash Functions & Digital Signatures Các tính chất của hàm HashRequirements for Hash Functions Có thể áp dụng cho mọi mẩu tin có kích thước tuỳ ý Tạo đầu ra h có kích thước cố định Dễ tính h = H(M) cho mọi mẫu tin M Cho trước h không thể tìm được (rất khó) x sao cho H(x) = h Tính chất 1 chiều Cho x không thể tìm được y sao cho H(y) = H(x) Chống đỡ va chạm yếu Không thể tìm được x, y sao cho H(y) = H(x) Chống đỡ va chạm mạnh Các hàm hash đơn giảnSimple Hash Functions Có một số đề xuất cho một số hàm đơn giản Dựa trên phép toán XOR các khối của mẩu tin Không an toàn vì có thể thao tác trên mẩu tin bất kỳ và tìm được mẩu tin mà có cùng hàm hash Cần phải có hàm mạnh hơn, sẽ xét trong chương sau Simple Hash Function One-bit circular shift on the hash value after each block is processed would improve Tấn công ngày sinh nhật Birthday Attacks Có thể nghĩ hash 64 bit là an toàn Nhưng không phải vì nghịch lý ngày sinh nhật Tấn công ngày sinh nhật hoạt động như sau Kẻ thám mã tạo ra 2m/2 biến thể của mẩu tin đúng mà tất cả đều có bản chất ngữ nghĩa như nhau. Kẻ thám mã cũng có thể tạo ra 2m/2 biến thể khác nhau của mẩu tin lừa dối Hai tập tin được so sánh với nhau để tìm cặp có cùng bản hash (xác suất >= 0.5 dựa vào nghịch lý ngày sinh nhật) Người dùng ký vào mẩu tin đúng, sau đó bị thay thế bằng mẩu tin giả mà cũng có chữ ký đúng. Kết luận là cần phải dùng MAC lớn hơn Mã khối như hàm HashBlock Ciphers as Hash Functions Có thể sử dụng mã khối như hàm Hash Sử dụng H0 = 0 và bộ đệm không cho khối cuối cùng Tính Hi = EMi [Hi-1] Và sử dụng khối cuối cùng như giá trị hàm hash Giống chế độ CBC nhưng không có khoá Hash kết quả quá nhỏ (64 bit) Cả vì tấn công sinh nhật trực tiếp Cả tấn công ở giữa chừng Các phương án khác cũng dễ bị tấn công Kẻ thám mã cũng có thể tạo ra 2m/2 biến thể khác nhau của mẩu tin Hàm Hash và an toàn MAC Sử dụng tấn công vét cạn Hash chống va chạm mạnh có giá 2m/2 Có đề xuất cho MD5 phần cứng Hash 128 bit có thể có lỗ hổng, tốt hơn dùng 160 bit MAC với cặp MAC của mẩu tin đã biết Có thể tấn công hoặc không gian khoá (như là tìm khoá) hoặc MAC Ít nhất 128 bit MAC là cần thiết để an toàn Hash Functions & MAC Security Tấn công thám mã dùng cấu trúc Giống mã khối muốn dùng tấn công vét cạn là lựa chọn tốt nhất Có một số các tấn công thám mã CVi = f[CVi-1, Mi]; H(M)=CVN Thông thường khai thác sự va chạm của hàm f Giống mã khối thường gồm một số vòng Tân công sử dụng các tính chất của các hàm vòng. Summary have considered: message authentication using message encryption MACs hash functions general approach & security