Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
2,14 MB
Nội dung
1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ NGUYỄN THANH HƯNG HÀM BĂM AN TỒN VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ Hà Nội-2011 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH HƯNG HÀM BĂM AN TOÀN VÀ ỨNG DỤNG Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: CÔNG NGHỆ PHẦN MỀM Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS LÊ PHÊ ĐÔ Hà Nội-2011 Số thứ Số thứ tự [j[[pơ;;’; MỤC LỤC Đặt vấn đề toán Tổng quan hàm băm 2.1 Định nghĩa hàm băm 2.2 Xung đột băm 2.2.1.Tấn công theo nguyên lý vét cạn 2.2.2.Tấn công dựa lý thuyết ngày sinh 2.3 Một số hàm băm phổ biến 2.3.1.Hàm băm MD5 2.3.2 Hàm băm SHA-1 2.3.3 Hàm băm SHA-256 2.3.4 Hàm băm SHA-384, SHA-512 Tấn công hàm băm 3.1 Tấn công hàm băm 3.1.1 Tấn công MD5 3.1.2 Tấn công SHA-1 3.2 3.2.1 Tìm hiểu số hàm băm Hàm băm NESHA-256 3.2.2.Hàm băm SHA-3 Ứng dụng hàm băm an toàn giao dịch điện tử 4.1 Chữ ký điện tử 4.2 MAC 4.3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỀN 4.4 TÀI LIỆU THAM KHẢO DANH MỤC HÌNH VẼ Hình 1: Minh họa hàm băm Hình 2: Cấu trúc lặp hàm băm MD Hình 3: Thuật tốn mơ tả MD5/SHA-1 Hình 4: Thuật tốn NESHA-256 Hình 5: Các bước làm việc NESHA-256 Hình 6: Sự làm việc hàm nén BLAKE Hình 7: Update cột cột ma trận vi Hình 8: Update cột cột ma trận vi Hình 9: Update tất cột ma trận vi Hình 10: Update tất đường chéo ma trận vi Hình 11: Các bước làm việc BLAKE-256 Hình 12: Kết chạy chương trình- phần Hình 13: Kết chạy chương trình- phần Hình 14: Kết chạy chương trình- phần Hình 15: Kết chạy chương trình- phần Hình 16: Ký tài liệu với BLAKE-256 Hình 17: Việc sử dụng chữ ký thực tế Hình 18: Bên gửi ký vào tài liệu cần gửi Hình 19: Bên nhận xác minh tài liệu Hình 20: Cấu trúc X.509 cerfiticate Hình 21: Việc quản lý X.509 cerfiticate windows Hình 22: Màn hình thơng báo sau tạo private key Hình 23: Thơng tin Cerfiticate Hình 24: Màn hình giao diện command toolsign Hình 25: Màn hình Digital Signature Wizard Hình 26: Chọn tên file cần ký Hình 27: Lựa chọn Cerfiticate nguồn Hình 28: Lựa chọn public key Hình 29: Lựa chọn private key file Hình 30: Lựa chọn thuật toán dùng cho chữ ký Hình 31: Digital Signature Wizard Hình 32: Digital Signature Wizard-1 Hình 33: Verify a file-1 Hình 34: MAC Hình 35: MAC dùng để xác thực thông điệp Hình 36: MAC dùng để xác thực bảo đảm tính bí mật thông điệp Hình 37: Thuật tốn tính HMAC 68 Hình 38: Sử dụng HMAC IPSec 69 DANH MỤC HÌNH VẼ Bảng 1: Kiểu công hàm băm Bảng 2: Bảng so sánh loại hàm băm MD Bảng 3: Modify multiple message m Bảng 4: Một đụng độ MD5 Bảng 5: Mô tả bước vòng 1-phần Bảng 6: Mô tả bước vòng 1-phần Bảng 7: Mô tả bước vòng 1-phần Bảng 8: Mô tả điều kiện vòng 1-phần Bảng 9: Mô tả bước vòng 1-phần Bảng 10: Mô tả bước vòng 1-phần Bảng 11: Mô tả bước vòng 2-phần Bảng 12: Mô tả bước vòng 2-phần Bảng 13: Mơ tả bước vịng 2-phần Bảng 14: Mơ tả điều kiện bước vịng 2-phần Bảng 15: Mơ tả điều kiện bước vịng 2-phần Bảng 16: Mơ tả điều kiện bước vịng 2-phần Bảng 17: Các hoán vị hàm băm NESHA-256 Bảng 18: 16 số phép cộng hàm băm NESHA-256 Bảng 19: Các nhánh sử dụng giá trị hoán vị hàm băm NESHA-256 Bảng 20: Các thuật toán BLAKE Bảng 21: Các hoán vị hàm băm BLAKE 11 Đặt vấn đề toán Trong thời đại ngày giao dịch thương mại qua mạng internet trở nên phổ biến, cần có biện pháp để đảm bảo an toàn cho giao dịch thương mại qua mạng giao dịch thương mại qua mạng đảm bảo an tồn đồng nghĩa với việc số lượng giao dịch ngày tăng hạn chế giao dịch thương mại truyền thống tiết kiệm chi phí, thúc đẩy giao thương rộng rãi Trong việc đảm bảo an toàn cho giao dịch qua mạng internet hàm băm đóng vai trị quan trọng, khơng đảm bảo toàn vẹn giao dịch mà cịn đảm bảo bí mật liệu bên giao dịch, điều quan trọng 12 Tổng quan hàm băm 2.1 Định nghĩa hàm băm Hàm băm H nhận đầu vào chuỗi liệu M có chiều dài vào tạo chuỗi đầu (hay gọi message degits, hash value) có chiều dài cố định theo cơng thức sau h = H (M) Ví dụ minh họa hàm băm Hình 1: Minh họa hàm băm - h gọi giá trị đầu hàm băm, có chiều dài cố định( h gọi message digest hash value) - M thơng điệp có chiều dài hữu hạn (chiều dài M khơng vượt q 264 bít, chiều dài M vượt q 264 bít có 264 bít đầu sử lý, cịn tất bít bỏ qua q trình tính toán hàm băm) - H hàm băm - Hàm băm sử dụng việc mã hóa password, giao dịch điện tử, kiểm tra toàn vẹn file Hàm băm sử dụng phổ biến hàm băm chiều (one-way) MD5 Các tính chất hàm băm - Hàm băm H phải có phi xung đột yếu (weak-collision) cao, điều có nghĩa cho trước M ta khơng thể tìm thơng điệp M’ M cho H(M) = H(M’) - Hàm băm H có tính phi đụng độ cao (strong collision), điều có nghĩa ta khơng thể tìm cặp thơng điệp (M, M’) M’ M cho H(M)=H(M’) - Hàm băm H có tính chiều (one-way) có nghĩa cho giá trị H(M) khơng thể tìm giá trị M 57 02/02/2002 Tài liệu XML sau ký - - 19834209 02/02/2002 - - - - qf9G+NGDr9YbsV4Tu1a8je/DCLE= rUiNO+NcORuLBWN1pSl8e39W2GVi/suSc/U6MhKl61b+Ho5jl qacvBENYnH1UvykaCPYdXXz6EV9gQ/G1zsr0Rq3iBSMH6T92q0GBnrY/Cc 2NIUqvnrnIhvLswe8ybuFUkIt1leKrq4txGc6C2FQNUsAJKU/u2uF3VYbnjOk ghI= Chúng ta xem tất Cerfiticate windows việc thực lệnh certmgr.ms 58 Hình 21: Việc quản lý X.509 cerfiticate windows Ví dụ việc sử dụng chữ ký điện tử NET2008[9] Các công cụ cung cấp NET2008: MakeCert: Là chương trình sử dụng để kiểm tra X.509 certificate Một cặp public/private key tạo sử dụng cho chữ kỹ số Cặp khóa kết hợp với tên tên nhà phát hành Cerfiticate ký việc sử dụng key root khóa đặc biệt ràng buộc với tên bạn với cặp khóa public Cert2SPC: Cơng cụ kiểm tra nhà phát hành Cerfiticate tạo phần mềm chứng nhà phát hành phần mềm từ nhiều chứng X.509 Cert2SPC dành cho mục đích test SignTool: Là cơng cụ dịng lệnh cho việc ký files, kiểm tra chữ ký file, đóng dấu thời gian file, nhiên cơng cụ có giao diện GUI giúp cho việc thực hành dễ dàng Các bước để ký kiểm tra file Tạo Public/Private Keys: Để tạo public and private keys sử dụng MakeCert Sau gõ dịng lệnh sau: makecert –sv private_key_name.pvk –ss storename –r –n “CN=your name” public_key_name.cer để tạo public and private key Ý nghĩa câu lệnh sau sv private.pvk Tạo private key với tên private.pvk khơng tồn ss myNewStore: Tạo tên chủ đề lưu trữ subject cerfiticate để lưu trữ cerfiticate đầu Nếu store không tồn tạo 59 n “CN=your name”: Đặt tên nhà phát hành chủ đề với giá trị r public.cer: Sẽ tạo cerfiticate tự ký Sau đó Enter xuất hình yêu cầu nhập password cho private key Sau ta nhập password press OK Sau hộp thoại yêu cầu đặt password cho private key Hình 22: Màn hình thơng báo sau tạo private key Chúng ta kiểm tra trường cerfitcate việc click vào trường Hình 23: Thông tin Cerfiticate Để tạo chữ ký cho file sử dụng ToolSign sau: Hình 24: Màn hình giao diện command toolsign 60 Hình 25: Màn hình Digital Signature Wizard Press next Hình 26: Chọn tên file cần ký Press Next 61 Hình 27: Lựa chọn Cerfiticate nguồn Press Next Hình 28: Lựa chọn public key Press Next 62 Hình 29: Lựa chọn private key file Press next Hình 30: Lựa chọn thuật tốn dùng cho chữ ký Press next 63 Hình 31: Digital Signature Wizard Press next Hình 32: Digital Signature Wizard-1 Như ta tạo chữ ký thành công cho file good.dll Bây kiểm tra tra file good.dll xem có bị thay đổi q trình truyền khơng? Verify Signature Chúng ta phải có cerfiticate từ bên gửi để kiểm tra file good.dll Tất Authenticode tính tốn lại giá trị băm so sánh với giá trị cung cấp phần chữ ký file, sử dụng lệnh sau: 64 Signtool verify -v good.dll Thì ta thấy thơng báo thất bại Nguyên nhân thất bại chưa cài đặt Certificate Sau cài đặt Certificate gõ lại lệnh Hình 33: Verify a file-1 Như file good.dll không bị thay nội dung trình truyền Hiện Việt Nam có nhiều cơng ty, ngân hàng áp dụng chứng số việc giao dịch điện tử Ngân hàng cổ phần Thương mại Á Châu(ACB) áp dụng chứng số vào giao dịch điện tử cơng ty, khách hàng ACB dễ dàng tính tốn tiền điện, tiền nước giao dịch điện tử việc rút tiền chuyển khoản(ACB-EBanking) Khơng có ACB mà cịn nhiều ngân hàng VCB, Techcombank… Cũng áp dụng mơ hình chứng số giao dịch với khác hàng Hiện hàm băm chủ yếu sử dụng thuật toán chứng số chủ yếu SHA-1 MD5 Tuy nhiên người ta thường sử dụng thuật toán MD5 nhiều tính bảo mật cao SHA-1 có điểm yếu cơng xung đột tính W = W t 3 W W t 8 t 14 W blocksize) then 69 key = hash(key) // keys longer than blocksize are shortened end if if (length(key) < blocksize) then key = key ∥ [0x00 * (blocksize - length(key))] // keys shorter than blocksize are zero-padded ('∥' is concatenation) end if o_key_pad = [0x5c * blocksize] ⊕ key // Where blocksize is that of the underlying hash function i_key_pad = [0x36 * blocksize] ⊕ key // Where ⊕ is exclusive or (XOR) return hash(o_key_pad ∥ hash(i_key_pad ∥ message)) // Where '∥' is concatenation end function Một số ví dụ HMAC_MD5("", "") = 0x74e6f7298a9c2d168935f58c001bad88 HMAC_SHA1("", "") = 0xfbdb1d1b18aa6c08324b7d64b71fb76370690e1d HMAC sử dụng TLS, IPSec , ngân hàng Ví dụ việc sử dụng HMAC Hình 38: Sử dụng HMAC IPSec 70 4.3 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỀN Qua q trình tìm hiểu làm luận văn, tơi hiểu nắm bắt vấn đề mấu chốt thuật tốn mã hóa, hàm băm Do tơi hiểu chế làm việc hàm, thư viện Framework sử dụng phổ biến phát triển phần mềm ngày nay, giúp ích tơi nhiều cơng việc đặc biệt q trình lựa chọn phương pháp mã hóa, băm liệu để đảm bảo an tồn khơng bị công Tôi hiểu khác mã hóa đối xứng mã hóa khơng đối xứng, chế làm việc chữ ký điện tử, cơng hàm băm, kiểm tra tồn vẹn file Tôi demo thành công hàm băm MD5 ngơn ngữ lập trình C/C++ Visual Studio2008 Tuy nhiên q trình làm luận văn tơi nhận thấy xung đột băm kẽ hở để attacker công vào liệu tơi xác định q trình nghiên cứu tiếp tơi hàm băm vá lỗi công xung đột băm Tiếp tục hoàn thiện phần chứng số để áp đưa áp dụng bảo mật Email công ty Fsoft 71 4.4 TÀI LIỆU THAM KHẢO [1] GS.TS Nguyễn Bình, TS Trần Đức Sự “Giáo trình sở lý thuyết mật mã Ban yếu phủ, học viện kỹ thuật mật mã”, Hà nội năm 2000 [2] TS Nguyễn Đình Vinh, “Giáo trình sở an tồn thơng tin”, Ban yếu phủ, học viện kỹ thuật mật mã, Hà nội năm 2006 [3] Lê Phê Đô, Nguyễn Cảnh Hoàng, Nguyễn Thanh Hưng, “Hàm băm an toàn SHA3”, báo cáo hội thảo CNTT quốc gia lần thứ 14 Đại Học Cần Thơ [4] Xiaoyun Wang, Hongbo Yu, “How to Break MD5 and Other Hash Functions”, EUROCRYPT 2005, LNCS 3494, pp.19-35, Springer-Verlag, 2005 [5] Jean-Philippe Aumasson, Luca Henzen, Willi Meier, and Raphael C.-W Phan “SHA-3 proposal BLAKE” Submission to NIST, 2008 [6] năm 2003 Man Young Rhee “Internet Security” Nhà xuất John Wiley and Sons, [7] A Menezes, P van Oorschot, and S Vanstone Handbook of Applied Cryptography, CRC Press, Inc., October 1997 [8] Yaser Esmaeili Salehani, S Amir Hossein A.E Tabatabaei, Mohammad Reza Sohizadeh Abyaneh, Mehdi Mohammad Hassanzadeh “NESHA-256, NEw 256-bit Secure Hash Algorithm”, năm2009 [9] Một số trang web tiếng Anh - http://msdn.microsoft.com/en-us/library/aa379866(v=VS.85).aspx - http://en.kioskea.net/contents/crypto/certificat.php3 - http://webdev.sis.pitt.edu/st/authenticode/authen4.htm - http://www.131002.net/blake/ ... tốn hàm băm) - H hàm băm - Hàm băm sử dụng việc mã hóa password, giao dịch điện tử, kiểm tra toàn vẹn file Hàm băm sử dụng phổ biến hàm băm chiều (one-way) MD5 Các tính chất hàm băm - Hàm băm. .. Tổng kết hàm băm trên[6] Tên hàm băm MD5 SHA-1 SHA-384 SHA-512 Bảng 2: Bảng so sánh loại hàm băm MD Tấn công hàm băm 3.1 Tấn công hàm băm Tấn công hàm băm việc phá vỡ yêu cầu với hàm băm Attacker... internet hàm băm đóng vai trị quan trọng, khơng đảm bảo toàn vẹn giao dịch mà cịn đảm bảo bí mật liệu bên giao dịch, điều quan trọng 12 Tổng quan hàm băm 2.1 Định nghĩa hàm băm Hàm băm H nhận đầu vào