Hình 3: đọc tệp kết quả Theo kết quả trả về đã không có sự khác nhau nào giữa 2 file... Hình 5: ảnh logo chưa giải mãQua góc nhìn của một chuyên gia an toàn bảo mật sinh viên nhìn thấy
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
-o0o -CƠ SỞ AN TOÀN THÔNG TIN Báo cáo thực hành: Symkeylab Sinh viên: Trần Văn Hoàng
Mã sinh viên: B22DCAT129
Lớp: E22CQCN05-B
Hà Nội, 2024
Trang 2Danh mục và hình ảnh 3
I) Tìm hiểu lý thuyết 4
II) Thực hành chi tiết 4
1) Khởi động bài lab 4
2) Nhiệm vụ 1: Làm quen Mã hóa và giải mã một tệp tin 4
3) Nhiệm vụ 2: Chế độ mã hóa 5
a) Chế độ ECB 5
b) Chế độ CBC 7
c) Chế độ CFB 8
d) Chế độ OFB 10
4) Nhiệm vụ 3: Lỗi lan truyền trong quá trình giải mã 11
a) Chế độ ECB 11
b) Chế độ CBC 12
5) Stoplab 12
III) Kết luận 13
Trang 3DANH MỤC VÀ HÌNH ẢNH
HÌNH 1: KHỞI ĐỘNG VÀ CHECKWORK 4
HÌNH 2: MÃ HÓA TỆP VĂN BẢN 4
HÌNH 3: ĐỌC TỆP KẾT QUẢ 5
HÌNH 4: KHỞI CHẠY FIREFOX 5
HÌNH 5: ẢNH LOGO CHƯA GIẢI MÃ 6
HÌNH 6:MÃ HÓA TỆP TIN NPS-LOGO.BMP BẰNG AES TRONG CHẾ ĐỘ ECB 6
HÌNH 7: SAU KHI GIẢI MÃ FILE NPS-LOGO 7
HÌNH 8: DÙNG PHƯƠNG THỨC CBC ĐỂ GIẢI MÃ FILE LOGO 7
HÌNH 9: KẾT QUẢ TRẢ VỀ CỦA PHƯƠNG THỨC CBC 8
HÌNH 10: SỬ DỤNG CHẾ ĐỘ CFB ĐỂ GIẢI MÃ 8
HÌNH 11: KẾT QUẢ TRẢ VỀ CỦA PHƯƠNG THỨC CFB 9
HÌNH 12: THỰC HIỆN GIẢI MÃ BẰNG CHẾ DỘ OFB 10
HÌNH 13: KẾT QUẢ TRẢ VỀ CỦA PHƯƠNG THỨC OFB 10
HÌNH 14: ĐỘ DÀI CỦA CÁC FILE 11
HÌNH 15: KẾT QUẢ SAU KHI THAY ĐỔI 1 KÝ TỰ 11
HÌNH 16: SO SÁNH SỰ KHÁC NHAU TRƯỚC VÀ SAU KHI THAY DỔI KÝ TỰ 12
HÌNH 17: THAY ĐỔI 1 SỐ HEX BẰNG CÔNG CỤ HEXEDIT 12
HÌNH 18: SỰ KHÁC NHAU GIỮA 2 FILE TRƯỚC VÀ SAU KHI THAY ĐỔI 1 TỪ MÃ HEX 12
HÌNH 19: CHECKWORK LẠI KẾT QUẢ ĐÃ CHẠY 13
Trang 4I) Tìm hiểu lý thuyết
AES (Advanced Encryption Standard) là một thuật toán mã hóa khối đối xứng được
sử dụng rộng rãi để bảo mật dữ liệu Được phát triển như một chuẩn mã hóa mới để thay thế thuật toán DES (Data Encryption Standard) đã lỗi thời, AES được Cơ quan An ninh Quốc gia Hoa Kỳ (NSA) và Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST) phê duyệt và khuyến nghị cho việc mã hóa dữ liệu mật
Các chế độ của AES:
- ECB (Electronic Codebook): Đây là chế độ mã hóa đơn giản nhất, trong đó mỗi khối plaintext được mã hóa độc lập thành các khối ciphertext riêng biệt
- CBC (Cipher Block Chaining): Chế độ CBC cải thiện bảo mật bằng cách sử dụng một vector khởi tạo (IV) và xâu chuỗi các khối lại với nhau Khối ciphertext hiện tại phụ thuộc vào cả plaintext hiện tại và khối ciphertext trước đó
- CFB (Cipher Feedback) và OFB (Output Feedback): CFB và OFB là các chế độ
mã hóa dựa trên khối, nhưng có thể hoạt động giống như mã hóa theo luồng
(stream cipher), tức là có thể mã hóa từng byte của dữ liệu
II) Thực hành chi tiết
1) Khởi động bài lab
Tiến hành khởi động bài lab thông qua lệnh “labtainer symkeylab” sau khi khởi động
sử dụng lệnh “checkwork” để kiểm tra xem bài thực hành đã chạy chưa.
Hình 1: khởi động và checkwork
2) Nhiệm vụ 1: Làm quen Mã hóa và giải mã một tệp tin
Mã hóa một tệp văn bản plain.txt mà sinh viên đã tạo sẵn từ trước
Hình 2: mã hóa tệp văn bản
Trang 5Kích thước của tệp văn bản thô là 12 bytes.
Kích thước của tệp mã hóa là 16 bytes
Thử giải mã tệp tin đã mã hóa và so sánh với tệp gốc xem chúng có điểm nào khác nhau không
Hình 3: đọc tệp kết quả
Theo kết quả trả về đã không có sự khác nhau nào giữa 2 file
3) Nhiệm vụ 2: Chế độ mã hóa
Hình 4: Khởi chạy firefox
a) Chế độ ECB
Trang 6Hình 5: ảnh logo chưa giải mã
Qua góc nhìn của một chuyên gia an toàn bảo mật sinh viên nhìn thấy:
- Đoạn mã gốc nằm trong file nps-logo.bmp và đoạn mã giải mã được lưu trong file nps-logo_mod.bmp
Hình 6:Mã hóa tệp tin nps-logo.bmp bằng AES trong chế độ ECB
Độ dài của nps-logo.bmp là 16782454 bytes
Độ dài của nps-logo_mod.bmp là 16782464 bytes
Trang 7Hình 7: sau khi giải mã file nps-logo
Qua kết quả trả về ta nhận thấy đây là cách giải mã đúng khi mà logo trả về gần giống với file gốc nhất
b) Chế độ CBC
Hình 8: dùng phương thức cbc để giải mã file logo
Trang 8Hình 9: Kết quả trả về của phương thức cbc
Từ kết quả ta nhận thấy chế độ giải mã cbc không phù hợp để giải mã file chứa logo
c) Chế độ CFB
Hình 10: sử dụng chế độ CFB để giải mã
Trang 9Hình 11: Kết quả trả về của phương thức CFB
Qua kết quả trả về sinh viên nhận thấy phương pháp giải mã này không đúng vì file kết quả không chứa nội dung gì giống với bản gốc
Trang 10d) Chế độ OFB
Hình 12: thực hiện giải mã bằng chế dộ OFB
Hình 13: Kết quả trả về của phương thức OFB
Qua kết quả trả về bên trên ta nhận thấy đây cũng không phải phương pháp đúng
Trang 114) Nhiệm vụ 3: Lỗi lan truyền trong quá trình giải mã
Hình 14: độ dài của các file
Độ dài của file declare.txt là 8064 bytes
a) Chế độ ECB
Thực hiện mã hóa file declare bằng chế độ ECB rồi sử dụng hexedit để chỉnh sửa số thập lục phân ở vị trí thứ 0x1230 trong hình sau nó là chữ số đầu tiên của cột số thứ 4 dòng cuối cùng Vì chữ số đã được thay đổi nên nó sẽ in đậm lên
Hình 15: kết quả sau khi thay đổi 1 ký tự
Trang 12Hình 16: So sánh sự khác nhau trước và sau khi thay dổi ký tự
Ta nhận thấy các ký tự thay đổi rất vô nghĩa và thậm chí không thuộc về ngôn ngữ mặc dù
sô hex chỉ bị thay đổi 1 ký tự
b) Chế độ CBC
Tương tự như cách thức đã thực thi với chế độ ECB chúng ta cũng có các kết quả với chế
độ CBC
Hình 17: Thay đổi 1 số hex bằng công cụ hexedit
Hình 18: sự khác nhau giữa 2 file trước và sau khi thay đổi 1 từ mã hex
Như chế độ ECB thì sự thay đổi của file sau chỉnh sửa đều không có nghĩa và vô giá trị
5) Stoplab
Trước khi dừng bài thực hành tiến hành kiểm tra lại tiến trình hoàn thành bài tập Các mục đã được đếm lớn hơn 1 tức là sinh viên đã làm đúng các yêu cầu của bài tập
Trang 13Hình 19: checkwork lại kết quả đã chạy
III) Kết luận
Bài thực hành đã giúp chúng ta khám phá các chế độ mã hóa AES khác nhau, gồm ECB, CBC, CFB, và OFB, bằng cách sử dụng công cụ OpenSSL Qua các nhiệm vụ, chúng ta đã
so sánh các chế độ về khả năng bảo mật và tính chịu lỗi ECB mã hóa từng khối độc lập, dễ
bị lộ mẫu khi dữ liệu lặp lại, do đó không phù hợp cho dữ liệu có tính lặp cao CBC sử dụng
IV và phụ thuộc vào các khối trước, giúp che giấu mẫu nhưng dễ lan truyền lỗi nếu có sai sót trong quá trình giải mã CFB và OFB phù hợp cho luồng dữ liệu và có khả năng chịu lỗi tốt hơn, đặc biệt là OFB do không có sự phụ thuộc giữa các khối Bài thực hành đã cho thấy rằng việc chọn chế độ mã hóa phù hợp là cần thiết tùy thuộc vào yêu cầu bảo mật và khả năng phục hồi lỗi của dữ liệu