Cuộc tấn công, mà chúng tôi gọi là Logjam, được mô tả trong Hình 2
và dựa vào một lỗ hổng trong cách TLS soạn DHE và
DHE_EXPORT
. Khi một máy chủ chọn DHE_EXPORT
cho một
bắt tay, nó tiến hành bằng cách phát hành một chữ ký Máy chủKeyExchange
tin nhắn chứa 512-bit $p_{512}$nhưng cấu trúc của nó
tin nhắn giống hệt với tin nhắn được gửi trong DHE tiêu chuẩn
bộ mật mã. Điều quan trọng là phần đã ký của máy chủ
thông báo không bao gồm bất kỳ dấu hiệu nào của ciphersuite cụ thể
mà máy chủ đã chọn. Với điều kiện khách hàng cung cấp
DHE, kẻ tấn công tích cực có thể viết lại ứng dụng khách Khách hàngXin chào
đến
cung cấp một tương ứng DHE_EXPORT
bộ mật mã được chấp nhận bởi
máy chủ và xóa các bộ mật mã khác có thể được chọn
thay thế. Kẻ tấn công viết lại máy chủXin chào
đáp lại
thay thế đã chọn DHE_EXPORT
ciphersuite với một kết hợp
non-export ciphersuite và chuyển tiếp Máy chủKeyExchange
tin nhắn cho khách hàng như là. Khách hàng sẽ giải thích các
tuple cấp xuất khẩu $(p_{512}, g, g^b)$ như các tham số DHE hợp lệ được chọn
bởi máy chủ và tiến hành bắt tay. Các
máy khách và máy chủ có bảng điểm bắt tay khác nhau tại thời điểm này
sân khấu, nhưng kẻ tấn công có thể tính toán $b$ gần với thực tế
thời gian sau đó có thể lấy được bí mật chính và các khóa kết nối
để hoàn thành việc bắt tay với khách hàng, và sau đó tự do
đọc và ghi dữ liệu ứng dụng giả làm máy chủ.
Và câu hỏi của bạn đọc:
Tôi đang đọc về cuộc tấn công logjam. Tôi đã được hỏi liệu có thể ngăn chặn cuộc tấn công bằng cách kiểm tra tính toàn vẹn của thông báo Xin chào Máy chủ hay không.
Và tôi đoán rằng câu trả lời là Vâng, nhưng chỉ khi nó sẽ ký/xác minh bộ mật mã đang được cung cấp trong máy chủXin chào
và có vẻ như ít nhất TLS lên đến 1,2 không làm được như vậy. Nói cách khác, bạn phải thay đổi giao thức TLS để bao gồm các bộ mật mã được cung cấp trong quá trình tạo/xác minh chữ ký, khiến giao thức này không tương thích với bất kỳ phần mềm TLS nào khác.
Vì vậy, hiện tại có vẻ như chỉ đơn giản là không cho phép bạn thực hiện để thực hiện DHE_EXPORT
(hoặc DH tạm thời 1024 bit) là con đường chuyển tiếp cho TLS lên tới 1.2.