Bài giảng an toàn hệ thống thông tin

†Quản lý khóa là một vấn đề quan trọng

„ Tính bí mật: khóa đối xứng

„ Tính toàn vẹn: khóa đối xứng, khóa công khai

†Giải pháp quản lý khóa

„ Khóa đối xứng †Trọng tài (Trusted Third Party)

„ Khóa công khai

 

pdf299 trang | Chia sẻ: netpro | Lượt xem: 2808 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng an toàn hệ thống thông tin, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ể tránh tấn công dạng “low decryption” RSA – Hiệu năng † Nhâ hi ố dư hé hi n, c a, s p p c a † Tính lũy thừa modulo „ m^e mod n „ c^d mod n ố ộ ấ ậ ớ† T c đ r t ch m so v i DES RSA – Bài tập † Cho p = 7 q = 11 Giả sử Alice dùng khóa , . công khai (n,e) = (77,17). Tìm khóa riêng. Biết rằng các ký tự từ A đến Z được biểu diễn bằng các số nguyên từ 00 đến 25 Dấu cách . được biểu diễn bằng số 26. Bob muốn gửi cho Alice Tin “HELLO WORLD” sử dụng hệ mật mã RSA . Tính Mã tương ứng. RSA – Bài tập † Đá áp n „ (p,q,d) = (7,11,53) „ Tin † H E L L O W O R L D † 07 04 11 11 14 26 22 14 17 11 03 „ M㠆 28 16 44 44 42 38 22 42 19 44 75 Các Mật mã khóa công khai khác † M kl H ller e e man † ElGamal † Rabin † Đường cong êlip (Elliptic Curve) Mật mã & Ứng dụng Trần Đức Khánh Bộ môn HTTT – Viện CNTT&TT ĐH BKHN Chủ đề † Hệ Mật ã khô Khóm ng a † Hệ Mật mã khóa bí mật (đối xứng) † Hệ Mật mã khóa công khai (bất đối xứng) † Hàm băm, chữ ký số † Quản lý khóa, giao thức mật mã,… Hàm băm † Các ứng dụng chú trọng mục tiêu Toàn vẹn „ Tài liệu được sử dụng giống hệt tài liệu lưu trữ „ Các thông điệp trao đổi trong một hệ thống an toàn không bị thay đổi/sửa chữa † “Niêm phong” tài liệu/thông điệp ổ„ “Niêm phong” không bị sửa đ i/phá hủy đồng nghĩa với tài liệu/thông điệp toàn vẹn „ “Niêm phong”: băm (hash), tóm lược (message digest), đặc số kiểm tra (checksum) „ Tạo ra “niêm phong”: hàm băm Hàm băm † M tiê t àục u an o n „ Toàn vẹn (Integrity) Khái niệm Hàm băm † Đầu vào là một chuỗi có chiều dài biến thiên và đầu , ra có chiều dài cố định ∑∑ → nh *: † Tin: † Cốt (Di t) ∑n ∑* ges : † h là hàm một chiều (one way function) „ dễ dàng tính h nhưng rất khó tính 1−h † h có tính phi đụng độ cao (collision resistence) „ rất khó tìm được x /= y sao cho h(x) = h(y) Kỹ thuật tạo hàm băm † Dùng các hàm mã hóa „ CBC „ RMDP „ DM † Dùng các phép toán số học đồng dư „ QCMDC „ DP † Dù á hà thiết kế đặ biệtng c c m c „ MD4/5 „ SHA/SHS Kỹ thuật tạo hàm băm † Dùng các hàm mã hóa „ CBC „ RMDP „ DM † Dùng các phép toán số học đồng dư „ QCMDC „ DP † Dù á hà thiết kế đặ biệtng c c m c „ MD4/5 „ SHA/SHS CBC - Chaining Block Cipher † Hà ã hó E đối ứm m a x ng „ Khóa K † Hà bă Hm m „ M = M1M2…Mn ( )„ Hi = E K,Mi xor Hi-1 „ H = Hn RMDP – Rabin, Matyas, Davise, Price † Hà ã hó E đối ứm m a x ng „ Khóa là các khối của Tin † Hà bă Hm m „ M = M1M2..Mn ( ẫ h ê )„ H0 = r r ng u n i n „ Hi = E(Mi,Hi-1) H H„ = n DM – Davies, Meyer † Hà ã hó E đối ứm m a x ng „ Khóa là các khối của Tin † Hà băm m „ M = M1M2..Mn ( ẫ h ê )„ H0 = r r ng u n i n „ Hi = E(Mi,Hi-1) xor Hi-1 H H„ = n Kỹ thuật tạo hàm băm † Dùng các hàm mã hóa „ CBC „ RMDP „ DM † Dùng các phép toán số học đồng dư „ QCMDC „ DP † Dù á hà thiết kế đặ biệtng c c m c „ MD4/5 „ SHA/SHS QCMDC – Quadratic Congruential Manipulation Dectection Code † M M1M2 M= … n „ Mi khối n bit † N là ố ê tố hs nguy n sao c o „ N >= 2^(n-1) à ㆠH m b m „ H0 = r (r ngẫu nhiên) „ Hi = (Hi-1+Mi)^2 mod N „ H = Hn DP – Davies, Price † M M1M2 M= … n † N là số nguyên tố sao cho „ N = 2^r † Hàm băm „ H0 = 0 „ Hi = (Hi-1 xor Mi)^2 mod N „ H = Hn Kỹ thuật tạo hàm băm † Dùng các hàm mã hóa „ CBC „ RMDP „ DM † Dùng các phép toán số học đồng dư „ QCMDC „ DP † Dù á hà thiết kế đặ biệtng c c m c „ SHA/SHS „ MD4/5 SHA-1 † SHA S H h Al ith= ecure as gor m † Được đề xuất và bảo trợ bởi NIST † Dùng trong hệ DSS (Digital Signature Standard) của NIST † Được sử dụng rộng rãi „ SSL, PGP, SSH, S/MIME, IPSec SHA-1 † Đầ à bội ố ủ 512 bitu v o s c a † Giá trị băm 160 bit † 80 vòng lặp tính toán Vòng lặp SHA-1 Vòng lặp SHA-1 † A B C D E khối 32 bit, , , , † Kt hằng số của vòng lặp t † Wt được tính từ các khối của Tin † <<< dịch chuyển các bit † cộng modulo 32 † F là hàm kết hợp các phép toán logic „ not, and, or, xor MD5 † MD M Di t= essage ges † MD5 được đề xuất bởi Rivest vào năm 1991 † Được sử dụng rộng rãi „ Truyền tập tin „ Lưu trữ mật khẩu MD5 † Đầ à 512 bitu v o † Giá trị băm 128 bit † 64 vòng lặp tính toán Vòng lặp MD5 Vòng lặp MD5 † A B C D khối 32 bit, , , † Ki hằng số của vòng lặp i † Mi khối 32 bit của Tin † <<< dịch chuyển các bit † cộng modulo 32 † F là hàm kết hợp các phép toán logic „ not, and, or, xor Chữ ký số † 1976 Diffie & Hellman lần đầu tiên đề cập , đến khái niệm Chữ ký số † 1989 phiên bản thương mại Chữ ký số đầu , tiên trong Lotus Notes, dựa trên RSA † Ứng dụng „ Hợp đồng số „ Bầu cử điện tử Gi dị h â hà„ ao c ng n ng „ … Chữ ký số † M tiê t àục u an o n „ Xác thực (Authentication) „ Chố hủ hậ (N di ti )ng p n n on-repu a on Hệ chữ ký số † Thuật toán tạo chữ ký „ Ký hiệu S „ Đầu vào là một thông tin m „ Chữ ký S(m) † Thuật toán kiểm định chữ ký „ Ký hiệu V „ Đầu vào là thông tin m và chữ ký kèm theo s „ V(m,s) = true khi và chỉ khi s = S(m) Kỹ thuật tạo Chữ ký số † Mật ã khó ô kh im a c ng a † Hàm băm † Mật mã khóa công khai + Hàm băm „ RSA + Hàm băm „ ElGamal + Hàm băm „ DSA Chữ ký số dùng Mật mã khóa công khai † RSA „ Chọn ngẫu nhiên 2 số nguyên tố p, q † n = p * q „ Chọn e sao cho † 1 < e < (p-1) * (q-1) † ƯSCLN(e, (p-1) * (q-1)) = 1 „ Chọn d sao cho † 1 < d < (p-1) * (q-1) † e*d = 1 mod (p-1) * (q-1) „ Khóa công khai: (n e) , „ Khóa riêng: (p,q,d) „ Mã hóa: c = m^e mod n „ Giả mã: m = c^d mod n Chữ ký số dùng RSA † Tin m † Khóa công khai (n,e) † Khóa riêng (p q d), , † Tạo chữ ký „ s = m^d mod n † Kiểm định chữ ký „ m =? s^e mod n Chữ ký số dùng RSA † Đe dọa/mối nguy „ Tấn công dạng “tráo khóa” „ Tấn công dạng “chọn tin”, dựa trên đặc điểm “ hâ í h” ủ RSAn n t n c a † Nếu m1^d mod n là chữ ký của m1, m2^d mod n là chữ ký của m2, thì (m1*m2)^d mod n là hữ ký ủ 1* 2c c a m m „ Tấn công dạng “không Tin” † Lấy khóa công khai k của Alice † Tạo tin m và chữ ký s của m sao cho m và s được công nhận bởi thuật toán kiểm định sử dụng k Chữ ký số dùng Hàm băm † Hà băm m „ Đầu vào là một chuỗi có chiều dài biến thiên và đầu ra có chiều dài cố định, „ Hàm một chiều (one way function) † dễ dàng tính hàm nhưng rất khó tính hàm ngược „ Phi đụng độ cao (collision resistence) † gần như đơn ánh Chữ ký số dùng Hàm băm † Hà bă hm m † Tạo chữ ký „ Tin m „ s = h(m) ể ý† Ki m định chữ k „ Tin m „ Chữ ký s „ s = h(m) Chữ ký số dùng Hàm băm † Đe dọa/mối nguy „ Nghịch lý sinh nhật † Trong một nhóm 23 người, xác suất để có hai ười ó ù ột i h hật là khô hỏ hơ ng c c ng m s n n ng n n 1/2 „ Tấn công dạng “sinh nhật” í h á bă hờ à khô† T n N gi trị m trong t i gian v ng gian cho phép † Lưu trữ các giá trị băm để tìm ra đụng độ á ấ ộ† X c su t đụng đ „ Nếu N > 2^(n/2) giá trị băm, thì xác suất đụng độ là > 1/2, trong đó n là độ dài của chuỗi giá trị băm Chữ ký số dùng Mật mã khóa công khai + Hàm băm † Tăng cường độ an toàn bằng kết hợp „ Hệ mật mã khóa công khai „ Hàm băm † Thuật toán tạo chữ ký „ Hàm mã hóa sử dụng khóa riêng „ Hàm băm † Thuật toán kiểm định chữ ký „ Hàm giải mã sử dụng khóa công khai „ Hàm băm ẩChu n Chữ ký số - DSS Tạo chữ ký Kiểm định chữ ký Hàm băm Hàm băm Tin Tin Tóm lược Tóm lược Khóa riêng Sinh chữ ký Kiểm định chữ ký Khóa công khai Chữ ký Hợp lệ/ Khô h lệng ợp Chữ ký số RSA + Hàm băm † Cá thô ốc ng s „ Hàm băm h „ 2 ố ê tố s nguy n p,q Chữ ký số RSA + Hàm băm † Tạo khóa „ n = p*q „ Chọn e sao cho † 1 < e < (p 1) * (q 1)- - † ƯSCLN(e, (p-1) * (q-1)) = 1 „ Chọn d sao cho † 1 < d < ( 1) * ( 1)p- q- † e*d = 1 mod (p-1) * (q-1) „ Khóa công khai † ( )n,e „ Khóa riêng † (p,q,d) Chữ ký số RSA + Hàm băm † T hữ kýạo c „ Tin m „ Chữ ký † s = h(m)^d mod n Chữ ký số RSA + Hàm băm † Kiể đị h hữ kým n c „ Chữ ký s „ Tin m „ Kiểm định † h(m) = s^e mod n Chữ ký số ElGamal + Hàm băm † Cá thô ốc ng s „ Hàm băm h „ Số ê tố nguy n p „ Số nguyên g sao cho † g^c = b mod p trong đó b,p nguyên tố cùng nhau Chữ ký số ElGamal + Hàm băm † T khóạo a „ Chọn a sao cho 0 < a < p-1 † A g^a mod p= a được gọi là logarit rời rạc của A „ Khóa công khai † (p,g,A) „ Khóa riêng † a Chữ ký số ElGamal + Hàm băm † T hữ kýạo c „ Tin m „ Chọn k sao cho † 0 < k < p-1 † k nguyên tố cùng nhau với p-1 „ Chữ ký † r = g^k mod p † s = k^(-1) * (h(m) – a*r) mod (p-1) Chữ ký số ElGamal + Hàm băm † Kiể đị h hữ kým n c „ Chữ ký (r,s) „ Tin m „ Kiểm định † 0 < r < p † 0 < s < p-1 † A^r*r^s = g^h(m) mod p Chữ ký số DSA † Cá thô ốc ng s „ Hàm băm h „ Số ê tố nguy n q „ Số nguyên p sao cho † p 1 la bội số của q- „ Số nguyên g sao cho † g = x^((p-1)/q) mod p trong đó x < p Chữ ký số DSA † T khóạo a „ Chọn a < q † A g^a mod p= „ Khóa công khai † (p q g A), , , „ Khóa riêng † a Chữ ký số DSA † T hữ kýạo c „ Tin m „ Chọn k sao cho 0 < k < q „ Chữ ký † r = (g^k mod p) mod q † s = k^(-1) * (h(m) + a*r) mod q Chữ ký số DSA † Kiể đị h hữ kým n c „ Chữ ký (r,s) „ Tin m „ Kiểm định † 0 < r < q † 0 < s < q † r = ((g^(s^(-1)*h(m) mod q) A^(r*s^(-1) mod q)) mod p) mod q Mật mã & Ứng dụng Trần Đức Khánh Bộ môn HTTT – Viện CNTT&TT ĐH BKHN Chủ đề † Hệ Mật ã khô Khóm ng a † Hệ Mật mã khóa bí mật (đối xứng) † Hệ Mật mã khóa công khai (bất đối xứng) † Hàm băm, chữ ký số † Quản lý khóa, giao thức mật mã,… Quản lý khóa, giao thức mật mã,… † Quản lý khóa „ Khóa đối xứng „ Khóa công khai † PKI † Giao thức mật m㠆 Thống nhất khóa † Diffie-Hellman † Xác thực † Needham-Schroeder Quản lý khóa, giao thức mật mã,… † Quản lý khóa „ Khóa đối xứng „ Khóa công khai † PKI † Giao thức mật m㠆 Thống nhất khóa † Diffie-Hellman † Xác thực † Needham-Schroeder Quản lý khóa † Quản lý khóa là một vấn đề quan trọng „ Tính bí mật: khóa đối xứng „ Tính toàn vẹn: khóa đối xứng, khóa công khai † Giải pháp quản lý khóa „ Khóa đối xứng † Trọng tài (Trusted Third Party) „ Khóa công khai † PKI (P bli K I f t t )u c ey n ras ruc ure Quản lý khóa đối xứng † Mô hì h t đổi thô ti khó đối n rao ng n a xứng A2 A3 A1 A4 A6 A5 Quản lý khóa đối xứng † T tài (T t d Thi d P t )rọng rus e r ar y „ Thực thể được tất cả các thực thể tham gia khác tin tưởng „ Mỗi thực thể tham gia chia xẻ một khóa đối xứng với Trọng tài „ Hai thực thể trao đổi thông tin bằng khóa đối xứng được Trọng tài tạo ra Quản lý khóa đối xứng nhờ Trọng tài A2 A3 E(k2,k) E(k ) TTPA1 A4 Nguồn khóa k,m A6 A5 E(k6,k) Quản lý khóa đối xứng nhờ Trọng tài † Ưu điểm „ Dễ dàng thêm bớt các thực thể „ Mỗi thực thể chỉ cần lưu trữ một khóa đối xứng dài hạn † Nhược điểm „ Tất cảc các cuộc trao đổi thông tin đều cần tương tác ban đầu với Trọng tài „ Trọng tài phải lưu trữ nhiều khóa đối xứng dài hạn „ Trọng tài phải xử lý khối lượng lớn thông tin „ Nếu Trọng tài bị đe dọa, tất cả các trao đổi thông tin đều bị đe dọa Quản lý khóa công khai † Mô hì h t đổi thô ti khó ô n rao ng n a c ng khai A2: d2 A3: d3c = E(e6,m) Thư mục công cộng e6 A1: d1 A4: d4 A1: e1 A2 : e2 A3 : e3 A4 : e4 c A6 d6 A5 d5 A5 : e5 A6 : e6 m D(d6 c) : := , Quản lý khóa công khai nhờ PKI † H tầ khó ô kh i (PKI) ạ ng a c ng a „ Nối khóa công khai với thực thể thông qua một thực thể có thẩm quyền cấp phát chứng nhận số (Certificate Authority) Quản lý khóa công khai nhờ PKI † Mô hì h t đổi thô ti khón rao ng n a A2: d2 A3: d3 V(A6||e6,s6) c = E(e6 m) Certificate Authority A1 e1 s1 = S(A1||e1)A6||e6,s6 , A1: d1 A4: d4 , , A2 , e2, s2 = S(A2||e2) A3 , e3, s3 = S(A3||e3) A4 , e4, s4 = S(A4||e4) c A6: d6 A5:d5 A5 , e5, s5 = S(A5||e5) A6 , e6, s6 = S(A6||e6) m = D(d6 c), Quản lý khóa công khai nhờ PKI † Ưu điểm „ Chống tấn công chủ động „ CA chỉ cấp chứng nhận, không tham gia vào việc trao đổi thông tin giữa các bên „ Có thể giảm thiểu tương tác với CA bằng cách lưu các chứng nhận cục bộ † Nhược điểm „ Nếu thuật toán sinh chữ ký của CA bị đe dọa, tất cả các trao đổi thông tin đều bị đe dọa „ Độ tin cậy hoàn toàn dựa trên CA Quản lý khóa, giao thức mật mã,… † Quản lý khóa „ Khóa đối xứng „ Khóa công khai † PKI † Giao thức mật m㠆 Thống nhất khóa † Diffie-Hellman † Xác thực † Needham-Schroeder Giao thức † Gi thứao c „ Một chuỗi các bước thực hiện „ Cá bướ thự hiệ hải tườ i hc c c n p ng m n „ Tất cả các tình huống phải được dự tính và có các bước thực hiện trước „ Có ít nhất 2 bên tham dự „ Các bên tham dự phải hiểu biết và tuân thủ các bước thực hiện Giao thức mật m㠆 Gi thứ ật ã Gi thứ + Mật ao c m m = ao c mã học † Thô thườ ột i thứ ật ã ng ng m g ao c m m kết hợp các khía cạnh sau „ Thố hất khóng n a „ Xác thực „ Mã hóa „ Chống phủ nhận Giao thức mật m㠆 SSL/TLS „ Giao thức mật mã để trao đổi thông tin trên Internet „ SSL được phát triển bởi Netscape „ TSL kế thừa từ SSL phiên bản 3 0. „ Ứng dụng † Duyệt Web, Email, IM, VoIP,… † Thương mại điện tử: Visa, MasterCard, American Express,… Giao thức mật m㠆 SSL/TSL ồ 3 hg m p a 1. Thương lượng lựa chọn giải thuật † Thống nhất khóa: RSA Diffie Hellman, - ,… † Mã hóa khóa đối xứng: 3DES, AES,… † Chữ ký số: RSA, DSA,… † Hàm băm: SHA, MD5,… 2. Thống nhất khóa và xác thực 3. Mã hóa thông điệp Quản lý khóa, chia xẻ bí mật † Quản lý khóa „ Khóa đối xứng „ Khóa công khai † PKI † Giao thức mật m㠆 Thống nhất khóa † Diffie-Hellman † Xác thực † Needham-Schroeder Thống nhất khóa † T đổi thô ti bí ật ới tố độ rao ng n m v c nhanh „ Mật mã khóa đối ứngx † Thiết lập và trao đổi khóa Cá thự thể th i hải thố hất „ c c am g a p ng n khóa đối xứng „ Quá trình thống nhất khóa phải đảm bảo † Tính bí mật † Tính toàn vẹn Giao thức Diffie-Hellman † 1976 Diffie và Hellman phát minh , giao thức thống nhất khóa „ Hình thành và trao đổi khóa chung bí mật trên một kênh truyền tin không an toàn Sử d á kế ả lý h ế† ụng c c t qu trong t uy t nhóm số nguyên nhân tính đồng dư † Dựa t ên độ phức tạp của bài toánr „ Logarit rời rạc Diffie-Hellman 1. Alice (A) chọn và gửi cho Bob (B) số nguyên tố p và một phần tử nguyên thủy g thuộc nhóm nhân tính mod p † A -> B: p,g 2 Alice chọn một số tự nhiên ngẫu nhiên a và gửi g^a . mod p cho Bob † A -> B: g^a mod p 3. Bob chọn một số tự nhiên ngẫu nhiên b và gửi g^b mod p cho Alice † B -> A: g^b mod p 4. Alice tính (g^b mod p)^a mod p 5 Bob tính (g^a mod p)^b mod p. 6. Khóa chung bí mật g^(a*b) mod p Diffie-Hellman † Ví dụ: p = 23 g = 5 a = 6 b = 15, , , 1. Alice gửi Bob p=23, g=5 † A -> B: 23,5 2. Alice chọn a=6, và gửi Bob g^a mod p = 5^6 mod 23 = 8 † A -> B: 8 3. Bob chọn b=15, và gửi Alice g^b mod p = 5^15 mod 23 = 19 † B -> A: 19 4. Alice tính † 19^6 mod 23 = 2 b í h5. Bo t n † 8^15 mod 23 = 2 6. Khóa K = 2 Độ an toàn của Diffie-Hellman † Khóa bí mật „ Bài toán Diffie-Hellman † Biết g, g^a, g^b. Tìm g^(a*b)? „ Bài toàn Logarit rời rạc † Biết g^a. Tìm a? † Tính xác thực „ Tấn công dạng “Man-in-the-middle” † Alice và Bob muốn thống nhất khóa bí mật † E là kẻ ở iữve g a † Alice và Eve thống nhất g^(a*e) † Bob và Eve thống nhất g^(b*e) Quản lý khóa, giao thức mật mã,… † Quản lý khóa „ Khóa đối xứng „ Khóa công khai † PKI † Giao thức mật m㠆 Thống nhất khóa † Diffie-Hellman † Xác thực † Needham-Schroeder Xác thực † Rất hiề ứ d đòi hỏi á thự n u ng ụng c c c thể tham gia phải chứng minh danh tính „ Mô hình Client-Server an toàn † Quá trình các nhận danh tính của các thực thể phải đảm bảo „ Tính toàn vẹn † Chống mạo danh Giao thức Needham-Schroeder † 1978 Needham và Schroeder phát minh , giao thức xác thực trên mạng máy tính không an toàn ể ổ„ Chứng minh nhận dạng của các thực th trao đ i thông tin „ Ngăn chặn nghe lén, thay đổi thông tin † Ứng dụng „ Xác thực trong mô hình Client-Server: Kerberos † 2 loại giao thức „ Khóa đối xứng „ Khóa công khai Needham-Schroeder khóa đối xứng † Ali (A) ố t đổi thô ti ới ce mu n rao ng n v Bob (B) † Ali à B b ù ti tưở ột ce v o c ng n ng m Server (S) trung gian „ K khó đối ứ iữ A Sas a x ng g a va „ Kbs khóa đối xứng giữa B va S „ Na à Nb là các “nonce”v „ Kab là khóa đối xứng giữa A và B Needham-Schroeder khóa đối xứng 1 A gửi thông tin của mình và B cho S . † A -> S: A,B,Na 2. S gửi khóa Kab cho A, thông tin được mã hóa † S > A: {Na Kab B {kab A} Kbs} Kas- , , , , _ _ 3. A gửi khóa Kab cho Bob, thông tin được mã hóa † A -> B: {Kab,A}_Kbs 4 B t ả lời A đã hậ đượ khó K b thô ti đượ . r n n c a a , ng n c mã hóa † B -> A: {Nb}_Kab 5 A bá B ằ A ẵ à à đ iữ khó K b . o r ng s n s ng v ang g a a , thông tin được mã hóa † A -> B: {Nb-1}_Kab Needham-Schroeder khóa đối xứng † Tấ ô d “R l ”n c ng ạng ep ay † Giải pháp dùng trong Kerberos „ Tem thời gian (Timestamp) „ Nonce Needham-Schroeder khóa công khai † Ali (A) ố t đổi thô ti ới ce mu n rao ng n v Bob (B) † Ali à B b ù ti tưở ột ce v o c ng n ng m Server (S) trung gian „ K à k khó iê à ô kh i ủ Aa v a a r ng v c ng a c a „ Kb và kb khóa riêng và công khai của B „ Ks à ks khóa iêng à công khai của Sv r v „ Na và Nb là các “nonce” Needham-Schroeder khóa công khai 1. A yêu cầu S khóa công khai của B † A -> S: A,B 2. S gửi khóa công khai của B cho A † S -> A: {kb,B}_Ks 3 A ửi ủ ì h h B. g nonce c a m n c o † A -> B: {Na,A}_kb 4. B yêu cầu S khóa công khai của A † B -> S: B,A 5. S gửi khóa công khai của A cho B † S -> B: {ka,A}_Ks 6. B gửi nonce của mình và của A cho A † B > A: {Na Nb} ka- , _ 7. A khẳng định đã nhận được nonce của B † A ->B: {Nb}_kb Needham-Schroeder khóa công khai † Tấ ô d “M i th iddl ”n c ng ạng an- n- e-m e Bài tập Mật mã & Ứng dụng Trần Đức Khánh Bộ môn HTTT – Viện CNTT&TT ĐH BKHN Bài 1: Vòng lặp DES † Khóa dạng thập lục phân „ 133457799BBCDFF1 † Tin dạng thập lục phân „ 0123456789ABCDEF † Tính „ L0,R0 „ C0,D0 C1 1„ ,D „ K1 „ L1,R1 † L0 = 11001100000000001100110011111111 † R0 = 11110000101010101111000010101010 † C0 = 1111000011001100101010101111 † D0 = 0101010101100110011110001111 † C1 = 1110000110011001010101011111 † D1 1010101011001100111100011110= † K1 = 0001101100000010111011111111110001110 00001110010 † R1 = 11001111010010110110010101000100 Bài 2: Tính bù DES † Chứ i h ằng m n r ng „ |DES(m,k) = DES(|m,|k) † Từ đó iải th ật tì khó biết suy ra g u m a mã của tin và bù của tin, với độ phức tạp nhỏ hơn 2^56. † IP và FP không ảnh hưởng đến kết quả † E(|R) = | E(R) † Gọi KSi(k) là khóa vòng lặp i sinh ra từ khó b đầ k T óa an u . a c „ KSi(|k) = |KSi(k) † Đầu vào của S-boxes „ |E(R) xor |K † Ta có tính chất „ A xor B = |A xor |B † Từ đó suy ra đầu vào của S-boxes là „ E(R) xor K † Input: Tin x Mã DES(K x) Mã DES(K |x), , , , † Output: Khóa tương ứng với K 1 fo ll non te ted ke k do. r a - s y 2. c = DES(k,x) 3. if c == DES(K,x)then 4. return k 5. end if 6. if |c == DES(K,|x)then 7. return |k 8. end if 9. end for Bài 3: Khóa yếu DES † Ch biết K1 K2 K16o = = … = † Tìm tất cả các khóa thỏa mãn tính hất t êc r n † 4 khóa „ Tất cả các bit của C là 0 + tất cả các bit của D là 0 „ Tất cả các bit của C là 1 +tất cả các bit của D là 0 „ Tất cả các bit của C là 0 + tất cả các bit của D là 1 „ Tất cả các bit của C là 1 +tất cả các bit của D là 1 Bài 4: Tấn công RSA Tấn công dạng Common Moduli † Alice sử dụng khóa công khai RSA (n,ea) † Bob sử dụng khóa công khai RSA (n eb), † ƯSCLN(ea,eb) = 1 † Cho tin m † Eve biết mã ca của tin m mã hóa bởi Alice † Eve biết mã cb của tin m mã hóa bởi Bob † Eve có thể tính được m hay không? † Tính x y sao cho, „ x*ea + y*eb = 1 † Tính „ ca^x*cb^y † Ta biết „ ca^x*cb^y = m^(ea*x) * m^(eb*y) = m^(ea*x+eb*y) = m Bài 5: Tấn công Common Moduli † Ali ử d khó ô kh i (493 3)ce s ụng a c ng a , † Bob sử dụng khóa công khai (493,5) † Eve biết mã 293 của tin m mã hóa bởi Alice † Eve biết mã 421 của tin m mã hóa bởi Bob † Tính m Bài 6: Chứ ký số ElGamal † 2237p= † g = 2 † Khóa riêng là a = 1234 † Giá trị băm của tin m là h(m) = 111 † k = 2323 † Tạo chữ ký † Kiểm định chữ ký † 799r = † k^-1 = 1979 † s = 1339 Bài 7: Tấn công Needham- Schroeder † Trình bày 1 kịch bản tấn công giao thức Needham-Schroeder khóa công khai dạng “Man-in-the-middle” † Đưa ra một giải pháp chống tấn công Tấ ôn c ng † A -> E: {Na,A}_ke † E -> B: {Na,A}_kb † B -> E: {Na,Nb}_ka † E -> A: {Na,Nb}_ka † A -> E: {Nb} ke_ † E -> B: {Nb}_kb Giải háp p † Thay luật „ B -> A: {Na,Nb}_ka † bằng luật „ B -> A: {Na,Nb,B}_ka An toàn Phần mềm Trần Đức Khánh Bộ môn HTTT – Viện CNTT&TT ĐH BKHN An toàn Phần mềm † Phầ ề á tí hn m m c n „ Các phần mềm ác tính thường gặp „ Cá biệ há ă hặc n p p ng n c n † Lỗi phần mềm á lỗ hầ ề h ờ ặ„ C c i p n m m t ư ng g p „ Các biện pháp an toàn † Kiể thử (T ti )m es ng † Kiểm định hình thức (Formal Verification) † Lập trình an toàn (Secure Coding) An toàn Phần mềm † Phầ ề á tí hn m m c n „ Các phần mềm ác tính thường gặp „ Cá biệ há ă hặc n p p ng n c n † Lỗi phần mềm á lỗ hầ ề h ờ ặ„ C c i p n m m t ư ng g p „ Các biện pháp an toàn † Kiể thử (T ti )m es ng † Kiểm định hình thức (Formal Verification) † Lập trình an toàn (Secure Coding) Phần mềm ác tính † Chạy theo chủ định của người lập trình ra nó † Chạy và phản ứng theo cách bất thường, không trông đợi từ phía người dùng † Ẩn náu trong hệ thống, hoặc gắn vào các phần mềm không ác tính † Có thể làm được mọi thứ mà một phần mềm có thể làm Các phần mềm ác tính thường gặp † Vi rut (Virus) „ Gắn vào một chương trình, phát tán bản sao ra khác chương trình khác † Trojan horse „ Có các tính năng bất thường † Bom logic (Logic bomb) „ Phát động khi điều kiện được thỏa mãn † Bom thời gian (Time bomb) „ Phát động khi đến hạn thời gian † Trapdoor „ Cho phép truy nhập trái phép các tính năng † Sâu (Worm) „ Phát tán bản sao qua mạng † Thỏ (Rabbit) „ Nhân bản đến khi không còn tài nguyên Kích hoạt Virus † Vi hỉ â h i khi đượ kí h h t rus c g y ạ c c oạ „ Virus chạy cùng với một chương trình khác chạy bởi người dùng „ Virus chạy khi mở tệp đính kèm trong e- mails, tệp ảnh, tệp đồ họa Phát tán Virus † Mã i đí h à ã hươ t ì hv rus n v o m c ng r n „ Nối mã virus với mã chương trình „ Mã i b h ã hươ t ì hv rus ao quan m c ng r n „ Mã virus tích hợp vào mã chương trình † Vi tài liệrus u „ Tài liệu chứa cả dữ liệu và các lệnh ẩNơi n náu Virus † Vù B t (B t S t )ng oo oo ec or † Bộ nhớ (Memory-Resident) Ứ† ng dụng (Application Program) † Thư viện (Library) † … Dấu hiệu nhận biết Virus † Mã i ó kiể ẫ đặ biệtv rus c u m u c „ Có thể nhận biết các đoạn mã của từng loại virus † Mã đính kèm không thay đổi „ Chương trình đính kèm sẽ lớn hơn chương trình ban đầu † Vị trí đính kèm không thay đổi Các biện pháp ngăn chặn † Sử dụng phần mềm thương mại từ nguồn tin cậy † Kiểm thử phần mềm trên một máy tính/hệ thống tách biệt † Mở tệp đính kèm chỉ khi nào biết rõ nguồn gốc † Lưu ở nơi an toàn một phiên bản có thể tái ủ hệ hố đ ử dtạo c a t ng ang s ụng † Sử dụng phần mềm quét diệt virus Một số ngộ nhận về virus † Virus chỉ lây nhiễm trên các hệ thống MS Windows † Virus không thể thay đổi các file “hidden” hoặc “read only”- † Virus chỉ xuất hiện trong tệp dữ liệu, chương trình ỉ á á ô† Virus ch ph t t n th ng qua qua đĩa, e- mail † Virus không thể tồn tại trong bộ nhớ sau khi reboot power off/on † Virus lây nhiễm trên phần cứng An toàn Phần mềm † Phầ ề á tí hn m m c n „ Các phần mềm ác tính thường gặp „ Cá biệ há ă hặc n p p ng n c n † Lỗi phần mềm á lỗ hầ ề h ờ ặ„ C c i p n m m t ư ng g p „ Các biện pháp an toàn † Kiể thử (T ti )m es ng † Kiểm định hình thức (Formal Verification) † Lập trình an toàn (Secure Coding) An toàn Phần mềm † Phầ ề á tí hn m m c n „ Các phần mềm ác tính thường gặp „ Cá biệ há ă hặc n p p ng n c n † Lỗi phần mềm á lỗ hầ ề h ờ ặ„ C c i p n m m t ư ng g p „ Các biện pháp an toàn † Kiể thử (T ti )m es ng † Kiểm định hình thức (Formal Verification) † Lập trình an toàn (Secure Coding) ỗL i phần mềm † Lậ t ì h iê thườ ắ lỗip r n v n ng m c „ không cố ý „ khô á tí hng c n „ nhưng đôi khi gây hậu quả nghiêm trọng ỗCác l i phần mềm thường gặp † T à bộ đệ (B ff O fl )r n m u er ver ow „ Array Index Out of Bound † Khô đầ đủ (I l t M di ti )ng y ncomp e e e a on „ Format String l fl„ Imp icit Cast, Integer Over ow † Đồng bộ (Synchronization) „ File stat()/open() ỗL i tràn bộ đệm 1 char buf[80];. 2. void vulnerable() { 3. gets(buf); 4. } † Điều gì xảy ra nếu đầu vào có hơn 80 byte „ char buf[80]; int authenticated = 0; „ char buf[80]; int (*fnptr)(); ỗL i không đầy đủ 1 void vulnerable() {. 2. char buf[80]; 3. if (fgets(buf, sizeof buf, stdin) == NULL) 4. return; 5. printf(buf); 6. } † Điều gì sẽ xảy ra? ỗL i không đầy đủ 1. char buf[80]; 2. void vulnerable() { 3. int

Các file đính kèm theo tài liệu này:

  • pdfSlide An Toàn Hệ Thống Thông Tin.pdf
Tài liệu liên quan