Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
656,37 KB
Nội dung
Mạng máy tính và bảo mật ĐỀ TÀI Các vấn đề cần giải quyết ……………………………………………………. Mã hóa Khái niệm về hàm băm MD5 Đặc điểm MD5 Ứng dụng Thuật toán Những lỗ hổng và yếu điểm Một số thuật toán mã hóa khác Một số phần mềm kiểm tra MD5 Tổng kết Lý Thế Anh: k114060967 Trần Thị Kiều Chinh: k114060972 Vũ Hoài Nam: k114061013 Phan Thanh Trang: k114061058 Nhóm 14 Page 1 Mã hóa MD5 và những ứng dụng Mạng máy tính và bảo mật I- Mà HÓA LÀ GÌ Mã hóa !"#$%&'"%(%)* +,"( -.,/!!0 1#0/% 234*5 "#6 !078 91 9:0+07!9; Mã hóa (Encryption): Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao người khác không thể đọc hiểu được (kí hiệu E) Giải mã (Decryption): Quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành dạng gốc ban đầu (kí hiệu D); Một hệ thống mã hóa bao gồm các thành phần: < Thông tin trước khi mã hóa = Thông tin sau khi mã hóa > Chìa khóa ? Phương pháp mã hóa/giải mã Vì sao chúng ta cần phải mã hóa? • Nhu cầu riêng tư, tính bảo mật • Toàn vẹn của thông tin • Mã hóa cũng là nền tảng của chữ ký điện tử, hệ thống PKI… II- KHÁI NIệM Về HÀM BĂM MD5 Hàm băm Hash còn được gọi là “hàm băm” hay “bảng băm”. Hàm băm là một hàm toán học chuyển đổi một thông điệp đầu vào có độ dài bất kỳ thành một dãy bit có độ dài cố định (tuỳ thuộc vào thuật toán băm).@7"7 1 A$B BB.)7+"'$.&0B) , " C0 Hàm băm là hàm một chiều nên không thể tái tạo lại thông điệp ban đầu từ một chuỗi băm có sẵnD.E7 F6GHI C0&J Nhóm 14 Page 2 Mạng máy tính và bảo mật /#:0%7.K/0L M7KH !/!3 &NO Hàm băm là hàm mã hóa 1 chiều Cấu trúc của một hàm băm thường có dạng C3O"'P&"# F/QP 1 E80C !"' " C00R80K + Nhóm 14 Page 3 Mạng máy tính và bảo mật S"# F/$!T/)0R".0CE0K 6OP&/#:0%0K60R"'O"' " Hàm băm MD5 , MD5 (viết tắt của tiếng Anh Message-Digest algorithm 5, giải thuật Tiêu hóa tin 5) là một hàm băm mật mã được sử dụng phổ biến với giá trị băm dài 128-bitU0VWBB$XYS<>=<)D@Z 1dùng trong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin.Một bảng băm MD5 thường được diễn tả bằng một số hệ thập lục phân 32 ký tự. D@Z 1#/#"IXX&B.&'<[[< !7#"'\ D@?2'<[[]-RFD@Z^/&_ "#%RL7/907L"` C0 8+.a9%0/bQc<$/ J"+5B/ )'=dd?80RF"+//#&.a% 07 3"% "+ T&H III- ĐặC ĐIểM MD5 • Việc tính MD đơn giản, có khả năng xác định được file có kích thước nhiều Gb. • Không có khả năng tính ngược, khi tìm ra MD. • @"%H_0LO"'&.K1E\+ .!nên hầu như không có khả năng hai bản tin phân biệt có cùng giá trịhash. • Giá trị MD phụ thuộc vào bản tin tương ứng. • Một chuổi chỉ có duy nhất một hash. • Giá trị MD phụ thuộc vào tất cả các bit của bản tin tương ứng. Nhóm 14 Page 4 Mạng máy tính và bảo mật Ví dụ về mã MD5: MD5("iloveyou") =f25a2fc72690b780b2a14e140ef6a9e0 MD5("cộng hòa xã hội chủ nghĩa việt nam") = 7b8e76fac176d53c53cb24843e31e759 Ngay cả chuỗi rỗng vẫn có kết quả: MD5(“”) = d41d8cd98f00b204e9800998ecf8427e IV- ỨNG DụNG < Bảo toàn thông tin D@Z 16C8L#\ !đảm bảo việc truyền tập tin được nguyên vẹnS!-6D@Z &PefBQ.gh50H"%i30D@OfB ejA%fB&8(fBA&*e.g0R D@4 k#0307/\&\30! h50H"%iIL (/&H 8 k#0307/0!fBe&07 "+7 F Nhóm 14 Page 5 Mạng máy tính và bảo mật MD5 checksum là kiểm tra 1 dạng hash của filej6D@ZSB/.0L<fB .g.<0RD@Z07H&\*fB=fB60&80.g 0<0RD@Z/06l<".g=0RD@Z/0Khi down file thường có kèm chuỗi MD5 (nhất là các file dung lượng lớn) để cho người dùng kiểm tra xem file down về có trùng với file gốc hay ko, nếu có lỗi trong quá trình down thì chuỗi MD5 của file được down về sẽ khác với chuỗi MD5 gốc được cung cấpS!.aD@Zb0B !,&/! = Bảo mật • D 3O&7biến đổi một chuổi mật khẩu thành một đoạn mã khác, sao cho từ đoạn mã đó không thể nào lần trở lại mật khẩu. Sm &%/!T%H/%-&$ O ! %n/B) Nhóm 14 Page 6 Mạng máy tính và bảo mật o07(EOeB".B&B > Là nền tảng của chữ kí số Chữ ký số (khóa công khai) là mô hình sử dụng các kỹ thuật mật mã để gắn với mỗi người sử dụng một cặp khóa công khai - bí mật và qua đó có thể ký các văn bản điện tử cũng như trao đổi các thông tin mật. Khóa công khai thường được phân phối thông qua chứng thực khóa công khai. Quá trình sử dụng chữ ký số bao gồm 2 quá trình: tạo chữ ký và kiểm tra chữ ký. S09/p.KP5 +0qK"% %3&NO90 1078 q-J"% %3/!OOE# /p V- Thuật toán 4rr.f.B07B0B0r7rZ 4rreeeZBr Nhóm 14 Page 7 Mạng máy tính và bảo mật D@Z"# F 80"H/(/K/3\K +<=s ". &.t 1`/KZ<=". 1 &" !80O.t#Z<=u , .04 \L.tv"<&0K # ,"wB\/80OG".KOZ<= /%]?" xCn,.t 1H C7"I.K07L]?""!0!80" C0O E:0"\.04 Bước 1: nhồi dữ liệu kqL"..90 l ≡ 448 mod 512 7l n * 512 + 448 (n,l nguyên) U0Eq907%/90" C0 0K23 90 ??s 1qLZ<=". ! 1 []d". bK1"qLy/%< #Z<= S" 1qq<"h<i&"dB.0 Nhóm 14 Page 8 Mạng máy tính và bảo mật Bước 2: thêm vào độ dài zO/K90" C0 1"!0{\,+M]?"& 1L &0K0R+M/#:0%O"\< k#0 O/K90" C0|=]?l]?".H 1.am+ 1L&"yK mod 264 j#:0% 1*="\ C0/K90 ".KOZ<=jK9 0 1"!0{4 uy7U/KZ<="}d}<;}U< uy7k*$e)>="DdD<Dk<27N = L x 16 $>=5<]~Z<=) Bước 3: khởi tạo bộ đệm MD (MD buffer) D" <=s" 1609+"'0&/#:0%u 1"!0{"y?>="&\+/I,I,BB$"7B .KGH*yI +lHH).04 • c~]•?Z=>d< • u~€YS@cus[ • S~[suc@SY€ • @~<d>=Z?•] S+7 &\*>=".04 • c~d<=>?Z]• • u~s[cuS@€Y • S~Y€@Suc[s • @~•]Z?>=<d Bước 4: xử lí các khối dữ liệu 512- bit Nhóm 14 Page 9 Mạng máy tính và bảo mật • MO%0hàm nén $B f0)q?h&ni5apS &n7H0AK0.a03/0qY•Q &W Y$‚}w)~‚ƒ}„…‚ƒw •$‚}w)~‚ƒw„}ƒ…w Q$‚}w)~‚5}5w W$‚}w)~}5$‚„…w) • D%]?Ca 13B4†‡~=>=5".$.$))W 13B • j#:0%O?&n 1$B0=>=&\ C0&S2: !,S2:ˆ< Nhóm 14 Page 10 [...]... là giá trị băm 128 bits VI- Cách sử dụng các giải thuật mã hóa MD5 trong C# Để sử dụng các giải thuật MD5 hoặc SHA trong C# bạn có thể sử dụng namespace.using System.Security.Cryptography; a Cách sử dụng Viết hàm mã hóa: Mã hóa bằng giải thuật MD5 private string EncodeMD5(string pass) { Nhóm 14 Page 13 Mạng máy tính và bảo mật MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bs... đăng nhập với User: " + strUsername + " và \nPass đã được mã hóa MD5 là: " + strPasswordMD5 + " và \nPass đã được mã hóa SHA1 là: " + strPasswordSHA1 , "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information ); } Nhóm 14 Page 16 Mạng máy tính và bảo mật Bước 5 Kết thúc VII- NHữNG Lỗ HổNG VÀ YếU ĐIểM 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ăm1996, người ta đã tìm thấy... đoạn nghiên cứu sơ bộ song những phát hiện này có thể tạo điều kiện để kẻ xấu cài những chương trình cửa sau (backdoor) bí mật vào trong mã máy tính, hoặc giả mạo chữ ký điện tử.Trừ phi một thuật toán mới, bảo mật hơn được xây dựng và đưa vào sử dụng! Lỗ hổng mới phát hiện trong MD5 sẽcho phép kẻ tấn công tạo ra file giả mạochỉ trong vài giờ với một máy tính đạt chuẩn." - Vì MD5 chỉ dò qua dữ liệu một... SHA-256 , SHA-384, và SHA-512 Thuật giải SHA là thuật giải băm mật được phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ Bốn thuật giải sau thường được gọi chung là SHA-2 Nhóm 14 Page 19 Mạng máy tính và bảo mật Trong nhiều chuẩn và ứng dụng, hai hàm băm thông dụng nhất là MD5 và SHA-1 Năm 2005,... nổi tiếng với tính năng cắt nhỏ và nối các tập tin lại với nhau.Ngoài ra còn có tính năng kiểm tra mã MD5 khá hiệu quả Nhóm 14 Page 20 Mạng máy tính và bảo mật Nếu kết quả bạn kiểm tra không đúng so với mã MD5 được cung cấp thì chúng ta sẽ làm gì? Câu trả lời đơn giản là bắt đầu lại quá trình download, kiểm tra tính xác thực của nguồn dữ liệu X- Tổng kết Thuật toán số hóa thông điệp MD5 khá đơn giản... 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à SHA-1… Và rồi gần đây,giới mã hoá đã xôn xao với thông tin các thuậttoán bên trong nhiều ứng dụng bảo mật thông dụng, như chữ ký điện tử, cũng có lỗ hổng (trong đó có MD5) .Mọichuyện bắt đầu từ năm,khi nhà khoa học máy tính người Pháp Antoine Joux phát hiện ra một lỗ hổng trong thuật toán phổ biến MD5, thường dùng trong.. .Mạng máy tính và bảo mật Nhóm 14 Page 11 Mạng máy tính và bảo mật Các giá trị trong bảng T T[1] = d76aa478 T[2] = e8c7b756 T[3] = 242070db T[4] = c1bdceee T[5] = f57c0faf T[6] = 4787c62a T[7] = a8304613 T[8] = fd469501 T[9] = 698098d8... về sẽ là một mảng kiểu Byte đã được mã hóa. Việc cuối cùng của chúng ta là chuyển thành kiểu dữ liệu String để trả về b Ứng dụng Chúng ta thiết kế một demo nhỏ để minh họa cho 2 giải thuật này Dùng chương trình Visual Studio 2008 để thiết kế một Form có giao diện như sau: Hình mẫu: Nhóm 14 Page 14 Mạng máy tính và bảo mật Yêu cầu chương trình Sau khi nhập username và password.Nhấn nút login chương trình... bắt đầu với X Nhóm 14 Page 17 Mạng máy tính và bảo mật Tất cả những gì cần để tạo ra hai tập tin đụng độ là một tập tin mẫu, với một khối dữ liệu 128 byte được xếp trên giới hạn 64 byte, có thể thay đổi tự do bằng giải thuật tìm va chạm Vừa rồi, một số dự án đã tạo ra "bảng cầu vồng" MD5 có thể dễ dàng tiếp cận trực tuyến, và có thể được dùng để dịch ngược nhiều bảng băm MD5 thành chuỗi mà có thể đụng... hiển thị một thông điệp cho thấy password đã được mã hóa thành 2 chuỗi khác nhau tương ứng với 2 giải thuật khác nhau Kết quả sau khi nhập password là admin: Hướng dẫn thực hiện: Sau khi đã thiết kế xong giao diện nhấn F7 để coding cho form B1: Bổ sung namespace còn thiếu using System; using System.Collections.Generic; Nhóm 14 Page 15 Mạng máy tính và bảo mật using System.ComponentModel; using System.Data; . Mạng máy tính và bảo mật ĐỀ TÀI Các vấn đề cần giải quyết ……………………………………………………. Mã hóa Khái niệm về hàm băm MD5 Đặc điểm MD5 Ứng dụng Thuật toán Những lỗ hổng và yếu điểm Một số thuật toán mã. thuộc vào bản tin tương ứng. • Một chuổi chỉ có duy nhất một hash. • Giá trị MD phụ thuộc vào tất cả các bit của bản tin tương ứng. Nhóm 14 Page 4 Mạng máy tính và bảo mật Ví dụ về mã MD5: MD5( "iloveyou"). sử dụng Viết hàm mã hóa: Mã hóa bằng giải thuật MD5 private string EncodeMD5(string pass) { Nhóm 14 Page 13 Mạng máy tính và bảo mật MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[]