ATTT_full
Transcript of ATTT_full
An toàn Hệ thống Thông tinAn toàn Hệ thống Thông tin
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Thông tin chung
Tên học phần:Tên học phần:An toàn Hệ thống Thông tin
Thời lượng: 12 buổi (x 4 tiết)Thời lượng: 12 buổi (x 4 tiết)Thời khóa biểu: sáng Thứ năm, 4 tiết cuốiGiảng viên Giảng viên
Trần Đức KhánhBộ môn HTTT, Khoa CNTT, P. 325, nhà [email protected]
Tài liệu tham khảoIntroduction to Computer Security Introduction to Computer Security. Matt Bishop
Security in Computing, Fourth Edition.Charles P. Pfleeger,Shari Lawrence Pfleeger
Handbook of Applied Cryptography. A Menezes P van Oorschot and S VanstoneA. Menezes, P. van Oorschot and S. Vanstone
Chuyên đề An toàn & Bảo mật. Nguyễn Khánh Văn
Các Bài giảng về An toàn Máy tính. ĐH Berkerley, MIT, ĐH Edinburgh
Mục đích
Nắ ữ á ấ đề t t à Nắm vững các vấn đề trong an toàn: mối đe dọa, biện pháp ngăn chặn Đá h iá độ t à ủ á hệ thố Đánh giá độ an toàn của các hệ thống thông tinH ớ đế ắ â d hí h Hướng đến quy tắc xây dựng chính sách an toàn cho các hệ thống thông tintin
Các chủ đề
Mật ã hMật mã họcAn toàn phần mềmAn toàn hệ điều hànhAn toàn cơ sở dữ liệuAn toàn mạng, Web
Sự cần thiết của An toàn HTTT
Thiệt hại an toàn HTTTThiệt hại an toàn HTTTThiệt hại thời gian: theo viện SANS, máy tính không được bảo vệ chỉ “sống sót” < tính không được bảo vệ chỉ sống sót < 20’ trên internetThiệt hại kinh tế: ~ tỷ USD hàng nămệ ạ ỷ g
1. Vi rút 2. Từ chối dịch vụ 33. ………4. ………
[CERT]: Mối nguy
[CERT]: Sự cố
[CERT]: Quy mô, Tính phức tạp
Hỏi/Đáp
Nhữ ă ề t ướ ột ố ti tặ Những năm về trước, một số tin tặc được tuyển dụng vào các công ty hay tổ chức mà họ phá hoại Gần đây tổ chức mà họ phá hoại. Gần đây khuynh hướng này giảm rõ rêt. Bạn nghĩ gì về sự thay đổi này? Nó tốt hay nghĩ gì về sự thay đổi này? Nó tốt hay xấu? Vì sao?
An toàn
M tiê ủ t à là bả ệ “tài Mục tiêu của an toàn là bảo vệ “tài sản” tránh khỏi các “mối đe dọa”, sử dụng các “biện pháp ngăn chặn”dụng các biện pháp ngăn chặn
Tài ả à ?Tài sản nào?Mối đe dọa nào?Biện pháp ngăn chặn gì?
An toàn HTTT
Tài ả hầ ứ hầ ề dữ Tài sản: phần cứng, phần mềm, dữ liệuMối đ d há h i thiệ ử Mối đe dọa: phá hoại, can thiệp, sửa đổiBiệ há ă hặ ã hó kiể Biện pháp ngăn chặn: mã hóa, kiểm soát thông qua phần mềm/phần cứng/các chính sáchcứng/các chính sách
An toàn HTTT
3 Mục tiêu:3 Mục tiêu:Bí mật (Confidentiability): tài sản chỉ được truy nhập bởi những người có được truy nhập bởi những người có quyềnToàn vẹn (Intergrity): tài sản chỉ Toàn vẹn (Intergrity): tài sản chỉ được tạo/xóa/sửa đổi bởi những người có quyềnSẵn dùng (Availability): tài sản sẵn sàng để đáp ứng sử dụng cho những ười ó ềngười có quyền
Hỏi/Đáp
Nhữ biệ há ă hặ à đ Những biện pháp ngăn chặn nào đang được sử dụng trên máy tính cá nhân của bạn? Các biện pháp này nhằm của bạn? Các biện pháp này nhằm ngăn chặn những đe dọa nào?
An toàn HTTT - Mối đe dọaPhần mềm ác tính (Malware)Phần mềm ác tính (Malware)PhishingPharmingSp mSpamTừ chối dịch vụ (Denial of service)Truy nhập trái phép (Unauthorized access)Giao dịch gian lận (Fraudulent transaction)…
An toàn HTTT - Biện phápGiao thức mã hóaGiao thức mã hóaKiểm tra người sử dụng + mật khẩuQuét/diệt phần mềm ác tínhGiới h n t nhậpGiới hạn truy nhậpPhân quyền trong hệ điều hànhTường lửaHệ thống phát hiện đột nhậpThẻ thông minh mã hóaKhóa…
Các chủ đề
Mật ã hMật mã họcAn toàn phần mềmAn toàn hệ điều hànhAn toàn cơ sở dữ liệuAn toàn mạng, Web
Trộm ôtô bằng máy tính xách tay 2007 chiếc BMW X5 của David Beckham bị đánh cắp2007, chiếc BMW X5 của David Beckham bị đánh cắpKẻ cắp sử dụng máy tính xách tay, ăng ten và phần mềm để bẻ khóa
Ăng ten để thu sóng phát ra từ các chíp RFID được à khócài trong khóa
Phần mềm được dùng để thử tất cả các khả năng mã hóa (hàng nghìn tỷ)
Nguồn: Nguồn: http://www.msnbc.msn.com/id/13507939
2004, các nhà nghiên cứu của ĐH Johns Hopkins đã , g pbẻ được khóa của một số xe đời mới
Texas Instruments, nhà sản xuất chip RFID, bỏ qua lời cảnh báo của nhóm nghiên cứu
Giải mã Enigma
Enigma là máy mã hóa và giải mã Enigma là máy mã hóa và giải mã được sử dụng trong quân đội Đức Quốc xãQuốc xãCông trình giải mã Enigma của quân Đồng minh được các sử gia đánh giá g ợ g glà rút gọn 2 năm thời gian thế chiến Một trong những lực lượng giải mã nổi ế à ó ủtiếng là nhóm HUT 8 của Anh, do
Alain Turing dẫn đầu
Các chủ đề (1)
Mật ã hMật mã họcHệ Mật mã không khóaHệ Mật ã khó bí ật Hệ Mật mã khóa bí mật Hệ Mật mã khóa công khai Hàm băm chữ ký sốHàm băm, chữ ký sốQuản lý khóa, giao thức mật mã,…
Tấn công iPhone2007 các nhà nghiên cứu của Independent Security 2007, các nhà nghiên cứu của Independent Security Evaluators phát hiện một lỗ hổng tạo điều kiện cho kể đột nhập kiểm soát iPhone Trình duyệt Safari của iPhone chạy với đặc quyền dmin > phần mềm á tính h ới đặ q ền admin -> phần mềm ác tính chạy với đặc quyền
adminĐột nhập thông qua
Điểm truy nhập không dây (wireless access point) Điểm truy nhập không dây (wireless access point) Các trang Web Email, SMS có chứa các đường dẫn đến các trang ưeb bị chiếm đoạt
Nguồn: http://securityevaluators.com/content/case-studies/iphone//
Các chủ đề (2) & (3) An toàn phần mềmAn toàn phần mềm
Các mối đe dọaCác biện pháp an toàn
ỗSoát lỗiKiểm định Lập trình an toànập
An toàn hệ điều hànhCác mối đe dọaCá biệ há t àCác biện pháp an toàn
Phân quyền, Điều khiển truy nhập, SandboxTrusted computing
500 000 trang Web bị tấn công
2008 hơn nửa triệu trang Web trong đó có 2008, hơn nửa triệu trang Web, trong đó có cả các trang của Liên Hợp Quốc bị tấn công Tấn công dạng “SQL injection”Tấn công dạng SQL injectionKhai thác lỗ hổng trong SQL Server của Microsoft
Nguồn: http://www.computerworld.com/s/article/9080580/Huge_Web_hack_attack_infects_500_000_pages
Các chủ đề (4)
A t à ơ ở dữ liệAn toàn cơ sở dữ liệuCác mối đe dọaCá biệ há t àCác biện pháp an toàn
Giải pháp đa tầng
Đột nhập hộp thư Gmail2008 tại hội nghị Defcon hacker một nhà 2008, tại hội nghị Defcon hacker một nhà nghiên cứu demo một công cụ cho phép đột nhập vào hộp thư Gmail, ngay cả khi các phiên truy nhập hộp thư được mã hóa (https:// thay y ập ộp ợ ( p // yvì http:// )Đột nhập thông qua việc đánh cắp Session Cookie
Session Cookie chứng nhận máy tính đã đăng nhập thành công Session Cookie bị đánh cắp sẽ được sử dụng như một chứng nhận hợp lệ để truy nhập hộp thư Gmalchứng nhận hợp lệ để truy nhập hộp thư Gmal
Nguồn: Washington PostNguồn: Washington Post
Các chủ đề (5)
A t à W bAn toàn mạng, WebCác mối đe dọaTấ ô từ hối dị h Tấn công từ chối dịch vụSpamPhần mềm ác tínhPhần mềm ác tínhCác công cụ bảo vệ
Mật mã & Ứng dụngMật mã & Ứng dụng
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Mật mã học
Mật mã học (Cryptology)Mật mã học (Cryptology)Mật mã (Cryptography)Mã thám (Cryptanalysis) Mã thám (Cryptanalysis)
Mật mã Tăng cường các tính chất Bí mật và Toàn vẹnthông tin: các phép mã hóa Xây dựng các kỹ thuật trao đổi thông tin bí mật: các giao thức mật mãá g ao ứ ậ ã
Mã thámPhá mã
Lịch sử ngành Mật mãGiai đoạn “Tiền sử” (~ 2000 TCN) Giai đoạn Tiền sử ( 2000, TCN)
Những dấu hiệu đầu tiên của Mật mã xuất hiện ở bên bờ sông Nile, Ai Cập
Giai đoạn “Mật mã thủ công” (~ 50, TCN)Phép mã hóa Ceasar
Giai đoạn “Mật mã cơ học” (cho đến Thế chiến 2)Máy Enigma ở Đứcá h ê ứ ề ả ã ở hCác nghiên cứu về Giải mã ở Anh
Giai đoạn “Mật mã điện tử”Dựa vào Toán học và Tin họcĐược đặt nền móng bởi Shanon Diffie à HellmanĐược đặt nền móng bởi Shanon, Diffie và HellmanKhóa bí mật (DES, AES,…), Khóa công khai (RSA, ElGamal, …)
ổTrao đổi thông tin bí mật
Ali à B b t đổi thô ti bí ật Alice và Bob trao đổi thông tin bí mật, được mã hóaE à Ch li tấ ô bằ iải ãEve và Charlie tấn công bằng giải mã
Eve Tấn công thụ động
Alice Bob
Charlie Tấn công chủ độngCharlie Tấn công chủ động
Mục tiêu An toàn
Bí ật (C fid ti lit )Bí mật (Confidentiality)Toàn vẹn (Integrity)Xác thực (Authentication)Chống phủ nhận (Non-repudiation)…
Chủ đề
Hệ Mật ã khô khóHệ Mật mã không khóaHệ 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ã,…Q ý , g ậ ,
Hệ Mật mã
Hệ Mật mã Bộ 5 (K M C E D) Hệ Mật mã = Bộ 5 (K,M,C,E,D) Không gian Khóa (Key): KKhông gian Tin (Message/Plaintext): MKhông gian Tin (Message/Plaintext): MKhông gian Mã (Cipher): CHàm mã hóa (Encryption)Hàm mã hóa (Encryption)
E: K x M -> C
Hàm giải mã (Decryption)Hàm giải mã (Decryption)D: K x C -> M
Hệ Mật mã không khóa
Mã hóa Giải mãTin Mã Tin ban đầuTin Mã Tin ban đầu
Hệ Mật mã khóa bí mật
ó ấKhóa duy nhất
Mã hóa Giải mãã ầTin Mã Tin ban đầu
Hệ Mật mã khóa công khai
Khóa mã hóa Khóa giải mã
Mã hóa Giải mãã ầTin Mã Tin ban đầu
Chủ đề
Hệ Mật ã khô khóHệ Mật mã không khóaHệ 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ã,…Q ý , g ậ ,
Hệ Mật mã không khóa
Mã hóa Giải mãTin Mã Tin ban đầuTin Mã Tin ban đầu
Hệ Mật mã không khóa
Mã h á ịMã hoán vịCác ký tự trong Tin được hoán vị cho nhaunhau
Mã hoán vịHoán vị cộtHoán vị cột
c1 c2 c3 c4 c5c6 c7 c8 c9 c10 c6 c7 c8 c9 c10 c11 c12 …
chuyển thành
1 6 11 2 7c1 c6 c11 c2 c7c12 c3 c8 …. .…….. …. ….
Hoán vị cộtTinTin
T H I S IS A M E SS A M E SS A G E TO S H O WH O W A CO L U M NA R T R AN S P O SI T I O NW O R K S
Hoán vị cộtTin MãTin
T H I S IS A M E S
Mã
t s s o h i S A M E S
S A G E TO S H O W
o a n i w h a a s o l r s t o
H O W A CO L U M NA R T R A
i m g h w u t p i r s e e o a
N S P O SI T I O NW O R K S
m r o o k i s t w c n a s n s
Chủ đề
Hệ Mật ã khô khóHệ Mật mã không khóaHệ 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ã,…Q ý , g ậ ,
Hệ Mật mã khóa đối xứng
D hất ột khó h á t ì h ã Duy nhất một khóa cho quá trình mã hóa và giải mã
C E(K M) C = E(K,M) M = D(K,C)
Khó hải đượ iữ bí ậtKhóa phải được giữ bí mật
Hệ Mật mã khóa đối xứng
ó ấKhóa duy nhất
Mã hóa Giải mãã ầTin Mã Tin ban đầu
Các Hệ Mật mã khóa đối xứng
Mã l ồMã luồngMã CeasarMã Vi èMã VigenèreMã Vernam
Mã khốiMã khốiDESAESAES
Mã luồng
Đơ ị ã hó ơ bả là á ký tựĐơn vị mã hóa cơ bản là các ký tựCác ký tự trong Tin được mã hóa tách biệtbiệt
Mã Ceasarc = m + nc = m + n
m: ký tự trong Tinc: ký tự tương ứng trong Mãc: ký tự tương ứng trong Mãn: độ dịch chuyển+: phép cộng modulo 26
Ví dụ: n = 3C G O Q STin: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Mã: defghijklmnopqrstuvwxyzabc
Mã Ceasar
TinTin
T R E A T Y T R E A T Y I M P O S S I B L E
Mã Ceasar
Tin MãTin
T R E A T Y
Mã
W U H D W BT R E A T Y I M P O S S I B L E
W U H D W BL P S R V V L E O H
Mã VigenèreKhóa
Tin
Mã Vigenère
KhóaKhóaBENCH
Tin A LIMERICK PACKS LAUGHS ANATOMICAL
Nối dài Khóa B ENCHBENC HBENC HBENCH BENCHBENCHB ENCHBENC HBENC HBENCH BENCHBENCH
Mã hóaKhóa: B ENCHBENC HBENC HBENCH BENCHBENCHKhóa: B ENCHBENC HBENC HBENCH BENCHBENCH
Tin: A LIMERICK PACKS LAUGHS ANATOMICAL
Mã: B PVOLSMPM WBGXU SBYTJZ BRNVVNMPCS
Mã Vernam
Ký tự là các bitKý tự là các bitKhóa
K = K1K2K3…KnKi Mi Ci = Ki
xor Mi
Số ngẫu nhiên
Tin M = M1M2M3 Mn
0 0 0
0 1 1M = M1M2M3…Mn
Mã C = C1C2C3…Cn
0 1 1
1 0 1trong đó Ci = Ki xor Mi
1 1 0
Mã khối
Đơ ị ã hó ơ bả là á khối ký Đơn vị mã hóa cơ bản là các khối ký tựCá th ố b ồ kí h thướ khối Các tham số bao gồm kích thước khối và chiều dài khóa
Kí h thướ khối lớ để hố tấ ô Kích thước khối lớn để chống tấn công bằng thống kêChiều dài khóa lớn để chống tấn công Chiều dài khóa lớn để chống tấn công vét cạn
Data Encryption Standard (DES) Lịch sửLịch sử
~ 1970, NIST kêu gọi xây dựng hệ mật mã dành cho công chúng 1974, IBM xây dựng DES trên nền tảng của hệ L ifLucifer1979, chuẩn hóa
Mục tiêuMục đích sử dụng rộng rãiMục đích sử dụng rộng rãiĐộ an toàn caoKhông phụ thuộc vào tính bí mật của thuật toán
Ứng dụngỨng dụngATMTruy nhập từ xa…
Data Encryption Standard (DES)
DESDESKhối 64 bitKhó 56 bitKhóa 56 bit16 vòng lặp mã hóaMỗi vòng kết hợp Hoán vị + Thay thếMỗi vòng kết hợp Hoán vị + Thay thế
Khóa 56 bit
Mã hóa DES MãTin
Mã hóa DESTIN 64-bit KHÓA 64-bitTIN 64 bit
IP
KHÓA 64 bit
KSK1 48-bit
Hoán vị đầu
Vòng 1
Vòng 2K2 48-bit
Vòng 16
...... K16 48-bit
FP
MÃ 64-bit
Hoán vị cuối
MÃ 64 bit
IP, FPIP FP
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 3062 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
IP(b1b2…b64) = b58b50…b7FP(b1b2…b64) = b40b8…b25
KSKS1 KS2
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
KS1 chuyển khối 64 bit thành khối 2 khối 28 bit
14 6 61 53 45 37 29
21 13 5 28 20 12 4
44 49 39 56 34 53
46 42 50 36 29 32
KS1 chuyển khối 64 bit thành khối 2 khối 28 bitKS1(b1b2…b64) = b57b49…b36 b63b55…b4
KS2 chuyển 2 khối 28 bit thành khối 48 bitKS2 (b1b2…b56) = b14b17…b32
KS
Khó b đầ KKhóa ban đầu K(C0,D0) = KS1(K)Ki = KS2 (Ci,Di)
CiDịch chuyển vòng tròn sang trái 1 bit Ci-1 nếu i = 1,2,9,16Dịch chuyển vòng tròn sang trái 2 bit Ci-1 Dịch chuyển vòng tròn sang trái 2 bit Ci 1 trong các trường hợp khác
Tương tự cho Di
Vòng lặp DES
32 bit t ái 32 bit hải32 bit trái 32 bit phải
E
xor khóa 48-bit
P
S-boxes
32 bit trái 32 bit phải
xor
32 bit trái 32 bit phải
E, PE P
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
16 7 20 21
29 12 28 17
1 15 23 268 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
1 15 23 26
5 18 31 10
2 8 24 14
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
32 27 3 9
19 13 30 6
22 11 4 25
E(b1b2…b32) = b32b1…b1P(b1b2…b32) = b16b7…b25
S-BoxesChuyển khối 48 bit thành khối 32 bitChuyển khối 48 bit thành khối 32 bit
8 khối 6 bit: S1, S2,…,S8 (b1b2b3b4b5b6)Chuyển S1 thành khối 4 bit
b1b6 h iá t ị thậ hâ i b1b6 cho giá trị thập phân i b2b3b4b5 cho giá trị thập phân j kết quả tại dòng i cột j của bảng S1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
Tương tự đối với S2,S3,…,S8 (có bảng riêng)
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
ươ g ự đố ớ S ,S3, ,S8 ( ó bả g ê g)
S-BoxesChuyển S1 (110001) thành khối 4 bitChuyển S1 (110001) thành khối 4 bit
b1b6 (11) cho giá trị thập phân i (3)b2b3b4b5 (1000) cho giá trị thập phân j (8): kết quả (5) tại dòng i (3) cột j (8) của bảng S1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
5 (Thập phân) = 0101 (Nhị phân)
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
5 (Thập phân) 0101 (Nhị phân)
Giải mã DES
Sử d ù ột dã khóSử dụng cùng một dãy khóaThứ tự các khóa đảo ngược
ổHoán đổi 2 nửa trái, phảiThực hiện cùng số vòng lặp
ểĐiểm yếu DESTìm khóa bằng vét cạnTìm khóa bằng vét cạn
2^56 khả năngSử dụng tính bù để loại trừ số khả năng khóa
c DES(k m) > |c DES(|k |m)c = DES(k,m) -> |c = DES(|k,|m)|(1011) = 0100
Khóa yếu DES(k ) à DES(k )c = DES(k, m) và m = DES(k, c)
c = DES(k1,m) and c = DES(k2,m) Mã thám
Vi saiTuyến tínhDavies
3DES
Mã hóMã hóac = E(k3,(D(k2,E(k1,m)))
Giải ãGiải mãm = D(k1,(E(k2,D(k3,c)))
óLựa chọn khóak1,k2,k3 độc lậpK1,k2 độc lập và k3 = k1k1=k2=k3
Advanced Encryption Standard (AES)
1997 NIST kêu gọi xây dựng một hệ mật mã mới để 1997, NIST kêu gọi xây dựng một hệ mật mã mới để thay thế DESHệ Rijndael của Daemen và Rijmen được lựa chọn 2001 hệ Rijndael được chuẩn hóa thành AES2001, hệ Rijndael được chuẩn hóa thành AES
Dựa trên lý thuyết “Trường Galois”Khối 128 bitKhóa 128 192 256 bitKhóa 128, 192, 256 bitn vòng lặp mã hóa, phụ thuộc vào chiều dài khóa
Khóa 128 bit, n = 10Khóa 192 bit n = 12Khóa 192 bit, n = 12Khóa 256 bit, n = 14
Mỗi vòng kết hợp Hoán vị + Thay thế
Mật mã & Ứng dụngMật mã & Ứng dụng
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Chủ đề
Hệ Mật ã khô KhóHệ Mật mã không KhóaHệ 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ã,…Q ý , g ậ ,
Tại sao Hệ mật mã khóa công khai
Quản lý khóa đối xứng là một vấn đềQuản lý khóa đối xứng là một vấn đềTrong các hệ Khóa đối xứng, mỗi cặp người dùng phải có khóa riênggườ dù g p ả có óa ê gN người dùng cần N * (N-1)/2 khóaViệc quản lý khóa trở nên phức tạp khi ố l ờ dù ăsố lượng người dùng tăng
Mục tiêu an toànXá thựXác thựcChống phủ nhận
Hệ mật mã khóa công khai
Mỗi ười dù ó 1 khó iê à 1 Mỗi người dùng có 1 khóa riêng và 1 khóa công khai
Khóa iêng bí mậtKhóa riêng bí mậtKhóa công khai có thể chia xẻ
Q ả lý khóQuản lý khóaN người dùng cần N khóa công khai được xác thựcxác thựcHạ tầng khóa công khai PKI
Hệ Mật mã khóa công khai
Mã hó dù khó ô kh i kMã hóa dùng khóa công khai kC = E(k,M)
Giải ã dù khó iê KGiải mã dùng khóa riêng KM = D(K,C)
Khóa công khai Khóa riêng
Mã hóa Giải mãTin Mã Tin ban đầuTin Mã Tin ban đầu
Khóa bí mật vs. Khóa công khai Khóa bí mật Khóa công khaiKhóa bí mật Khóa công khai
Số khóa 1 2
Bảo vệ khóa Khóa được giữ bí ật
1 khóa bí mậtó ômật 1 khóa công khai
Ứng dụng Bí mật và toàn vẹn dữ liệu
Trao đổi khóaXác thựcdữ liệu Xác thực
Tốc độ Nhanh Chậm
Hệ Mật mã khóa công khai
Lý thuyết nền tảng Lý thuyết nền tảng Độ phức tạpSố học đồng dư (Modular Arithmetic)Số học đồng dư (Modular Arithmetic)
Các hệ Mật mã khóa công khaiRSARSAMerkleHellman ElGamalRabinĐường cong êlip (Elliptic Curve)
Độ phức tạpĐộ phức tạp tính toán (thời gian)Độ phức tạp tính toán (thời gian)
Vấn đề “dễ”: lớp PVấn đề “khó”: lớp NP
Giải quyết các vấn đề PGiải quyết các vấn đề PO(n) trường hợp phải xét đến
Giải quyết các vấn đề NP2^O(n) trường hợp phải xét đến
Các hệ mật mã khóa công khai dựa trên Các hệ mật mã khóa công khai dựa trên độ khó/phức tạp của giải thuật bẻ khóa
Số học đồng dưSố học đồng dư Số học đồng dư
a mod na op b mod n
op = +, -, *, /, ^ Ví dụ:
40 mod 6 = 440 mod 6 = 45 + 2 mod 6 = 19 – 4 mod 3 = 25 * 3 mod 6 = 34/2 mod 3 = 22^4 mod 6 = 4
Số học đồng dưa mod na mod n
Số dư của a chia na + b mod n
Số dư của a + b chia nSố dư của a + b chia na - b mod n
Số dư của a - b chia n * b d a * b mod n
Số dư của a * b chia na ^ b mod n
Thủ tục bình phươnga / b mod n
Giải thuật Euclide mở rộng
Thủ tục bình phươngDựa vào tính chấtDựa vào tính chất
a*b mod n = ((a mod n)*(b mod n)) mod n
Tính a^ba^25 = a^(11001) a^(11001) = a^(10000+1000+1) a^(10000+1000+1) = a^10000 * a^1000 * a (10000+1000+1) = a 10000 * a 1000 * a^1a^10000 * a^1000 * a^1 = a^16 * a^8 * a^1
Độ hứ t (O(l b*(l )^2)) Độ phức tạp (O(logb*(logs)^2)) Hiệu quả hơn phương pháp tính lũy thừa bằng phép nhân đồng dư (O(b*(logs)^2)) bằng phép nhân đồng dư (O(b (logs) 2))
Thủ tục bình phươngModExp1(a,b, s)ModExp1(a,b, s)
Vào: 3 số nguyên dương a,b,s sao cho a < s bn−1 ···b1b0 là biểu diễn nhị phân của b, n = [logb] ị p , [ g ]
Ra: a^b mod s
p[0] = a mod sfor i = 1 to n−1
p[i] = p[i−1]^2 mod sr = 1fo i 0 to n 1for i = 0 to n−1
if b[i] = 1 then r = r*p[i] mod sreturn r
Bài tập
Tí h 6^73 d 100Tính 6^73 mod 10073 = 2^0 + 2^3 + 2^66^73 6 * 6^(2^3)*6^(2^6)6^73 = 6 * 6^(2^3)*6^(2^6)6 = 6 mod 1006^(2^3) 16 mod 1006^(2^3) = 16 mod 1006^(2^6) = -4 mod 1006^73 = 6 * (16) * ( 4) = 16 mod 100 6^73 = 6 * (16) * (-4) = 16 mod 100
Giải thuật Euclide mở rộng
Giải thuật EuclideGiải thuật EuclideTính ƯSCLN(a,b)Dựa trên tính chất Dựa trên tính chất
Nếu a > b thì ƯSCLN(a,b) = ƯSCLN(a mod b,b)
ả ậ ở ộGiải thuật Euclide mở rộngTính 2 số x, y sao cho
a*x + b*y ƯSCLN(a b)a*x + b*y = ƯSCLN(a,b)Giải quyết bài toán tìm x sao cho
a*x = 1 mod s
Giải thuật Euclide mở rộng
Extended Euclid(a b)Extended-Euclid(a,b)Vào: 2 số nguyên dương a,bRa: 3 số nguyên x y d sao cho d = gcd(a b) Ra: 3 số nguyên x,y,d sao cho d = gcd(a,b) và ax+by = d
1. Nếu b = 0 thì trả về (1,0,a)2. Tìm q, r sao cho a = b*q+r2. Tìm q, r sao cho a b q r3. (x’,y’,d) = Extended-Euclid(b, r)4. Trả về (y’,x’−q*y’,d)(y , q y , )
Bài tập
Dùng giải thuật Euclide mở rộng để tìm Dùng giải thuật Euclide mở rộng để tìm ƯSCLN(120,23)
a b q r x y da b q r x y d
120 23 5 5 -9 47 1
23 5 4 3 2 9 123 5 4 3 2 -9 1
5 3 1 2 -1 2 1
3 2 1 1 1 -1 13 2 1 1 1 -1 1
2 1 1 0 0 1 1
1 0 _ _ 1 0 1
Bài tập
Dùng giải thuật Euclide mở rộng để tìm Dùng giải thuật Euclide mở rộng để tìm tìm x sao cho 51*x mod 100 = 1
Nếu a*x mod n = 1 thì tồn tại k trong đó a*x = ếu a od t tồ tạ t o g đó a1 + n*kTa có a*x – n*k = 1Đặt k t đượ * + b* 1Đặt y = -k, ta được a*x + b*y = 1Tìm x,y bằng giải thuật Euclide mở rộng
x = -49, y = 25, y
Hệ Mật mã khóa công khai RSA
RSARSA1978 Rivest, Shamir và Adlerman phát minh ra hệ mật mã RSAminh ra hệ mật mã RSAHệ mật mã khóa công khai phổ biến và đa năng nhất trong thực tếđa năng nhất trong thực tếSử dụng các kết quả trong số học đồng dưDựa trên độ phức tạp của bài toán
phân tích số nguyên ra thừa số nguyên tố
RSA – Tạo khóaChọn ngẫu nhiên 2 số nguyên tố p qChọn ngẫu nhiên 2 số nguyên tố p, q
n = p * qChọn e sao cho
1 < e < (p 1) * (q 1)1 < e < (p-1) * (q-1)ƯSCLN(e, (p-1) * (q-1)) = 1
Chọn d sao cho1 d ( 1) * ( 1)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)
RSA – Tạo khóa
Ví dVí dụp = 11, q = 23 11*23 253n = 11*23 = 253
(p-1)*(q-1) = 10*22=220ƯSCLN(e 220) 1 ƯSCLN(e,220) = 1
giá trị nhỏ nhất e = 3
áp dụng giải thuật Euclide mở rộngáp dụng giải thuật Euclide mở rộngd = 147
RSA – Mã hóa
Mã hó ử d khó ô kh iMã hóa sử dụng khóa công khaiTin mKhó ô kh i ( )Khóa công khai (n,e)Mã
c = m^e mod nc = m^e mod n
RSA – Mã hóa
Ví dụVí dụp = 11, q = 23n = 11*23 = 253n = 11 23 = 253(p-1)*(q-1) = 10*22=220e = 3d = 147Tin m = 165Mã
c = 165^3 mod 253 = 110
RSA – Giải mã
Ti Tin mKhóa công khai (n,e)Khóa riêng (p,q,d) Mã c = m^e mod nGiải mã
m = c^d mod n
RSA – Giải mã
Đị h lý NếĐịnh lý: Nếu(n,e) là khóa công khai(p,q,d) là khóa riêng0 <= m < n
thì(m^e)^d mod n = m(m e) d mod n m
RSA – Giải mã
Ví dụVí dụp = 11, q = 23n = 11*23 = 253n 11 23 253(p-1)*(q-1) = 10*22=220e = 3d = 147Mã
c = 165^3 mod 253 = 110c 165 3 mod 253 110Tin
m = 110^147 mod 253 = 165
RSA- Độ an toàn
RSA và bài toán phân tích thừa số nguyên RSA và bài toán phân tích thừa số nguyên tố
Khóa công khai (n,e)óa cô g a ( ,e)Khóa riêng (p,q,d) được giữ bí mậtĐộ an toàn của RSA dựa trên độ khó/phức tạp ủ bài t á tí h ( d) từ ( )của bài toán tính (p,q,d) từ (n,e)
p,q là 2 số nguyên tố, n = p*qn p qe,d được tính từ p,q
Do đó bài toán trên qui về bài toán PTTSNT(n)
RSA- Độ an toàn
Lự h Lựa chọn p,qĐảm bảo rằng bài toán PTTSNT(n) thực sự khósự khóTránh tình trạng p,q rơi vào những trường hợp đặc biệt mà bài toán trên trở trường hợp đặc biệt mà bài toán trên trở nên dễ dàng
Ví dụ: p-1 có các thừa số nguyên tố nhỏ
p,q phải có độ dài tối thiểu là 512 bít p,q xấp xỉ nhau
RSA- Độ an toàn
Lự h Lựa chọn ee nhỏ nhất có thể khô hỏ á để t á h bị tấ ô e không nhỏ quá để tránh bị tấn công
theo dạng “low exponent”
Lựa chọn dLựa chọn dd không nhỏ quá (d < n/4) để tránh tấn công dạng “low decryption”công dạng low decryption
RSA – Hiệu năng
Nhâ hi ố dư hé hi Nhân, chia, số dư phép chia Tính lũy thừa modulo
m^e mod nc^d mod n
ố ộ ấ ậ ớTốc độ rất chậm so với DES
RSA – Bài tậpCho p = 7 q = 11 Giả sử Alice dùng khóa Cho p = 7, q = 11. Giả sử Alice dùng khóa công khai (n,e) = (77,17).
Tìm khóa riêngTì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 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 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)TiTin
H E L L O W O R L D 07 04 11 11 14 26 22 14 17 11 03 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 llMerkleHellmanElGamalRabinĐường cong êlip (Elliptic Curve)
Mật mã & Ứng dụngMật mã & Ứng dụng
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Chủ đề
Hệ Mật ã khô KhóHệ Mật mã không KhóaHệ 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ã,…Q ý , g ậ ,
Hàm băm
Các ứng dụng chú trọng mục tiêu Toàn vẹn 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 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 p o g bă ( a ), ó ượ ( agdigest), đặc số kiểm tra (checksum)Tạo ra “niêm phong”: hàm băm
Hàm băm
M tiê t àMục tiêu an toànToà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 Đầ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
∑*
Cốt (Digest):
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
∑
dễ dàng tính h nhưng rất khó tínhh có tính phi đụng độ cao (collision resistence)
rất khó tìm được x /= y sao cho h(x) = h(y)
h
Kỹ thuật tạo hàm băm
Dùng các hàm mã hóaDùng các hàm mã hóaCBCRMDPRMDPDM
Dùng các phép toán số học đồng dưQCMDCDP
Dù á hà thiết kế đặ biệtDùng các hàm thiết kế đặc biệtMD4/5SHA/SHSSHA/SHS
Kỹ thuật tạo hàm băm
Dùng các hàm mã hóaDùng các hàm mã hóaCBCRMDPRMDPDM
Dùng các phép toán số học đồng dưQCMDCDP
Dù á hà thiết kế đặ biệtDùng các hàm thiết kế đặc biệtMD4/5SHA/SHSSHA/SHS
CBC - Chaining Block Cipher
Hà ã hó E đối ứHàm mã hóa E đối xứngKhóa K
Hà bă HHàm băm HM = M1M2…Mn
( )Hi = E(K,Mi xor Hi-1)H = Hn
RMDP – Rabin, Matyas, Davise, Price
Hà ã hó E đối ứHàm mã hóa E đối xứngKhóa là các khối của Tin
Hà bă HHàm băm HM = M1M2..Mn
( ẫ h ê )H0 = r (r ngẫu nhiên)Hi = E(Mi,Hi-1)H HH= Hn
DM – Davies, Meyer
Hà ã hó E đối ứHàm mã hóa E đối xứngKhóa là các khối của Tin
Hà băHàm bămM = M1M2..Mn
( ẫ h ê )H0 = r (r ngẫu nhiên)Hi = E(Mi,Hi-1) xor Hi-1H HH = Hn
Kỹ thuật tạo hàm băm
Dùng các hàm mã hóaDùng các hàm mã hóaCBCRMDPRMDPDM
Dùng các phép toán số học đồng dưQCMDCDP
Dù á hà thiết kế đặ biệtDùng các hàm thiết kế đặc biệtMD4/5SHA/SHSSHA/SHS
QCMDC – Quadratic Congruential Manipulation Dectection Code
M M1M2 MM = M1M2…MnMi khối n bit
N là ố ê tố hN là số nguyên tố sao choN >= 2^(n-1)
à ăHàm bămH0 = r (r ngẫu nhiên)Hi = (Hi-1+Mi)^2 mod NH = Hn
DP – Davies, Price
M M1M2 MM = M1M2…MnN là số nguyên tố sao cho
N = 2^r
Hàm bămH0 = 0Hi = (Hi-1 xor Mi)^2 mod NH = Hn
Kỹ thuật tạo hàm băm
Dùng các hàm mã hóaDùng các hàm mã hóaCBCRMDPRMDPDM
Dùng các phép toán số học đồng dưQCMDCDP
Dù á hà thiết kế đặ biệtDùng các hàm thiết kế đặc biệtSHA/SHSMD4/5MD4/5
SHA-1
SHA S H h Al ithSHA = Secure Hash AlgorithmĐược đề xuất và bảo trợ bởi NISTDù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 bitĐầu vào bội số của 512 bitGiá trị băm 160 bit80 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 bitA,B,C,D,E khối 32 bitKt 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 32F là hàm kết hợp các phép toán logicF là hàm kết hợp các phép toán logic
not, and, or, xor
MD5
MD M Di tMD = Message DigestMD5 được đề xuất bởi Rivest vào năm 19911991Được sử dụng rộng rãi
Truyền tập tinLưu trữ mật khẩu
MD5
Đầ à 512 bitĐầu vào 512 bitGiá trị băm 128 bit64 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 bitA,B,C,D khối 32 bitKi hằng số của vòng lặp iMi khối 32 bit của Tin<<< dịch chuyển các bit
cộng modulo 32F là hàm kết hợp các phép toán logicF 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 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 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ụngg ụ g
Hợp đồng sốBầu cử điện tửGi dị h â hàGiao dịch ngân hàng…
Chữ ký số
M tiê t àMục tiêu an toànXác thực (Authentication)Chố hủ hậ (N di ti )Chống phủ nhận (Non-repudiation)
Hệ chữ ký số
Thuật toán tạo chữ ký Thuật toán tạo chữ ký Ký hiệu SĐầu vào là một thông tin mĐầu vào là một thông tin mChữ ký S(m)
Thuật toán kiểm định chữ ký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 sV(m,s) = true khi và chỉ khi s = S(m)
Kỹ thuật tạo Chữ ký số
Mật ã khó ô kh iMật mã khóa công khaiHàm bămMật mã khóa công khai + Hàm băm
RSA + Hàm bămElGamal + Hàm bămDSA
Chữ ký số dùng Mật mã khóa công khai
RSARSAChọn ngẫu nhiên 2 số nguyên tố p, q
n = p * qChọn e sao choChọn e sao cho
1 < e < (p-1) * (q-1)ƯSCLN(e, (p-1) * (q-1)) = 1
Chọn d sao choChọn d sao cho1 < d < (p-1) * (q-1)e*d = 1 mod (p-1) * (q-1)
Khóa công khai: (n e) Khóa công khai: (n,e) Khóa riêng: (p,q,d) Mã hóa: c = m^e mod nGiả mã: m = c^d mod nGiả mã: m = c d mod n
Chữ ký số dùng RSA
Tin mTin mKhóa công khai (n,e)Khóa riêng (p q d)Khóa riêng (p,q,d)Tạo chữ ký
s = m^d mod ns 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Đ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” ủ RSA“nhân tính” của RSA
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* 2chữ ký của m1*m2
Tấn công dạng “không Tin”Lấy khóa công khai k của AliceTạ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ă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ố địnhthiên, và đầu ra có chiều dài cố địnhHàm một chiều (one way function)
dễ dàng tính hàm nhưng rất khó tính dễ dàng tính hàm nhưng rất khó tính hàm ngược
Phi đụng độ cao (collision resistence)ụ g ộ ( )gần như đơn ánh
Chữ ký số dùng Hàm băm
Hà bă hHàm băm hTạo chữ ký
Tin ms = h(m)
ể ýKiểm định chữ kýTin mChữ ký ss = h(m)
Chữ ký số dùng Hàm bămĐe dọa/mối nguyĐe dọa/mối nguy
Nghịch lý sinh nhậtTrong một nhóm 23 người, xác suất để có hai ười ó ù ột i h hật là khô hỏ hơ người có cùng một sinh nhật là không nhỏ hơn
1/2Tấn công dạng “sinh nhật”
í h á bă hờ à khôTính N giá trị băm trong thời gian và không gian cho phépLư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 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ămHàm băm
Thuật toán tạo chữ kýHàm mã hóa sử dụng khóa riêngHàm mã hóa sử dụng khóa riêngHàm băm
Thuật toán kiểm định chữ kýậ ị ýHàm giải mã sử dụng khóa công khaiHàm băm
ẩChuẩn Chữ ký số - DSSTạo chữ ký Kiểm định chữ ký
Hàm băm Hàm băm
ạ ý ị ýTin Tin
Hàm băm Hàm băm
Tóm lược Tóm lược
Khóa riêngSinh chữ ký Kiểm định chữ ký
Khóa công khai
ợ
ý ị ýChữ ký
Hợp lệ/Khô h lệKhông hợp lệ
Chữ ký số RSA + Hàm băm
Cá thô ốCác thông sốHàm băm h2 ố ê tố 2 số nguyên tố p,q
Chữ ký số RSA + Hàm bămTạo khóaTạo khóa
n = p*qChọn e sao cho
1 < e < (p 1) * (q 1)1 < e < (p-1) * (q-1)ƯSCLN(e, (p-1) * (q-1)) = 1
Chọn d sao cho1 < d < ( 1) * ( 1)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)
Chữ ký số RSA + Hàm băm
T hữ kýTạo chữ kýTin mChữ kýChữ ký
s = h(m)^d mod n
Chữ ký số RSA + Hàm băm
Kiể đị h hữ kýKiểm định chữ kýChữ ký sTin mTin mKiểm định
h(m) = s^e mod nh(m) s e mod n
Chữ ký số ElGamal + Hàm băm
Cá thô ốCác thông sốHàm băm hSố ê tố Số nguyên tố pSố nguyên g sao cho
g^c = b mod pg^c = b mod ptrong đó b,p nguyên tố cùng nhau
Chữ ký số ElGamal + Hàm băm
T khóTạo khóaChọn a sao cho 0 < a < p-1
A g^a mod pA = g^a mod pa được gọi là logarit rời rạc của A
Khóa công khaiKhóa công khai(p,g,A)
Khóa riêngga
Chữ ký số ElGamal + Hàm băm
T hữ kýTạo chữ kýTin mChọn k sao cho Chọn k sao cho
0 < k < p-1k nguyên tố cùng nhau với p-1 guyê tố cù g au ớ p
Chữ kýr = g^k mod ps = k^(-1) * (h(m) – a*r) mod (p-1)
Chữ ký số ElGamal + Hàm băm
Kiể đị h hữ kýKiểm định chữ kýChữ ký (r,s)Tin mTin mKiểm định
0 < r < pp0 < s < p-1A^r*r^s = g^h(m) mod p
Chữ ký số DSA
Cá thô ốCác thông sốHàm băm hSố ê tố Số nguyên tố qSố nguyên p sao cho
p 1 la bội số của qp-1 la bội số của q
Số nguyên g sao cho g = x^((p-1)/q) mod pg x ((p 1)/q) mod ptrong đó x < p
Chữ ký số DSA
T khóTạo khóaChọn a < q
A g^a mod pA = g^a mod p
Khóa công khai(p q g A)(p,q,g,A)
Khóa riênga
Chữ ký số DSA
T hữ kýTạo chữ kýTin mChọn k sao cho 0 < k < qChọn k sao cho 0 < k < qChữ ký
r = (g^k mod p) mod qr = (g k mod p) mod qs = k^(-1) * (h(m) + a*r) mod q
Chữ ký số DSA
Kiể đị h hữ kýKiểm định chữ kýChữ ký (r,s)Tin mTin mKiểm định
0 < r < qq0 < s < qr = ((g^(s^(-1)*h(m) mod q) A^(r*s^(-1) mod q)) mod p) mod qmod q)) mod p) mod q
Mật mã & Ứng dụngMật mã & Ứng dụng
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Chủ đề
Hệ Mật ã khô KhóHệ Mật mã không KhóaHệ 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ã,…Q ý , g ậ ,
Quản lý khóa, giao thức mật mã,…
Quản lý khóaQuản lý khóaKhóa đối xứngKhóa công khai Khóa công khai
PKI
Giao thức mật mãậThống nhất khóa
Diffie-Hellman
Xác thựcNeedham-Schroeder
Quản lý khóa, giao thức mật mã,…
Quản lý khóaQuản lý khóaKhóa đối xứngKhóa công khai Khóa công khai
PKI
Giao thức mật mãậThống nhất khóa
Diffie-Hellman
Xác thựcNeedham-Schroeder
Quản lý khóa
Quản lý khóa là một vấn đề quan trọngQuản lý khóa là một vấn đề quan trọngTính bí mật: khóa đối xứngTính toàn vẹn: khóa đối xứng, khóa công khai Tính toàn vẹn: khóa đối xứng, khóa công khai
Giải pháp quản lý khóaKhóa đối xứng
Trọng tài (Trusted Third Party)Khóa công khai
PKI (P bli K I f t t )PKI (Public Key Infrastructure)
Quản lý khóa đối xứng
Mô hì h t đổi thô ti khó đối Mô hình trao đổi thông tin khóa đối 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 )Trọng tài (Trusted Third Party)Thực thể được tất cả các thực thể tham gia khác tin tưởnggia khác tin tưởngMỗi thực thể tham gia chia xẻ một khóa đối xứng với Trọng tàiđối xứng với Trọng tàiHai 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 A4Nguồnkhóa
kE(k,m) TTP
A6 A5
E(k6,k)
Quản lý khóa đối xứng nhờ Trọng tài
Ưu điểmƯu điểmDễ 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ạndài hạn
Nhược điểmTấ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àitương tác ban đầu với Trọng tàiTrọng tài phải lưu trữ nhiều khóa đối xứng dài hạnTrọng tài phải xử lý khối lượng lớn thông tinTrọng tài phải xử lý khối lượng lớn thông tinNế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ó ô Mô hình trao đổi thông tin khóa công khai
A2: d2 A3: d3c = E(e6,m) A2: d2 A3: d3
Thư mục công cộng
e6
c E(e6,m)
A1: d1 A4: d4A1: e1A2 : e2A3 : e3A4 : e4
e6
c
A6 d6 A5 d5
A4 : e4A5 : e5A6 : e6
m D(d6 c) A6: d6 A5:d5m = D(d6,c)
Quản lý khóa công khai nhờ PKI
H tầ khó ô kh i (PKI) Hạ tầng khóa công khai (PKI) 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 qua một thực thể có thẩm quyền cấp phát chứng nhận số (Certificate Authority)y)
Quản lý khóa công khai nhờ PKI
Mô hì h t đổi thô ti khóMô hình trao đổi thông tin khóa
A2: d2 A3: d3V(A6||e6,s6)c = E(e6 m)
Certificate Authority
A1 e1 s1 = S(A1||e1)A6||e6,s6
c = E(e6,m)
A1: d1 A4: d4A1, e1, s1 = S(A1||e1)A2 , e2, s2 = S(A2||e2)A3 , e3, s3 = S(A3||e3)A4 , e4, s4 = S(A4||e4)
A6||e6,s6
c
A6: d6 A5:d5
A5 , e5, s5 = S(A5||e5)A6 , e6, s6 = S(A6||e6)
m = D(d6 c) A6: d6 A5:d5m D(d6,c)
Quản lý khóa công khai nhờ PKI
Ưu điểmƯu điểmChống tấn công chủ độngCA chỉ cấp chứng nhận, không tham gia vào việc 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ênCó 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ộlưu các chứng nhận cục bộ
Nhược điểmNếu thuật toán sinh chữ ký của CA bị đe dọa, tất u uậ oá ữ ý ủa bị đ dọa, ấ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óaQuản lý khóaKhóa đối xứngKhóa công khai Khóa công khai
PKI
Giao thức mật mãậThống nhất khóa
Diffie-Hellman
Xác thựcNeedham-Schroeder
Giao thức
Gi thứGiao thứcMột chuỗi các bước thực hiệnCá bướ thự hiệ hải tườ i hCác bước thực hiện phải tường minhTấ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ướcvà có các bước thực hiện trướcCó ít nhất 2 bên tham dựCác bên tham dự phải hiểu biết và tuân 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 Giao thức mật mã = Giao thức + Mật mã học Thô thườ ột i thứ ật ã Thông thường một giao thức mật mã kết hợp các khía cạnh sau
Thố hất khóThống nhất khóaXác thựcMã hóaMã hóaChống phủ nhận
Giao thức mật mã
SSL/TLSSSL/TLSGiao thức mật mã để trao đổi thông tin trên Internettrên InternetSSL được phát triển bởi NetscapeTSL kế thừa từ SSL phiên bản 3 0TSL kế thừa từ SSL phiên bản 3.0Ứng dụng
Duyệt Web, Email, IM, VoIP,…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 hSSL/TSL gồm 3 pha1. Thương lượng lựa chọn giải thuật
Thống nhất khóa: RSA Diffie HellmanThống nhất khóa: RSA, Diffie-Hellman,…Mã hóa khóa đối xứng: 3DES, AES,…Chữ ký số: RSA, DSA,…Chữ ký số: RSA, DSA,…Hàm băm: SHA, MD5,…
2. Thống nhất khóa và xác thực3. Mã hóa thông điệp
Quản lý khóa, chia xẻ bí mật
Quản lý khóaQuản lý khóaKhóa đối xứngKhóa công khai Khóa công khai
PKI
Giao thức mật mãậThống nhất khóa
Diffie-Hellman
Xác thựcNeedham-Schroeder
Thống nhất khóa
T đổi thô ti bí ật ới tố độ Trao đổi thông tin bí mật với tốc độ nhanh
Mật mã khóa đối ứngMật mã khóa đối xứng
Thiết lập và trao đổi khóaCá thự thể th i hải thố hất Các thực thể tham gia phải thống nhất khóa đối xứngQuá trình thống nhất khóa phải đảm bảoQuá trình thống nhất khóa phải đảm bảo
Tính bí mậtTính toàn vẹnẹ
Giao thức Diffie-Hellman
1976 Diffie và Hellman phát minh 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í 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 ếSử dụng các kết quả trong lý thuyế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ánDựa trên độ phức tạp của bài toán
Logarit rời rạc
Diffie-Hellman1. Alice (A) chọn và gửi cho Bob (B) số nguyên tố p và 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,g2 Alice chọn một số tự nhiên ngẫu nhiên a và gửi g^a 2. Alice chọn một số tự nhiên ngẫu nhiên a và gửi g^a
mod p cho BobA -> 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 ọ ộ ự g g gp cho Alice
B -> A: g^b mod p4. Alice tính (g^b mod p)^a mod p5 Bob tính (g^a mod p)^b mod p5. Bob tính (g^a mod p)^b mod p6. Khóa chung bí mật g^(a*b) mod p
Diffie-HellmanVí dụ: p = 23 g = 5 a = 6 b = 15Ví dụ: p 23, g 5, a 6, b 15
1. Alice gửi Bob p=23, g=5A -> B: 23,5
2. Alice chọn a=6, và gửi Bob g^a mod p = 5^6 mod g g23 = 8
A -> B: 83. Bob chọn b=15, và gửi Alice g^b mod p = 5^15 mod
23 = 19 23 19 B -> A: 19
4. Alice tính 19^6 mod 23 = 2 b í h5. Bob tính8^15 mod 23 = 2
6. Khóa K = 2
Độ an toàn của Diffie-HellmanKhóa bí mậtKhóa bí mật
Bài toán Diffie-HellmanBiết g, g^a, g^b. Tìm g^(a*b)?
Bài toàn Logarit rời rạcBiết g^a. Tìm a?
Tính xác thựcTính xác thựcTấn công dạng “Man-in-the-middle”
Alice và Bob muốn thống nhất khóa bí mậtE là kẻ ở iữEve là kẻ ở giữaAlice 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óaQuản lý khóaKhóa đối xứngKhóa công khai Khóa công khai
PKI
Giao thức mật mãậThống nhất khóa
Diffie-Hellman
Xác thựcNeedham-Schroeder
Xác thực
Rất hiề ứ d đòi hỏi á thự Rất nhiều ứng dụng đòi hỏi các thực thể tham gia phải chứng minh danh tínhtính
Mô hình Client-Server an toàn
Quá trình các nhận danh tính của các 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ẹnTính toàn vẹnChống mạo danh
Giao thức Needham-Schroeder1978 Needham và Schroeder phát minh 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 tinNgăn chặn nghe lén, thay đổi thông tin
Ứng dụngXác thực trong mô hình Client-Server: Kerberos
2 loại giao thức2 loại giao thứcKhóa đối xứngKhóa công khaig
Needham-Schroeder khóa đối xứng
Ali (A) ố t đổi thô ti ới Alice (A) muốn trao đổi thông tin với Bob (B)Ali à B b ù ti tưở ột Alice và Bob cùng tin tưởng một Server (S) trung gian
K khó đối ứ iữ A SKas khóa đối xứng giữa A va SKbs khóa đối xứng giữa B va SNa à Nb là các “nonce”Na và Nb là các “nonce”Kab là khóa đối xứng giữa A và B
Needham-Schroeder khóa đối xứng1 A gửi thông tin của mình và B cho S 1. A gửi thông tin của mình và B cho S
A -> S: A,B,Na2. S gửi khóa Kab cho A, thông tin được mã hóa
S > A: {Na Kab B {kab A} Kbs} KasS -> A: {Na,Kab,B,{kab,A}_Kbs}_Kas3. A gửi khóa Kab cho Bob, thông tin được mã hóa
A -> B: {Kab,A}_Kbs4 B t ả lời A đã hậ đượ khó K b thô ti đượ 4. B trả lời A đã nhận được khóa Kab, thông tin được
mã hóaB -> A: {Nb}_Kab
5 A bá B ằ A ẵ à à đ iữ khó K b 5. A báo B rằng A sẵn sàng và đang giữ khóa Kab, thông tin được mã hóa
A -> B: {Nb-1}_Kab
Needham-Schroeder khóa đối xứng
Tấ ô d “R l ”Tấn công dạng “Replay”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 Alice (A) muốn trao đổi thông tin với Bob (B)Ali à B b ù ti tưở ột Alice và Bob cùng tin tưởng một Server (S) trung gian
K à k khó iê à ô kh i ủ AKa và ka khóa riêng và công khai của AKb và kb khóa riêng và công khai của BKs à ks khóa iêng à công khai của SKs và ks khóa riêng và công khai của SNa và Nb là các “nonce”
Needham-Schroeder khóa công khai1. A yêu cầu S khóa công khai của B1. A yêu cầu S khóa công khai của B
A -> S: A,B2. S gửi khóa công khai của B cho A
S -> A: {kb,B}_Ks3 A ửi ủ ì h h B3. A gửi nonce của mình cho B
A -> B: {Na,A}_kb4. 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}_Ks6. B gửi nonce của mình và của A cho A
B > A: {Na Nb} kaB -> A: {Na,Nb}_ka7. 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 ”Tấn công dạng “Man-in-the-middle”
Bài tập Mật mã & Ứng dụngBài tập Mật mã & Ứng dụng
Trần Đức KhánhBộ 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ânKhóa dạng thập lục phân133457799BBCDFF1
Tin dạng thập lục phânTin dạng thập lục phân0123456789ABCDEF
Tính L0,R0C0,D0C1 1C1,D1K1L1,R1L1,R1
L0 = 11001100000000001100110011111111L0 = 11001100000000001100110011111111R0 = 11110000101010101111000010101010C0 = 1111000011001100101010101111D0 = 0101010101100110011110001111C1 = 1110000110011001010101011111D1 1010101011001100111100011110D1 = 1010101011001100111100011110K1 = 000110110000001011101111111111000111000001110010R1 = 11001111010010110110010101000100
Bài 2: Tính bù DES
Chứ i h ằChứng minh rằng|DES(m,k) = DES(|m,|k)
Từ đó iải th ật tì khó biết Từ đó suy ra giải thuật tìm khóa biết mã của tin và bù của tin, với độ phức tạp nhỏ hơn 2^56tạp nhỏ hơn 2^56.
IP và FP không ảnh hưởng đến kết quả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 ókhóa ban đầu k. Ta có
KSi(|k) = |KSi(k)Đầu vào của S-boxes
|E(R) xor |KTa có tính chất
A xor B = |A xor |BA xor B = |A xor |BTừ đó 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)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 do1. for all non-tested key k do2. c = DES(k,x)3. if c == DES(K,x)then4. return k5. end if6. if |c == DES(K,|x)then| ( | )7. return |k8. end if9. end for9. end for
Bài 3: Khóa yếu DES
Ch biết K1 K2 K16Cho biết K1 = K2 = … = K16Tìm tất cả các khóa thỏa mãn tính hất t êchất trên
4 khó4 khóaTất cả các bit của C là 0 + tất cả các bit của D là 0của D là 0Tất cả các bit của C là 1 +tất cả các bit của D là 0của D là 0Tất cả các bit của C là 0 + tất cả các bit của D là 1Tấ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 ModuliTấn công dạng Common ModuliAlice sử dụng khóa công khai RSA (n,ea)Bob sử dụng khóa công khai RSA (n eb)Bob sử dụng khóa công khai RSA (n,eb)ƯSCLN(ea,eb) = 1 Cho tin mCho tin mEve biết mã ca của tin m mã hóa bởi AliceEve biết mã cb của tin m mã hóa bởi BobEve biết mã cb của tin m mã hóa bởi BobEve có thể tính được m hay không?
Tính x y sao choTính x,y sao chox*ea + y*eb = 1
TínhTínhca^x*cb^y
Ta biếtTa biếtca^x*cb^y = m^(ea*x) * m^(eb*y) ( ) ( y)= m^(ea*x+eb*y) = m
Bài 5: Tấn công Common Moduli
Ali ử d khó ô kh i (493 3)Alice sử dụng khóa công khai (493,3)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 AliceEve biết mã 421 của tin m mã hóa bởi BobTính m
Bài 6: Chứ ký số ElGamal
2237p= 2237g = 2Khóa riêng là a = 1234Giá trị băm của tin m là h(m) = 111k = 2323Tạo chữ kýTạo chữ kýKiểm định chữ ký
799r = 799k^-1 = 1979s = 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 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”dạng Man in the middleĐưa ra một giải pháp chống tấn công
Tấ ôTấn côngA -> E: {Na,A}_keE -> B: {Na,A}_kbB -> E: {Na,Nb}_kaE -> A: {Na,Nb}_kaA -> E: {Nb} keA > E: {Nb}_keE -> B: {Nb}_kb
Giải háGiải phápThay luật
B -> A: {Na,Nb}_ka
bằng luậtB -> A: {Na,Nb,B}_ka
An toàn Phần mềmAn toàn Phần mềm
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)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 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 Chạy và phản ứng theo cách bất thường, không trông đợi từ phía người dùngg gẨn náu trong hệ thống, hoặc gắn vào các phần mềm không ác tínhCó 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ặpVi rut (Virus)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 horseCó các tính năng bất thườngCó 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
TrapdoorCho phép truy nhập trái phép các tính năng
Sâu (Worm)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 Virus chỉ gây hại khi được kích hoạt Virus chạy cùng với một chương trình khác chạy bởi người dùngkhác chạy bởi người dùngVirus chạy khi mở tệp đính kèm trong e-mails, tệp ảnh, tệp đồ họamails, tệp ảnh, tệp đồ họa
Phát tán Virus
Mã i đí h à ã hươ t ì hMã virus đính vào mã chương trìnhNối mã virus với mã chương trìnhMã i b h ã hươ t ì hMã virus bao quanh mã chương trìnhMã virus tích hợp vào mã chương trình
Vi tài liệVirus tài liệuTà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 )Vùng Boot (Boot Sector)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ệtMã virus có kiểu mẫu đặc biệtCó thể nhận biết các đoạn mã của từng loại virusloại virus
Mã đính kèm không thay đổiChương trình đính kèm sẽ lớn hơn 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 đổiVị 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 Sử dụng phần mềm thương mại từ nguồn tin cậyKiểm thử phần mềm trên một máy tính/hệ Kiểm thử phần mềm trên một máy tính/hệ thống tách biệtMở tệp đính kèm chỉ khi nào biết rõ nguồn ệp ggốcLưu ở nơi an toàn một phiên bản có thể tái
ủ hệ hố đ ử dtạo của hệ thống đang sử dụngSử dụng phần mềm quét diệt virus
Một số ngộ nhận về virusVirus chỉ lây nhiễm trên các hệ thống MS Virus chỉ lây nhiễm trên các hệ thống MS WindowsVirus không thể thay đổi các file “hidden” hoặc “read only”hoặc read-onlyVirus 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-mailVirus không thể tồn tại trong bộ nhớ sau Virus không thể tồn tại trong bộ nhớ sau khi reboot power off/onVirus lây nhiễm trên phần cứng
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
ỗLỗi phần mềm
Lậ t ì h iê thườ ắ lỗiLập trình viên thường mắc lỗikhông cố ýkhô á tí hkhông ác tínhnhư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 )Tràn bộ đệm (Buffer Overflow)Array Index Out of Bound
Khô đầ đủ (I l t M di ti )Không đầy đủ (Incomplete Mediation)Format String
l flImplicit Cast, Integer Overflow
Đồng bộ (Synchronization)File stat()/open()
ỗLỗi tràn bộ đệm1 char buf[80];1. char buf[80];2. void vulnerable() {3. gets(buf);3. gets(buf);4. }
Điều gì xảy ra nếu đầu vào có hơn 80 bytechar buf[80];int authenticated = 0;int authenticated = 0;char buf[80];int (*fnptr)();
ỗLỗi không đầy đủ1 void vulnerable() {1. void vulnerable() {2. char buf[80];3. if (fgets(buf, sizeof buf, stdin) == NULL)3. if (fgets(buf, sizeof buf, stdin) NULL)4. return;5. printf(buf);p ( )6. }
Điều gì sẽ xảy ra?
ỗLỗi không đầy đủ1. char buf[80];1. char buf[80];2. void vulnerable() {3. int len = read_int_from_network();4. char *p = read_string_from_network();5 if (l > i f b f) {5. if (len > sizeof buf) {6. error("length too large, nice try!");7. return;8. }}9. memcpy(buf, p, len);10. }11. void *memcpy(void *dest, const void *src, size_t n);12 typedef unsigned int size t;12. typedef unsigned int size_t;
Điều gì sẽ xảy ra?
ỗLỗi đồng bộ1 int openfile(char *path) {1. int openfile(char path) {2. struct stat s;3. if (stat(path, &s) < 0)4 et n 14. return -1;5. if (!S_ISRREG(s.st_mode)) {6. error("only allowed to regular files; nice try!");7. return -1;8. }9. return open(path, O_RDONLY);p (p )10.}
Điều gì sẽ xảy ra?Điều gì sẽ xảy ra?
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
ểKiểm thử
M đí h ủ kiể thử là tì lỗi Mục đích của kiểm thử là tìm ra lỗi của hệ thống
Nế không tìm a lỗi chúng ta hi ọng Nếu không tìm ra lỗi, chúng ta hi vọng rằng hệ thống là an toàn
ểQuy trình kiểm thử
1 Đơ ị (U it T ti )1. Đơn vị (Unit Testing)2. Tích hợp (Integration Testing)3. Chức năng (Function Testing)4. Hiệu năng (Performance Testing)5. Công nhận (Acceptance Testing)6. Cài đặt (Installation Testing)6. Cài đặt (Installation Testing)
Một số loại hình kiểm thử đặc biệt
Hồi (R i T ti ) Hồi quy (Regression Testing) Nếu hệ thống có thay đổi, chỉnh sửa
X ắ (F T ti )Xoắn (Fuzz Testing)Các trường hợp đặc biệt, dễ bị khai thác và tấn côngvà tấn công
ểCác tiếp cận trong kiểm thửHộp đen (Black box)Hộp đen (Black-box)
Không có thông tin về cấu trúc bên trong của phần mềmDù h ấ ả á ứ ủ ì h kiể hửDùng cho tất cả các mức của quy trình kiểm thử
Hộp trắng (White-box)Biết cấu trúc bên trong của phần mềmBiết cấu trúc bên trong của phần mềmThường dùng cho kiểm thử đơn vị
Hộp xám (Grey-box)ỗHỗn hợp Đen: kiểm thửTrắng: thiết kế ca kiểm thửg
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
ểKiểm định hình thức
M đí h ủ kiể đị h hì h thứ là Mục đích của kiểm định hình thức là chứng minh hệ thống an toàn
Các tiếp cận trong kiểm định hình thức
Kiểm định mô hình (Model checking)Kiểm định mô hình (Model checking)Phần mềm được đặc tả bằng một mô hìnhQuá trình kiểm định thực hiện bằng cách duyệt ấ ả á hái hô ấ ả á tất cả các trạng thái thông qua tất cả các
chuyển tiếp
Suy diễn logic (Logical Inference)y g ( g )Đầu vào của phần mềm bị ràng buộc bằng một biểu thức logicTương tự với đầu raTương tự với đầu raBản thân phần mềm cũng bị ràng buộc bằng một biểu thức logic
Kiểm định hình thức sử dụng suy ễdiễn logic
Chương trìnhĐầu vào Chương trìnhĐầu vàoĐầu ra
Đầu vào+ Điều kiện trước Đầu ra
+Điều kiện sau
Chương trình+ Điều kiện
+Điều kiện sau
Điều kiện trước (Precondition)1 /* Requires: n >= 1 */1. / Requires: n >= 1 /
2. int fact(int n) {3. int t;4. if (n == 1)5 return 1;5. return 1;6. t = fact(n-1);7. t *= n;8. return t;9. }
Điều kiện sau (Postcondition)1 /* Ensures: returnvalue >= 0 */1. / Ensures: returnvalue >= 0 /
2. int fact(int n) {3. int t;4. if (n == 1)5 return 1;5. return 1;6. t = fact(n-1);7. t *= n;8. return t;9. }
Điều kiện trong chương trình1 int fact(int n) {1. int fact(int n) {2. int t;3. if (n == 1)4 et n 14. return 1;5. /* n>=2 */6. t = fact(n-1);7. /* t>=0 */8. t *= n;9. /* t>=0 */10. return t;11.}
Điều kiện1 /* Requires: n >= 1; Ensures: returnvalue >= 0 */1. / Requires: n > 1; Ensures: returnvalue > 0 /
2. int fact(int n) {3. int t;3. int t;4. if (n == 1)5. return 1;6. /* n>=2 */6. / n 2 /7. t = fact(n-1);8. /* t>=0 */9. t *= n;;10. /* t>=0 */11. return t;12. }}
An toàn Phần mềm
Phầ ề á tí hPhần mềm ác tínhCác phần mềm ác tính thường gặpCá biệ há ă hặCác biện pháp ngăn chặn
Lỗi phần mềmá lỗ hầ ề h ờ ặCác lỗi phần mềm thường gặp
Các biện pháp an toànKiể thử (T ti )Kiểm thử (Testing)Kiểm định hình thức (Formal Verification)Lập trình an toàn (Secure Coding)Lập trình an toàn (Secure Coding)
Lập trình an toàn (Secure Coding)
N ê tắNguyên tắcMô đun (Modularity)Đó ói (E l ti )Đóng gói (Encapsulation)Giấu thông tin (Information Hiding)
Mô đun
Thiết kế á hợ hầThiết kế các hợp phầnMột mục tiêu/nhiệm vụNhỏNhỏĐơn giảnĐộc lậpĐộc lập
Đóng gói
Giấu thông tin về cách thức cài đặt Giấu thông tin về cách thức cài đặt các hợp phần
Ví dụ: lớp ảo C++ giao diện Java Ví dụ: lớp ảo C++, giao diện Java Giảm thiểu chia xẻ giữa các hợp phần
Ví dụ: các thư việnVí dụ: các thư việnCác hợp phần tương tác thông qua các giao diệng ệ
Ví dụ: tương tác giữa các đối tượng thông qua các phương thức
Giấu thông tin
Một hợ hầ hư ột hộ đ hì Một hợp phần như một hộp đen nhìn từ phía ngoài
Ví d một lớp C++ Ja aVí dụ: một lớp C++, Java
Các phần tử bên ngoài không thể thay đổi sữa chữa thông tin một cách thay đổi sữa chữa thông tin một cách ác ý và trái phép
Ví dụ: các thuộc tính private protectedVí dụ: các thuộc tính private, protected
Lập trình an toàn (Secure Coding)
Một số quy tắc thực hànhMột số quy tắc thực hànhSử dụng một chuẩn lập trìnhLập trình phòng thủLập trình phòng thủ
Kiểm tra dữ liệu đầu vào/đầu raSử dụng đặc quyền thấp nhất có thể
Thiết kế theo chính sách an toànSử dụng các công cụ đảm bảo chất lượng
Kiểm thửKiểm thửKiểm địnhDuyệt lại mãyệ ạ
An toàn Hệ điều hànhAn toàn Hệ điều hành
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Hệ điều hành
V i t òVai tròGiao diện giữa phần cứng và phần mềmQ ả lý tài êQuản lý tài nguyênCung cấp các phương tiện bảo vệ phần cứng và ứng dụngcứng và ứng dụng
An toàn Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hành
Bảo vệ bộ nhớ và địa chỉĐiều khiển truy nhậpBảo vệ tệpXác thực người dùng
Nguyên tắc thiết kế Hệ điều hànhNguyên tắc thiết kế Hệ điều hànhGiám sát thẩm quyền (Reference Monitor)Phân hoạch (Separation)/Cách ly (Isolation)Thiết kế hâ tầ (L d D i )Thiết kế phân tầng (Layered Design)
Hệ điều hành tin cậy (Trusted Operating System)
An toàn Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hành
Bảo vệ bộ nhớ và địa chỉĐiều khiển truy nhậpBảo vệ tệpXác thực người dùng
Nguyên tắc thiết kế Hệ điều hànhNguyên tắc thiết kế Hệ điều hànhGiám sát thẩm quyền (Reference Monitor)Phân hoạch (Separation)/Cách ly (Isolation)Thiết kế hâ tầ (L d D i )Thiết kế phân tầng (Layered Design)
Hệ điều hành tin cậy (Trusted Operating System)
Bả ệ bộ hớ à đị hỉBảo vệ bộ nhớ và địa chỉLà thế à ă hặ ột hươ Làm thế nào ngăn chặn một chương trình/người dùng can thiệp vào không gian bộ nhớ của chương trình/người gian bộ nhớ của chương trình/người dùng khác?
Phân đoạn (Segmentation)Phân đoạn (Segmentation)Phân trang (Paging)
Phân đoạn (Segmentation)Phân chia chương trình thành các đoạnPhân chia chương trình thành các đoạn
Tương ứng với các đoạn dữ liệu, các chương trình conMỗi đ ó ề khá h (R W E)Mỗi đoạn có quyền khác nhau (R,W,E)
Phân chia bộ nhớ vật lý thành các đoạnTương ứng với, các mảng dữ liệu người dùng Tương ứng với, các mảng dữ liệu người dùng hoặc các đoạn mã chương trình
Mỗi đoạn có một tên duy nhất<Name Offset><Name,Offset>
Hệ điều hành phải duy trì một bảng các đoạnạ
Phân trang (Paging)
Phân chia chương trình thành các trang Phân chia chương trình thành các trang (page) cùng kích thướcPhân chia bộ nhớ vật lý thành các khung Phân chia bộ nhớ vật lý thành các khung trang (page frame) cùng kích thước
512 đến 4096 byte
Mỗi trang có một tên duy nhất<Page,Offset>
ệ ề à ả ì ộ ả áHệ điều hành phải duy trì một bảng các trang
Kết hợp Phân đoạn và Phân trang
Ưu điểm của phân đoạnƯu điểm của phân đoạnBảo vệ bộ nhớ bằng cách phân quyền theo chương trình/người dùngeo c ươ g / gườ dù gHệ điều hành kiểm soát việc quyền đọc/ghi/thực hiện trên bộ nhớ
Ư ể ủ âƯu điểm của phân trangTốc độ
T á hệ điề hà h hiệ đ iTrong các hệ điều hành hiện đạiKết hợp Phân đoạn+Phân trang
Điề khiể t hậĐiều khiển truy nhậpRât nhiều đối tượng được truy nhậpRât nhiều đối tượng được truy nhập
Bộ nhớPhần cứngPhần cứngTệpThông tin hệ thống: bảng, cơ chế bảo vệ, g ệ g g, ệ,lệnh đặc quyền…
Vấ đề à đặ Vấn đề an toàn đặt raAi được truy nhập gì với đặc quyền nào?
ế Điề khiể t hậCơ chế Điều khiển truy nhậpD h á h điề khiể t hậDanh sách điều khiển truy nhập
Danh sách các đối tượng truy nhậpMỗi đối tượ ó ột d h á h á hủ Mỗi đối tượng có một danh sách các chủ thể
Ma trận điều khiển truy nhậpMa trận điều khiển truy nhậpMột chiều là danh sách các chủ thểMột chiều là danh sách các đối tượng Một chiều là danh sách các đối tượng truy nhập tương ứng với các chủ thể
Bả ệ tệBảo vệ tệpBả ệ hóBảo vệ nhóm
Tất cả người dùng được phân thành nhómnhómQuyền sử dụng được một người dùng thiết lập cho mình và cả nhómthiết lập cho mình và cả nhóm
Bảo vệ cá thểMỗi người dùng có một số quyền Mỗi người dùng có một số quyền
Quyền sử dụng lâu dàiQuyền sử dụng tạm thời
Bả ệ tệBảo vệ tệpHệ thố tệ UNIX/LINUXHệ thống tệp UNIX/LINUX
Mỗi tệp có chủ sở hữu và nhóm sở hữuQ ề đượ thiết lậ bởi hủ ở hữQuyền được thiết lập bởi chủ sở hữu
R,W,Esetid owner group othersetid, owner, group, other
Chỉ có chủ sở hữu và root mới được phép thay đổi quyềny q y
Xá thự ười dùXác thực người dùngHệ điề hà h ả lý hiề ười Hệ điều hành quản lý nhiều người dùng
Ai là ai?Ai là ai?
Giải pháp xác thực người dùngMật khẩMật khẩuMột số đặc điểm sinh trắc học
ằ ẩXác thực bằng mật khẩuHệ điều hành lưu trữ một tệp người dùng/mật Hệ điều hành lưu trữ một tệp người dùng/mật khẩu
Tệp thông thườngThông tin lưu dạng văn bảnThông tin lưu dạng văn bảnĐộ an toàn thấp
Tệp mã hóaMã hó ả tệ h ặ hỉ ã hó ật khẩMã hóa cả tệp hoặc chỉ mã hóa mật khẩuĐộ an toàn phụ thuộc vào hê mật mã
Để tăng cường độ an toànMật khẩu đủ dài, tránh chứa các thông tin đặc biệtThay đổi mật khẩu đều đặnĐề phòng tấn công dạng “đăng nhập giả”g g g g g
ằ ắXác thực bằng sinh trắc học
Các đặc điểm sinh trắc họcCác đặc điểm sinh trắc họcVân tay, mắt, khuôn mặt, chữ viết…
Xác thực bằng sinh trắc học tương đối Xác thực bằng sinh trắc học tương đối mới
Phát triển nhanh trong những năm Phát triển nhanh trong những năm Một số nhược điểm
Giá thànhTốc độ/Độ chính xácGiả mạo
An toàn Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hành
Bảo vệ bộ nhớ và địa chỉĐiều khiển truy nhậpBảo vệ tệpXác thực người dùng
Nguyên tắc thiết kế Hệ điều hànhNguyên tắc thiết kế Hệ điều hànhGiám sát thẩm quyền (Reference Monitor)Phân hoạch (Separation)/Cách ly (Isolation)Thiết kế hâ tầ (L d D i )Thiết kế phân tầng (Layered Design)
Hệ điều hành tin cậy (Trusted Operating System)
ẩGiám sát thẩm quyền
Phần quan trọng nhất của hệ điều hànhPhần quan trọng nhất của hệ điều hànhLà một tập các điều khiển truy nhập các đối tượngtượng
Bộ nhớ, thiết bị, tệp, thông tin các tiến trình, …
Đặc điểmặKhông bao giờ bị suy yếu, tê liệtLuôn được gọi đến khi một đối tượng được yêu cầu sử dụngcầu sử dụngNhỏ gọn, để có thể dễ dàng phân tích và kiểm thử và đảm bảo tính đầy đủ
â áPhân hoạch/Cách lyPhân hoạch vật lýPhân hoạch vật lý
Các tiến trình khác nhau sử dụng các thiết bị khác nhau
â ờPhân hoạch thời gianCác tiến trình với yêu cầu khác nhau thực hiện tại các thời gian khác nhauạ g
Phân hoạch logic (Cách ly)Người dùng/tiến trình thực hiện nhiệm vụ của mình trong không gian của mìnhmình trong không gian của mình
Phân hoạch mật mãNgười dùng/tiến trình giấu thông tinh của mình
Thiết kế phân tầng1 Lõi an toàn (Security Kernel)1. Lõi an toàn (Security Kernel)
1. Phần cứng2. An toàn
2 Lõi hệ điều hành2. Lõi hệ điều hành1. Đồng bộ2. Cấp phát
3 Hệ điều hành3. Hệ điều hành1. Sắp đặt, Chia xẻ, Quản lý bộ nhớ2. Hệ thống tệp, Cấp phát thiết bị3. Tính năng khác3. Tính năng khác
4. Ứng dụng
Thiết kế phân tầng
Một mô đun = nhiều mô đun hợp Một mô đun = nhiều mô đun hợp phần
Mỗi mô đun hợp phần thuộc một tầng Mỗi mô đun hợp phần thuộc một tầng khác nhau của kiến trúc đa tầng
Ví dụ: Mô đun xác thực người dùng1. Cập nhật thông tin người dùng2. So sánh thông tin người dùng
ì ế ờ ù3. Tìm kiếm người dùng4. Giao diện xác thực người dùng
An toàn Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hànhCác vấn đề bảo vệ trong Hệ điều hành
Bảo vệ bộ nhớ và địa chỉĐiều khiển truy nhậpBảo vệ tệpXác thực người dùng
Nguyên tắc thiết kế Hệ điều hànhNguyên tắc thiết kế Hệ điều hànhGiám sát thẩm quyền (Reference Monitor)Phân hoạch (Separation)/Cách ly (Isolation)Thiết kế hâ tầ (L d D i )Thiết kế phân tầng (Layered Design)
Hệ điều hành tin cậy (Trusted Operating System)
Hệ điều hành tinh cậy
Xác thực người dùngXác thực người dùngĐiều khiển truy nhập
Thường xuyênThường xuyênTùy ý
Bảo vệ đối tượng sử dụng lạiệ ợ g ụ g ạĐầy đủĐường dẫn tin cậyg yKiểm tra logPhát hiện đột nhập
An toàn Cơ sở dữ liệuAn toàn Cơ sở dữ liệu
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Cơ sở dữ liệu
Tậ hợ á dữ liệ ó hệ đượ Tập hợp các dữ liệu có quan hệ được lưu trữ (tập trung hoặc phân tán) để người dùng có thể truy nhập khi cầnngười dùng có thể truy nhập khi cần
Mục tiêu an toàn CSDL
Bí ậtBí mậtDữ liệu nhạy cảm
T à Toàn vẹnVật lýLogic
Sẵn dùngĐiều khiển truy nhậpXác thực người dùngg g
An toàn CSDL
Cá ối đ d CSDLCác mối đe dọa CSDLCập nhật CSDLDữ liệ h ảDữ liệu nhạy cảmSuy diễnSQL InjectionSQL Injection
Thiết kế CSDL tin cậyCSDL đ tầCSDL đa tầng
An toàn CSDL
Cá ối đ d CSDLCác mối đe dọa CSDLCập nhật CSDLDữ liệ h ảDữ liệu nhạy cảmSuy diễnSQL InjectionSQL Injection
Thiết kế CSDL tin cậyCSDL đ tầCSDL đa tầng
Cập nhật CSDL
Sự ố hệ thốSự cố hệ thốngHệ thống bị sự cố khi đang cập nhật CSDLCSDL
Tương tranhNhiều người dùng truy nhập sửa đổi cùng Nhiều người dùng truy nhập sửa đổi cùng lúc vào cùng dữ liệu
Cập nhật CSDL và sự cố hệ thống
Giải pháp 2 phaGiải pháp 2 pha1. Intent
1. Thu thập tài nguyên và thông tin, tính toán 1. Thu thập tài nguyên và thông tin, tính toán và chuẩn bị dữ liệu cho pha sau
2. Đánh dấu kết thúc pha IntentSet COMMIT FLAG Set COMMIT-FLAG
2. Commit1. Thực hiện cập nhật CSDL với các dữ liệu đã
ẩchuẩn bị ở pha trước2. Đánh dấu kết thúc pha Commit
Unset COMMIT-FLAGU set CO G
Cập nhật CSDL và tương tranh
Cậ hật CSDL là ột th tá ơ Cập nhật CSDL là một thao tác cơ bản
Chỉ một thao tác cập nhật thực hiện t ên Chỉ một thao tác cập nhật thực hiện trên một dữ liệuHệ quản trị CSDL sẽ bảo vệ dữ liệu đang Hệ quản trị CSDL sẽ bảo vệ dữ liệu đang được cập nhậtKhi thao tác cập nhật một dữ liệu kết ập ậ ộ ệthúc, các thao tác khá mới có quyền thực hiện trên dữ liệu đó
Dữ liệu nhạy cảm
Dữ liệ ô hú khô ê óDữ liệu công chúng không nên cóThông tin nhạy cảm
BảngBản ghi
ờTrường
Dữ liệu nhạy cảm
Cá l i ò ỉ dữ liệ h ảCác loại rò gỉ dữ liệu nhạy cảmDữ liệu chính xácCậCậnKết quả âmTồn tạiTồn tạiGiá trị xác xuất
Dữ liệu nhạy cảm
Hệ ả t ị CSDL ả lý t hậ Hệ quản trị CSDL quản lý truy nhập dữ liệu nhạy cảm bằng điều khiển truy nhậptruy nhập
ễSuy diễn
S diễ dữ liệ h ả từ dữ liệ Suy diễn dữ liệu nhạy cảm từ dữ liệu không nhạy cảm
ễSuy diễn
Cá l i tấ ô diễCác loại tấn công suy diễnTrực tiếp (Direct)Giá tiế (I di t)Gián tiếp (Indirect)
Tổng (Sum)Đếm (Count)Đếm (Count)Trung bình (Mean)…
ễSuy diễn
Cá biệ há ă hặCác biện pháp ngăn chặnPhân tích câu truy vấnN t thô tiNgụy trang thông tinLoại bỏ thông tin nhạy cảm
SQL Injection
SQLSQLStructured Query LanguageN ô ữ t ấ CSDLNgôn ngữ truy vấn CSDL
SQL Injection
Tấ ô SQL I j tiTấn công SQL Injectionstatement = “SELECT * FROM users WHERE name = ‘ “ + userName +” ‘;” WHERE name = + userName + ;
Điều gì xảy ra nếu userName = a’ or ‘t’=‘t Điều gì xảy ra nếu userName = a or t = t
Điều gì xảy ra nếu userName = a';DROP Điều gì xảy ra nếu userName = a ;DROP TABLE users;
SQL Injection
Biện pháp ngăn chặnBiện pháp ngăn chặnMức lập trình
Kiểm soát chặt chẽ đầu vàoKiểm soát chặt chẽ đầu vàoLoại bỏ các ký tự đặc biệt
Ở mức CSDL ểDùng lệnh prepare để định dạng câu truy
vấnPhân tích tĩnh câu truy vấnPhân tích tĩnh câu truy vấn
Phát hiện điều kiện “t = t”Kiểm thử
An toàn CSDL
Cá ối đ d CSDLCác mối đe dọa CSDLCập nhật CSDLDữ liệ h ảDữ liệu nhạy cảmSuy diễnSQL InjectionSQL Injection
Thiết kế CSDL tin cậyCSDL đ tầCSDL đa tầng
CSDL đa tầngCác tầng CSDL tương ứng với mức độ nhạy Các tầng CSDL tương ứng với mức độ nhạy cảm của dữ liệuCác tiếp cậnp ậ
Phân ngăn (Partitioning)Mã hóa (Encryption)KhóaKhóa
Khóa toàn vẹn (Integrity Lock)Khóa nhạy cảm (Sensitive Lock)
Front-end tin cậy (Trusted Front-end)Bộ lọc giao hoán (Commutative Filter)Cửa sổ (Window/View)Cửa sổ ( do / e )
Phân ngăn
CSDL đượ hi thà h á CSDL khá CSDL được chia thành các CSDL khác nhau ở mức độ nhạy cảm khác nhauƯ điểƯu điểm
Quản lý an toàn ở nhiều mức khác nhau
ểNhược điểmDư thừaKhông kết hợp dữ liệu ở các mức nhạy cảm khác nhau
Mã hóa
Mỗi dữ liệ h ả ẽ đượ ã hó Mỗi dữ liệu nhạy cảm sẽ được mã hóa bằng một khóa tương ứngƯ điểƯu điểm
Quản lý an toàn ở nhiều mức khác nhau
ểNhược điểmTốc độKhông gian lưu trữ
Khóa toàn vẹn
M tiê đả bả tí h t à à Mục tiêu đảm bảo tính toàn vẹn và giới hạn truy nhậpKhó Khóa
ChecksumTí h t á bằ hà ã hó h ặ hà băTính toán bằng hàm mã hóa hoặc hàm bămGiá trị phụ thuộc vào Data ID + Data + Sensitivity Labely
Khóa nhạy cảm
M tiê h iấ độ h ả ủ Mục tiêu che giấu độ nhạy cảm của dữ liệuKhóKhóa
MãTí h t á bằ hà ã hó h ặ hà băTính toán bằng hàm mã hóa hoặc hàm bămGiá trị phụ thuộc vào Data ID + Sensitivity Level
Front-end tin cậy
Hoạt động giống “Giám sát thẩm quyền”Hoạt động giống “Giám sát thẩm quyền”Điều khiển truy nhập CSDL1 Xác thực người dùng1. Xác thực người dùng2. Kiểm tra quyền người dùng3. Gửi truy vấn cho hệ quản trị CSDL4. Nhận kết quả truy vấn5. Phân tích độ nhạy cảm của kết quả truy vấn, so
sánh với quyền người dùngsánh với quyền người dùng6. Định dạng lại kết quả truy vấn7. Gửi kết quả truy vấn cho người dùng
Bộ lọc giao hoánHoạt động giống “Front end tin cậy”Hoạt động giống Front-end tin cậyĐiều khiển truy nhập CSDL
1. Xác thực người dùngự g g2. Kiểm tra quyền người dùng3. Định dạng lại truy vấn4 Gửi truy vấn cho hệ quản trị CSDL4. Gửi truy vấn cho hệ quản trị CSDL5. Nhận kết quả truy vấn6. Phân tích độ nhạy cảm dữ liệu của kết quả truy
vấn so sánh với quyền người dùngvấn, so sánh với quyền người dùng7. Định dạng lại kết quả truy vấn8. Gửi kết quả truy vấn cho người dùng
ổCửa sổ
M tiê iới h “tầ hì ” ủ Mục tiêu giới hạn “tầm nhìn” của người dùng theo quyền
Q ền đọc ghiQuyền đọc, ghi
Mỗi cửa sổ là một tập con của CSDLMỗi tậ tươ ứ ới dữ liệ à Mỗi tập con tương ứng với dữ liệu mà người dùng có quyền sử dụng
An toàn MạngAn toàn Mạng
Trần Đức KhánhBộ môn HTTT – Viện CNTT&TTĐH BKHN
Mạng máy tínhMôi trường sử dụngMôi trường sử dụngTôpô và kích thướcPhương tiện truyền thông
Cáp Cáp quang Vi sóng Hồng ngọa SatelliteCáp, Cáp quang, Vi sóng, Hồng ngọa, SatelliteGiao thức
7 tầng OSI: Vật lý, Liên kết Dữ liệu, Mạng, Vận chuyển Phiên Trình diễn Ứng dụng chuyển, Phiên, Trình diễn, Ứng dụng
Địa chỉMAC, IP
Đị h t ếĐịnh tuyếnLoại mạng
LAN, WAN, Internets
An toàn MạngCác mối đe dọaCác mối đe dọa
Thăm dòNghe trộmMạo danh lừa đảoMạo danh, lừa đảoLỗ hổng trang WebTừ chối dịch vụMã lưu độngMã lưu động
Các biện pháp ngăn chặnMã hóaXá thựXác thựcTường lửaPhát hiện đột nhập
An toàn MạngCác mối đe dọaCác mối đe dọa
Thăm dòNghe trộmMạo danh lừa đảoMạo danh, lừa đảoLỗ hổng trang WebTừ chối dịch vụMã lưu độngMã lưu động
Các biện pháp ngăn chặnMã hóaXá thựXác thựcTường lửaPhát hiện đột nhập
Thăm dò
Q ét ổ (P t S )Quét cổng (Port Scan)Thu thập thông tin đối tượng tấn công
dịch vụ cổng đang hoạt động (HTTP:80 dịch vụ, cổng đang hoạt động (HTTP:80, POP:110, SMTP:25, FTP:21)phiên bản hệ điều hànhp ệphiên bản ứng dụng
Tham khảo danh sách các lỗ hổng của á ê ảcác phiên bản
Thực hiện tấn công
Nghe trộm
Đườ t ề áĐường truyền cápSử dụng “packet sniffer”Lậ t ì h l i d Lập trình lại card
Wirelessí h ệ ấ dễ b h ộTín hiệu rất dễ bị nghe trộmSử dụng ăng ten
Mạo danh, lừa đảoPhỏng đoán thông tin xác thực của đối tượng tấn côngPhỏng đoán thông tin xác thực của đối tượng tấn công
Đoán mật khẩuNghe trộm thông tin xác thực của đối tượng tấn công
Nghe trộm mật khẩuNghe trộm mật khẩuTận dụng lỗ hổng cơ chế xác thực
Tràn bộ đệmThô ti á thự ô ộThông tin xác thực công cộng
Thiết bị mạng quản lý bởi SNMPMan-in-the-middlePhishing
ỗ ổLỗ hổng trang Web
Bôi ấ (D f t)Bôi xấu (Defacement)Tràn bộ đệmDot-Dot-Slash
../..
Gọi phương thức phía máy chủ
Từ chối dịch vụ
Tràn kết nối (Connection Flooding)Tràn kết nối (Connection Flooding)Tấn công giao thức TCP, UDP, ICMP
Ping, Smurf, Syn FloodPing, Smurf, Syn Flood
DNS (Domain Name Server)Tận dụng lỗi Buffer Overflow để thay đổi ậ ụ g ythông tin định tuyến
DNS cache poisoning
Từ hối dị h hâ tá (DD S)Từ chối dịch vụ phân tán (DDoS)Dùng các Zombie đồng loạt tấn công
Mã lưu độngCookieCookie
Cookie lưu thông tin người dùng (phiên, lâu dài) Scripts
Tấ ô á t ASP JSP CGI PHPTấn công các trang ASP, JSP, CGI, PHPActiveXMã Java
AppletAuto Exec
exe doc.exe, .docBot
Trojan Horse
An toàn MạngCác mối đe dọaCác mối đe dọa
Thăm dòNghe trộmMạo danh lừa đảoMạo danh, lừa đảoLỗ hổng trang WebTừ chối dịch vụMã lưu độngMã lưu động
Các biện pháp ngăn chặnMã hóaXá thựXác thựcTường lửaPhát hiện đột nhập
Mã hóaMã hóa liên kếtMã hóa liên kết
Thông tin được mã hóa ở tầng Data Link của mô hình OSI
Mã hóa end-to-endMã hóa end to endThông tin được mã hóa ở tầng Application của mô hình OSI
VPN (Virtual Private Network)( )Trao đổi thông tin giữa người dùng và Firewall thông qua kênh mã hóa
PKIMật mã công khai và chứng nhận
Giao thức mật mãSSH, SSL, IPSec, ,
Xác thực
Mật khẩ ột lầMật khẩu một lầnPassword Token
Hệ Ch ll RHệ Challenge-ResponseXác thực số phân tánKerberos
Tường lửa
Cô để l thô ti di h ể Công cụ để lọc thông tin di chuyển giữa “mạng bên trong” và “mạng bên ngoài”ngoài
Ví dụ: Mạng LAN và Internet
Mục tiêu ngăn chặn nguy cơ đến từ Mục tiêu ngăn chặn nguy cơ đến từ mạng bên ngoàiThự hiệ ă hặ thô hí h Thực hiện ngăn chặn thông qua chính sách an toàn
Tường lửa
Cá l i tườ lửCác loại tường lửaLọc gói (Packet Filtering Gateways)Duyệt trạng thái (Stateful Inspection Firewalls)Cổng ứng dụng (Application Proxies)Gác (Guards)( )Cá nhân (Personal Firewalls)
Phát hiện đột nhậpKiểm tra người dùng và hoạt động hệ thốngKiểm tra người dùng và hoạt động hệ thốngGhi lại cấu hình hệ thống để phát hiện nguy cơĐá h iá tí h t à ủ hệ thố à dữ Đánh giá tính toàn vẹn của hệ thống và dữ liệu Phát hiện các dạng tấn công ệ ạ g gPhát hiện các hoạt động bất thường thông qua phân tích thống kêSửa chữa lỗi cấu hình hệ thốngSửa chữa lỗi cấu hình hệ thốngCài đặt và vận hành các hệ thống bẫy đột nhập
Phát hiện đột nhập
Cá l i hệ thố hát hiệ đột hậCác loại hệ thống phát hiện đột nhậpHệ phát hiện đột nhập dựa trên mẫuHệ phát hiện đột nhập dùng HeuristicsHệ phát hiện đột nhập hoạt động bí mậtHệ Tripwire