Lỗ hổng trong PuTTY cho phép khôi phục khóa riêng của người dùng

PuTTY, một client SSH phổ biến trên nền tảng Windows, có lỗ hổng nguy hiểm (CVE-2024-31497) cho phép tạo lại khóa riêng của người dùng bằng thuật toán ECDSA đường cong hình elip NIST P-521 (ecdsa-sha2-nistp521). Để chọn khóa riêng, chỉ cần phân tích khoảng 60 chữ ký số do khóa có vấn đề tạo ra là đủ.

Lỗ hổng xuất hiện bắt đầu từ phiên bản PuTTY 0.68 và cũng ảnh hưởng đến các sản phẩm có chứa phiên bản dễ bị tổn thương của PuTTY, ví dụ FileZilla (3.24.1 - 3.66.5), WinSCP (5.9.5 - 6.3.2), TortoiseGit (2.4.0.2 - 2.15.0) và TortoiseSVN (1.10.0 - 1.14.6). Sự cố đã được khắc phục trong các bản cập nhật PuTTY 0.81, FileZilla 3.67.0, WinSCP 6.3.3 và TortoiseGit 2.15.0.1. Sau khi cài đặt bản cập nhật, người dùng nên tạo khóa mới và xóa khóa chung cũ khỏi tệp ủy quyền của họ.

Lỗ hổng này xảy ra do sự bất cẩn của các nhà phát triển, họ đã sử dụng vectơ khởi tạo (không phải một lần) dựa trên chuỗi ngẫu nhiên 521 bit để tạo khóa 512 bit, có thể họ tin rằng entropy 512 bit là đủ và 9 bit còn lại không có tầm quan trọng cơ bản. Kết quả là, trong tất cả các khóa riêng được tạo trong PuTTY bằng thuật toán ecdsa-sha2-nistp521, 9 bit đầu tiên của vectơ khởi tạo luôn có giá trị bằng XNUMX.

Đối với ECDSA và DSA, chất lượng của bộ tạo số giả ngẫu nhiên và phạm vi bao phủ đầy đủ của tham số được sử dụng để tính toán mô đun bằng dữ liệu ngẫu nhiên có tầm quan trọng cơ bản, vì việc xác định thậm chí một vài bit có thông tin về vectơ khởi tạo là đủ để thực hiện. thực hiện một cuộc tấn công để khôi phục tuần tự toàn bộ khóa riêng. Để khôi phục thành công một khóa, chỉ cần có khóa chung và phân tích hàng chục chữ ký số được tạo bằng khóa có vấn đề đối với dữ liệu mà kẻ tấn công đã biết. Cuộc tấn công nhằm giải quyết vấn đề HNP (Vấn đề về số ẩn).

Ví dụ: có thể lấy được chữ ký số cần thiết khi người dùng kết nối với máy chủ SSH của kẻ tấn công hoặc với máy chủ Git sử dụng SSH làm phương tiện truyền tải. Các chữ ký cần thiết cho cuộc tấn công cũng có thể được tìm ra nếu khóa được sử dụng để xác minh dữ liệu tùy ý, ví dụ: git cam kết khi sử dụng tác nhân Pageant SSH để chuyển hướng lưu lượng truy cập đến máy chủ của nhà phát triển. Không thể lấy được dữ liệu cần thiết để khôi phục khóa trong cuộc tấn công MITM vì chữ ký trong SSH không được truyền dưới dạng văn bản rõ ràng.

Cần lưu ý rằng việc sử dụng tương tự các vectơ khởi tạo không đầy đủ đã được sử dụng trong PuTTY cho các loại đường cong elip khác, nhưng đối với các thuật toán không phải ECDSA P-521, rò rỉ thông tin thu được là không đủ để thực hiện một cuộc tấn công khôi phục khóa đang hoạt động. Khóa ECDSA có kích thước khác và khóa Ed25519 không dễ bị tấn công.

Nguồn: opennet.ru

Thêm một lời nhận xét