Institute of Network Security - istudy.ispace.edu.vn MODULE 3: KỸ THUẬT MÃ HÓA • Lesson 1: Tổng quan mật mã học Cryptography • Lesson 2: Các phương pháp và thuật toán mã hóa • Lesson 3:
Trang 1Institute of Network Security - istudy.ispace.edu.vn
KỸ THUẬT TẤN CÔNG VÀ PHÕNG THỦ TRÊN KHÔNG GIAN MẠNG
Trang 2NỘI DUNG
• Module 1: Tổng quan An ninh mạng
• Module 2: Kỹ thuật tấn công
• Module 3: Kỹ thuật mã hóa
• Module 4: Bảo mật hệ điều hành
• Module 5: Bảo mật ứng dụng
• Module 6: Virus và các loại mã độc
• Module 7: Các công cụ phân tích an ninh mạng
• Module 8: Chính sách bảo mật và phục hồi thảm họa dữ liệu
• Ôn tập
• Báo cáo đồ án
• Thi cuối khóa
Trang 3Institute of Network Security - istudy.ispace.edu.vn
KỸ THUẬT TẤN CÔNG VÀ PHÕNG THỦ
TRÊN KHÔNG GIAN MẠNG
• Module 1: Tổng quan An ninh mạng
• Module 2: Kỹ thuật tấn công
• Module 3: Kỹ thuật mã hóa
• Module 4: Bảo mật hệ điều hành
• Module 5: Bảo mật ứng dụng
• Module 6: Virus và các loại mã độc
• Module 7: Các công cụ phân tích an ninh mạng
• Module 8: Chính sách bảo mật và phục hồi thảm họa dữ liệu
• Ôn tập
• Báo cáo đồ án
• Thi cuối khóa
Module 3: Kỹ thuật mã hóa
Trang 4MODULE 3: KỸ THUẬT MÃ HÓA
• Lesson 1: Tổng quan mật mã học (Cryptography)
• Lesson 2: Các phương pháp và thuật toán mã hóa
• Lesson 3: Hàm băm và ứng dụng
• Lesson 4: PKI (Public Key Infrastructure)
• Lesson 5: Các bộ giao thức bảo mật: SSL và IPSec
Trang 5Institute of Network Security - istudy.ispace.edu.vn
MODULE 3: KỸ THUẬT MÃ HÓA
• Lesson 1: Tổng quan mật mã học (Cryptography)
• Lesson 2: Các phương pháp và thuật toán mã hóa
• Lesson 3: Hàm băm và ứng dụng
• Lesson 4: PKI (Public Key Infrastructure)
• Lesson 5: Các bộ giao thức bảo mật: SSL và IPSec
Trang 6Tổng quan mật mã học
(Cryptography)
Trang 7Institute of Network Security - istudy.ispace.edu.vn
Nội dung
• Khái niệm về mật mã
• Các thành tựu của mật mã học
• Một số dạng mã hóa
• Giới thiệu thuật toán mã hóa
• Sự cần thiết của khóa (Key) trong thuật toán mã hóa
• Giới thiệu về hàm băm
Trang 8Mật mã học là gì?
• Mật mã học là những nghiên cứu và công nghệ nhằm mục đích bảo mật chuỗi dữ liệu bằng các phương pháp mã hóa
• Mã hóa là quá trình tái cấu trúc nội dung của dữ liệu, làm cho
nó trở nên phức tạp, và che giấu nội dung thật sự
• Giải mã là quá trình chuyển đổi nội dung dữ liệu đã được mã hóa thành nội dung gốc trước khi mã hóa
• Plaintext là nội dung gốc
• Ciphertext là nội dung mới sau khi mã hóa
• mật mã bao gồm hai thành phần chính
– Mã hóa đảm bảo tính bảo mật – Hàm băm đảm bảo tính xác thực
Trang 9Institute of Network Security - istudy.ispace.edu.vn
Thành tựu của mật mã học
Trang 10Mật mã dạng thay thế
• Mã hóa dạng thay thế thực hiện việc thay thế từng ky tự trong nội dung gốc bằng một ký tự khác Ví dụ: a=e, c=f, b=g, …
• Julius Caesar là người phát minh ra mật mã dạng thay thế, ngày nay còn gọi là mật mã Caesar
• Mã hóa dạng thay thế rất dễ bị phân tích và giải mã
• Mật mã theo dạng thay thế tuần tự các ký tự Alphabet phức tạp hơn mật mã Caesar tuy nhiên vẫn có thể bị phân tích và giải mã nếu trong chuỗi ký tự có các điểm lặp lại
Trang 11Institute of Network Security - istudy.ispace.edu.vn
Trang 13Institute of Network Security - istudy.ispace.edu.vn
One-Time Pads (OTP)
• OTP còn được gọi là mật mã Vernam
• OTP là dạng mật mã không thể bị phá vỡ hay phân tích
vì khóa chỉ được sử dụng một lần duy nhất
• OTP thường ít được sử dụng
– Khóa một lần là một chuỗi dữ liệu được tạo ra một cách ngẫu nhiên nên việc tạo khóa rất phức tạp
– Việc phân phối khóa cũng gặp nhiều khó khăn vì phải phân phối hai lần, một lần cho người gửi, và một lần cho người nhận
• OTP thường được sử dụng giới hạn cho những dữ liệu tối mật
Trang 14Thuật toán mã hóa
• Thuật toán mã hóa là những phương thức nhằm biến đổi Plaintext thành Ciphertext
• Chức năng của thuật toán mã hóa:
• Chống lại các cuộc tấn công đánh cắp và phân tích dữ liệu
• Tạo ra khóa kích thước lớn và tiện dụng
• Hiệu ứng phức tạp hóa - chỉ cần một sự thay đổi nhỏ trong Plaintext thì Ciphertext sẽ thay đổi hoàn toàn
• Không dùng cho mục đích tấn công mạng
• Một số thuật toán mã hóa: DES, 3DES, AES, …
Trang 15Institute of Network Security - istudy.ispace.edu.vn
Mã hóa khối và mã hóa dòng (Block Cipher – Stream Cipher)
• Mã hóa khối (Block Cipher)
– Mã hóa từng khối dữ liệu Plaintext có chiều dài cố định thành khối dữ liệu Ciphertext có cùng chiều dài
– Kích thước của khối phụ thuộc vào thuật toán mã hóa – Đệm bit (Padding) sẽ được dùng để thêm các bit 0, đảm bảo đúng kích thước các khối
– Khối Ciphertext luôn có kích thước lớn hơn khối Plaintext
Trang 17Institute of Network Security - istudy.ispace.edu.vn
Mã hóa khối và mã hóa dòng (Block Cipher – Stream Cipher)
• Mã hóa dòng (Stream Cipher)
– Mã từng bit dữ liệu trong Plaintext – Kích thước dữ liệu không thay đổi khi mã hóa (không dùng Padding)
– Cơ chế chuyển đổi các bit tùy thuộc vào quá trình mã hóa
Trang 19Institute of Network Security - istudy.ispace.edu.vn
Mã hóa
Attacker: Tôi biết giải thuật
Giải
mã Mạng không bảo mật
Giải
mã
Plain text
-
-
-
Plain text
-
-
-
Plain text
-
-
-
Cipher text
-
-
-
Khóa (Key)
• Chỉ sử dụng thuật toán mã hóa là chưa đủ đảm bảo độ
an toàn dữ liệu
Trang 20Mã hóa
Giải
mã
Attacker: Tôi biết giải thuật nhưng không biết key
Mạng không bảo mật
Plain text
-
-
-
Plain text
-
-
-
Cipher text
-
-
-
Khóa (Key)
• Khóa được thỏa thuận giữa hai bên nhắm mục đích tăng tính bảo mật cho dữ liệu
Trang 21Institute of Network Security - istudy.ispace.edu.vn
Khóa (Key)
• Khóa là một phần của thuật toán mã hóa
• Nếu xét về phương diện khóa, có hai dạng thuật toán
mã hóa chính:
– Thuật toán mã hóa đối xứng: Sử dụng cùng một khóa cho việc
mã hóa và giải mã dữ liệu – Thuật toán mã hóa bất đối xứng: Sử dụng các khóa khác nhau cho việc mã hóa và giải mã dữ liệu
Trang 23Institute of Network Security - istudy.ispace.edu.vn
Không gian khóa
• Không gian khóa của một thuật toán mã hóa là tất cả những giá trị có thể có của khóa
• Khóa có kích thước n bit có thể thiết lập được 2n giá trị
• Hầu hết các thuật toán mã hóa có khóa yếu, tăng kích thước khóa sẽ làm tăng độ bảo mật của thuật toán
• Có thể xảy ra một số vấn đề về bảo mật nếu tự định nghĩa khóa
Trang 24– Hệ thống mã hóa đáng tin cậy – Cơ chế quản lý khóa an toàn
Trang 25Institute of Network Security - istudy.ispace.edu.vn
Trang 26Hàm băm Hàm băm
Dữ liệu gốc
có chiều dài thay đổi
Dữ liệu băm
có chiều dài
Mã hóa theo phương thức băm dữ liệu
• Băm dữ liệu dựa trên các
Trang 27Institute of Network Security - istudy.ispace.edu.vn
Tóm lược
• Mật mã học là các nghiên cứu và công nghệ nhằm tìm ra phương thức bảo mật dữ liệu trong quá trình truyền thông
• Có hai dạng mã hóa:
– Bảo mật dữ liệu thông qua thuật toán mã hóa – Xác thực dữ liệu thông qua hàm băm
• Khóa là thành phần quan trọng trong quá trình mã hóa
• Kích thước khóa càng lớn, khóa càng phức tạp và khó tấn công giải mã
• Quá trình mã hóa có thể thực hiện trên khối hoặc thực hiện theo dòng
Trang 28KỸ THUẬT TẤN CÔNG VÀ PHÕNG THỦ TRÊN KHÔNG GIAN MẠNG
Trang 29Institute of Network Security - istudy.ispace.edu.vn
KỸ THUẬT TẤN CÔNG VÀ PHÕNG THỦ
TRÊN KHÔNG GIAN MẠNG
• Module 1: Tổng quan An ninh mạng
• Module 2: Kỹ thuật tấn công
• Module 3: Kỹ thuật mã hóa
• Module 4: Bảo mật hệ điều hành
• Module 5: Bảo mật ứng dụng
• Module 6: Virus và các loại mã độc
• Module 7: Các công cụ phân tích an ninh mạng
• Module 8: Chính sách bảo mật và phục hồi thảm họa dữ liệu
• Ôn tập
• Báo cáo đồ án
• Thi cuối khóa
Module 3: Kỹ thuật mã hóa
Trang 30MODULE 3: KỸ THUẬT MÃ HÓA
• Lesson 1: Tổng quan mật mã học (Cryptography)
• Lesson 2: Các phương pháp và thuật toán mã hóa
• Lesson 3: Hàm băm và ứng dụng
• Lesson 4: PKI (Public Key Infrastructure)
• Lesson 5: Các bộ giao thức bảo mật: SSL và IPSec
Trang 31Institute of Network Security - istudy.ispace.edu.vn
Các phương pháp và thuật toán
mã hóa
Trang 32Nội dung
• Khái niệm về mật mã
• Các thành tựu của mật mã học
• Một số dạng mã hóa
• Giới thiệu thuật toán mã hóa
• Sự cần thiết của khóa (Key) trong thuật toán mã hóa
• Giới thiệu về hàm băm
Trang 33Institute of Network Security - istudy.ispace.edu.vn
Plain text
- - -
- -Cipher text
- -
-
Mã hóa đối xứng (Symmetric encryption)
• Còn gọi là mã hóa khóa bí mật
• Sử dụng cùng một khóa cho cả quá trình mã hóa và giải mã
• Chiều dài khóa từ 40-256 bits
– Khóa trên 80 bits có thể xem là tin tưởng được – Khóa dưới 80 bits có thể xem là lỗi thời và cần sử dụng thuật toán mã hóa mạnh hơn
• Một số thuật toán mã hóa đối xứng: DES, 2DES, 3DES, AES, SEAL,
…
Trang 34Mã hóa đối xứng: Cấu trúc Feistel
• Hầu hết các thuật toán mã hóa đối xứng thường sử dụng qui tắc trong cấu trúc Feistel:
– Thông tin gốc chia thành 2 phần P1 và P2 – P1 giữ nguyên không đổi
– P2 được XOR với một hàm băm một chiều f (biến thiên bởi khóa)
– Hai kết quả sau cùng đổi cho cho nhau
• Một quá trình như vậy được gọi là một vòng
• Sử dụng một vòng không đảm bảo sự an toàn nên người
ta đã sử dùng nhiều vòng, tính bảo mật sẽ được tăng cường
Trang 35Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: Tiến trình Feistel
• Thông tin gốc được chia thành từng khối kích thước 2w
Trang 37Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng:
Mã hóa theo cấu trúc Feistel
• Người ta đề ra tiêu chuẩn cho các thuật toán mã hóa dựa trên cấu trúc Feistel như sau:
– Kích thước khối dữ liệu đầu vào – Chiều dài khóa
– Số vòng lặp – Thuật toán sinh khóa phụ – Hàm f thực hiện tại mỗi vòng
Trang 38Mã hóa đối xứng: DES (Data Encryption Standard)
• DES sử dụng kỹ thuật mã hóa đối xứng được IBM phát triển vào năm 1975, khi đó gọi là Lucifer
• Thuật toán DES thực hiện một chuỗi thay thế và hoán vị khá an toàn, tuy nhiên chiều dài khóa ngăn, dễ bị tấn công Brute-force
• Thuật toán DES được thực nghiệm trong 35 năm và chưa tìm ra lỗ hổng sai sót nào
• Sử dụng khóa có chiều dài cố định 64 bits, tuy nhiên chỉ
co 56 bits dùng cho việc mã hóa
– 8 bits còn lại để xét tính chẵn lẻ, trong đó bit cuối cùng luôn đánh dấu lẻ
• Ứng dụng bảo mật sử dụng DES: SSL, IPSec, …
Trang 39Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: Thông số DES
• Kích thước khối: 64 bits
• Chiều dài khóa: 56 bits
• Số vòng: 16
• Thuật toán sinh khóa: Kết hợp dịch trái và hoán vị
• Hàm f: kết hợp các phép XOR, hoán vị và thay thế Box)
(S-• Thực thi: Tiến trình Feistel
Trang 40Mã hóa đối xứng:
Các chế độ mã hóa của DES
• DES khi sử dụng mã hóa khối (Block cipher) có hai chế độ:
– ECB (Electronic Code Book): Mỗi khối Plaintext được mã hóa bằng khối Ciphertext tương ứng
– CBC (Cipher Block Chaining): Sử dụng tiến trình Feistel
• Chế độ CBC được sử dụng bới IPSec trong hầu hết các trường hợp
• DES khi sử dụng mã hòa dòng (Stream cipher) có hai chế độ:
– CFB (Cipher FeedBack): Tạo ra các khối mã hóa bằng cách tổng hợp và đồng bộ liên tục các dòng mã hóa
– OFB (Output FeedBack): Khởi tạo một khói khóa dòng, sử dụng phép toán XOR với các khối Plaintext tạo ra Ciphertext
Trang 41Institute of Network Security - istudy.ispace.edu.vn
ECB
CBC
Khóa khởi tạo
Mã hóa đối xứng: DES ECB vs CBC
Trang 42Mã hóa đối xứng: Sử dụng DES
• Để bảo vệ dữ liệu tốt hơn, cần xét các lời khuyên sau:
– Thay đổi nội dung khóa thường xuyên, tránh tấn công force
Brute-– Trao đổi khóa giữa người gửi và người nhận trên một kênh kết nối bảo mật
– Ưu tiên thực hiện DES theo chế độ CBC, việc mã hóa khối bits phụ phải phụ thuộc vào khối trước đó
64-• DES là một giao thức mã hóa yếu, nên sử dụng cho các
dữ liệu nhỏ khi không có thuật toán thay thế nào khác
• DES thực hiệ rất nhanh và tốn ít tài nguyên phần cứng
Trang 43Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: 3DES
• 3DES về cơ bản dựa trên DES, tuy nhiên thực hiện trong
3 lần DES
• Sử dụng 2 hoặc 3 khóa khác nhau tạo ra chiều dài khóa
112 bits hoặc 168 bits
• 3DES rất khó bị tấn công Brute-force
• Tốn nhiều tài nguyên phần cứng
• 3DES được xem là một trong những thuật toán mã hóa đối xứng đáng tin cậy nhất
Trang 44$1000 Mã hóa Giải mã
Key K1
$%&@!
Key K2
faded Mã hóa
Key K3
• Nếu K1 = K3, chiều dài khóa là 112 bits
• Nếu k1, K2, K3 khác nhau, chiều dài khóa là 168 bits
Trang 45Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: AES (Advance Encryption Standard)
• AES được phát triển vào năm 1997 nhằm tìm ra một phương pháp mã hóa an toàn hơn thay thế cho DES
• Được xử lý và kiểm tra nghiêm ngặt ngay từ đầu bằng việc thử dùng tới 15 thuật toán khác nhau
• Rijndael, Twofish và RC6 cuối cùng đã được chọn
• NIST quyết định lấy Rijndael làm thuật toán mã hóa cho AES
Trang 46Mã hóa đối xứng: AES (Advance Encryption Standard)
• Mã hóa Rijndael được phát triển bởi Joan Daemen và Vincent Rijmen
• Thuật toán dựa vào kích thước khối và kích thước khóa
• AES hoạt động nhanh hơn 3DES khi chạy bằng phần mềm
• Hiện tại, AES dùng khóa 128-, 192-, 256-bits để mã hóa khối
dữ liệu 128-, 192-, 256-bits
• AES vẫn có thể được sử dụng trong một tương lai rất dài vì cả kích thước khối và kích thước khóa đều có thể tăng lên theo bội số 32 bits
• AES được chấp nhận sau quá trình kiểm tra lỗ hổng kéo dài
10 năm
• AES được xem là mạnh hơn 3DES do có chiều dài khóa lơn hơn, và thời gian tính toán, xử lý rất nhanh
Trang 47Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: AES
• AES làm việc trên từng khối dữ liệu 4x4 hoặc 8x8 byte, chia làm 4 bước:
– AddRoundKey: Mỗi byte của khối được kết hợp với khóa con, khóa con được sinh ra từ thuật toán Rijndael (một chuỗi các biến đổ toán học phức tạp)
– SubBytes: Phép thế phi tuyến trong đó mỗi byte sẽ được thay thế bằng một Byte khác theo bảng tra S-Box
– ShiftRows: Dịch dòng, đổi chố các bit hàng ngang trong khối – MixColumns: Quá trình trộn làm việc trên các cột trong khối theo phép biến đổi tuyến tính
• Tại chu trình cuối, bước MixColumns có thể được thay thế bằng bước AddRoundKey
Trang 48Mã hóa đối xứng: AES - AddRoundkey
Trang 49Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: AES - SubBytes
Trang 50Mã hóa đối xứng: AES - ShiftRows
Trang 51Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: AES - MixColumns
Trang 53Institute of Network Security - istudy.ispace.edu.vn
Mã hóa đối xứng: SEAL và Blowfish
• SEAL (Software-optimized Encryption Algorithm)
– Thuật toán mã hóa dòng, thực hiện theo đơn vị dữ liệu word-32 bits
– Chiều dài khóa 160 bits – Tốc độ rất nhanh (so với DES, AES) nhưng tốn nhiều RAM – Rất thích hợp với mã hóa ổ đĩa cứng
– Bằng sáng chế đang thuộc sở hữu của IBM, hiện đã phát triển đến phiên bản 3.0
• Blowfish
– Do Bruce Schneider phát triển năm 1993 – Chiều dài khóa từ 32 bits đến 448 bits, cho độ bảo mật rất cao
Trang 54Mã hóa đối xứng: Thuật toán RC
– Đặc biệt chạy rất nhanh nếu dùng phần mềm – Thường được sử dụng nhằm bảo vệ các phiên kết nối tới một website, ví dụ: SSL
– Có thể được sử dụng rất hạn chế trong WEP