520 likes | 751 Views
Trường Đại Học Bách Khoa Tp.HCM Hệ Đào Tạo Từ Xa Khoa Khoa Học và Kỹ Thuật Máy Tính. Mạng máy tính căn bản. Bài giảng 14: Bảo mật Mạng. Tham khảo: Chương 6 : “Computer Networking – A top-down approach” Kurose & Ross, 5 th ed., Addison Wesley, 2010. Các mục tiêu:
E N D
Trường Đại Học Bách Khoa Tp.HCMHệ Đào Tạo Từ XaKhoa Khoa Học và Kỹ Thuật Máy Tính Mạng máy tính căn bản
Bài giảng 14: Bảo mật Mạng Tham khảo: Chương 6: “Computer Networking – A top-down approach” Kurose & Ross, 5th ed., Addison Wesley, 2010.
Các mục tiêu: hiểu rõ các nguyên lý của bảo mật mạng: mật mã học và những ứng dụng của nó cho “sự bí mật” xác thực toàn vẹn thông điệp bảo mật trong thực tế: tường lửa và các hệ thống phát hiện xâm nhập bảo mật trong các tầng ứng dụng, truyền tải, mạng, liên kết Chương 8: Bảo mật Mạng
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2 Các nguyên lý của mật mã 8.3 Toàn vẹn thông điệp 8.4 Bảo vệ email 8.5 Bảo vệ kết nối TCP: SSL 8.6 Bảo mật hành vi: tường lửa và IDS
Bảo mật mạng là gì? Tínhcơmật:chỉcóngười gửi, người nhậnchủđịnhcóthể “hiểu” nội dung thôngđiệp • người gửimãhóathôngđiệp • người nhậngiảimãthôngđiệp Xácthực:người gửi, người nhậnmuốnxácnhậnđúngngườimàmìnhđangnóichuyện Toànvẹnthôngđiệp:người gửi, người nhậnmuốnđảmbảorằngthôngđiệpkhôngbịthayđổi (trong quátrìnhgửi, hoặcsauđó) màkhôngbịpháthiện Khảnăngtruycậpvàtínhsẵnsàng:dịchvụphảiluôntruycậpđượcvàsẵnsàngchongười dùng
Bạn bè và kẻ xấu: Alice, Bob, Trudy • rất phổ biến trong thế giới bảo mật mạng • Bob, Alice (tình nhân!) muốn liên lạc “một cách bí mật” • Trudy (kẻ phá hoại) có thể chặn, xóa, thêm thông điệp Alice Bob dữ liệu, thông điệp điều khiển kênh người gửi an toàn người nhận an toàn dữ liệu dữ liệu Trudy
Ai có thể là Bob, Alice? Những Bob và Alice ngoàiđờithực: • Trìnhduyệt/ máychủ Web chogiaodịchđiệntử (vd: muabán on-line) • máychủ/kháchthựchiệntácvụngânhàngtrựctuyến • máychủ DNS • bộđịnhtuyếntraođổithông tin cậpnhậtbảngđịnhtuyến • nhữngvídụkhác?
Luôn có những kẻ xấu trong mạng! H:Kẻxấucóthểlàmgì? Đ:Rấtnhiều! • nghelén:cácthôngđiệp • chủđộngchènthôngđiệpvàokếtnối • giả danh:cóthểgiả (lừa) địachỉnguồn trong gói tin (hoặcbấtkìtrườngnào trong gói) • chiếmquyền (hijacking): “kiểmsoát” kếtnốiđangdiễnrabằngcáchvôhiệuvaitròngười gửivànhận, chènbảnthânhắntavào. • từchốidịchvụ: ngănchặnviệccungcấpdịchvụchongườidùngkhác (vd: bằngcáchlàmquátảibộnhớ)
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2Các nguyên lý của mật mã 8.3 Toàn vẹn thông điệp 8.4 Bảo vệ email 8.5 Bảo vệ kết nối TCP: SSL 8.6 Bảo mật hành vi: tường lửa và IDS
khóa mã hóa của Alice khóa giải mã của Bob giải thuật mã hóa giải thuật giải mã văn bản mã hóa văn bản thô văn bản thô K K A B Ngôn ngữ của mật mã học m thông điệp văn bản thô KA(m) văn bản mã hóa, mã khóa với khóa KA m = KB(KA(m)) giải mã văn bản đã được mã hóa
Các loại mã hóa • Mậtmãthườngsửdụngkhóa: • Giảithuậtđượccôngbốrộngrãi • Chỉcó “khóa” làbímật • Mãhóakhóađốixứng • Sửdụngmộtkhóa • Mãhóakhóacôngkhai • Sửdụng hai khóa • Cáchàmbăm • Khôngsửdụngkhóa • Khôngcógìbímật: Làmsaođểcóthểhữudụng?
K K S S Mã hóa khóa đối xứng mãhóakhóađốixứng: Bob và Alice chiasẻcùngmộtkhóa (đốixứng): K • vd: khóalàmộtmẫuthaythếđãbiết trong mãhóathaythếmộtkýtự H:làmsaođể Bob và Alice cóthểthốngnhấtvềkhóa? giải thuật mã hóa giải thuật giải mã văn bản mã hóa văn bản thô văn bản thô, m m = KS(KS(m)) K (m) S S
Mã hóa khóa đối xứng: DES DES: Chuẩnmãhóadữliệu(Data Encryption Standard ) • chuẩnmãhóa US [NIST 1993] • khóađốixứng 56-bit, dữliệuđầuvào 64-bit • mãhóakhốivớichuỗimãhóakhối (CBC) • DES an toànnhưthếnào? • Thửtháchcủa DES: khóamãhóa 56-bit bịgiảimã (vétcạn) trong thờigianíthơn 1 ngày • Chưacókiểutấncôngphântíchnàomạnh • tăngđộ an toàncho DES: • 3DES: mãhóa DES 3 lầnvới 3 khóakhácnhau (Mãhóa, Giảimã, Mãhóa)
AES: Chuẩn mã hóa cao cấp (Advanced Encryption Standard) • mới (10/2001) khóa đối xứng NIST, thay thế DES • xử lý dữ liệu theo khối 128 bit • khóa dài 128, 192 hoặc 256 bit • giải mã vét cạn (thử từng khóa) tốn 1 giây với DES, tốn 149 tỉ tỉ năm với AES
Mã hóa khóa công khai mãhóakhóađốixứng • yêucầungười gửi, nhậnphảibiếtkhóabímật • H: làmsaođểthốngnhấtvềkhóatừđầu (nếukhônggặptrựctiếpnhau)? mãhóakhóacôngkhai • phươngántiếpcậnkhác[Diffie-Hellman76, RSA78] • người gửi, nhậnkhôngchiasẻkhóabímật • Mọingườibiếtkhóamãhóacôngkhai • chỉcóngười nhậnbiếtkhóagiảimãcánhân
+ K (m) B - + m = K (K (m)) B B Mã hóa khóa công khai + Khóa công khai của Bob K B - Khóa cá nhân của Bob K B văn bản mã hóa giải thuật mã hóa giải thuật giải mã thông điệp văn bản thô thông điệp văn bản thô, m
+ - K K B B RSA: Tạo cặp khóa công khai/cá nhân 1. Chọn 2 sốnguyêntốlớnp, q. (e.g., 1024 bit) 2. Tínhn= pq, z = (p-1)(q-1) 3. Chọne (vớie<n)saochokhôngcóướcchungnàovớiz. (e, zlànguyêntốcùngnhau). 4. Chọndsaochoed-1chiahếtchoz. (hay: ed mod z = 1 ). 5. khóacôngkhai(n,e).Khóacánhân (n,d).
1. Để mã hóa đoạn dữ liệu m (<n), ta tính d e c = m mod n m = c mod n d e m = (m mod n) mod n RSA: Mã hóa, giải mã 0. Cho (n,e) và (n,d) như đã tính ở trước 2. Để giải mã đoạn bit nhận được, c, ta tính Kết quả là! c
d e m = c mod n c = m mod n d c Ví dụ RSA: Bob chọn p=5, q=7. Sau đó n=35, z=24. e=5(vì vậy e, zlà nguyên tố cùng nhau). d=29(vì vậy ed-1chia hết cho z). mã hóa thông điệp 8-bit. e m m mẫu bit mã hóa: 00001100 17 24832 12 c giải mã: 17 12 481968572106750915091411825223071697
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2 Các nguyên lý của mật mã 8.3Toàn vẹn thông điệp 8.4 Bảo vệ email 8.5 Bảo vệ kết nối TCP: SSL 8.6 Bảo mật hành vi: tường lửa và IDS
Tính toàn vẹn thông điệp • Cho phép các bên liên lạc xác minh rằngcác tin nhắn nhận được được xác thực. • Nội dung thông điệp chưa bị thay đổi • Nguồn của thông điệp chính là người mà bạn nghĩ • Thông điệp chưa bị phát lại • Sự liên tục của thông điệp được duy trì • Đầu tiên hãy xem xét “Sự chuyển hóa thông điệp”
thông điệp lớn H: Hàm băm H(m) Sự chuyển hóa thông điệp (message digest) • Hàm H( ) cóthamsốlàmộtthôngđiệpcóđộdàibấtkìvàxuấtramộtchuỗivănbảnđộdàixácđịnh: “kýhiệunhậnbiếtthôngđiệp” • Chú ý rằng H( ) làhàm nhiều-tới-1 • H( ) thườngđượcgọilà “hàmbăm” • Các tính chất cần thiết: • Dễ tính toán • Không tính ngược: không thể tính được m từ H(m) • Chống đụng độ: rất khó về phương diện tính toán để có thể tìm ra m và m’ sao cho H(m) = H(m’) • Kết quả gần ngẫu nhiên
Giải thuật Hàm Băm • MD5 đượcsửdụngrộngrãi (RFC 1321) • tínhragiátrịbăm 128-bit saumộtquátrình 4 bước. • SHA-1 cũngđượcdùng. • chuẩncủa Mỹ [NIST, FIPS PUB 180-1] • giátrịbăm 160-bit
s = chia sẻ, bí mật s s t/điệp t/điệp t/điệp H( ) H( ) so sánh Mã xác thực thông điệp(MAC) • Xácthựcngườigửi • Kiểmtratínhtoànvẹn • Khôngmãhóa ! • Cònđượcgọilà “Bămcókhóa” • Chúthích: MDm = H(s||m) ; gửi m||MDm
HMAC • Chuẩn MAC phổ biến • Nhắm vào những lổ hổng bảo mật quan trọng • Gắn khóa bí mật vào đầu thông điệp • Băm thông điệp đã được nối • Gắn khóa bí mật vào đầu của mã băm • Băm mã một lần nữa.
Xác thực đầu-cuối • Muốn chắc chắn về người gửi thông điệp – xác thực đầu-cuối. • Giả sử Alice và Bob có một bí mật chia sẻ, liệu MAC có cung cấp sự xác thực đầu cuối không?. • Ta biết được là Alice tạo ra thông điệp. • Nhưng có đúng là cô ta gửi nó đi không?
Gửi $1M từ Bill tới Trudy Gửi $1M từ Bill tới Trudy MAC MAC Tấn công “Phát lại” MAC =f(msg,s)
Gửi $1M từ Bill tới Susan MAC Phòng chống tấn công phát-lại: thẻ dùng-một-lần “Tôi là Alice” R MAC =f(msg,s,R)
Chữkýsố Làkĩthuậtmậtmãtươngtựnhưchữkýviếttay. • người gửi(Bob) kýsốvàovănbản, chứng minh rằng anh talàngườitạoravănbản. • Mụcđíchtươngtựnhư MAC, ngoạitrừviệcsửdụngmậtmãkhóacôngkhai • cóthểxác minh, khôngthểlàmgiả: người nhận(Alice) cóthểchứng minh rằngchỉcó Bob, màkhôngaikhác (kểcả Alice), đãkývàovănbản
- - K K B B Chữkýsố Chữkýsốđơngiảnchothôngđiệp m: • Bob kývào m bằngcáchmãhóavớikhóacánhâncủa anh ta KB, tạorathôngđiệp “đãký”, KB(m) Khóa cá nhân của Bob thôngđiệpcủa Bob, m (m) Dear Alice Oh, how I have missed you. I think of you all the time! …(blah blah blah) Bob thôngđiệpcủa Bob, m, đãđượcký (mãhóa) vớikhóacánhâncủa anh ta giải thuật mã hóa khóa c/khai
Chữkýsố = chuỗibămthôngđiệpđượcký H: Hàm băm H: Hàm băm t/điệp lớn m t/điệp lớn, m + - chữkýsố (mãhóa) chữkýsố (giảimã) K K B B giá trị băm được mã hóa giá trị băm được mã hóa + - - KB(H(m)) KB(H(m)) H(m) H(m) Alice kiểmtrachữkývàsựtoànvẹncủathôngđiệpđượckýsố: Bob giửithôngđiệpđượckýsố: H(m) khóa cá nhân của Bob khóa công khai của Bob = ?
Giảsử Alice nhậnthôngđiệpm, chữkýsố KB(m) Alice kiểm tra m ký bởi Bob: giải mã KB(m) bằngkhóa công khai của Bob KB, kiểm tra xem KB(KB(m) ) = m. Nếu KB(KB(m) ) = m, thìngườikývào m phảicókhóacánhâncủa Bob. Alice bằngcáchđócóthểkiểmtra: Bob đãkývào m. khôngaikháckývào m. Bob kývào m màkhôngphải m’. Không-thoái-thác: Alice cóthểlấy m, vàchữký KB(m) tớitòaánvàchứngmìnhrằng Bob kývào m. Chữkýsố (tt) - - + - + - + -
Sự chứng nhận khóa-Công khai • Độngcơ: Trudy muốnchơixỏ Bob • Trudy tạomột email đặthàng: Xinchàocửahàng Pizza, Làmơnđemchotôi 4 bánh pizza pepperoni. Cámơn, Bob • Trudy kývôđơnđặthàngvớikhóacánhâncủacô • Trudy gửiđơnđặthàngtớicủahàng Pizza • Trudy gửitớicửahàng Pizza khóacôngkhaicủacô, nhưngnóirằngđólàkhóacôngkhaicủa Bob. • Pizza Store kiểmtrachữký; sauđógiaocho Bob 4 bánh pizza. • Bob hoàntoànkhôngbiếtgì.
Nhàthẩmquyềnchứngnhận (CA): liênkếtkhóacôngkhaitớimộtthựcthểcụthể E. E (người, BĐT) đăngkýkhóacôngkhaicủanóvới CA. E cungcấp “bằngchứngđịnh danh” cho CA. CA tạorachứngchỉmàliênkết E vớikhóacôngkhaicủanó. chứngchỉchứakhóacôngkhaicủa E đượckýsốbởi CA – CA nói “đâylàkhóacôngkhaicủa E” + + chữkýsố (mãhóa) K K B B K CA Các nhà có thẩm quyền chứng nhận khóa công khai của Bob khóa cá nhân của CA chứngchỉchokhóacôngkhaicủa Bob, đượckýbởiCA - thông tin định danh của Bob
+ + chữkýsố (giảimã) K K B B K CA Các nhà có thẩm quyền chứng nhận • Khi Alice muốncókhóacôngkhaicủa Bob: • lấychứngchỉcủa Bob (từ Bob hoặcaikhác). • dùngkhóacôngkhaicủa CA giảimãchứngchỉcủa Bob, đểxácnhậnkhóacôngkhaicủa Bob khóa công khai Bob khóa công khai CA +
Chứngchỉ: tómtắt • Chuẩnnguyênthủy X.509 (RFC 2459) • Chứngchỉchứa: • Tênngườipháthành • Tên, địachỉ, tênmiền, v.v.. củathựcthể. • Khóacôngkhaicủathựcthể • Chữkýsố (kývớikhóacánhâncủangườipháthành) • Cơsởhạtầngkhóacôngkhai (PKI) • Chứngchỉvàcácnhàcóthầmquyềnchứngnhận • Thườngbịxemlà “nặngnề”
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2 Các nguyên lý của mật mã 8.3 Toàn vẹn thông điệp 8.4Bảo vệ email 8.5 Bảo vệ kết nối TCP: SSL 8.6 Bảo mật hành vi: tường lửa và IDS
. . KS( ) KS( ) + + + - KB(KS ) KB(KS ) KB KB + - KS KS(m ) KS(m ) m m KS Internet KS . . + - KB( ) KB( ) Bảo mật e-mail • Alice muốn gửi email bí mật, m, cho Bob. • Alice: • sinhngẫunhiênkhóacánhânđốixứng , KS. • mãhóathôngđiệpvớiKS (tănghiệusuất) • đồngthờimãhóa KSvớikhóacôngkhaicủa Bob. • gửicả hai KS(m) vàKB(KS) choBob.
. . KS( ) KS( ) + + + - KB(KS ) KB(KS ) KB KB + - KS KS(m ) KS(m ) m m KS Internet KS . . + - KB( ) KB( ) Bảo mật e-mail (tt) • Alice muốn gửi email bí mật, m, cho Bob. • Bob: • sử dụng khóa cá nhân của anh để giải mã và lấy được KS • sử dụng KS để giải mã KS(m) để lấy được m
+ - KA KA + - . . + - KA( ) KA( ) . . - - KA(H(m)) KA(H(m)) H(m ) m H( ) H( ) compare Internet m H(m ) m Bảo mật e-mail (tt) • Alice muốn cung cấp sự xác thực người gửi, tính toàn vẹn thông điệp. • Alice kýsốvàothôngđiệp. • gửicảthôngđiệp (chưamãhóa) vàchữkýsố.
. KS( ) + + - KB(KS ) KA KB + + KS m . - KA( ) . - KA(H(m)) H( ) m Internet KS . + KB( ) Bảo mật e-mail (tt) • Alice muốn cung cấp tính bí mật, sự xác thực người gửi, tính toàn vẹn thông điệp. Alice sử dụng 3 khóa: khóa cá nhân của cô ta, khóa công khai của Bob, khóa đối xứng vừa tạo ra
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2 Các nguyên lý của mật mã 8.3 Toàn vẹn thông điệp 8.4 Bảo vệ email 8.5Bảo vệ kết nối TCP: SSL 8.6 Bảo mật hành vi: tường lửa và IDS
SSL: Secure Sockets Layer • Giao thức bảo mật được triển khai rộng rãi • được hỗ trợ bởi hầu hết các trình duyệt và máy chủ web • https • hàng chục tỉ $ được sử dụng hàng năm qua SSL • Thiết kế bởi Netscape vào 1993 • Có vài biến đổi: • TLS: transport layer security, RFC 2246 • Cung cấp: • Bí mật • Toàn vẹn • Xác thực • Các mục tiêu ban đầu: • Có giao dịch thương mại điện tử • Mã hóa (đặc biệt là số thẻ-tín dụng) • xác thực máy chủ Web • xác thực khách (tùy chọn) • Hạn chế thủ tục khi mà buôn bán với bạn hàng mới • Có sẵn trong tất cả ứng dụng TCP • giao diện hốc kết nối an toàn (Secure socket interface)
Ứng dụng Ứng dụng SSL TCP TCP IP IP Ứng dụng th/thường Ứng dụng với SSL SSL and TCP/IP • SSLcungcấpgiaodiệnlậptrìnhứngdụng(API) • choứngdụng • cácthưviện lớpSSL trong C và Java đãcósẵn
. KS( ) + + - KB(KS ) KA KB + + . - KA( ) . - KA(H(m)) H( ) . + KB( ) Quá trình làm việc: KS m m Internet KS • Nhưng cần gửi luồng byte và dữ liệu tương tác • Cần một bộ các khóa bí mật cho toàn bộ kết nối • Cần phần trao đổi chứng chỉ của giao thức: pha bắt-tay
Chương 8 Mục lục 8.1Bảo mật mạng là gì? 8.2 Các nguyên lý của mật mã 8.3 Toàn vẹn thông điệp 8.4 Bảo vệ email 8.5 Bảo vệ kết nối TCP: SSL 8.6Bảo mật hành vi: tường lửa và IDS
tường lửa Tường lửa cách li mạng bên trong tổ chức với mạng Internet, cho phép vài gói tin đi qua, chặn những gói khác. Internet công cộng mạng nội bộ tường lửa
Tường lửa: Để làm gì? ngăn chặn tấn công từ chối dịch vụ: • Sự gửi tràn SYN: kẻ tấn công thiết lập nhiều kết nối TCP giả , không còn tài nguyên cho những kết nối “thật” ngăn chặn sự truy cập/thay đổi không hợp pháp vào dữ liệu nội bộ. • vd: kẻ tấn công thay đổi trang chủ của công ty chỉ cho phép những truy cập được xác thực vào bên trong mạng (nhóm các ngườidùng, máy đã được xác thực) ba loại tường lửa: • bộ lọc gói không trạng thái • bộ lọc gói trạng thái • cổng kiểm soát ứng dụng
Hệ thống phát hiện xâm nhập • sựlọcgói: • chỉlàmviệcvớimàođầu TCP/IP • khôngkiểmtrasựtương qua giữacácphiên • IDS: hệthốngpháthiệnxâmnhập(intrusion detection system) • Kiểmtragóisâu:xemxétnội dung gói tin (vd: kiểmtrachuỗikýtự trong gói tin, so sánhvớicơsởdữliệucủa vi-rút, chuỗitấncông) • xemxétmốitương quan giữanhiềugói tin • sựdòcổng • ánhxạmạng • tấncôngDoS
Hệ thống phát hiện xâm nhập • nhiều IDS: nhiều loại kiểm tra khác nhau tại nhiều vị trí khác nhau cổng kiểm tra ứng dụng tường lửa Internet mạng nội bộ máy chủ Web cảm biến IDS máy chủ DNS máy chủ FTP vùngđệm DMZ