An toàn mạng máy tính - Bài 5: Chứng thực dữ liệu

pdf 60 trang phuongnguyen 4020
Bạn đang xem 20 trang mẫu của tài liệu "An toàn mạng máy tính - Bài 5: Chứng thực dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfan_toan_mang_may_tinh_bai_5_chung_thuc_du_lieu.pdf

Nội dung text: An toàn mạng máy tính - Bài 5: Chứng thực dữ liệu

  1. Trường Đại Học Công Nghệ Thông Tin Khoa Mạng Máy Tính và Truyền Thông ANAN TOTOÀÀNN MMẠẠNGNG MMÁÁYY TTÍÍNHNH ThS. Tô Nguyễn Nhật Quang
  2. NNỘỘII DUNGDUNG MÔNMÔN HHỌỌCC 1.1. TTổổngng quanquan vvềề anan ninhninh mmạạngng 2.2. CCáácc phphầầnn mmềềmm gâygây hhạạii 3.3. CCáácc gigiảảii thuthuậậtt mãmã hohoáá ddữữ liliệệuu 4.4. MãMã hohoáá khokhoáá côngcông khaikhai vvàà ququảảnn lýlý khokhoáá 5.5. ChChứứngng ththựựcc ddữữ liliệệuu 6.6. MMộộtt ssốố giaogiao ththứứcc bbảảoo mmậậtt mmạạngng 7.7. BBảảoo mmậậtt mmạạngng khôngkhông dâydây 8.8. BBảảoo mmậậtt mmạạngng vvàànhnh đđaiai 9.9. TTììmm kikiếếmm phpháátt hihiệệnn xâmxâm nhnhậậpp ATMMT - TNNQ 2
  3. BBÀÀII 55 CHCHỨỨNGNG THTHỰỰCC DDỮỮ LILIỆỆUU
  4. NNỘỘII DUNGDUNG BBÀÀII HHỌỌCC 1.1. MMởở đđầầuu 2.2. MãMã chchứứngng ththựựcc thôngthông đđiiệệpp 3.3. HHààmm bbăămm 4.4. ChChữữ kýký ssốố 5.5. BBààii ttậậpp ATMMT - TNNQ 4
  5. 1.1. MMởở đđầầuu VaiVai tròtrò ccủủaa chchứứngng ththựựcc ATMMT - TNNQ 5
  6. 1.1. MMởở đđầầuu VaiVai tròtrò ccủủaa chchứứngng ththựựcc ChChứứngng ththựựcc (x(xáácc ththựực,c, xxáácc nhnhậậnn authentication)authentication) nhnhằằm:m: –– XXáácc nhnhậậnn ngunguồồnn ggốốcc ccủủaa ddữữ liliệệu.u. –– ThuyThuyếếtt phphụụcc ngngưườờii ssửử ddùùngng llàà ddữữ liliệệuu nnààyy chchưưaa bbịị ssửửaa đđổổii hohoặặcc gigiảả mmạạo.o. ChChứứngng ththựựcc ddữữ liliệệuu llàà ccơơ chchếế quanquan trtrọọngng đđểể duyduy trtrìì ttíínhnh totoàànn vvẹẹnn vvàà khôngkhông ththểể ttừừ chchốốii ccủủaa ddữữ liliệệu.u. ATMMT - TNNQ 6
  7. 1.1. MMởở đđầầuu CCáácc phphươươngng phpháápp chchứứngng ththựựcc Việc chứng thực được thực hiện với các phương pháp: – Mã hoá thông điệp: sử dụng mật mã hoá khoá bí mật hoặc mật mã hoá khoá công khai để mã hoá thông điệp rõ thành mật mã. – Mã chứng thực thông điệp (MAC – Message Authentication Code): một hàm và một khoá bí mật tạo ra một giá trị có chiều dài cố định sử dụng để chứng thực. – Hàm băm (Hash Function): một hàm ánh xạ một thông điệp có chiều dài bất kỳ vào một giá trị băm có chiều dài cố định sử dụng để chứng thực. ATMMT - TNNQ 7
  8. 1.1. MMởở đđầầuu ChChứứngng ththựựcc thôngthông quaqua nhnhậậnn ddạạngng Việc nhận dạng dựa trên một hoặc nhiều yếu tố: – Password, PIN – Smart card – Biometric: vân tay, võng mạc – Chữ ký – ATMMT - TNNQ 8
  9. 1.1. MMởở đđầầuu ChChứứngng ththựựcc thôngthông quaqua nhnhậậnn ddạạngng Smart card ATMMT - TNNQ 9
  10. 1.1. MMởở đđầầuu ChChứứngng ththựựcc thôngthông quaqua nhnhậậnn ddạạngng ATMMT - TNNQ 10
  11. 1.1. MMởở đđầầuu Chứng thực thông qua nhận dạng One-time Passwords ATMMT - TNNQ 11
  12. 1.1. MMởở đđầầuu Chứng thực thông qua nhận dạng Certificate ATMMT - TNNQ 12
  13. 1.1. MMởở đđầầuu VVíí ddụụ Giả sử Alice và Bob chia sẻ một khoá bí mật chung K. Alice muốn gởi một chuỗi dữ liệu M cho Bob và thuyết phục Bob rằng M thực sự đến từ Alice và không bị sửa trong quá trình truyền. Điều này có thể thực hiện như sau: – Alice gởi M cùng với C cho Bob, với C=EK(M) và E là một giải thuật mã hoá thông thường đã quy ước trước giữa Alice và Bob. – Do chỉ có Alice và Bob biết K, Bob có thể sử dụng K để giải mã C thu được M’. – Bob sẽ được thuyết phục rằng M thực sự đến từ Alice và M không bị thay đổi trong quá trình truyền nếu và chỉ nếu M’=M. ATMMT - TNNQ 13
  14. 1.1. MMởở đđầầuu VVíí ddụụ –– TuyTuy nhiên,nhiên, pphhươươngng phpháápp nnààyy chocho phphéépp AliceAlice ccóó ththểể ttừừ chchốốii CharlieCharlie rrằằngng MM xuxuấấtt phpháátt ttừừ AliceAlice vvìì MM ccóó khkhảả nnăăngng xuxuấấtt phpháátt ttừừ BobBob dodo ccùùngng chiachia ssẻẻ khokhoáá bbíí mmậậtt K.K. →→ NhNhưượợcc đđiiểểmm nnààyy đưđượợcc gigiảảii quyquyếếtt bbằằngng mmậậtt mãmã hohoáá khokhoáá côngcông khai.khai. –– NNếếuu chuchuỗỗii MM ngngắắnn,, ccóó ththểể mãmã hhóóaa MM trtrựựcc titiếếpp đđểể xxáácc nhnhậậnn nnóó –– NNếếuu chuchuỗỗii MM ddààii,, cchhỉỉ ccầầnn ttíínhnh totoáánn mmộộtt hh ngngắắnn đđạạii didiệệnn chocho MM vvàà mãmã hhóóaa h.h. ATMMT - TNNQ 14
  15. 1.1. MMởở đđầầuu VVíí ddụụ h được tạo ra mà không sử dụng khoá bí mật được gọi là digital digest hoặc digital fingerprint (dấu vân tay kỹ thuật số), có thể thu được từ một hàm băm (Hash Function). h được tạo ra bằng cách sử dụng một khoá bí mật được gọi là một mã xác thực thông điệp (MAC – Message Authentication Code). h cũng có thể thu được bằng cách sử dụng giải thuật checksum. Kết hợp một hàm băm và giải thuật checksum để tạo ra một mã xác thực tin nhắn keyed-hash (HMAC, Keyed-Hash Message Authentication Code). ATMMT - TNNQ 15
  16. 1.1. MMởở đđầầuu ChecksumChecksum ccủủaa ggóóii TCPTCP TCP Segment ATMMT - TNNQ 16
  17. 1.1. MMởở đđầầuu ĐĐiiềềuu khikhiểểnn llỗỗii khikhi ggởởii thôngthông đđiiệệpp ATMMT - TNNQ 17
  18. 1.1. MMởở đđầầuu Những công dụng cơ bản của mã hoá thông điệp ATMMT - TNNQ 18
  19. 1.1. MMởở đđầầuu Những công dụng cơ bản của mã hoá thông điệp a. Mã hoá khoá đối xứng (khoá bí mật): A → B: E(K, M) Bảo mật: chỉ A và B chia sẻ K Chứng thực: –Cóthể đến chỉ từ A – Không thay đổi trong quá trình truyền –Yêu cầu một số định dạng và dự phòng Không cung cấp chữ ký –Người nhận có thể giả mạo thông điệp –Người gởi có thể phủ nhận đã gởi thông điệp ATMMT - TNNQ 19
  20. 1.1. MMởở đđầầuu Những công dụng cơ bản của mã hoá thông điệp b. Mã hoá khoá bất đối xứng (khoá công khai) A → B: E(PUb, M) Bảo mật –Chỉ B có PRb giải mã Không cung cấp chứng thực –Bất cứ ai cũng có thể sử dụng PUb để mã hoá thông điệp và tự xưng là A. ATMMT - TNNQ 20
  21. 1.1. MMởở đđầầuu Những công dụng cơ bản của mã hoá thông điệp c. Mã hoá khoá công khai: chứng thực và chữ ký số A → B: E(PRa, M) Cung cấp chứng thực và chữ ký số –Chỉ A có PRb để mã hoá – Không bị thay đổi trong quá trình truyền –Yêu cầu một số định dạng và dự phòng –Bất kỳ ai cũng có thể sử dụng PUA để xác minh chữ ký số ATMMT - TNNQ 21
  22. 1.1. MMởở đđầầuu Những công dụng cơ bản của mã hoá thông điệp d. Mã hoá khoá công khai: bảo mật, chứng thực, và chữ ký số A → B: E(PUb, E(PRa, M)) Cung cấp bảo mật nhờ PUb. Cung cấp chứng thực và chữ ký số nhờ PRa. ATMMT - TNNQ 22
  23. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) KhKhááii niniệệmm Là một kỹ thuật chứng thực liên quan đến việc sử dụng một khoá bí mật để tạo ra một khối dữ liệu có kích thước nhỏ cố định (checksum hoặc MAC) và được thêm vào thông điệp. Kỹ thuật này giả sử rằng 2 phía tham gia truyền thông là A và B chia sẻ một khoá bí mật K. Khi A có một thông điệp gởi đến B, A sẽ tính toán MAC như là một hàm của thông điệp và khoá: MAC=C(K, M), với – M: thông điệp đầu vào có kích thước biến đổi – C: hàm MAC – K: khoá bí mật chia sẻ giữa người gởi và người nhận – MAC: mã chứng thực thông điệp có chiều dài cố định ATMMT - TNNQ 23
  24. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) KhKhááii niniệệmm ATMMT - TNNQ 24
  25. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) KhKhááii niniệệmm Thông điệp cộng với MAC được truyền tới người nhận. Người nhận thực hiện các tính toán tương tự trên các thông điêp đã nhận sử dụng cùng một khóa bí mật, để tạo ra một MAC mới. MAC vừa tạo sẽ được so với MAC nhận. Giả sử chỉ người nhận và người gửi biết khóa bí mật: – Nếu MAC nhận phù hợp với MAC vừa tính thì thông điệp không bị thay đổi trong quá trình truyền và chắc chắn được gởi tới từ người gởi đã biết. – Nếu MAC nhận khác với MAC vừa tính thì thông điệp đã bị thay đổi hoặc bị giả mạo và được gởi từ attacker. ATMMT - TNNQ 25
  26. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) KhKhááii niniệệmm Chiều dài thông thường của MAC: 32 96 bit. → để tấn công cần thực hiện 2n lần thử với n là chiều dài của MAC (bit). Chiều dài thông thường của khoá K: 56 160 bit. → để tấn công cần thực hiện 2k lần thử với k là chiều dài của khoá K (bit). Ứng dụng trong: – Banking: sử dụng MAC kết hợp triple-DES – Internet: sử dụng HMAC và MAC kết hợp AES ATMMT - TNNQ 26
  27. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) Các công dụng cơ bản của MAC ATMMT - TNNQ 27
  28. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) Các công dụng cơ bản của MAC a. Chứng thực A → B: M || C(K, M) Chứng thực: chỉ A và B chia sẻ K b. Chứng thực và bảo mật: chứng thực gắn liền với plaintext A → B: E(K2, [M || C(K, M)]) Chứng thực: chỉ A và B chia sẻ K1 Bảo mật: chỉ A và B chia sẻ K2 c. Chứng thực và bảo mật: chứng thực gắn liền với ciphertext A → B: E(K2, M) || C(K1, E(K2, M)) Chứng thực: sử dụng K1 Bảo mật: sử dụng K2 ATMMT - TNNQ 28
  29. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) CCáácc yêuyêu ccầầuu đđốốii vvớớii MACMAC Khi một thông điệp được mã hoá (để bảo mật) sử dụng mã hoá khoá bí mật hoặc khoá công khai, độ bảo mật thường phụ thuộc vào độ dài bit của khoá. Một cuộc tấn công brute-force phải sử dụng tất cả các khoá có thể. Trung bình cần mất 2(k-1) lần thử cho một khoá k-bit. Thông thường, với một cuộc tấn công chỉ biết cyphertext C (Pi=D(Ki, C), cần phải thực hiện brute-force với tất cả các Ki cho đến khi nào Pi được tạo ra khớp với một plaintext chấp nhận được. ATMMT - TNNQ 29
  30. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) CCáácc yêuyêu ccầầuu đđốốii vvớớii MACMAC Trường hợp của MAC có những khác biệt do MAC là hàm nhiều-một. Giả sử k>n (kích thước khoá lớn hơn kích thước MAC) và MAC1 = C(K, M1), việc thám mã phải thực hiện MACi = C(Ki, M1) với tất cả các giá trị có thể của Ki. Ít nhất có một khoá đảm bảo MACi = MAC1. Lưu ý rằng sẽ có 2k MACs được tạo ra nhưng chỉ có 2n < 2k giá trị MAC khác nhau. Do đó, một số khoá sẽ tạo ra các MAC chính xác và attacker không có cách nào để biết được đó là khoá nào. Trung bình, có 2k/2n = 2(k-n) khoá được tạo ra và attacker phải lặp đi lặp lại các cuộc tấn công. ATMMT - TNNQ 30
  31. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) CCáácc yêuyêu ccầầuu đđốốii vvớớii MACMAC VòngVòng 11 Cho:Cho: MM1,, MACMAC1 == C(K,C(K, MM1)) k TTíínhnh MACMACi == C(KC(Ki,, MM1)) đđốốii vvớớii 22 khokhoáá SSốố llưượợngng khkhớớpp ≈≈ 22(k-n) VòngVòng 22 Cho:Cho: MM2,, MACMAC2 == C(K,C(K, MM2)) (k-n) TTíínhnh MACMACi == C(KC(Ki,, MM2)) đđốốii vvớớii 22 khokhoáá kkếếtt ququảả ttừừ VòngVòng 11 SSốố llưượợngng khkhớớpp ≈≈ 2(2(k-2n)) ATMMT - TNNQ 31
  32. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) CCáácc yêuyêu ccầầuu đđốốii vvớớii MACMAC TrungTrung bbìình,nh, αα vòngvòng ssẽẽ ccầầnn ththựựcc hihiệệnn nnếếuu kk == αα xx n.n. VVíí ddụụ,, nnếếuu mmộộtt khokhoáá 8080 bitbit đưđượợcc ssửử ddụụngng vvàà MACMAC ddààii 3232 bit.bit. –– VòngVòng đđầầuu tiêntiên ssẽẽ ttạạoo rara khokhoảảngng 2248 khokhoáá ccóó ththểể,, –– VòngVòng ththứứ haihai ssẽẽ ttạạoo thuthu hhẹẹpp llạạii còncòn 2216 khkhảả nnăăngng,, –– VòngVòng ththứứ baba ssẽẽ ttạạoo rara chchỉỉ mmộộtt khokhoáá duyduy nhnhấất,t, chchíínhnh llàà khokhoáá ccủủaa ngngưườờii ggởởi.i. ATMMT - TNNQ 32
  33. 22 MãMã chchứứngng ththựựcc thôngthông đđiiệệpp (MAC)(MAC) MACMAC ddựựaa trêntrên gigiảảii thuthuậậtt mãmã hohoáá DESDES ATMMT - TNNQ 33
  34. 3.3. HHààmm bbăămm KhKhááii niniệệmm Một hàm băm nhận một chuỗi dài ở đầu vào, ngắt nó thành nhiều mảnh, trộn lẫn chúng và tạo ra một chuỗi mới với chiều dài ngắn. Không phải mọi hàm băm đều thích hợp cho việc tạo ra một dấu vân tay kỹ thuật số. Ví dụ: – Xét một hàm băm đơn giản H⊕ sử dụng toán tử XOR để biến đổi một chuỗi đầu vào có độ dài tuỳ ý để thu được một chuỗi 16 bit ở đầu ra. – Cho M = M1M2 Mk, với mỗi Mi (có thể ngoại trừ khối Mk) là một chuỗi nhị phân 16 bit. Nếu Mk ngắn hơn 16 bit, thêm vào cuối một số bit 1 để được khối 16 bit. ATMMT - TNNQ 34
  35. 3.3. HHààmm bbăămm KhKhááii niniệệmm Cho: H⊕(M) = M1 ⊕ M2 ⊕ ⊕ Mk. – Hàm băm này không thích hợp để tạo ra dấu vân tay kỹ thuật số do có thể dễ dàng tìm được các chuỗi với nội dung khác nhau nhưng có cùng giá trị băm. – Cho hai chuỗi khác nhau như sau: S1: “He likes you but I hate you” S2: “He hates you but I like you” Mã hoá hai chuỗi này bằng cách sử dụng mã ASCII 8 bit và bỏ các khoảng trắng giữa các từ, ta sẽ thu được H⊕(S1) = H⊕(S2). → Một hàm băm cần phải đáp ứng một số tiêu chuẩn cho trước mới có thể tạo ra dấu vân tay kỹ thuật số. ATMMT - TNNQ 35
  36. 3.3. HHààmm bbăămm Tiêu chuẩn xây dựng hàm băm Cho H là hàm băm được xây dựng. Trước tiên cần thiết lập cận trên Γ cho chiều dài của chuỗi input (là số rất lớn, đơn vị bit). γ là chiều dài cố định của chuỗi output (γ< Γ). Để sinh ra một dấu vân tay kỹ thuật số tốt, H cần phải có: –Thuộc tính một chiều (one-way property) –Thuộc tính duy nhất. Hàm băm này được gọi là một hàm băm mật mã (Cryptographic Hash Function – CHF). ATMMT - TNNQ 36
  37. 3.3. HHààmm bbăămm Tìm kiếm hàm băm Mặc dù đã có rất nhiều nỗ lực, người ta vẫn chưa thể xác định được có tồn tại một hàm băm thoả mãn tính chất một chiều và duy nhất hay không? Đã có nhiều hàm băm được xây dựng và sử dụng trong thực tế. Các hàm băm vẫn có thể chứa những lỗ hổng có thể được khai thác bởi kẻ tấn công. → Cần xác định các điểm yếu nhằm đưa ra các hàm băm mạnh hơn. ATMMT - TNNQ 37
  38. 3.3. HHààmm bbăămm Tìm kiếm hàm băm Năm 2004, nhà toán học Trung Quốc Xiaoyun Wang và cộng sự đã chứng minh rằng một số hàm băm được sử dụng rộng rãi lúc đó như MD4, MD5, HACAL-128, RIPEMD là không đáp ứng tiêu chí kháng đụng độ. Năm 2005, họ cũng chứng minh rằng hàm băm sử dụng phổ biến là SHA-1 không kháng đụng độ mạnh như suy nghĩ của mọi người, và phát triển một phương pháp giúp tìm thấy hai chuỗi x và y khác nhau có cùng giá trị băm. ATMMT - TNNQ 38
  39. 3.3. HHààmm bbăămm Cấu trúc cơ bản của hàm băm chuẩn Các giải thuật băm MD5, Whirlpool, SHA-1, SHA- 2 đều có cùng cấu trúc cơ bản được đề xuất bởi Ralph C. Merkle năm 1978. Trung tâm của cấu trúc cơ bản này là một hàm nén. Các giải thuật băm khác nhau sử dụng những hàm nén khác nhau. Trong cấu trúc cơ bản này, M là khối rõ, IV là một vector khởi tạo, F là một hàm nén, + là một số dạng của toán tử cộng modular. ATMMT - TNNQ 39
  40. 3.3. HHààmm bbăămm Cấu trúc cơ bản của hàm băm chuẩn ATMMT - TNNQ 40
  41. 3.3. HHààmm bbăămm Các công dụng cơ bản của hàm băm ATMMT - TNNQ 41
  42. 3.3. HHààmm bbăămm Các công dụng cơ bản của hàm băm ATMMT - TNNQ 42
  43. 3.3. HHààmm bbăămm Các công dụng cơ bản của hàm băm a. Mã hoá thông điệp cộng với mã băm A → B: E(K, [M || H(M)]) Bảo mật: chỉ A và B chia sẻ K Chứng thực: H(M) được bảo vệ bằng mật mã b. Mã hoá mã băm chia sẻ với khoá bí mật A → B: M || E(K, H(M)) Chứng thực: H(M) được bảo vệ bằng mật mã c. Mã hoá khoá bí mật với mã băm của người gởi A → B: M || E(PRA, H(M)) Chứng thực và chữ ký số: – H(M) được bảo vệ bằng mật mã – Chỉ A có thể tạo E(PRA, H(M)) ATMMT - TNNQ 43
  44. 3.3. HHààmm bbăămm Các công dụng cơ bản của hàm băm d. Mã hoá kết quả của (c) với khoá bí mật chia sẻ A → B: E(K, [M || E(PRA, H(M))]) Bảo mật: chỉ A và B chia sẻ K Chứng thực và chữ ký số e. Tính mã băm của thông điệp cộng với trị bí mật A → B: M || H(M || S) Chứng thực: chỉ A và B chia sẻ S f. Mã hoá kết quả của (e) A → B: E(K, [M || H(M || S]) Chứng thực: chỉ A và B chia sẻ S Bảo mật: chỉ A và B chia sẻ K ATMMT - TNNQ 44
  45. 3.3. HHààmm bbăămm Các công dụng cơ bản của hàm băm ATMMT - TNNQ 45
  46. 3.3. HHààmm bbăămm MD5 MD5 (Message-Digest algorithm 5) là một hàm băm mật mã với giá trị băm dài 128 bit diễn tả bởi một số thập lục phân 32 ký tự (RFC 1321). Được dùng chủ yếu để kiểm tra tính toàn vẹn của tập tin trên nguyên tắc hai dữ liệu vào X và Y hoàn toàn khác nhau thì xác suất để có cùng một md5 hash giống nhau là rất nhỏ. Được thiết kế bởi giáo sư Ronald Rivest (MIT) vào năm 1991 để thay thế MD4 không còn an toàn. Hiện nay, MD5 ít được sử dụng do kích thước bảng băm chỉ có 128 bit dễ bị tấn công brute-force và được thay thế bởi những giải thuật khác như Whirlpool, SHA-1 ATMMT - TNNQ 46
  47. 3.3. HHààmm bbăămm MD5 Sửa T thành t MD5 hash khác nhau ATMMT - TNNQ 47
  48. 3.3. HHààmm bbăămm SHA SHA (Secure Hash Algorithm – Giải thuật băm an toàn) được phát triển bởi cục An ninh quốc gia Mỹ (National Security Agency – NSA). Giải thuật an toàn: – Cho một giá trị băm nhất định được tạo nên bởi một trong những giải thuật SHA, việc tìm lại được đoạn dữ liệu gốc là không khả thi. –Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi một trong những giải thuật SHA là không khả thi. Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm hoàn toàn khác với xác xuất rất cao. ATMMT - TNNQ 48
  49. 3.3. HHààmm bbăămm SHA SHA gồm 2 phiên bản: – SHA-1: trả lại kết quả dài 160 bit. Được sử dụng rộng rãi để thay thế MD5 trong nhiều ứng dụng và giao thức bảo mật khác nhau, bao gồm TLS, SSL, PGP, SSH, S/MIME, IPSec. – SHA-2: gồm 4 giải thuật SHA-224: trả lại kết quả dài 224 bit. SHA-256: trả lại kết quả dài 256 bit. SHA-384: trả lại kết quả dài 384 bit. SHA-512: trả lại kết quả dài 512 bit (γ=512) và có Γ=2128 -1. ATMMT - TNNQ 49
  50. 3.3. HHààmm bbăămm SHA-1 và MD5 ATMMT - TNNQ 50
  51. 4.4. ChChữữ kýký ssốố Khái niệm chung Sử dụng khoá công khai để tạo chữ ký số: – Giả sử A cần gởi cho B một thông điệp mật kèm chữ ký điện tử, A sẽ sử dụng khoá công khai của B để mã hoá thông điệp rồi dùng khoá cá nhân của mình để mã hoá chữ ký, sau đó gởi cả thông điệp lẫn chữ ký cho B. B sẽ dùng khoá công khai của A để giải mã chữ ký, rồi dùng khoá cá nhân của mình để giải mã thông điệp của A. – Việc tạo chữ ký và kiểm chứng chữ ký thường được thực hiện nhờ hàm băm. ATMMT - TNNQ 51
  52. 4.4. ChChữữ kýký ssốố Khái niệm chung Ký vào thông điệp: Dùng giải thuật băm để thay đổi thông điệp cần truyền đi để được một message digest (MD5 thu được digest có chiều dài 128-bit hoặc SHA thu được digest 160-bit). Sử dụng khóa private key của người gửi để mã hóa message digest thu được ở bước trên. Bước này thường dùng giải thuật RSA. Kết quả thu được gọi là digital signature của thông điệp ban đầu. Gộp digital signature vào thông điệp ban đầu (“ký nhận” vào thông điệp). Sau đó, mọi sự thay đổi trên message sẽ bị phát hiện. Việc ký nhận này đảm bảo người nhận tin tưởng thông điệp này xuất phát từ người gửi chứ không phải là ai khác. ATMMT - TNNQ 52
  53. 4.4. ChChữữ kýký ssốố Khái niệm chung Các bước kiểm tra: Dùng public key của người gửi (khóa này được thông báo đến mọi người) để giải mã chữ ký số của thông điệp. Dùng giải thuật (MD5 hoặc SHA) băm thông điệp nhận được. So sánh kết quả thu được ở bước 1 và 2. Nếu trùng nhau, ta kết luận thông điệp này không bị thay đổi trong quá trình truyền và thông điệp này là của người gửi . ATMMT - TNNQ 53
  54. 4.4. ChChữữ kýký ssốố Không mã hoá ATMMT - TNNQ 54
  55. 4.4. ChChữữ kýký ssốố Có mã hoá ATMMT - TNNQ 55
  56. 5.5. BBààii ttậậpp 1. Tìm hai câu tiếng Anh có ý nghĩa khác nhau nhưng có cùng giá trị băm với 16-bit XOR-hash function H⊕. 2. Cho h = 1001101000111 010 là một chuỗi nhị phân 16 bit. Tìm 4 chuỗi nhị phân tương tự có cùng giá trị băm h với 16-bit XOR-hash function H⊕. 3. Mô tả chi tiết giải thuật MD5. ATMMT - TNNQ 56
  57. 5.5. BBààii ttậậpp 4. Vẽ lưu đồ minh hoạ giải thuật SHA-51. 5. Vẽ lưu đồ minh hoạ giải thuật HMAC. 6. Microsoft Windows XP, không giống như UNIX hoặc Linux, lưu user names và user passwords trong registry. Tìm kiếm và mô tả chi tiết tác vụ này. Cho biết độ bảo mật của giải thuật và đề xuất cách thức tấn công. ATMMT - TNNQ 57
  58. 5.5. BBààii ttậậpp 7. Nêu tên các ứng dụng có sử dụng chữ ký số nhằm đảm bảo an toàn thông tin. 8. Phân tích độ an toàn của các giải thuật MD5, SHA. 9.9. MôMô ttảả ccáácc kkỹỹ thuthuậậtt ccóó ththểể ssửử ddụụngng đđểể ttấấnn côngcông vvààoo gigiảảii thuthuậậtt MAC.MAC. 10.10. ChChọọnn mmộộtt trongtrong ssốố nhnhữữngng gigiảảii thuthuậậtt MACMAC vvàà gigiảảii thuthuậậtt bbăămm đđểể viviếếtt mmộộtt ứứngng ddụụngng ssửử ddụụngng gigiảảii thuthuậậtt nnàày.y. ATMMT - TNNQ 58
  59. 5.5. BBààii ttậậpp 11.11. TTììmm 33 phphầầnn mmềềmm ccóó kkèèmm theotheo mãmã bbăămm,, kikiểểmm tratra mãmã bbăămm (d(dùùngng phphầầnn mmềềmm hohoặặcc website)website) đđểể suysuy rara đđộộ tintin ccậậyy ccủủaa ccáácc phphầầnn mmềềmm nnàày.y. 12.12. TTììmm 33 chchứứngng chchỉỉ ssốố đđíínhnh kkèèmm theotheo trêntrên ccáácc trangtrang webweb ccóó yêuyêu ccầầuu bbảảoo mmậậtt cao.cao. 13.13. SSửử ddụụngng Cryptool,Cryptool, ththựựcc hihiệệnn mmộộtt ssốố vvíí ddụụ vvềề ddữữ liliệệuu gigiảả mmạạoo khikhi ssửử ddụụngng chchứứngng ththựựcc vvớớii gigiảảii thuthuậậtt bbăămm ATMMT - TNNQ 59