Nội dung bài viết
Thế nào là Known-plaintext Attacks?
Known-plaintext attacks (KPA) là khi tin tặc sử dụng các cặp tài liệu nổi tiếng được mã hóa và không được mã hóa để xác định thuật toán hoặc khóa mã hóa.
Trong một Known-plaintext Attacks, kẻ tấn công có quyền truy cập vào cả dạng mã hóa của dữ liệu (ciphertext) và bản sao văn bản gốc tương ứng của dữ liệu gốc (unencrypted form). Kẻ tấn công cố gắng xác định khóa hoặc thuật toán mã hóa bằng cách kiểm tra mối quan hệ giữa plaintext và ciphertext.
Ví dụ: nếu “CRYPTO” được mã hóa thành “XUZZA”, việc biết cặp này có thể cho phép kẻ tấn công giải mã các phần khác của tin nhắn cũng được mã hóa bằng cùng một khóa thay thế. Điều này chứng tỏ rằng, với một số thuật toán mã hóa, ngay cả một lượng kiến thức nhỏ cũng có thể dẫn đến việc giải mã rộng hơn.
Kiểu tấn công này sử dụng một lỗ hổng trong kỹ thuật mã hóa giúp xác định các mẫu hoặc kết nối được tạo ra giữa bản rõ và bản mã. Nếu không được ngăn chặn một cách chính xác, các Known-plaintext Attacks có thể gây nguy hiểm cho tính bảo mật của hệ thống mã hóa.
Hai phương pháp phổ biến để khai thác plaintext và dạng mã hóa tương ứng của nó nhằm khám phá các khóa mã hóa bao gồm phân tích tần số (frequency analysis) và khớp mẫu (pattern matching). Phương pháp phân tích tần số sử dụng các phương pháp mã hóa đơn giản bằng cách thay thế từng ký tự hoặc ký hiệu một-một. Những kẻ tấn công có thể tìm ra chìa khóa hoặc mở khóa phần còn lại của giao tiếp bằng cách so sánh tần suất xuất hiện của các chữ cái hoặc mẫu cụ thể trong plaintext và bản mã liên quan.
Những kẻ tấn công có thể phát hiện ra các xu hướng khi cùng một plaintext tạo ra cùng một bản mã theo phương pháp khớp mẫu. Họ có thể nhận ra thuật toán mã hóa và giải mã toàn bộ tin nhắn bằng cách xác định các mẫu trong văn bản được mã hóa và so sánh chúng với các mẫu đã biết trong plaintext gốc.
Known-plaintext attacks đã biết hoạt động như thế nào?
Trong KPA, kẻ tấn công có thể tìm hiểu các chi tiết quan trọng về phương pháp mã hóa bằng cách phân tích cách các đoạn cụ thể của văn bản gốc được chuyển đổi thành văn bản mã hóa bằng cách sử dụng cùng một khóa hoặc thuật toán mã hóa.
Cuộc tấn công bao gồm các bước sau:
Thu thập các cặp đã biết
Kẻ tấn công tích lũy các cặp plaintext và văn bản mật mã được mã hóa liên quan có được thông qua các kỹ thuật khác nhau, chẳng hạn như thông tin liên lạc bị chặn hoặc rò rỉ dữ liệu.
Phân tích mẫu
Khi bản rõ được mã hóa để tạo thành bản mã, kẻ tấn công sẽ so sánh các mẫu, sửa đổi và biến đổi diễn ra. Để hiểu hoạt động của quá trình mã hóa, họ tìm kiếm các mối quan hệ thường xuyên giữa plaintext và ciphertext đã biết.
Lấy khóa hoặc thuật toán
Kẻ tấn công cố gắng xác định các yếu tố mã hóa quan trọng, chẳng hạn như khóa mã hóa, thuật toán hoặc các tham số quy trình khác, dựa trên các mẫu mà chúng đã nhận thấy. Họ có thể sao chép độc lập quá trình mã hóa nhờ vào suy luận này.
Giải mã dữ liệu khác
Kẻ tấn công có thể giải mã các tài liệu được mã hóa khác sử dụng cùng một thuật toán mã hóa bằng cách sử dụng khóa hoặc thuật toán được suy luận. Quy trình này có thể làm rò rỉ thông tin bí mật hoặc gây nguy hiểm cho tính bảo mật của hệ thống mã hóa.
Chosen-plaintext Attacks và known-plaintext Attacks
Chosen-plaintext Attacks liên quan đến việc đối thủ chọn bản rõ và phân tích bản mã tương ứng, trong khi Known-plaintext Attacks xảy ra khi kẻ tấn công sở hữu một phần kiến thức về bản rõ.
Hiểu được sự khác biệt giữa hai cuộc tấn công mật mã này là rất quan trọng đối với các chiến lược bảo vệ mật mã hiệu quả.
Chosen-plaintext Attacks | Known-plaintext Attacks | |
Bối cảnh | Kẻ tấn công lựa chọn plaintext | Kẻ tấn công chỉ biết một vài plaintext |
Loại Attack | Nghe lén thụ động | Thao tác chủ động |
Loại hình | Giải mã văn bản mật mã | Xác định phương pháp mã hoá |
Trình độ hiểu biết cần có | Không yêu cầu có hiểu biết về plaintext | Một số plaintext cần hiểu rõ |
Tính phức tạp | Vừa phải | Thấp |
Ví dụ | Giải mã cổ điển | Phân tích tần số |
Phân tích tần số tập trung vào việc kiểm tra sự xuất hiện của các chữ cái hoặc ký hiệu để xác định thuật toán mã hóa, không giống như phân tích mật mã cổ điển, kiểm tra văn bản mã hóa để tìm các mẫu và sai sót.
Làm thế nào để bảo vệ chống lại một Known-plaintext Attack?
Để bảo vệ chống lại các Known-plaintext Attacks, hãy áp dụng thuật toán mã hóa mạnh, quản lý khóa mã hóa một cách an toàn, sử dụng khóa duy nhất cho mỗi phiên và thêm tính ngẫu nhiên vào quy trình mã hóa để tăng cường khả năng bảo vệ chống lại các cuộc tấn công.
Chọn các thuật toán mã hóa có thể chống lại các Known-plaintext Attacks bằng cách sử dụng các kỹ thuật mã hóa mạnh. Bằng cách ngăn chặn các mẫu trong bản rõ tương quan với các mẫu trong văn bản mã hóa, các thuật toán mã hóa hiện đại như Tiêu chuẩn mã hóa nâng cao (AES) được tạo ra để tồn tại trước các cuộc tấn công như vậy. AES là một thuật toán mã hóa đối xứng được sử dụng rộng rãi, nổi tiếng về tính bảo mật và hiệu quả.
Quản lý an toàn các khóa mã hóa để tránh truy cập trái phép. Sử dụng kho lưu trữ khóa an toàn, xoay khóa thường xuyên và sử dụng các kỹ thuật tạo khóa mạnh mẽ. Ngoài ra, tránh mã hóa các khối dữ liệu rời rạc, có thể dự đoán được. Để ngăn kẻ tấn công sử dụng các cặp đã biết, hãy mã hóa toàn bộ tin nhắn hoặc tệp.
Hơn nữa, hãy sử dụng các phím khác nhau cho các phiên và nỗ lực khác nhau. Tác động của Known-plaintext Attacks đã giảm do mỗi phiên sẽ sử dụng một khóa mã hóa khác nhau. Ngoài ra, hãy duy trì các phiên bản mới nhất của hệ thống, thư viện và phần mềm mã hóa của bạn. Các bản sửa lỗi bảo mật giúp sửa chữa các lỗ hổng thường được đưa vào các bản cập nhật.
Trước khi mã hóa bản rõ của dữ liệu, hãy thêm muối mật mã – một giá trị ngẫu nhiên – vào đó. Điều này làm cho mỗi mã hóa là duy nhất, ngay cả khi mã hóa cùng một bản rõ nhiều lần. Ngoài ra, hãy tránh các phương pháp mã hóa được biết là dễ bị tấn công bằng plaintext đã biết. Điều đó nói rằng, hãy thực hiện thẩm định thích hợp khi chọn thuật toán mã hóa.
Vậy là chúng ta đã cùng nhau tìm hiểu về Known-plaintext Attacks. Hy vọng bài viết đã giúp bạn có thêm kiến thức về loại hình tấn công này, bên cạnh sự so sánh với Chosen-plaintext Attacks. Đừng quên, mọi thắc mắc về thị trường tiền kỹ thuật số, vui lòng liên hệ đội ngũ Support của Fiahub 24/7.
Freelancer Marketing và Content Creator với gần 10 năm kinh nghiệm; trong đó có khoảng hơn 3 năm làm việc trong mảng Blockchain với vai trò Dịch Thuật và Copywriter.
Với kiến thức sâu rộng cùng khả năng diễn giải để những thuật ngữ công nghệ khó hiểu trở nên gần gũi hơn với người đọc. Lê Hoàng đảm nhiệm những bài viết trong chuyên mục "Từ Điển Crypto" và "Hướng Dẫn Người Mới" tại Fiahub Blog