giáo trình môn bảo mật thông tin : toàn bộ giáo trình môn bảo mật thông tin , các thuật toán bảo mật có hướng dẫn code lập trình thuật toán cụ thể.
Trang 1BẢO MẬT THÔNG TIN
Khoa: Công nghệ thông tin
Trang 2Giới thiệu khóa học
• Môn học tiên quyết: Mạng máy tính, Lập trình Java.
• Nội dung văn tắt học phần:
– Các vấn đề bảo mật thông tin
– Các phương pháp mã hóa dữ liệu
– Ứng dụng của mã hóa dữ liệu để bảo mật thông tin trong mạng máy tính
Trang 3NỘI DUNG HỌC PHẦN
- Bài 1: Tổng quan về bảo mật thông tin
- Bài 2: Các hệ mã hóa đối xứng cổ điển
- Bài 3: Các hệ mã hóa đối xứng hiện đại
- Bài 4: Hệ mã hóa khóa công khai
- Bài 5: Quản lý khóa công khai
- Bài 6: Mã xác thực thông điệp và hàm băm
- Bài 7: Bảo mật mạng nội bộ và an toàn IP
- Bài 8: Bảo mật web và mail
Trang 4Bài 1 Tổng quan
• Giới thiệu
• Nguy cơ thông tin
• Phân loại tấn công
• Dịch vụ, cơ chế tấn công
• Mô hình mạng an toàn
Trang 5Giới thiệu
• Thông tin là một dạng tài nguyên
– Bí mật quân sự, kinh tế, công nghệ, …
– Kho thông tin (cá nhân, tài chính, giá cả, ).
• Thông tin là hàng hóa
– Giải trí: Nhạc, phim, hình ảnh,
– Tài liệu: sách điện tử, báo, …
– Thông tin dự báo chứng khoán
– Giáo dục: xem điểm, xem sổ số, xem tư vấn luật dân sự, …
• Thông tin đều được lưu trữ trên hệ thống máy tính
Trang 6Giới thiệu
• Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể dẫn đến mất mát thông
tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống
thông tin của doanh nghiệp
• Vì vậy an toàn và bảo mật thông tin là nhiệm vụ rất nặng nề và khó đoán trước được, nhưng tựu trung lại gồm ba hướng chính sau:
– Bảo đảm an toàn thông tin tại máy chủ
– Bảo đảm an toàn cho phía máy trạm
– Bảo mật thông tin trên đường truyền
Trang 7Các nguy cơ đối với thông tin
• Hiểm họa vô tình: Người dùng khởi động lại hệ thống
ở chế độ đặc quyền, không chuyển hệ thống sang chế
độ thông thường, vô tình để kẻ xấu lợi dụng.
• Hiểm họa cố ý: như cố tình truy nhập hệ thống trái
phép
• Hiểm họa thụ động: là hiểm họa nhưng chưa hoặc
không tác động trực tiếp lên hệ thống, như nghe trộm các gói tin trên đường truyền
• Hiểm họa chủ động: là việc sửa đổi thông tin, thay đổi
Trang 8Các loại tấn công thông tin
• Tấn công bị động: Do thám, theo dõi đường truyền để:
– Nhận được nội dung bản tin hoặc
– Theo dõi luồng truyền tin
• Tấn công chủ động: Thay đổi luồng dữ liệu để:
– Giả mạo một người nào đó
– Lặp lại bản tin trước
– Thay đổi ban tin khi truyền
– Từ chối dịch vụ
Trang 10Lấy được password dùng Cain
Trang 11Nghe lén Yahoo
Trang 12Dịch vụ an ninh
• Là một dịch vụ nâng cao độ an ninh của các hệ thống
xử lý thông tin và các cuộc truyền dữ liệu trong một tổ chức.
• Nhằm phòng chống các hành động tấn công
• Sử dụng một hay nhiều cơ chế an ninh
Trang 13• Có một yếu tố đặc biệt hậu thuẫn nhiều cơ chế an ninh
sử dụng hiện nay là các kỹ thuật mật mã.
• Môn học sẽ chú trọng lĩnh vực mật mã.
Trang 14Kiến trúc an ninh OSI
• Kiến trúc an ninh cho OSI theo khuyến nghị ITU-T
X.800 của ITU (I nternational
Telecommunication Union)
• Định ra một phương thức chung cho việc xác định
các nhu cầu về an ninh thông tin
• Cung cấp một cái nhìn tổng quan về các khái niệm
môn học sẽ đề cập đến
• Chú trọng đến các dịch vụ an ninh, các cơ chế an ninh
Trang 16Các dịch vụ an ninh X.800
• Xác thực
– Đảm bảo thực thể truyền thông đúng là nó
• Điều khiển truy nhập
– Ngăn không cho sử dụng trái phép tài nguyên
Trang 17Các cơ chế an ninh X.800
• Các cơ chế an ninh chuyên dụng
– Mã hóa, chữ ký số, điều khiển truy nhập, toàn vẹn dữ liệu, trao đổi xác thực, độn tin truyền, điều khiển định tuyến, công chứng
• Các cơ chế an ninh phổ quát
– Tính năng đáng tin, nhãn an ninh, phát hiện sự kiện, dấu vết kiểm tra an ninh, khôi phục an ninh
Trang 19Mô hình an ninh mạng
• Yêu cầu
– Thiết kế một giải thuật thích hợp cho việc chuyển đổi liên quan đến an ninh
– Tạo ra thông tin bí mật (khóa) đi kèm với giải thuật
– Phát triển các phương pháp phân bổ và chia sẻ thông tin bí mật
– Đặc tả một giao thức sử dụng bởi hai bên gửi và nhận dựa trên giải thuật an ninh và thông tin bí mật, làm cơ sở cho một dịch vụ an ninh
Trang 20Mô hình an ninh truy nhập mạng
Các tài nguyên tính toán (bộ xử lý, bộ nhớ, ngoại vi)
Dữ liệu Các tiến trình Phần mềm
Kênh truy nhập
Chức năng gác cổng
Các điều khiển an ninh bên trong
Đối thủ
- Con người
- Phần mềm
Trang 21Mô hình an ninh truy nhập mạng
• Yêu cầu
– Lựa chọn các chức năng gác cổng thích hợp để định danh người dùng
– Cài đặt các điều khiển an ninh để đảm bảo chỉ những
người dùng được phép mới có thể truy nhập được vào các thông tin và tài nguyên tương ứng
• Các hệ thống máy tính đáng tin cậy có thể dùng để cài đặt mô hinh này
Trang 22CÂU HỎI ÔN TẬP BÀI 1
1 Nêu các hình thức tấn công trong quá trình truyền tin trên
Trang 23Bài 2: Hệ mã hóa cổ điển
• Giới thiệu hệ mã khóa đối xứng
Trang 24Giới thiệu hệ mã khóa đối xứng
• Xuất hiện đầu tiên trong ngành mã hóa.
• Các hệ mã này phần có từ trước năm 1970.
• Hệ mã khóa bí mật hoặc hệ mã khóa cổ điển
• Các phương pháp này là cơ sở để phát triển các thuật toán mã hóa đối xứng hiện nay.
• Có 2 phương pháp phổ biến:
– Mã hóa thay thế
Trang 25Định nghĩa cơ bản
• Mã đối xứng là mã sử dụng cùng một khóa cho việc mã hóa
và giải mã
• Hệ mật mã là bộ năm (P,C,K,E,D), thỏa mãn các
điều kiện sau:
– P không gian bản rõ
– C không gian bản mã
– K không gian khóa
– Với mỗi k K, tồn tại hàm lập mã ek E và hàm giải mã
dk D Mỗi ek: P → C và dk: C → P là các hàm thỏa
Trang 26Mô hình mã đối xứng
Trang 27Phá mã
• Là nỗ lực giải mã văn bản đã được mã hóa
không biết trước khóa bí mật
• Có hai phương pháp phá mã
– Vét cạn
• Thử tất cả các khóa có thể
– Thám mã
• Khai thác những nhược điểm của giải thuật
• Dựa trên những đặc trưng chung của nguyên bản hoặc một số cặp nguyên bản - bản mã mẫu
Trang 28• Về lý thuyết có thể thử tất cả các giá trị khóa
cho đến khi tìm thấy nguyên bản từ bản mã
• Dựa trên giả thiết có thể nhận biết được nguyên bản cần tìm
• Tính trung bình cần thử một nửa tổng số các
trường hợp có thể
• Thực tế không khả khi nếu độ dài khóa lớn
Phương pháp phá mã vét cạn
Trang 29Thời gian tìm kiếm trung bình
2,15 ms 10,01 giờ 5,4 x 10 18 năm 5,9 x 10 30 năm 6,4 x 10 6 năm
Tuổi vũ trụ : ~ 10 10 năm
Khóa DES dài 56 bit
Khóa AES dài 128+ bit
Khóa 3DES dài 168 bit
Trang 31An ninh hệ mã hóa
• An ninh vô điều kiện
– Bản mã không chứa đủ thông tin để xác định duy nhất nguyên bản tương ứng, bất kể với số lượng bao nhiêu và tốc độ máy tính thế nào
– Chỉ hệ mã hóa độn một lần là an ninh vô điều kiện
• An ninh tính toán
– Thỏa mãn một trong hai điều kiện
• Chi phí phá mã vượt quá giá trị thông tin
• Thời gian phá mã vượt quá tuổi thọ thông tin
– Thực tế thỏa mãn hai điều kiện
• Không có nhược điểm
• Khóa có quá nhiều giá trị không thể thử hết
Trang 33• Hay Zm={0,1, m-1) 0,1, , m 1
Trang 34Ví dụ tập Z7
Trang 35Tính chất của Z m
• Phép cộng là đóng, a,b Zm, a+b Zm
• Phép công là kết hợp, a,b,c Zm, (a+b)+c=a+(b+c)
• Tồn tại phần tử đảo của bất kỳ a Zm là: m-a nghĩa là a+(m-a)=(m-a) +a=0, a.
• Phép cộng là giao hoán, a,b Zm: a+b=b+a
• 0 là phần tử trung hòa của phép cộng: a+0=0+a.
• Phép nhân là đóng
• Phép nhân là giao hoán
• Phép nhân là kết hợp
• 1 là phần tử trung hòa của phép nhân
• Phép nhân là phân phối với phép cộng: (a+b)c=ac+bc va a(b+c) = ab+ac
Trang 36Các phép toán trên Zm
• (a+b) mod n = [a mod n + b mod n] mod n
• (a.b) mod n = [a mod n b mod n] mod n
• Nếu (a+b)=(a+c) mod n, thì b=c mod n
• (ab)=(ac) mod n, thì b=c mod n chỉ khi (a,n)=1 hay a là nguyên
tố cùng nhau với n.
• Ví dụ:
(11*19 + 10 17 ) mod 7 = ((11*19) mod 7 + 10 17 mod 7) mod 7 = ((11 mod 7* 19 mod 7) mod 7 + (10 mod 7) 17 mod 7) mod 7= ((4.(-2)) mod 7 + (((3 2 ) 2 ) 2 ) 2 * 3 mod 7)mod 7=((-1) mod 7 + ((2 2 ) 2 ) 2 * 3 mod 7)mod 7 = (-1
Trang 37Hệ mã đẩy – Shift Cipher
• Cho P=C=K=Z 26 với x,y Z 26 , 0≤k ≤ 25, ta định nghĩa
y=ek=x+k (mod 26) và
Trang 41CÂU HỎI ÔN TẬP BÀI 2
7 Tại sao phương pháp mã hóa đơn bảng có thể bị tấn công phá
mã dùng thống kê tần suất?
8 Cho biến đọan mã sau dùng mã Cesar
"GCUA VQ DTGCM"
Suy luận tìm bản rõ
9 Sử dụng kỹ thuật thám mã bảng chữ đơn, lập bảng tần suất các
chữ, bộ chữ đôi, bộ chữ ba của đọan mã sau:
UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIVUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOUDTMOHMQ
Trang 42CÂU HỎI ÔN TẬP BÀI 2
10 Lập luận và cho biết ánh xạ của bảng chữ đơn và đưa ra bản
rõ phù hợp
Nêu thuật toán dùng bảng Saint Cyr để mã hóa và giải mã
Vigenere khi biết từ khóa Áp dụng thuật toán đó mã hóa bản rõ sau: “Network Security is very important for software
development” với từ khóa là “COMPUTER SCIENCE”
11 Tại sao có thể nói “Có thể nói mã bộ đệm một lần là an toàn
tuyệt đối, vì với bản rõ bất kỳ và bản mã bất kỳ, luôn tồn tại một khoá để ánh xạ bản rõ đó sang bản mã đã cho” Giải thích nhận định sau “Về mặt lý thuyết, xác suất để mọi mẩu tin (có cùng độ dài với bản rõ) trên bảng chữ mã là mã của một bản rõ cho trước
Trang 43CÂU HỎI ÔN TẬP BÀI 2
12 Tìm bản mã của bản rõ “We are studying cryptography this
year” sử dụng mã Playfair với từ khóa “information technology”
13 Chứng minh rằng: tích của hai phép thế sẽ là một phép thế;
tích của hai phép hoán vị sẽ là một phép hoán vị
Trang 44Bài 3: Các hệ mã hóa đối xứng hiện đại
3.3.1 Chuẩn mã hóa dữ liệu
3.3.2 Giải thuật mã hóa DES
3.3.3 Giao hoán thuận
3.3.4 Cấu trúc một vòng mã hóa DES
Trang 45Bài 3: Các hệ mã hóa đối xứng hiện đại
Trang 46Bài 3: Các hệ mã hóa đối xứng hiện đại
3.7 Các phương thức mã hóa khối
Trang 47Bài 3: Các hệ mã hóa đối xứng hiện đại
3.9 Quản lý khóa bí mật
3.9.1 Các cách phân phối khóa
3.9.2 Phân phối khóa tự động
Trang 483.1 Mã hóa tích hợp
• Các hệ mã hóa thay thế và hoán vị không an toàn vì những đặc điểm của ngôn ngữ
• Kết hợp sử dụng nhiều hệ mã hóa sẽ khiến việc phá mã khó hơn
– Hai thay thế tạo nên một thay thế phức tạp hơn
– Hai hoán vị tạo nên một hoán vị phức tạp hơn
– Một thay thế với một hoán vị tạo nên một hệ mã hóa phức tạp hơn nhiều
• Là cầu nối từ các hệ mã hóa cổ điển đến các hệ mã hóa hiện đại
Trang 493.2 Mã hóa khối
• So với mã hóa luồng
– Mã hóa khối xử lý thông báo theo từng khối
– Mã hóa luồng xử lý thông báo 1 bit hoặc 1 byte mỗi lần
• Giống như thay thế các ký tự rất lớn ( 64 bit)
– Bảng mã hóa gồm 2n đầu vào (n là độ dài khối)
– Mỗi khối đầu vào ứng với một khối mã hóa duy nhất
• Tính thuận nghịch– Độ dài khóa là n x 2n bit quá lớn
• Xây dựng từ các khối nhỏ hơn
• Hầu hết các hệ mã hóa khối đối xứng dựa trên cấu trúc hệ mã hóa Feistel
Trang 503.2.1 Mạng S-P
• Mạng thay thế (S) - hoán vị (P) đề xuất bởi Claude Shannon vào năm 1949
• Là cơ sở của các hệ mã hóa khối hiện đại
• Dựa trên 2 phép mã hóa cổ điển
Trang 51 Hộp S
3.2.1 Mạng S-P
Trang 52 Hộp P
3.2.1 Mạng S-P
Trang 53– F thường gọi là hàm chuyển đổi hay hàm vòng
– Hoán vị hai nửa Li và Ri
Trang 54 Mô hình mã khối Feistel
3.2.2 Mã hóa Feistel
Trang 55– Càng nhiều vòng càng an ninh (thường 16 vòng)
• Giải thuật sinh mã con
– Càng phức tạp càng khó phá mã
• Hàm vòng
– Càng phức tạp càng khó phá mã
3.2.2 Mã hóa Feistel
Trang 56 Giải mã Feistel
• Giống giải thuật mã hóa, chỉ khác
– Bản mã là dữ liệu đầu vào
– Các khóa con được dùng theo thứ tự ngược lại
• Tại mỗi vòng kết quả đầu ra chính là các dữ liệu đầu vào của quá trình mã hóa
– Đối với quá trình mã hóa
• Li = Ri-1
• Ri = Li-1 F(Ri-1, Ki)– Đối với quá trình giải mã
3.2.2 Mã hóa Feistel
Trang 573.3.1 Chuẩn mã hóa dữ liệu
• DES (Data Encryption Standard) được công nhận chuẩn năm
1977
• Phương thức mã hóa được sử dụng rộng rãi nhất
• Tên giải thuật là DEA (Data Encryption Algorithm)
• Là một biến thể của hệ mã hóa Feistel, bổ xung thêm các hoán
vị đầu và cuối
• Kích thước khối : 64 bit
• Kích thước khóa : 56 bit
• Số vòng : 16
• Từng gây nhiều tranh cãi về độ an ninh
3.3 Mã hóa DES
Trang 583.3.2 Giải thuật mã hóa DES
Trang 593.3.3 Giao hoán thuận
Trang 603.3.4 Cấu trúc một vòng mã hóa DES
Trang 623.3.6 Hàm S-box
Gồm 8 hộp S
Một vòng hoạt động của mã hóa DES
Trang 63 Nội dung các hộp S
3.3.6 Hàm S-box
Trang 64 Nội dung các hộp S
3.3.6 Hàm S-box
Trang 65• E(R0) K = 0110 0001 0001 0111 1011 1010 1000 0110 0110
0101 0010 0111
Trang 66• C= 0101 1100 1000 0010 1011 0101 1001 0111
Trang 683.3.10 Hoán đổi và Hoán vị ngược
• Sau khi thực hiện 16 vòng phép thế và hoán vị, kết quả là R16
Trang 713.3.12 Phá mã DES
• Khóa 56 bit có 256 = 7,2 x 1016 giá trị có thể
• Phương pháp vét cạn tỏ ra không thực tế
• Tốc độ tính toán cao có thể phá được khóa
– 1997 : 70000 máy tính phá mã DES trong 96 ngày
– 1998 : Electronic Frontier Foundation (EFF) phá mã DES bằng máy chuyên dụng (250000$) trong < 3 ngày
– 1999 : 100000 máy tính phá mã trong 22 giờ
• Vấn đề còn phải nhận biết được nguyên bản
• Thực tế DES vẫn được sử dụng không có vấn đề
• Nếu cần an ninh hơn : 3DES hay chuẩn mới AES
Trang 723.4 Hệ mã hóa 3DES
• Sử dụng 3 khóa và chạy 3 lần giải thuật DES
– Mã hóa : C = EK3[DK2[EK1[p]]]
– Giải mã : p = DK1[EK2[DK3[C]]]
• Độ dài khóa thực tế là 168 bit
– Không tồn tại K 4 = 56 sao cho C = EK4(p)
• Vì sao 3 lần : tránh tấn công "gặp nhau ở giữa"
– C = EK2(EK1(p)) X = EK1(p) = DK2(C)
– Nếu biết một cặp (p, C)
• Mã hóa p với 2 56 khóa và giải mã C với 2 56 khóa
• So sánh tìm ra K 1 và K 2 tương ứng
Trang 73 Chuẩn mã hóa tiên tiến
• AES (Advanced Encryption Standard) được công nhận chuẩn mới năm 2001
• Tên giải thuật là Rijndael (Rijmen + Daemen)
• An ninh hơn và nhanh hơn 3DES
• Kích thước khối : 128 bit
• Kích thước khóa : 128/192/256 bit
• Số vòng : 10/12/14
• Cấu trúc mạng S-P, nhưng không theo hệ Feistel
– Không chia mỗi khối làm đôi
3.5 Hệ mã hóa AES
Trang 743.6 Các hệ mã hóa khối khác (1)
• IDEA (International Data Encryption Algorithm)
– Khối 64 bit, khóa 128 bit, 8 vòng
– Theo cấu trúc mạng S-P, nhưng không theo hệ Feistel
• Mỗi khối chia làm 4
Trang 75• RC5
– Phát triển bởi Ron Rivest
– Khối 32/64/128 bit, khóa 0-2040 bit, 0-255 vòng
– Đơn giản, thích hợp các bộ xử lý có độ rộng khác nhau– Theo cấu trúc hệ Feistel
• CAST-128
– Phát triển bởi Carlisle Adams và Stafford Tavares
– Khối 64 bit, khóa 40-128 bit, 12/16 vòng
– Có 3 loại hàm vòng dùng xen kẽ
– Theo cấu trúc hệ Feistel
– Bản quyền bởi Entrust nhưng dùng miễn phí
3.6 Các hệ mã hóa khối khác (2)
Trang 763.7 Các phương thức mã hóa khối
• ECB (Electronic Codebook)
– Mã hóa từng khối riêng rẽ
• CBC (Cipher Block Chaining)
– Khối nguyên bản hiện thời được XOR với khối bản mã trước
đó
• CFB (Cipher Feedback)
– Mô phỏng mã hóa luồng (đơn vị s bit)
• s bit mã hóa trước được đưa vào thanh ghi đầu vào hiện thời
• OFB (Output Feeback)
• s bit trái đầu ra trước được đưa vào thanh ghi đầu vào hiện thời
• CTR (Counter)
– XOR mỗi khối nguyên bản với 1 giá trị thanh đếm mã hóa
Trang 773.7.1 Phương thức ECB
Mô hình ECB của mã khối
Trang 78– Tạo cơ hội thay thế hoặc bố trí lại các khối
• Nhược điểm do các khối được mã hóa độc lập
• Chủ yếu dùng để gửi thông báo có ít khối
– Ví dụ gửi khóa
3.7.1 Phương thức ECB
Trang 793.7.2 Phương thức CBC
Mô hình CBC của mã khối
Trang 80• Cần 1 giá trị đầu IV bên gửi và bên nhận đều biết
– Cần được mã hóa giống khóa
– Nên khác nhau đối với các thông báo khác nhau
• Cần xử lý đặc biệt khối nguyên bản không đầy đủ cuối cùng
• Dùng mã hóa dữ liệu lớn, xác thực
3.7.2 Phương thức CBC
Trang 813.7.3 CFB
Mã hóa CFB
Trang 823.7.3 CFB
Giải mã CFB
Trang 83 Đánh giá CFB
• Thích hợp khi dữ liệu nhận được theo từng đơn vị bit hay byte
• Không cần độn thông báo để làm tròn khối
• Cho phép số lượng bit bất kỳ
– Ký hiệu CFB-1, CFB-8, CFB-64,
• Là phương thức luồng phổ biến nhất
• Dùng giải thuật mã hóa ngay cả khi giải mã
• Lỗi xảy ra khi truyền 1 khối mã hóa sẽ lan rộng sang các khối tiếp sau
3.7.3 CFB
Trang 843.7.4 OFB
Mã hóa OFB
Trang 853.7.4 OFB
Giải mã OFB
Trang 86• Tương tự CFB chỉ khác là phản hồi lấy từ đầu ra giải thuật mã hóa, độc lập với thông báo
• Không bao giờ sử dụng lại cùng khóa và IV
• Lỗi truyền 1 khối mã hóa không ảnh hưởng đến các khối khác
• Thông báo dễ bị sửa đổi nội dung