Bài giảng Bảo mật hệ thống thông tin - Chương 2: Mã hóa và các giao thức trao đổi khóa

pdf 68 trang phuongnguyen 3180
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Bảo mật hệ thống thông tin - Chương 2: Mã hóa và các giao thức trao đổi khóa", để 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:

  • pdfbai_giang_bao_mat_he_thong_thong_tin_chuong_2_ma_hoa_va_cac.pdf

Nội dung text: Bài giảng Bảo mật hệ thống thông tin - Chương 2: Mã hóa và các giao thức trao đổi khóa

  1. Chương 2: Mã hóa và Các giao thức trao đổi khóa Khoa Khoa học và Kỹ thuật Máy tính Đại học Bách Khoa Tp.HCM
  2. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Tài liệu tham khảo: W. Mao (2003). Modern Cryptography: Theory and Practice, 3rd Ed., Prentice Hall, ISBN 0-13-066943-1. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 2
  3. Những khái niệm cơ bản về mã hóa  Văn bản gốc (plaintext)  Văn bản mã hóa (ciphertext)  Hệ thống mã hóa (cryptosystem)  Khóa (key)  Hệ thống mã hóa đối xứng (Symmetric cryptosystem)  Hệ thống mã hóa bất đối xứng (Asymmetric cryptosystem)  Chữ ký số (Digital signature)  Chứng thực số (Digital certificate) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 3
  4. Những khái niệm cơ bản về mã hóa  Văn bản gốc (plaintext) là văn bản ban đầu có nội dung có thể đọc được và cần được bảo vệ.  Văn bản mã hóa (ciphertext) là văn bản sau khi mã hóa, nội dung không thể đọc được.  Mã hóa (encryption) là quá trình chuyển văn bản rõ thành văn bản mã hóa. Giải mã (decryption) là quá trình đưa văn bản mã hóa về lại văn bản gốc ban đầu  Hệ thống mã hóa (cryptosystem)  Cryptosystem = encryption + decryption algorithms  Khóa (key) được sử dụng trong quá trình mã hóa và giải mã. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 4
  5. Hệ thống mã hóa KeyE Plaintext Ciphertext Hello, À¿¾«§¶ Encryption This content is    confidential Cryptosystem . Decryption KeyD Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 5
  6. Những khái niệm cơ bản về mã hóa  Hệ thống mã hóa đối xứng (Symmetric cryptosystem) là hệ thống mã hóa sử dụng một khóa bí mật chia sẻ (shared- secret-key) cho cả hai quá trình mã hóa và giải mã.  Hệ thống mã hóa bất đối xứng (Asymmetric cryptosystem) là hệ thống mã hóa sử dụng một khóa công khai (public key) và một khóa bí mật (private key) cho quá trình mã hóa và giải mã.  Hệ thống mã hóa bất đối xứng còn được gọi là hệ thống mã hóa khóa công khai (public-key cryptosystem) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 6
  7. Những khái niệm cơ bản về mã hóa  Mã hóa đối xứng: KE = KD  Mã hóa bất đối xứng: KE ≠ KD KE Plaintext Ciphertext Hello, À¿¾«§¶ Encryption This content is    confidential Cryptosystem . Decryption KD Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 7
  8. Kỹ thuật mã hóa đối xứng  Các kỹ thuật mã hóa đối xứng thông dụng: DES, Triple DES, AES  DES: Data Encryption Standard  NBS (National Bureau of Standards) – bây giờ là NIST (National Institute of Standards and Technology) (Mỹ) chọn DES làm tiêu chuẩn mã hóa vào năm 1977.  Mỗi thông điệp (message) được chia thành những khối (block) 64 bits  Khóa có 56 bits  Có thể bị tấn công bằng giải thuật vét cạn khóa (Brute-force or exhaustive key search) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 8
  9. Kỹ thuật mã hóa đối xứng - Triple DES  1999, Triple DES được khuyến khích sử dụng thay cho DES  Triple DES: thực hiện giải thuật DES ba lần.  Mã hóa: c  εk1 (Dk2 (εk1 (m)))  Giải mã: m  Dk1 (εk2 (Dk1 (c)))  c: văn bản mã hóa  m: văn bản gốc  εk1( ): mã hóa bằng khóa k1  Dk1( ): giải mã bằng khóa k1  Triple DES có thể sử dụng các khóa khác nhau. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 9
  10. Kỹ thuật mã hóa đối xứng - AES  AES: Advanced Encryption Standard  Tháng 10/2000, NIST đã chọn AES làm tiêu chuẩn mã hóa thay thế DES  AES còn gọi là Rijndael, tên đặt theo hai nhà mật mã học thiết kế ra giải thuật là Daemen và Rijmen  Rijndael là giải thuật mã hóa theo khối. Tuy nhiên, khác với DES, Rijndael có thể làm việc với dữ liệu và khóa có độ dài block là 128, 192 hoặc 256 bit. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 10
  11. Kỹ thuật mã hóa bất đối xứng  Kỹ thuật mã hóa bất đối xứng phổ biến: RSA  RSA: tên được đặt theo tên 3 nhà phát minh ra giải thuật Rivest, Shamir và Adleman  Thuật toán sử dụng 2 khóa có quan hệ toán học với nhau: khóa công khai và khóa bí mật  Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mã hóa.  Khóa bí mật dùng để giải mã. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 11
  12. So sánh mã hóa đối xứng và bất đối xứng  Kỹ thuật mã hóa đối xứng có tốc độ mã hóa và giải mã nhanh hơn so với kỹ thuật mã hóa bất đối xứng.  Kỹ thuật mã hóa bất đối xứng an toàn hơn so với kỹ thuật mã hóa đối xứng. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 12
  13. So sánh mã hóa đối xứng và bất đối xứng  Trong thực tế, ta sử dụng kết hợp cả hai kỹ thuật (hybrid scheme) mã hóa đối xứng và bất đối xứng.  Kỹ thuật mã hóa bất đối xứng: thích hợp mã hóa những dữ liệu nhỏ và yêu cầu bảo mật cao. Mã hóa khóa bí mật  Kỹ thuật mã hóa đối xứng: thích hợp mã hóa những dữ liệu lớn và yêu cầu bảo mật không cao lắm. Mã hóa dữ liệu Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 13
  14. Chữ ký số  Chữ ký số (Digital signature): là thông điệp (có thể là văn bản, hình ảnh, hoặc video ) đã được ký bằng khóa bí mật của người dùng nhằm mục đích xác định người chủ của thông điệp đó.  Mục đích của chữ ký số:  Xác thực: xác định ai là chủ của thông điệp  Tính toàn vẹn : kiểm tra xem thông điệp có bị thay đổi  Tính chống thoái thác: ngăn chặn việc người dùng từ chối đã tạo ra và gửi thông điệp Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 14
  15. Chữ ký số  Chữ ký số:  Dùng khóa bí mật để ký (mã hóa) lên thông điệp chữ ký  Dùng khóa công khai để xác thực (giải mã) chữ ký Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 15
  16. Chữ ký số  Quá trình đơn giản của chữ ký số  Alice viết một văn bản và muốn gửi cho Bob  Alice ký lên văn bản bằng khóa bí mật Văn bản đã ký  Alice gửi văn bản gốc và văn bản đã ký cho Bob qua đường truyền mạng  Bob nhận được văn bản gốc và văn bản đã ký  Bob dùng khóa công khai của Alice để giải mã văn bản đã ký  Bob so sánh văn bản giải mã được và văn bản gốc, nếu giống nhau thì đây chính là do Alice gửi, nếu sai thì đây không phải văn bản do Alice gửi. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 16
  17. Chữ ký số an toàn (Secure digital signature) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 17
  18. Chứng thực số  Chứng thực số (digital certificate), hoặc chứng thực khóa công khai (public key certificate), là một tài liệu điện tử dùng để xác minh một khóa công khai là của ai.  Trong mô hình hạ tầng khóa công khai (public key infrastructure), CA (Certificate Authority) là nhà cung cấp chứng thực số. CA Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 18
  19. Chứng thực số  Mỗi chứng thực số bao gồm các thông tin cơ bản sau:  Tên và URL của CA cung cấp chứng thực  Khóa công khai  Tên sở hữu: cá nhân, tổ chức, máy chủ  Thời hạn sử dụng  CA sẽ chịu trách nhiệm ký lên mỗi chứng thực số Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 19
  20. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 20
  21. Mã hóa hoàn hảo (Perfect encryption)  Ký hiệu:  M: văn bản gốc  M’: văn bản mã hóa  A’: giải thuật giải mã  A: giải thuật mã hóa  K’: khóa giải mã  K: khóa mã hóa  Mối quan hệ của M và M’ được biểu diễn như sau: M’ = A(K,M) = {M}K M = A’(K’,M’) = A’(K’, A(K,M)) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 21
  22. Mã hóa hoàn hảo  M’ = A(K,M) = {M}K  Một giải thuật mã hóa được gọi là hoàn hảo cần phải đảm bảo các tính chất sau:  Tính chất 1: Nếu không có khóa bí mật K (trong mã hóa đối xứng), hoặc khóa bí mật K’ tương ứng với K (trong mã hóa bất đối xứng), thì không có cách nào có thể tìm ra được văn bản gốc M từ văn bản mã hóa {M}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 22
  23. Mã hóa hoàn hảo  M’ = A(K,M) = {M}K  Một giải thuật mã hóa được gọi là hoàn hảo cần phải đảm bảo các tính chất sau (tiếp theo):  Tính chất 2: Nếu có văn bản mã hóa {M}K và một phần thông tin về văn bản gốc M, thì cũng không có cách nào có thể tìm ra được khóa bí mật K (trong mã hóa đối xứng), hoặc khóa bí mật K’ tương ứng với K (trong mã hóa bất đối xứng)  Tính chất 3: Nếu không có khóa K thì dù có thông tin của văn bản gốc M cũng không thể thay đổi {M}K mà không bị phát hiện trong quá trình giải mã. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 23
  24. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 24
  25. Kênh trao đổi khóa  Giả sử Alice và Bob muốn nói chuyện một cách bí mật với nhau thông qua kỹ thuật mã hóa đối xứng.  Alice và Bob chưa từng thỏa thuận với nhau về một khóa bí mật chung.  Kênh trao đổi khóa là nơi/cách thức/kỹ thuật mà Alice dùng để trao đổi đổi với nhau về khóa bí mật chung. K Alice Bob Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 25
  26. Kênh trao đổi khóa  Cách truyền thống: sử dụng dịch vụ xác thực trực tuyến (online authentication service). Đây là dịch vụ xác thực thông qua một bên thứ ba tin cậy (Trusted Third Party – TTP)  Sử dụng kỹ thuật mã hóa công khai  Sử dụng kỹ thuật phân phối khóa lượng tử (Quantum Key Distribution Technique) (đọc thêm mục [4]4.4.5) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 26
  27. Kênh trao đổi khóa  Những tính chất bảo mật cần có của một kênh trao đổi khóa: 1. Chỉ Alice và Bob (và có thể một bên đáng tin cậy khác, TTP) biết khóa bí mật K 2. Alice và Bob biết chắc rằng người kia cũng biết khóa K 3. Alice và Bob biết chắc rằng khóa K là khóa mới được tạo ra Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 27
  28. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 28
  29. Mô hình Dolev-Yao  Mô hình Dolev-Yao mô tả các mối nguy hiểm được dùng để đánh giá các giao thức mã hóa.  Mô hình Dolev-Yao có 4 nhân vật:  Alice và Bob: là 2 người dùng bình thường và muốn thực hiện một cuộc nói chuyện bí mật và an toàn.  Trent: là một người trung gian đáng tin cậy (Trusted Third Party)  Malice: là người xấu có ý muốn phá, nghe trộm, hoặc giả mạo nội dung cuộc nói chuyện giữa Alice và Bob Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 29
  30. Mô hình Dolev-Yao Trent Alice Bob Malice Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 30
  31. Mô hình Dolev-Yao  Mô hình Dolev-Yao định nghĩa các việc Malice có thể và không thể làm.  Malice (có thể):  Malice là một người dùng hợp lệ của hệ thống, do vậy Malice có thể bắt đầu một cuộc nói chuyện bình thường với các người dùng khác.  Xem bất kỳ thông điệp nào được truyền qua môi trường mạng  Sẽ có cơ hội trở thành người nhận thông điệp từ bất kỳ người dùng nào.  Có thể mạo danh một người dùng bất kỳ gửi thông điệp đến một người dùng bất kỳ khác. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 31
  32. Mô hình Dolev-Yao  Malice (không thể):  Không thể đoán một số ngẫu nhiên từ một không gian đủ lớn.  Không thể giải mã ra được văn bản gốc từ văn bản mã hóa nếu không có khóa bí mật K  Không thể tạo ra được một văn bản mã hóa hợp lệ từ một văn bản gốc cho trước nếu không có khóa đúng  Không thể suy ra được khóa bí mật từ khóa công khai.  Malice có thể điều khiển và truy cập những thành phần/thiết bị chung của hệ thống; nhưng không thể điều khiển và truy cập những thành phần/thiết bị cá nhân của các người dùng khác, như bộ nhớ của máy tính cá nhân. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 32
  33. Mô hình Dolev-Yao  Giả sử Alice và Bob muốn trao đổi với nhau một cách bí mật và an toàn.  Giả sử Alice và Bob chưa từng gặp nhau trước đó, do vậy họ chưa có thỏa thuận một khóa bí mật dùng chung, và cũng chưa có thông tin gì về khóa công khai của người kia.  Vậy làm sao Alice và Bob có thể trao đổi với nhau một cách an toàn và bí mật qua một môi trường mạng không an toàn? Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 33
  34. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 34
  35. Giao thức trao đổi khóa  Giao thức “From Alice to Bob”  Giao thức “Session Key from Trent”  Giao thức “Message Authentication”  Giao thức “Challenge-response”  Giao thức dùng mã hóa công khai Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 35
  36. Giao thức “From Alice to Bob”  Giả sử:  Alice và Trent đã có một khóa bí mật chung KAT  Bob và Trent cũng có một khóa bí mật chung KBT  Mục tiêu: Alice và Bob muốn thiết lập một khóa phiên (session key) bí mật chung mới K để nói chuyện  Trong giao thức này, Alice là người tạo khóa phiên, thông qua Trent làm trung gian, và gửi cho Bob Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 36
  37. Giao thức “From Alice to Bob” Bob Alice Trent 1 2 3 1. Alice tạo ra khóa K ngẫu nhiên; mã hóa {K}KAT; và gửi cho Trent: Alice, Bob, {K}KAT 2. Trent tìm khóa KAT, KBT; giải mã {K}KAT để lấy K rồi mã hóa lại {K}KBT; và gửi cho Bob: Alice, Bob, {K}KBT 3. Bob giải mã {K}KBT để lấy K; và bắt đầu nói chuyện với Alice: {Hello Alice, I’m Bob!}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 37
  38. Giao thức “From Alice to Bob”  Vấn đề của giao thức “From Alice to Bob” là khóa K được tạo bởi Alice có thể không đủ an toàn (chiều dài khóa không đủ dài hoặc dễ bị đoán ra)  Bob có thể cảm thấy không an toàn khi sử dụng khóa K và từ chối nói chuyện. Giao thức mới: “Session key from Trent” Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 38
  39. Giao thức trao đổi khóa  Giao thức “From Alice to Bob”  Giao thức “Session Key from Trent”  Giao thức “Message Authentication”  Giao thức “Challenge-response”  Giao thức dùng mã hóa công khai Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 39
  40. Giao thức “Session Key from Trent”  Giả sử:  Alice và Trent đã có một khóa bí mật chung KAT  Bob và Trent cũng có một khóa bí mật chung KBT  Mục tiêu: Alice và Bob muốn thiết lập một khóa bí mật chung mới K để nói chuyện  Trong giao thức này, khóa phiên do Trent tạo ra Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 40
  41. Giao thức “Session Key from Trent” Bob Alice Trent 1 2 3 4 1. Alice gửi cho Trent: Alice, Bob 2. Trent tìm khóa KAT, KBT; tạo khóa K ngẫu nhiên; và gửi cho Alice: {K}KAT , {K}KBT 3. Alice giải mã {K}KAT; và gửi cho Bob: Trent, Alice, {K}KBT 4. Bob giải mã {K}KBT được K; và bắt đầu nói chuyện với Alice: {Hello Alice, I’m Bob!}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 41
  42. Tấn công giao thức “Session key from Trent” KMT: khóa bí mật chung Bob Alice giữa Malice và Trent Trent Malice 1 1’ 2 3 1. Alice gửi cho Malice(“Trent”): Alice, Bob 1’. Malice(“Alice”) gửi cho Trent: Alice, Malice 4 2. Trent tìm khóa KAT, KMT; tạo ra khóa KAM ngẫu nhiên; và gửi cho Alice: {KAM}KAT , {KAM}KMT 3. Alice giải mã {KAM}KAT và gửi cho Malice(“Bob”): Trent, Alice, {KAM}KMT 4. Malice(“Bob”) gửi cho Alice: {Hello Alice, I’m Bob!}KAM Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 42
  43. Tấn công giao thức “Session key from Trent”  Kết quả của tấn công trên:  Alice tưởng rằng đang trao đổi khóa chung với Bob, nhưng thật ra là với Malice  Malice giả mạo Bob nói chuyện với Alice  Bob không tham gia vào cuộc nói chuyện  Vấn đề của giao thức “Session key from Trent”  Malice là một người dùng hợp lệ trong hệ thống, và Trent cũng xem Malice như một người dùng bình thường  Những người tấn công từ bên trong thường nguy hiểm hơn những người bên ngoài Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 43
  44. Khắc phục giao thức “Session key from Trent”  Để khắc phục trường hợp tấn công trên, giao thức được chỉnh sửa lại ở bước 1 như sau: 1. Alice sends to Trent: Alice, {Bob}KAT  Tên của Bob được mã hóa bằng KAT  Tại sao tên của Alice không mã hóa? Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 44
  45. Khắc phục giao thức “Session Key from Trent” Bob Alice Trent 1 2 3 4 1. Alice gửi cho Trent: Alice, {Bob}KAT 2. Trent tìm khóa KAT và giải mã {Bob}KAT để biết người mà Alice muốn tạo khóa chung; Trent tìm khóa KBT; tạo khóa K ngẫu nhiên; và gửi cho Alice: {K}KAT , {K}KBT 3. Alice giải mã {K}KAT; và gửi cho Bob: Trent, Alice, {K}KBT 4. Bob giải mã {K}KBT được K; và bắt đầu nói chuyện với Alice: {Hello Alice, I’m Bob!}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 45
  46. Tấn công giao thức “Session key from Trent”  Malice có thể tấn công như sau: 1. Alice sends to Trent: Alice, {Bob}KAT 1’. Malice(“Alice”) sends to Trent: Alice, {Malice}KAT  Tại sao?  Malice có thể tạo được {Malice}KAT  Malice biết được Bob là người Alice muốn nói chuyện  Kết quả: Malice đóng giả Bob nói chuyện với Alice Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 46
  47. Tấn công giao thức “Session key from Trent”  Một cách tấn công khác:  Trong lần nói chuyện hợp lệ trước đó với Alice, Malice đã lưu lại khóa K’ và {K’}KAT  Malice có thể sử dụng lại một khóa cũ K’ và {K’}KAT 1. Alice gửi cho Malice(“Trent”): Alice, {Bob}KAT 2’. Malice("Trent") gửi cho Alice: {K'}KAT ,  Kết quả: Malice đóng giả Bob nói chuyện với Alice bằng khóa K’ cũ Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 47
  48. Giao thức “Session key from Trent”  Malice có thể chỉnh sửa các thông điệp trong giao thức mà không bị phát hiện.  Do vậy giao thức cần một dịch vụ bảo mật có thể chống lại việc thay đổi các thông điệp trong giao thức. Giao thức “Message Authentication” Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 48
  49. Giao thức trao đổi khóa  Giao thức “From Alice to Bob”  Giao thức “Session Key from Trent”  Giao thức “Message Authentication”  Giao thức “Challenge-response”  Giao thức dùng mã hóa công khai Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 49
  50. Giao thức “Message Authentication” Bob Alice Trent 1 2 3 4 1. Alice gửi cho Trent: Alice, Bob 2. Trent tìm khóa KAT , KBT; tạo khóa K ngẫu nhiên; và gửi cho Alice: {Bob, K}KAT , {Alice, K}KBT 3. Alice giải mã {Bob, K}KAT và kiểm tra danh định của Bob; rồi gửi cho Bob: Trent, {Alice, K}KBT 4. Bob giải mã {Alice, K}KBT và kiểm tra danh định của Alice; bắt đầu nói chuyện với Alice: {Hello Alice, I’m Bob!}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 50
  51. Mã hóa hoàn hảo và giao thức “Message Authentication”  Dựa vào tính chất 3 của mã hóa hoàn hảo: Nếu không có khóa K thì dù có thông tin của văn bản gốc M cũng không thể thay đổi {M}K mà không bị phát hiện trong quá trình giải mã. Malice không thể chỉnh sửa khối văn bản mã hóa{Bob, K}KAT và {Alice, K}KBT mà không bị phát hiện. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 51
  52. Tấn công giao thức “Message Authentication”  Tấn công bằng cách lặp lại thông điệp (message replay attack)  Malice chặn lại thông điệp của Alice và sửa thành: 1. Alice gửi cho Malice(“Trent”): Alice, Bob 2. Malice(“Trent”) gửi cho Alice:{Bob,K’}KAT,{Alice,K’} KBT  Hai khối văn bản mã hóa chứa K’ được Malice lưu lại trong lần thực hiện giao thức của cuộc nói chuyện trước đó giữa Alice và Bob.  Cách tấn công này sẽ làm cho Alice và Bob sử dụng lại khóa phiên K’ cũ.  Vì K’ là khóa cũ nên Malice có thể tìm ra được giá trị K’ (bằng cách nào?) Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 52
  53. Giao thức trao đổi khóa  Giao thức “From Alice to Bob”  Giao thức “Session Key from Trent”  Giao thức “Message Authentication”  Giao thức “Challenge-response”  Giao thức dùng mã hóa công khai Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 53
  54. Giao thức “Challenge-response”  Giao thức “Challenge-response” bổ sung thêm một số bước nhằm giúp cho Alice và Bob xác nhận một khóa phiên có mới hay không. Chống lại message replay attack  Giao thức này được Needham và Schroeder đề nghị năm 1978 và còn được gọi là giao thức “Needham and Schroeder”  Giao thức sử dụng số Nonce (a number used once) – số chỉ được sử dụng 1 lần Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 54
  55. Giao thức “Challenge-response” Bob Alice Trent 1. Alice tạo số NA ngẫu nhiên và gửi cho 1 Trent: Alice, Bob, NA 2 2. Trent tạo khóa K ngẫu nhiên và gửi cho Alice: {N , K, Bob, {K, 3 A Alice}KBT}KAT 4 3. Alice giải mã, kiểm tra số NA, kiểm tra danh định của Bob, và gửi cho 5 Bob: Trent, {K, Alice}KBT 4. Bob giải mã, kiểm tra danh định của Alice, tạo số N ngẫu nhiên và gửi NA/NB: số Nonce tạo bởi B Alice/Bob cho Alice: {I’m Bob! NB}K 5. Alice gửi cho Bob: {I’m Alice!NB-1}K Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 55
  56. Tấn công giao thức “Challenge-response” Bob Alice Trent 1. Alice gửi cho Trent: Alice, Bob, NA 1 2. Trent gửi cho Alice: {NA, K, Bob, {K, 2 Alice}KBT}KAT 3. Alice gửi cho Malice(“Bob”): Trent, {K, Alice}KBT Malice 3’. Malice(“Alice”) gửi cho Bob: Trent, 3 {K’, Alice}KBT 3’ 4. Bob giải mã, kiểm tra danh định của Alice, tạo số NB ngẫu nhiên và gửi 4 cho Malice(“Alice”): {I’m Bob! NB}K’ 5 5. Malice(“Alice”) gửi cho Bob: {I’m Alice!NB-1}K’ Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 56
  57. Tấn công giao thức “Challenge-response”  Kết quả của tấn công này là:  Bob nghĩ rằng mình đang trao đổi một khóa phiên mới với Alice nhưng thật ra đây là một khóa phiên cũ và Malice có thể biết khóa cũ này.  Malice đóng giả Alice để nói chuyện với Bob  Alice không thực hiện thành công cuộc nói chuyện với Bob Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 57
  58. Giao thức “Challenge-response”  Alice dựa vào số NA để xác định thông điệp đúng là do Trent gửi và khóa phiên là mới (bước 1-2-3)  Bob không có cơ sở để xác định khóa phiên là do Trent tạo ra và là khóa phiên mới Bổ sung thêm một số thông điệp trao đổi giữa Bob và Trent Sử dụng Timestamps Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 58
  59. Giao thức “Challenge-response” với Timestamps 1. Alice gửi cho Trent: Alice, Bob 2. Trent gửi cho Alice: {Bob, K, T, {Alice, K, T}KBT}KAT 3. Alice kiểm tra T và gửi cho Bob: {Alice, K, T}KBT 4. Bob kiểm tra T và gửi cho Alice: {I’m Bob! NB}K 5. Alice gửi cho Bob: {I’m Alice!NB-1}K  Kiểm tra T: |Clock – T| < ∆t1 + ∆t2  Clock: đồng hồ tại máy cá nhân  T: timestamp, giờ tại Trent  ∆t1 , ∆t2 : độ lệch múi giờ và độ lệch thời gian cho phép  Không được áp dụng do khó có thể điều chỉnh giờ chuẩn rộng rãi. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 59
  60. Giao thức trao đổi khóa  Giao thức “From Alice to Bob”  Giao thức “Session Key from Trent”  Giao thức “Message Authentication”  Giao thức “Challenge-response”  Giao thức dùng mã hóa công khai Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 60
  61. Giao thức dùng Mã hóa công khai -1  KA, K A: là khóa công khai và khóa bí mật của Alice -1  KB, K B: là khóa công khai và khóa bí mật của Bob -1  KM, K M: là khóa công khai và khóa bí mật của Malice -1  KT, K T: là khóa công khai và khóa bí mật của Trent  {M}KA: mã hóa M bằng khóa công khai KA -1  {M}K A : ký lên M bằng khóa bí mật KA Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 61
  62. Giao thức dùng Mã hóa công khai Bob Alice Trent 1. Alice gửi cho Trent: Alice, Bob 1 -1 2. Trent gửi cho Alice: {KB, Bob}K T 2 3. Alice kiểm tra chữ ký của Trent, tạo 3 số NA và gửi cho Bob: {NA, Alice}KB 4. Bob giải mã, kiểm tra danh định của 4 Alice và gửi cho Trent: Bob, Alice -1 5 5. Trent gửi cho Bob: {KA, Alice}K T 6. Bob kiểm tra chữ ký của Trent, tạo số 6 NB và gửi cho Alice: {NA, NB}KA 7 7. Alice giải mã và gửi cho Bob: {NB}KB Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 62
  63. Giao thức dùng Mã hóa công khai  Kết quả của giao thức là Alice và Bob cùng có chung hai số nonce NA và NB. Khóa chung bí mật được tạo thành từ 2 số này.  Nhưng vẫn có cách tấn công giao thức này  Được khám phá sau 17 năm  Cách tấn công: Malice lợi dụng lúc Alice muốn nói chuyện với mình để giả mạo Alice Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 63
  64. Tấn công giao thức dùng Mã hóa công khai Bob Alice Malice (3): {NA, Alice}KM (3’): {NA, Alice}KB (6’): {NA, NB}KA (6): {NA, NB}KA (7): {NB}KM (7’): {NB}KB Giao thức giữa Giao thức giữa Alice & Malice Malice(“Alice”) & Bob Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 64
  65. Tấn công giao thức dùng Mã hóa công khai  Kết quả của tấn công này là:  Bob nghĩ rằng mình đang trao đổi 2 số nonce bí mật NA, NB với Alice nhưng thật ra là với Malice  Alice và Malice vẫn có cuộc nói chuyện bình thường.  Ví dụ: Nếu Bob là một ngân hàng, Malice(“Alice”) gửi cho Bob một yêu cầu sau: {NA, NB, “Transfer £1B from my account to Malice's”}KB Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 65
  66. Tấn công giao thức dùng Mã hóa công khai  Cách khắc phục: kết hợp thêm chữ ký điện tử lên NA, NB  Giao thức được sử dụng hiện nay là:  Gọi chung cặp khóa bí mật và khóa công khai của Alice là KA  {M}K: mã hóa M bằng khóa K  [M]K: chữ ký điện tử lên M bằng khóa K The Needham-Schroeder Public-key Authentication Protocol in Refined Specification 1. Alice sends to Bob : {[NA, Alice]KA}KB; 2. Bob sends to Alice : {NA, [NB]KB}KA; 3. Alice sends to Bob : {[NB]KA}KB. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 66
  67. Nội dung 1 Những khái niệm cơ bản về mã hóa 2 Mã hóa hoàn hảo 3 Kênh trao đổi khóa 4 Mô hình Dolev-Yao 5 Giao thức trao đổi khóa Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 67
  68. Trường Đại Học Bách Khoa Tp.HCM Bảo mật hệ thống thông tin Khoa Khoa Học và Kỹ Thuật Máy Tính Chương 2: Mã hóa và giao thức trao đổi khóa © 2011 68