Bài giảng An ninh mạng - Bài 4: Giao thức mật mã. Những nội dung chính được trình bày trong chương này: Tổng quan về giao thức mật mã, các thuộc tính của giao thức mật mã, giao thức có trọng tài (trusted arbitrator), giao thức có người phân xử (adjudicated protocols), giao thức tự phân xử (self-enforcing protocols), các dạng tấn công vào giao thức mật mã,…
BÀI GIAO THỨC MẬT MÃ Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội Nội dung • Tổng quan giao thức mật mã • Các giao thức trao đổi khóa • Các giao thức chữ ký điện tử CuuDuongThanCong.com https://fb.com/tailieudientucntt 1 TỔNG QUAN VỀ GIAO THỨC MẬT MÃ Giao thức mật mã gì? • Chúng ta biết “mật mã” ứng dụng nó: Bảo mật Xác thực • Nhưng cần biết “Sử dụng mật mã nào?” Hệ mật mã an toàn chưa đủ để làm cho q trình trao đổi thơng tin an tồn Cần phải tính đến yếu tố, cá nhân tham gia khơng trung thực • Giao thức chuỗi bước thực mà bên phải thực để hồn thành tác vụ Bao gồm quy cách biểu diễn thông tin trao đổi • Giao thức mật mã: giao thức sử dụng hệ mật mã để đạt mục tiêu an toàn bảo mật CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thuộc tính giao thức mật mã • Các bên tham gia phải hiểu bước thực giao • • • • thức Các bên phải đồng ý tuân thủ chặt chẽ bước thực Giao thức phải rõ ràng, không nhập nhằng Giao thức phải đầy đủ, xem xét tình Với giao thức mật mã: Giao thức phải thiết kế để thực khơng bên thu nhiều lợi ích so với thiết kế ban đầu Giao thức có trọng tài(Trusted arbitrator) • Trọng tài bên thứ thỏa mãn: Khơng có quyền lợi riêng giao thức Khơng thiên vị • Các bên cần tin tưởng vào trọng tài Mọi thông tin từ trọng tài tin cậy Trọng tài ln hồn thành đầy đủ nhiệm vụ giao thức • Ví dụ: Alice cần bán máy tính cho Bob, người trả séc Alice muốn nhận tờ séc trước để kiểm tra Bob muốn nhận máy tính trước giao séc CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao thức có trọng tài – Ví dụ • Alice Bob tin tưởng vào Trent-Bên thứ mà tin tưởng Trent (1) (2) (3) (4) (6) OK (5) OK (7) Bob Alice Giao thức có trọng tài – Ví dụ • Alice tin tưởng vào ngân hàng mà Bob ủy nhiệm (1) (2) (3) Alice (3) Bob CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao thức sử dụng trọng tài • Khi bên khơng tin tưởng nhau, đặt niềm tin • • • • vào bên thứ khơng? Tăng chi phí Tăng trễ Trọng tài trở thành “cổ chai” hệ thống Trọng tài bị cơng Giao thức có người phân xử(Adjudicated Protocols) • Chia giao thức có trọng tài thành giao thức: Giao thức không cần đến trọng tài, thực bên muốn Giao thức cần người phân xử: sử dụng có tranh chấp • Hãy xem xét lại giao dịch ví dụ với giải pháp này! 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao thức tự phân xử(Self-Enforcing Protocols) • Khơng cần đến bên thứ • Giao thức có chế để bên phát gian lận bên lại • Khơng phải tình tìm giao thức 11 Các dạng công vào giao thức mật mã • Có thể lợi dụng điểm yếu trong: Hệ mật mã Các bước thực • Tấn cơng thụ động: nghe trộm • Tấn công chủ động: can thiệp vào giao thức Chèn thông điệp Thay thông điệp Sử dụng lại thông điệp Giả mạo bên 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Một ví dụ khác-Shamir 3-pass protocol Bob Alice: E(K1,M) Alice Bob: E(K2, E(K1,M)) Bob Alice: D(K1, E(K2, E(K1,M))) Alice: D(K2, D(K1, E(K2, E(K1,M)))) 13 CÁC GIAO THỨC PHÂN PHỐI KHĨA BÍ MẬT 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt Hãy xem lại sơ đồ bảo mật sử dụng mật mã khóa đối xứng ? KS KS M M Mã hóa Alice Giải mã C Bob C Kênh truyền Làm để Alice chuyển khóa cách an tồn cho Bob! M* Thám mã Kẻ công KS* 15 Giao thức phân phối khóa khơng tập trung • Khóa chính: KM A B chia sẻ an toàn Làm tốn cần giải Khóa sử dụng để trao đổi khóa phiên KS • Khóa phiên KS: sử dụng để mã hóa liệu trao đổi • Giao thức 1.1 (1) A B: IDA (2) B A: E(KM, IDB||KS) • Giao thức đủ an tồn chưa? Tấn cơng nghe Tấn công thay Tấn công giả mạo Tấn công phát lại 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao thức phân phối khóa khơng tập trung – Giao thức 1.2 • Sử dụng yếu tố chống công phát lại (replay attack) (1) A B: IDA || N1 (2) B A: E(KM, IDB || KS || N1 || N2) (3) A B: A kiểm tra N1 gửi E(KS, N2) (4) B kiểm tra N2 • Hạn chế phân phối khóa khơng tập trung? 17 Giao thức phân phối khóa tập trung • Sử dụng bên thứ tin cậy – KDC (Key Distribution Centre): Sinh khóa bí mật KS Phân phối KS tới A B • A KDC chia sẻ khóa bí mật KA, B KDC chia sẻ khóa bí mật KB Làm nào? 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao thức phân phối khóa tập trungGiao thức 2.1 (1) A KDC: IDA || IDB (2) KDC A: E(KA, KS || IDA || IDB || E(KB, IDA || KS)) (3) A giải mã, thu KS (4) A B: E(KB, IDA || KS) (5) A ↔ B: E(KS, Data) • Hãy xem xét tính an tồn giao thức này? Tấn công nghe Tấn công thay Tấn công giả mạo Tấn công phát lại 19 Giao thức phân phối khóa tập trungGiao thức 2.2 (Needham-Schroeder) (1) A KDC: IDA || IDB || N1 (2) KDC A: E(KA, KS || IDA || IDB || N1 || E(KB, IDA || KS)) (3) A giải mã, kiểm tra N1 thu KS (4) A B: E(KB, IDA || KS) B giải mã, thu KS (5) B A: E(KS, N2) (6) A B: E(KS, f(N2)) B giải mã kiểm tra f(N2) (7) A ↔ B: E(KS, Data) N1, N2: giá trị ngẫu nhiên dùng lần (nonce) f(x): hàm biến đổi liệu • Hãy xem xét lại tính an toàn giao thức này! 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Giao thức 2.2 (Needham-Schroeder) 21 Giao thức phân phối khóa tập trungGiao thức 2.3 (Denning) (1) A KDC: IDA || IDB (2) KDC A: E(KA, KS || IDA || IDB || T || E(KB, IDA || KS || T)) (3) A giải mã, kiểm tra T, thu KS (4) A B: E(KB, IDA || KS || T) B giải mã, kiểm tra T (5) B A: E(KS, N1) (6) A B: E(KS, f(N1)) B giải mã, kiểm tra N1 (7) A ↔ B: E(KS, Data) T: nhãn thời gian (time stamp) • Kiểm tra tính an tồn sơ đồ này: Mất đồng đồng hồ bên 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt 11 Giao thức 2.3 (Denning) 23 Giao thức phân phối khóa tập trungGiao thức 2.4 (Kehne) (1) A B: IDA || NA (2) B KDC: IDB || NB || E(KB, IDA || NA || TB) (3) KDC A: E(KA, IDB || NA || KS) || E(KB, IDA || KS || TB) || NB (4) A B: E(KB, IDA || KS || TB) || E(KS, NB) • Vì việc sử dụng nhãn thời gian TB B tốt nhãn thời gian T KDC giao thức 2.3 • Hãy xem thêm giao thức khác Section 3.1, Chapter 3, “Applied Cryptography: Protocols, Algorthms, and Source Code in C”, 2nd Edition, Bruce Schneier 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 12 Giao thức 2.4 (Kehne) 25 CÁC GIAO THỨC PHÂN PHỐI KHĨA CƠNG KHAI 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt 13 Hãy xem lại sơ đồ bảo mật sử dụng mật mã khóa cơng khai KUB M Mã hóa Alice ? KRB M Giải mã Bob C C Kênh truyền Alice chắn khóa KUB khóa cơng khai Bob? M* Kẻ cơng Thám mã K*RB 27 Giao thức phân phối khóa khơng tập trung • Hãy xem xét giao thức sau(Giao thức 3.1): (1) A B: IDA || KUA || N1 (2) B A: IDB || KUB || N2 || E(KUA, f(N1)) (3) A kiểm tra f(N1) A B: E(KUB, g(N2)) (4) B kiểm tra g(N2) (5) B A: E(KUA, DataA) (6) A B: E(KUB, DataB) • Nhận xét: Nếu f(x) g(x) giữ bí mật hồn tồn C khơng thể giả mạo A B? 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt 14 Giao thức 3.1 – Tấn công man-in-the-middle • C tự sinh cặp khóa (K’UA, K’RA) (K’UB, K’RB) A C (1) A B: IDA || KUA || N1 (2’)CA: IDB || K’UB || E(KUA, f(N1) || N2) B (1’) C B: IDA || K’UA || N1 (2)BA: IDB || KUB || E(K’UA, f(N1) || N2) (3) A B: E(K’UB, g(N2)) (3’) C B: E(KUB, g(N2)) (4)BA: E(K’UA, DataB) (4’)BA: E(KUA, DataA) (5) A B: E(K’UB,DataA) (5) A B: E(KUB,DataA) 29 Giao thức 3.2 • Hãy xem xét giao thức sau(Giao thức 3.2): B gửi phần mẩu tin cho A (1) A B: IDA || KUA || N1 (2) B A: IDB || KUB || N2 || E(KUA, f(N1)) A gửi phần mẩu tin cho B (3) A B: E(KUB, g(N2)) (4) B gửi phần lại tin E(KUA, f(N1)) (4’) A giải mã với KRA nhận f(N1) kiểm tra A gửi phần lại tin E(KUB, g(N2)) cho B (4’’) B giải mã với KRB nhận g(N2) kiểm tra (5) B A: E(KUA, DataA) (6) A B: E(KUB, DataB) 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt 15 Giao thức phân phối khóa tập trungGiao thức 4.1 • Sử dụng bên thứ tin cậy – PKA (Public Key Authority) Có cặp khóa (KUPKA, KRPKA) Nhận khóa cơng khai KUA A KUB B cách an toàn Làm tốn cần giải • A B có khóa cơng khai KUPKA PKA • Giao thức 4.1 (1) A PKA: IDA || IDB (2) PKA A: E(KRPKA, IDB || KUB) (3) A B: E(KUB, N1) (4) B PKA: IDB || IDA (5) PKA B: E(KRPKA, IDA || KUA) (6) B A: E(KUA, N1) - Kiểm tra tính an tồn giao thức này? - Có thể cơng vào giao thức nào? 31 Giao thức 4.1 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16 Giao thức phân phối khóa tập trungGiao thức 4.2 (1) A PKA: IDA || IDB || T1 (2) PKA A: E(KRPKA, IDB || KUB || T1) (3) A B: E(KUB, N1) (4) B PKA: IDB || IDA || T2 (5) PKA B: E(KRPKA, IDA || KUA || T2) (6) B A: E(KUA, N1) T1, T2: nhãn thời gian chống cơng phát lại • Giao thức có hạn chế gì? 33 Giao thức 4.2 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 Giao thức phân phối khóa tập trungGiao thức 4.3 • Bên thứ tin cậy – CA(Certificate Authority) Có cặp khóa (KUCA, KRCA) Phát hành chứng thư số cho khóa cơng khai bên có dạng Cert = E(KRCA, ID || KU || Time) ID: định danh thực thể KU: khóa cơng khai thực thể đăng ký CA Time: Thời hạn sử dụng khóa cơng khai Thơng thường có thời điểm bắt đầu có hiệu lực thời điểm hết hiệu lực 35 Giao thức phân phối khóa tập trungGiao thức 4.3 (tiếp) (1) A CA: IDA || KUA || TimeA (2) CA A: CertA= E(KRCA, IDA || KUA || TimeA) (3) B CA: IDB || KUB || TimeB (4) CA B: CertB= E(KRCA, IDB || KUB || TimeB) (5) A B: CertA (6) B A: CertB • Làm để A B n tâm sử dụng khóa cơng khai nhau? • Hãy cải tiến lại giao thức khâu cần đến xác thực thông điệp (sử dụng MAC hàm băm) • Đọc thêm PKI chứng thư số theo chuẩn X.509 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 18 Giao thức 4.3 (tiếp) 37 Phân phối khóa bí mật hệ mật mã khóa đối xứng • Hạn chế chung giao thức phân phối khóa bí mật hệ mật mã khóa đối xứng Giao thức khơng tập trung: Số lượng khóa sử dụng lớn Giao thức tập trung: PKA phải đáp ứng u cầu với tần suất lớn Khơng có chế xác thực rõ ràng Sử dụng mật mã khóa cơng khai giao thức phân phối khóa bí mật (1) A B: E(KUB, E(KRA, KS)) (2) B giải mã với KRB, sau kiểm tra để chắn thơng điệp xuất phát từ A Khóa KS thu khóa phiên (3) A ↔ B: E(KS, Data) • Tất nhiên giao thức khơng chống công phát lại Việc cải tiến giao thức tập 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19 Kết luận • Hệ thống có nguy an toàn sử dụng hệ mật mã tốt khơng có giao thức quản lý phân phối khóa an tồn • Mật mã phải gắn liền với xác thực • Thực tế giao thức phân phối khóa trình bày xác thực dựa sơ đồ mã hóa hệ mật mã Chúng ta biết rằng, giải pháp chưa thực an tồn (hãy xem lại phân tích §3 Xác thực thơng điệp) Bài tập: Hãy sử dụng MAC, hàm băm, chữ ký điện tử để tăng cường an toàn cho sơ đồ 39 CÁC GIAO THỨC CHỮ KÝ ĐIỆN TỬ 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt 20 Sơ đồ chung • Phía gửi : hàm ký Băm tin gốc, thu giá trị băm H Mã hóa giá trị băm khóa riêng chữ kí số S Gắn chữ kí số lên tin gốc (M || S) • Phía nhận : hàm xác thực Tách chữ kí số S khỏi tin Băm tin M, thu giá trị băm H Giải mã S với khóa cơng khai người gửi, thu H’ So sánh : H H’ Kết luận 41 Tăng cường an tồn cho chữ ký điện tử • Bảo vệ khóa cá nhân Sử dụng thẻ thơng minh (smart card) Kết hợp sinh trắc học • Chứng thực khóa cơng khai: PKI • Chống phát lại (replay attack) 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 21 Chữ ký điện tử có trọng tài • Trọng tài (Trent – T) có nhiệm vụ: Áp dụng số lần kiểm tra lên tin, kiểm tra tính tồn vẹn nội dung nguồn gốc Kiểm tra nhãn thời gian (timestamp) tin (1) A T: IDA || E(KUB,M) || SignA(E(KUB,M)) || TA || SignA(MAT) (2) T A: IDA || E(KUB,M) || SignA(E(KUB,M)) || TA || SignT(MTB) (3) A gửi cho B tin SignA(E(KUB,M)) = E(KRA, H(E(KUB,M))) Sign(MAT) = E(KRA, H(MAT)) MAT = IDA || E(KUB,M) || SignA(E(KUB,M)) || TA Sign(MTB) = E(KRT, H(MTB)) MTB = IDA || E(KUB,M) || SignA(E(KUB,M)) || TA 43 Chữ ký mù (Blind Signature) • Một số giao dịch điện tử yêu cầu cần che giấu thông tin cá nhân bên tham gia: Thương mại điện tử Bầu cử điện tử • Chữ ký mù: người ký nội dung văn Người kiểm tra tính hợp lệ phiếu bầu khơng phép biết nội dung phiếu (tên cử tri, người cử tri bầu ) Sau xác minh chấp nhận cho khách hàng rút tiền, ngân hàng kiểm tra lại tờ tiền điện tử lưu thơng có tên người rút 44 CuuDuongThanCong.com https://fb.com/tailieudientucntt 22 Chữ ký mù RSA cho Phiếu bầu điện tử • Cơ quan bầu cử sử dụng cặp khóa KU = (e,n), KR = (d,n) • Sau thực xác thực với quan bầu cử, Alice điền thông tin phiếu bầu Thông tin ghi lên tin X: Chọn giá trị ngẫu nhiên r Làm mù nội dung phiếu: M’ = (H(X).re) mod n Đưa cho quan bầu cử ký • Cơ quan BC thực ký mù Chữ ký điện tử quan BC lên X S’ = (M’)d mod n = ((H(X))d.r) mod n • Alice xóa mù chữ ký: S = S’.r−1 mod n = (H(X))d mod n Lưu ý < r−1 < n giá trị cho r.r−1 mod n = • Phiếu điện tử Alice (X, S) • Làm để quan kiểm phiếu tin tưởng phiếu bầu quan bầu cử phát hành? 45 Chữ ký mù phần • Ngăn chặn người gửi gian lận nội dung • Giao thức: (1) Alice gửi cho trọng tài n tin (đã làm mù n giá trị ngẫu nhiên khác nhau), có chứa tin cần trọng tài ký (2) Trọng tài yêu cầu Alice gửi k giá trị làm mù (3) Trọng tài kiểm tra tính hợp lệ nội dung k tin (4) Nếu k tin hợp lệ, trọng tài ký vào “siêu tin” ghép từ (n-k) tin lại 46 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 Chữ ký nhóm • u cầu: Chỉ xác thực chữ ký nhóm ký, khơng xác định xác người ký • Giao thức: (1) Người quản trị tạo n*m cặp khóa (2) Người quản trị phân phối cho thành viên nhóm m cặp khóa (3) Người quản trị cơng bố danh sách khóa cơng khai (thứ tự xáo trộn) (4) Khi cần ký, người lựa chọn khóa cá nhân ngẫu nhiên để ký (5) Người xác thực tìm khóa cơng khai danh sách (3) để xác thực chữ ký 47 CuuDuongThanCong.com https://fb.com/tailieudientucntt 24 ... cần trọng tài ký (2) Trọng tài yêu cầu Alice gửi k giá trị làm mù (3) Trọng tài kiểm tra tính hợp lệ nội dung k tin (4) Nếu k tin hợp lệ, trọng tài ký vào “siêu tin” ghép từ (n-k) tin lại 46 CuuDuongThanCong.com... B: E(KRPKA, IDA || KUA) (6) B A: E(KUA, N1) - Kiểm tra tính an tồn giao thức này? - Có thể công vào giao thức nào? 31 Giao thức 4. 1 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16... nhãn thời gian chống cơng phát lại • Giao thức có hạn chế gì? 33 Giao thức 4. 2 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 Giao thức phân phối khóa tập trungGiao thức 4. 3 • Bên