Một lỗ hổng từ năm 1998 liên quan đến phần đệm thông báo (padding) trong chuẩn PKCS #1 phiên bản 1.5 của máy chủ SSL tưởng chừng đã được xử lý triệt để nhưng vẫn còn ảnh hưởng đến một số dự án phổ biến hiện nay.
Sau khi thử nghiệm, các nhà nghiên cứu đã phát hiện ra một số biến thể của cuộc tấn công ban đầu, gọi chung là ‘Marvin Attack’ (tấn công Marvin). Những biến thể này có khả năng qua mặt các bản vá và các biện pháp giảm thiểu.
Lỗ hổng cho phép kẻ tấn công có khả năng giải mã thuật toán mật mã công khai RSA giả mạo chữ ký và thậm chí giải mã các phiên được ghi trên máy chủ TLS dễ bị tấn công.
Bằng cách sử dụng phần cứng tiêu chuẩn, các nhà nghiên cứu đã chứng minh có thể thực hiện kiểu tấn công Marvin chỉ trong vài giờ và cảnh báo lỗ hổng này không chỉ giới hạn ở RSA mà còn mở rộng sang hầu hết các thuật toán mã hóa bất đối xứng, khiến chúng dễ bị tấn công kênh bên (side-channel attack).
Dựa trên thử nghiệm, các bản triển khai sau có thể bị tấn công Marvin bao gồm:
- OpenSSL (cấp TLS): Thành phần Timing Oracle trong giải mã RSA, có mã định danh CVE-2022-4304.
- OpenSSL (cấp API): khiến API giải mã thuật toán RSA chỉ định là an toàn khi sử dụng với phần đệm PKCS#1 v1.5 – Chưa có CVE.
- GnuTLS(cấp TLS): Thời gian phản hồi khi xử lý các bản mã RSA không đúng định dạng trong ClientKeyExchange và các bản mã kèm thông báo đệm đi kèm PKCS#1 v1.5 chính xác không khớp nhau, được gán mã CVE-2023-0361.
- NSS (mức TLS): Cải thiện tính liên tục về thời gian trong các hoạt động RSA với lỗ hổng CVE-2023-4421.
- pyca/cryptography: Giảm thiểu các cuộc tấn công Bleichenbacher vào quá trình giải mã RSA, nhưng đã được xác định là không hiệu quả. Thay vào đó, để khắc phục vấn đề này, cần thực hiện vá lỗi CVE-2020-25659 cấp độ OpenSSL.
- M2Crypto: Việc giảm thiểu các cuộc tấn công timing (timing attack) Bleichenbacher trong API giải mã RSA, nhưng không mang lại hiệu quả. Thay vào đó, để khắc phục vấn đề này, cần thực hiện vá lỗi CVE-2020-25657 cấp độ OpenSSL.
- OpenSSL-ibmca: Các bản sửa lỗi liên tục cho RSA PKCS#1 v1.5 và phần đệm OAEP trong phiên bản 2.4.0 – Chưa có CVE.
- Go: Hàm crypto/rsa DecryptPKCS1v15SessionKey có mức độ rò rỉ thông tin hạn chế – Chưa có CVE.
- GNU MP: Hàm mpz_powm_sec làm rò rỉ của các bit hàng cao bằng 0 trong kết quả – Chưa có CVE.
Cuộc tấn công Marvin là một lỗ hổng về mặt lý thuyết, chưa có bản vá nào có thể được áp dụng phổ biến và vấn đề này còn biểu hiện khác nhau ở mỗi dự án do tính độc đáo của mã nguồn và các bản triển khai giải mã RSA.
Vô hiệu hóa RSA không có nghĩa là bạn sẽ an toàn, vì vậy các nhà nghiên cứu khuyến cáo người dùng không nên sử dụng mã hóa RSA PKCS#1 v1.5 và gợi ý nên tìm kiếm hoặc yêu cầu các nhà cung cấp cung cấp các lựa chọn thay thế tương thích ngược với các phiên bản trước đó.
Bên cạnh đó, rủi ro sẽ là như nhau khi người dùng sử dụng chung khóa hoặc chứng chỉ RSA trên một máy chủ khác hỗ trợ nó (ví dụ: SMTP, IMAP, máy chủ mail POP và máy chủ HTTPS phụ).
Ngoài ra, các nhà nghiên cứu cảnh báo thêm chứng nhận FIPS (Federal Information Processing Standards) không bảo vệ người dùng khỏi cuộc tấn công Marvin, ngoại trừ chứng nhận cấp độ 4 có thể chống lại các cuộc tấn công kênh bên (side-channel attack).
Mặc dù chưa có dấu hiệu rõ ràng về tấn công Marvin đang bị tin tặc lạm dụng trên thực tế, nhưng việc tiết lộ chi tiết và các phần của cuộc kiểm tra có thể tăng nguy cơ khiến cuộc tấn công này xuất hiện trong tương lai gần.