Báo cáo mã hóa và cracking MD5

21 616 2
Báo cáo mã hóa và cracking MD5

Đ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

Báo cáo mã hóa và cracking MD5

BÁO CÁO MÃ HÓA VÀ CRACKING MD5 TRƯỜNG ĐH KỸ THUẬT CÔNG NGHỆ TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ************************* MÔN: BẢO MẬT MẠNG BÁO CÁO MÃ HÓA VÀ CRACKING MD5 GVHD: NGUYỄN ĐỨC QUANG SINH VIÊN MẠNG KHÁO 2008 THỰC HIỆN GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 THỰC HIỆN BỞI CÁC NHÓM SINH VIÊN 08DTHM: LÊ GIA TỰ 0851020220 NGUYỄN MINH QUANG 0851020161 NUYỄN VĂN THÀNH 0851020187 TRẦN MINH TÂN 0851020197 HỒ SĨ QUANG 0851020162 PHẠM ANH QUANG 0851020157 GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 MÃ HÓA MD5 I GIỚI THIỆU VỀ MÃ HÓA VÀ THUẬT TOÁN MD5: MÃ HÓA LÀ GÌ? Mã hóa phương pháp để biến thông tin từ định dạng bình thường sang dạng thông tin hiểu phương tiện giải mã VD: Từ ngàn xưa ông cha ta biết dùng cách mã hóa để truyền thông tin mật ghi chữ ngược, đọc chữ thông qua gương,dịch chuyển chữ cái… Vì cần phải mã hóa? - Nhu cầu riêng tư, tính bảo mật - Toàn vẹn thông tin Mã hóa tảng chữ ký điện tử, hệ thống PKI…  Chữ ký điện tử thông tin kèm theo liệu (văn bản, hình ảnh, video ) nhằm mục đích xác định người chủ liệu  Khóa công khai (PKI) thường dùng để toàn hệ thống bao gồm nhà cung cấp chứng thực số (CA) chế liên quan đồng thời với toàn việc sử dụng thuật toán mật mã hóa khóa công khai trao đổi thông tin MD LÀ GÌ? MD5 (Message - Digest - algorithm 5) giải thuật tiêu hóa tập tin chuẩn Internet (RFC 1321) Có khả băm mã hóa tập tin thành chuỗi HEX 32 ký tự, tương đương 128-bit (mỗi ký tự hex 4-bit x 32 ký tự = 128 bit) Hoặc định nghĩa theo cách khác MD5 cách để lấy chùm ký tự ( digest, alphabeic hay khác ), gọi string nhập vào cho 32 ký tự hexa (0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f) MD5 thiết kế Ronald Rivest vào năm 1991 để thay cho hàm băm trước đó, MD4 Vào năm 1996, người ta phát lỗ hổng MD5; chưa biết có phải lỗi nghiêm trọng hay không, chuyên GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 gia mã hóa bắt đầu đề nghị sử dụng giải thuật khác, SHA-1 (khi bị xem không an toàn) Trong năm 2004, nhiều lỗ hổng bị khám phá khiến cho việc sử dụng giải thuật cho mục đích bảo mật bị đặt nghi vấn ĐẶC ĐIỂM MD5 • Việc tính MD đơn giản, có khả xác định file có kích thước nhiều Gb • Không có khả tính ngược, tìm MD • Do chất ngẫu nhiên hàm băm số lượng cực lớn giá trị hash có thể, nên khả hai tin phân biệt có giá trị hash • Giá trị MD phụ thuộc vào tin tương ứng • Một chuổi có hash • Giá trị MD phụ thuộc vào tất bit tin tương ứng Ví dụ : love is blue  03d4ad6e7fee3f54eb46b5ccde58249c love is Blue  82b76f8eeb4a91aa640f9a23016c7b1c II ỨNG DỤNG BẢO TOÀN THÔNG TIN MD5 dùng rộng rãi phần mềm toàn giới để đảm bảo việc truyền tập tin nguyên vẹn Các nhà phát triển ứng dụng thường dùng MD5 việc cho phép download file Họ cho “xuất bản” tín hiệu MD file download Khi tải file , file vừa download có chuỗi MD: • Nếu tín hiệu khớp với tín hiệu nhà phát triển ứng dụng “xuất bản” Thì OK, ko có vấn đề • Nếu hai tín hiệu khác nhau, có file download có virut hay tập tin bị thay đổi GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Để tăng tính bảo mật, ta thêm key vào mật trước băm chúng Băm nhiều lần hơn, Tuy nhiên, dễ dàng tạo xung đột MD5, người tạo tập tin để tạo tập tin thứ hai với checksum, kỹ thuật chống lại vài dạng giả mạo nguy hiểm Ngoài ra, số trường hợp checksum tin tưởng (ví dụ, lấy từ lệnh tập tin tải về), trường hợp MD5 có chức kiểm tra lỗi: nhận lỗi tải chưa xong, dễ xảy tải tập tin lớn BẢO MẬT Mục đích việc mã hóa biến đổi chuổi mật thành đoạn mã khác, cho từ đoạn mã lần trở lại mật Có nghĩa việc giải mã phải khoảng thời gian vô tận (đủ để làm nản lòng hacker) GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Quá trình chứng thực User với Webserver GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 III THUẬT TOÁN Giải thuật MD5 hoạt động trạng thái 128-bit, chia thành từ 32-bit, với ký hiệu A, B, C D Chúng khởi tạo với số cố định Giải thuật sau xử lý khối tin 512-bit, khối xác định trạng thái Quá trình xử lý khối tin bao gômg bốn giai đoạn giống nhau, gọi vòng; vòng gồm có 16 tác vụ giống dựa hàm phi tuyến F, cộng Module, dịch trái Thực qua bước sau: Bước 1: Thêm bit vào chuổi Thực nối dài thông điệp (theo hình vẽ thông điệp B) để chi nhỏ thành module 512 • Thêm bit ‘1’ vào cuối thông điệp để đánh dấu • Thêm vào k bit ‘0’ cho (b bit + bit + k bit 0)mod 512=448 GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 • 64 bit thêm vào biểu thị chiều dài chuổi bit ban đầu (B bit + bit ‘1’ + k bit ‘0’ + 64 bit chiều dài) mod 512 = Ví dụ: Ta có chuỗi 384bit Quá trình thêm bit Bước 2: Khởi tạo đệm MD Một đệm word (A,B,C,D) dùng để tính mã số thông điệp Ở A,B,C,D ghi 32 bit Những ghi khởi tạo theo giá trị hex sau ( byte thấp trước ) : word A : 01 23 45 67 word B : 89 ab cd ef word C : fe dc ba 98 word D : 76 54 32 10 Bước 3: Xử lý thông điệp theo khối 16 word Trước hết ta định nghĩa hàm phụ, hàm nhận đầu vào word 32 bit tạo word 32 bit GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Với XOR, AND, OR, NOT Đây trình thực xử lý hàm F trên: Quá trình sử dụng bảng có 64 giá trị T[1 64] tạo từ hàm sin Gọi T[i] phần tử thứ i bảng, T[i]là phần nguyên 4294967296*|sin(i)| , i tính theo radian Thực hiện: /* Xử lý khối 16 word */ For (i = to N/16-1) /* Copy block i into X */ For j = to 15 Set X[j] to M[i*16+j] end /* of loop on j */ /* Lưu A vào AA, B vào BB, C vào CC, D DD Làm buffer */ AA = A BB = B CC = C DD = D GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Quá trình thực qua vòng GVHD: NGUYỄN ĐỨC QUANG Page 10 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 GVHD: NGUYỄN ĐỨC QUANG Page 11 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 /* Then perform the following additions (That is increment each of the four registers by the value it had before this block was started.) */ /* Sau làm phép cộng sau ( Nghĩa cộng vào ghi giá trị trước vào vòng lặp ) */ A = A + AA B = B + BB C = C + CC D = D + DD end /* of loop on i */ Bước 4: In Mã số thông điệp tạo A,B,C,D Nghĩa byte thấp A, kết thúc với byte cao D GVHD: NGUYỄN ĐỨC QUANG Page 12 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 MÃ GIẢ Mã giả cho giải thuật MD5 sau //Chú ý: Tất biến biến không dấu 32 bit bao phủ mô đun 2^32 tính toán var int[64] r, k //r xác định r[ 15] := r[16 31] := r[32 47] := r[48 63] := số dịch {7, 12, {5, 9, {4, 11, {6, 10, chuyển vòng 17, 22, 7, 12, 14, 20, 5, 9, 16, 23, 4, 11, 15, 21, 6, 10, 17, 14, 16, 15, 22, 20, 23, 21, 7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21, 7, 12, 17, 22} 5, 9, 14, 20} 4, 11, 16, 23} 6, 10, 15, 21} //Sử dụng phần nguyên nhị phân sin số nguyên làm số: for i from to 63 k[i] := floor(abs(sin(i + 1)) × (2 pow 32)) //Khởi tạo var int h0 var int h1 var int h2 var int h3 biến: := 0x67452301 := 0xEFCDAB89 := 0x98BADCFE := 0x10325476 //Tiền xử lý: append "1" bit to message append "0" bits until message length in bits ≡ 448 (mod 512) append bit (bit, not byte) length of unpadded message as 64-bit little-endian integer to message //Xử lý mẩu tin đoạn 512-bit tiếp theo: for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words w[i], ≤ i ≤ 15 //Khởi tạo giá trị băm cho đoạn này: var int a := h0 var int b := h1 var int c := h2 var int d := h3 //Vòng lặp chính: for i from to 63 if ≤ i ≤ 15 then f := (b and c) or ((not b) and d) g := i GVHD: NGUYỄN ĐỨC QUANG Page 13 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 else if 16 ≤ i ≤ 31 f := (d and b) or ((not d) and c) g := (5×i + 1) mod 16 else if 32 ≤ i ≤ 47 f := b xor c xor d g := (3×i + 5) mod 16 else if 48 ≤ i ≤ 63 f := c xor (b or (not d)) g := (7×i) mod 16 temp d := c := b := a := := d c b b + leftrotate((a + f + k[i] + w[g]) , r[i]) temp //Thêm bảng băm đoạn vào kết quả: h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d var int digest := h0 append h1 append h2 append h3 //(expressed as littleendian) //định nghĩa hàm dịch trái leftrotate (x, c) return (x > (32-c)); Ghi chú: Thay hàm hóa RFC 1321 gốc trên, phần sau dùng để tăng độ hiệu (hữu ích ngôn ngữ assembly dùng - không, chương trình dịch tự động tối ưu hóa đoạn mã trên): (0 ≤ i ≤ 15): f := d xor (b and (c xor d)) (16 ≤ i ≤ 31): f := c xor (d and (b xor c)) IV CÁC GIẢI PHÁP THAY THẾ TƯƠNG TỰ Bất thuật toán mã hóa bị giải mã Với MD5, từ năm 1996, người ta tìm thấy lỗ hổng Mặc dù lúc chưa rõ ràng chuyên gia mã hóa nghĩ đến việc phải đưa thuật giải khác, SHA1… GVHD: NGUYỄN ĐỨC QUANG Page 14 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 SHA-1 coi chuẩn mực "vàng" thuật toán Nó tích hợp bên nhiều chương trình thông dụng PGP SSL, chứng thực Viện Chuẩn Công nghệ Quốc gia thuật toán chữ ký điện tử Cơ quan Chuẩn Chữ ký Số phủ Mỹ phê chuẩn V KẾT LUẬN Thuật toán số hóa thông điệp MD5 đơn giản để thực hiện, cung cấp dạng “vân tay“ hay mã số thông điệp với độ dài tùy ý Người ta cho độ khó để tìm thông điệp có mã số khoảng 2^64 bước tính, độ khó để tim thông điệp với mã số cho trước 2^128 bước tính - Với giá trị x, tính y ≠ x cho H(y) = H(x) - Không thể tính cặp (x, y) cho H(x) = H(y) Do MD5 sử dụng rộng rãy ứng dụng, web, bảo mật, chứng thực… Tuy nhiên mức độ md crack VI DEMO SNIFF & CRACK MD5: Tuy mức độ bảo mật MD5 đánh giá tốt dịch ngược Nhưng việc crack Đoạn Hash MD5 thực Trong demo thực việc bắc gói tin login đăng nhập diễn đàn http://ithutech.net với thông tin password mã hóa MD5 GVHD: NGUYỄN ĐỨC QUANG Page 15 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Đồ nghề cần chuẩn bị: • Trình duyệt internet… • Wireshark để bắt lưu lượng login • Cain & Abel GVHD: NGUYỄN ĐỨC QUANG Page 16 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Các bước thực hiện: B1: Dùng trình duyệt mở trang web cần công B2: Mở wireshark chọn card mạng sử dụng B3: Trở lại trang diễn đàn tiến hành login B4: Lọc gói tin http login.php GVHD: NGUYỄN ĐỨC QUANG Page 17 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Xem nội dung bắt B4: Tiến hành cracking đoạn password MD5 vừa bắt cain & Abell dựa vào giải thuật Brute-force attack GVHD: NGUYỄN ĐỨC QUANG Page 18 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Cho đoạn hash MD5 vào Định dạng pass cần tiềm Giới hạn chiều dài pass Định dạng pass a-z, A-Z, 0-9, !@# GVHD: NGUYỄN ĐỨC QUANG Page 19 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Và kết Kết tiềm là: 0989612220 Thử nghiệm thành công với số kiểu password kiểu tên người, số điện thoại, ngày tháng năm sinh… GVHD: NGUYỄN ĐỨC QUANG Page 20 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 CƠ CHẾ HOẠT ĐỘNG CỦA GIẢI THUẬT BRUTE-FORCE ATTACK Brute-force Attack giải thuật vét cạn Quá trình cracking MD5 thực chế so sánh MD5 hoán vị password cần tìm với đoạn MD5 sniff Quá trình nhanh hay chậm phụ thuộc nhiều vào độ nhạy tư cracker điều quan trọng hết độ manh phức tạp password Ngày Công việc cracking nhanh nhiều lầ siêu máy tính kết hợ nhiều chíp xử lý Kết luận: Việc crack MD5 làm được, trình tiềm key nhanh hay chập phụ thuộc vào nhiều yếu tố Nếu ta đặt password đủ mạnh có nghĩa thỏa mãn tiêu chí bảo mật: pass đủ dài, có chữ hoa chữ thường, ký tự đặt biệt, sô… trình dò theo giải thuật brute force attack nhiều thời gian gây nản lòng cho kẻ công Một số cách để cải thiện độ an toàn cho password thực băm lần, thêm bớt thành phần chuổi băm GVHD: NGUYỄN ĐỨC QUANG Page 21 [...]... 17 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Xem nội dung bắt được B4: Tiến hành cracking đoạn password MD5 vừa bắt được bằng cain & Abell dựa vào giải thuật Brute-force attack GVHD: NGUYỄN ĐỨC QUANG Page 18 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Cho đoạn hash MD5 vào Định dạng pass cần tiềm Giới hạn chiều dài pass Định dạng pass có thể là a-z, A-Z, 0-9, !@# GVHD: NGUYỄN ĐỨC QUANG Page 19 BÁO CÁO MÃ HÓA VÀ CRACKING MD5. .. password đã được mã hóa bằng MD5 GVHD: NGUYỄN ĐỨC QUANG Page 15 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Đồ nghề cần chuẩn bị: • Trình duyệt internet… • Wireshark để bắt lưu lượng login • Cain & Abel GVHD: NGUYỄN ĐỨC QUANG Page 16 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Các bước thực hiện: B1: Dùng trình duyệt mở trang web cần tấn công B2: Mở wireshark và chọn card mạng đang sử dụng B3: Trở lại trang diễn đàn và tiến hành...BÁO CÁO MÃ HÓA VÀ CRACKING MD5 GVHD: NGUYỄN ĐỨC QUANG Page 11 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 /* Then perform the following additions (That is increment each of the four registers by the value it had before this block was started.) */ /* Sau đó làm các phép cộng sau ( Nghĩa là cộng vào mỗi thanh ghi giá trị của nó trước khi vào vòng lặp ) */ A = A + AA B = B + BB... B + BB C = C + CC D = D + DD end /* of loop on i */ Bước 4: In ra Mã số thông điệp được tạo ra là A,B,C,D Nghĩa là chúng ta bắt đầu từ byte thấp của A, kết thúc với byte cao của D GVHD: NGUYỄN ĐỨC QUANG Page 12 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 MÃ GIẢ Mã giả cho giải thuật MD5 như sau //Chú ý: Tất cả các biến đều là biến không dấu 32 bit và bao phủ mô đun 2^32 khi tính toán var int[64] r, k //r xác định... lúc đó còn chưa rõ ràng lắm nhưng các chuyên gia mã hóa đã nghĩ đến việc phải đưa ra một thuật giải khác, như là SHA1… GVHD: NGUYỄN ĐỨC QUANG Page 14 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 SHA-1 được coi là chuẩn mực "vàng" về thuật toán Nó được tích hợp bên trong rất nhiều chương trình thông dụng như PGP và SSL, được chứng thực bởi Viện Chuẩn Công nghệ Quốc gia và là thuật toán chữ ký điện tử duy nhất được Cơ... MÃ HÓA VÀ CRACKING MD5 Và kết quả Kết quả tiềm được là: 0989612220 Thử nghiệm thành công với một số kiểu password kiểu tên người, số điện thoại, ngày tháng năm sinh… GVHD: NGUYỄN ĐỨC QUANG Page 20 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 CƠ CHẾ HOẠT ĐỘNG CỦA GIẢI THUẬT BRUTE-FORCE ATTACK Brute-force Attack là giải thuật vét cạn Quá trình cracking MD5 được thực hiện bởi cơ chế so sánh MD5 của từng hoán vị password... GVHD: NGUYỄN ĐỨC QUANG Page 13 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 else if 16 ≤ i ≤ 31 f := (d and b) or ((not d) and c) g := (5×i + 1) mod 16 else if 32 ≤ i ≤ 47 f := b xor c xor d g := (3×i + 5) mod 16 else if 48 ≤ i ≤ 63 f := c xor (b or (not d)) g := (7×i) mod 16 temp d := c := b := a := := d c b b + leftrotate((a + f + k[i] + w[g]) , r[i]) temp //Thêm bảng băm của đoạn vào kết quả: h0 := h0 + a h1 :=... với đoạn MD5 sniff được Quá trình này nhanh hay chậm phụ thuộc rất nhiều vào độ nhạy và tư duy của cracker và một điều quan trọng hơn hết là độ manh và phức tạp của password Ngày nay Công việc cracking này có thể nhanh hơn rất nhiều lầ đối với các siêu máy tính được kết hợ bởi rất nhiều chíp xử lý Kết luận: Việc crack MD5 là có thể làm được, nhưng quá trình tiềm key nhanh hay chập phụ thuộc vào nhiều... Ghi chú: Thay vì hàm hóa RFC 1321 gốc như trên, phần sau có thể được dùng để tăng độ hiệu quả (hữu ích nếu ngôn ngữ assembly được dùng - còn không, chương trình dịch sẽ tự động tối ưu hóa đoạn mã ở trên): (0 ≤ i ≤ 15): f := d xor (b and (c xor d)) (16 ≤ i ≤ 31): f := c xor (d and (b xor c)) IV CÁC GIẢI PHÁP THAY THẾ TƯƠNG TỰ Bất cứ thuật toán mã hóa nào rồi cũng bị giải mã Với MD5, ngay từ năm 1996,... được Cơ quan Chuẩn Chữ ký Số của chính phủ Mỹ phê chuẩn V KẾT LUẬN Thuật toán số hóa thông điệp MD5 khá đơn giản để thực hiện, cung cấp một dạng “vân tay“ hay mã số của thông điệp với độ dài tùy ý Người ta cho rằng độ khó để tìm được 2 thông điệp có cùng mã số là khoảng 2^64 bước tính, và độ khó để tim được một thông điệp với mã số cho trước là 2^128 bước tính - Với bất kỳ giá trị x, không thể tính được ... QUANG 0851020157 GVHD: NGUYỄN ĐỨC QUANG Page BÁO CÁO MÃ HÓA VÀ CRACKING MD5 MÃ HÓA MD5 I GIỚI THIỆU VỀ MÃ HÓA VÀ THUẬT TOÁN MD5: MÃ HÓA LÀ GÌ? Mã hóa phương pháp để biến thông tin từ định dạng... BÁO CÁO MÃ HÓA VÀ CRACKING MD5 Xem nội dung bắt B4: Tiến hành cracking đoạn password MD5 vừa bắt cain & Abell dựa vào giải thuật Brute-force attack GVHD: NGUYỄN ĐỨC QUANG Page 18 BÁO CÁO MÃ HÓA... trình thực qua vòng GVHD: NGUYỄN ĐỨC QUANG Page 10 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 GVHD: NGUYỄN ĐỨC QUANG Page 11 BÁO CÁO MÃ HÓA VÀ CRACKING MD5 /* Then perform the following additions (That is

Ngày đăng: 14/02/2016, 10:27

Tài liệu cùng người dùng

Tài liệu liên quan