Chương 1 - Giáo trình "Giao thức an toàn mạng", Học viện KTMM, 2013 2. Giáo trình Cơ sở lý thuyết mật mã, Học viện KTMM, 2013 7 1 Giới thiệu học phần Cơ sở mật mã cho 2 an toàn mạng Tổng quan về giao 3 thức an toàn mạng Nội dung học phần 1. Một số kiến thức nền tảng 2. Giao thức xác thực 3.
Giao thức đảm bảo an toàn cho dữ liệu tầng ứng dụng 4. Giao thức mạng riêng ảo 5. Giao thức an toàn mạng không dây 9 So sánh với "An toàn mạng máy tính" Giống • Xem xét cơ chế chống lại các hiểm họa an toàn mạng máy tính Khác • Tập trung vào phần giao thức (phần mật mã), ít chú trọng vấn đề công nghệ Mục đích cuối cùng là cần phải hiểu được các giao thức 10 Cấu trúc học phần Thời lượng: 2tc = 36 tiết 24 tiết lý thuyết 12 tiết bài tập Đánh giá kết quả học tập Điểm chuyên cần • Đi học đầy đủ, đúng giờ • Tham gia xây dựng bài Điểm bài tập Điểm thi kết thúc học phần 11 Giáo trình 1. Nguyễn Quốc Toàn, Hoàng Sỹ Tương, Giáo trình “Giao thức an toàn mạng máy tính”, Học viện KTMM, 2013.
Nguyễn Bình, Hoàng Thu Phương, "Cơ sở lý thuyết mật mã", Học viện KTMM, 2013 3. Nguyễn Ngọc Cương, Trần Thị Lượng, "Mật mã ứng dụng trong an toàn thông tin", Học viện KTMM, 2013 4. (và các tài liệu khác) 12 Bài tập lớn Hình thức làm bài tập lớn Danh sách chủ đề bài tập lớn Hình thức báo cáo kết quả bài tập lớn Thời hạn nộp kết quả 13 1 Giới thiệu học phần Cơ sở mật mã cho 2 an toàn mạng Tổng quan về giao 3 thức an toàn mạng Thuật toán mật mã Mã dòng Mật mã đối xứng Mã khối Thuật toán mật mã Hàm băm không khóa Hàm băm Hàm băm có có Mật mã khóa khóa công khai Chữ kí số Sinh số ngẫu nhiên 15 Mật mã đối xứng DES, 3DES IDEA AES, Rijndael RC2, RC4 SEAL 16 Mật mã đối xứng Khóa mật mã Là chuỗi bít ngẫu nhiên độ dài xác định Được chia sẻ bởi các bên liên quan Các bên đều có nghĩa vụ đảm bảo bí mật Hiệu năng Tương đối cao so với mật mã khóa công khai Thích hợp để mã dữ liệu Phân loại Mã khối (block cipher) Mã dòng (stream cipher) 17 Mã khối 𝐵𝑙𝑜𝑐𝑘𝐶𝑖𝑝ℎ𝑒𝑟 = 𝐸, 𝐷, 𝕂, ℙ, ℂ Việc mã hóa (bởi hàm E), giải mã (bởi hàm D) được thực hiện theo từng khối ci = EK(pi) pi = DK(ci) pi ci n n K K kLen E kLen D n n ci pi 18 Mã dòng 𝑆𝑡𝑟𝑒𝑎𝑚𝐶𝑖𝑝ℎ𝑒𝑟 = 𝐹, 𝕂, ℙ, ℂ Việc mã hóa, giải mã là hoàn toàn như nhau và được thực hiện theo từng ký tự c = F(K) p p = F(K) c K K kLen kLen F F mLen mLen p c c p 19 Chế độ hoạt động của mã khối • Mã khối có nhiều chế độ làm việc khác nhau: ECB, CBC, OFB, CFB, CTR, GCM. • Một số chế độ là thuần túy mã khối: ECB, CBC, CTS • Một số chế độ là tương tự như mã dòng: OFB, CFB, CTR.
• Một số chế độ cho phép kết hợp mã hóa và xác thực (dữ liệu) 20 ECB: Electronic Codebook p1 p2 p3 pN n n n n EK EK EK. EK ci = EK(pi) n n n n c1 c2 c3 cN c1 c2 c3 cN n n n n DK DK DK. DK pi = DK(ci) n n n n p1 p2 p3 pN 21 CBC: Cipher Block Chaning pi ci n n ci-1 n DK EK n ci-1 n n ci pi ci = EK(pi ci-1) pi = DK(ci) ci-1 c0 = IV c0 = IV i = 1.N 22 OFB: Output Feedback FK FK EK EK oi n oi n pi n ci n n n ci pi oi = EK(oi-1), i=1.N o0 = IV o0 = IV ci = pi oi pi = ci oi 23 CTR: Counter FK Ti FK Ti EK EK oi n oi n pi n ci n n n ci pi oi = EK(Ti), i=1.N ci = pi oi pi = ci oi Bộ đếm T phải được thiết kế để mọi Ti là khác nhau (chỉ được phép lặp lại khi thay khóa K mới) 24 Mật mã khóa công khai RSA Diffie-Hellman El-Gamal; DSA ECDH, ECDSA 25 Mật mã khóa công khai Khóa mật mã Tồn tại theo cặp Là một bộ tham số, có ý nghĩa toán học Khóa bí mật phải ngẫu nhiên Kích thước khóa luôn phải rất lớn Hiệu năng Rất thấp so với mật mã đối xứng Thích hợp để trao đổi khóa, ký số 26 Sử dụng kết hợp mật mã đối xứng và mật mã khóa công khai Bộ sinh số ngẫu nhiên K Bản rõ M KPB SE Gửi cho B AE EK Bản mã C 27 Hàm băm MD4 MD5 SHA1 SHA224 SHA256 SHA512 Dữ liệu có độ Bản tóm lược có H dài bất kì độ dài định trước 28 Hàm băm Nén quan hệ giữa thông điệp và bản tóm lược không phải là tương ứng 1:1 Kháng tiền ảnh: từ H(x) không thể tìm được x Kháng tiền ảnh thứ hai: cho trước x, không thể tìm được x' sao cho H(x) = H(x') Kháng va chạm: không thể tìm được cặp (x, y) sao cho H(x) = H(y) Trong ứng dụng thực tế, có thể coi quan hệ x : H(x) là một tương ứng 1:1. Có thể dùng H(x) để đại diện cho x 29 Hàm băm Ứng dụng của hàm băm trong giao thức an toàn mạng Tạo mã xác thực (lược đồ HMAC) Xác thực thực thể (cơ chế thách đố - giải đố) Dẫn xuất khóa 30 Mã xác thực thông điệp • MAC = Message Authentication Code (không phải Medium Access Control!!!!) • Được tạo bởi người gửi S • Để người nhận R có thể kiểm tra được rằng thông điệp M được tạo ra bởi S.
• MAC phải chứa đựng yếu tố bí mật MAC(m, K) • Kỹ thuật: HMAC, CBC-MAC 31 CBC-MAC • Tạo MAC dựa trên chế độ CBC của mã khối bất kỳ m1 m2 mN-1 mN n n n n. EK EK EK EK IV MAC 32 HMAC • HMAC = Hash-based MAC • Cách gọi khác: Keyed hash MAC • Cách tính kém an toàn MAC = H(key || message) • Cách tính an toàn MAC = H(key || H(key || message)) • Có thể sử dụng bất kỳ hàm băm nào 33 Kết hợp mã hóa và xác thực • Trường hợp riêng: Cần đảm bảo đồng thời tính bí mật và tính xác thực cho M • Trường hợp tổng quát: Thông điệp gồm 2 phần M=(M1, M2), trong đó cả hai phần đều cần được xác thực, còn tính bí mật chỉ cần áp dụng cho M1 AEAD = Authenticated Encryption with Associated Data 34 Kết hợp mã hóa và xác thực AEAD Modes • CCM: Counter with CBC-MAC • GCM: Galois Counter Mode • EAX: Encrypt-then-Authenticate-then- translate • OCB: Offset Codebook • CWC: Carter-Wegman + CTR 35 Kết hợp mã hóa và xác thực. Ví dụ: CCM 36 Chữ ký số • Có thể coi là một dạng MAC • Sử dụng mật mã khóa công khai Ký: s = Enc(KS, msg) Gửi đi: s, msg Kiểm tra: msg == Dec(KP, s)? • Thường thì thông điệp "msg" có kích thước lớn thay bằng giá trị băm 37 Chữ ký số 38 Vấn đề giả mạo khóa công khai Alice Malice Bob Hi Bob, I'm Alice. Hi Bob, I'm Alice.
I wanna send you a secret I wanna send you a secret Send me your public key Send me your public key KPMalice KPBob Enc(KPMalice, Secret) Enc(KPBob, Secret) I've got the secret. It's OK I've got the secret. It's OK 39 Chứng thực khóa công khai CHỨNG THƯ KHÓA CÔNG KHAI Tôi là: Trent Chứng thực cho: Bob Có khóa công khai là: KPBob Ký tên (Trent) 40 Chưng thư khóa công khai 41 Trao đổi khóa Diffie-Hellman 42 Dẫn xuất khóa (KDF) Nguồn khóa thường gặp: – Mật khẩu – Khóa trao đổi, ví dụ, bằng Diffie-Hellman Yêu cầu đối với khóa được sử dụng: – Độ dài xác định theo hệ mật – Có tính chất của dãy ngẫu nhiên – Có thể phải thay đổi khóa khi mã hóa nhiều thông điệp Cần phải thực hiện dẫn xuất khóa! 43 Dẫn xuất khóa • Dẫn xuất khóa (Key Derivation) là việc tạo ra khóa để sử dụng từ một giá trị bí mật cho trước. • Kỹ thuật thường dùng: – Băm (một hoặc nhiều lần) bí mật ban đầu – Lấy một lượng bít cần thiết từ kết quả băm để làm khóa – Nếu cần nhiều khóa thì khóa sau được dẫn xuất từ khóa trước 44 Dẫn xuất khóa.
Ví dụ: PBKDF1 T1 Hash( P || S ) T2 Hash(T1 ) Tc Hash(Tc 1 ) DK Tc [0.dkLen 1] 45 1 Giới thiệu học phần Cơ sở mật mã cho 2 an toàn mạng Tổng quan về giao 3 thức an toàn mạng Chồng giao thức TCP/IP 47 Khái niệm An toàn mạng máy tính là việc ngăn chặn và giám sát các truy cập trái phép, sự lạm dụng, sửa đổi hoặc làm gián đoạn hoạt động của mạng máy tính và các tài nguyên mạng. • An toàn mạng máy tính được đảm bảo bằng một tập hợp các chính sách và giải pháp kỹ thuật. • An toàn mạng máy tính đòi hỏi phải cấp quyền và giám sát việc truy cập các tài nguyên mạng.org/wiki/Network_security Khái niệm Tấn công: Là hành động có chủ ý nhằm phá vỡ tính an toàn của thông tin, hệ thống thông tin được bảo vệ. 49 Phân loại tấn công mạng Tiêu chí: cách thức tác động lên thông tin 50