Tham số của nhóm vốn công khai theo thiết kế, và chính sự công khai đó khiến chúng dễ bị bỏ qua. Trong Diffie-Hellman trên trường hữu hạn, mô-đun và phần tử sinh được chia sẻ, còn các số mũ riêng và khóa phiên sinh ra từ chúng thì không. Giai đoạn đắt của một cuộc tấn công bằng sàng trường số phụ thuộc vào nhóm chứ không phải một trao đổi, nên một nhóm yếu duy nhất dùng ở mọi nơi trở thành nghĩa vụ chung. Gọi tham số là công khai thì đúng và lạc đề, vì chi phí được dùng lại chính là chi phí tấn công nhóm đó.

Nửa công khai không phải nửa dễ tổn thương, và cái bẫy nằm ở đó

Lập luận nửa vời quen thuộc nói rằng tham số được công bố trong một tiêu chuẩn, nên kẻ tấn công đã biết chúng và che giấu sẽ không thay đổi gì. Cả hai mệnh đề đều đúng và không mệnh đề nào suy ra từ mệnh đề kia. Một nhóm mặc định được gửi đi là công khai, và một nhóm riêng bạn tạo tuần trước cũng hiển thị với bất kỳ ai hoàn tất bắt tay. Tính bí mật chưa bao giờ là biện pháp kiểm soát; sức mạnh và việc kiểm tra mới là.

Điều thay đổi là bao nhiêu nơi chia sẻ cùng một điểm yếu. Một tổ chức tự tạo nhóm 2048 bit trả chi phí tấn công của chính mình, trong khi một giá trị mặc định của giao thức được hàng triệu người chọn lại phân bổ một chi phí cho tất cả. Theo nghĩa đó một nhóm khác thường không tự động tốt hơn. Một nhóm khác thường quá nhỏ chỉ là một bí mật chung nhỏ hơn với ít con mắt nhìn vào hơn.

Kiểm tra quan trọng ngang kích thước. Một phía gửi mô-đun có thừa số nhỏ, hoặc không đúng hình dạng giao thức mong đợi, có thể làm rò rỉ thông tin về số mũ riêng ngay cả khi độ dài bit trông đáng nể. Các thư viện từ chối tham số dị dạng ngay ở đầu vào đang làm việc thật, vì thế tự viết bộ phân tích tham số là một chỗ tồi để tiết kiệm công sức.

Tính toán trước thực sự mang lại gì cho kẻ tấn công

Sàng trường số có một giai đoạn chỉ phụ thuộc vào số nguyên tố, và kết quả của nó dùng lại được chống mọi trao đổi dùng số nguyên tố đó. Đó là toàn bộ cơ chế đằng sau mối lo lịch sử: phần đắt được trả một lần, và chi phí biên của mỗi phiên tiếp theo giảm xuống. Số mũ mới vẫn bảo vệ từng trao đổi riêng lẻ trước một quan sát viên thụ động, miễn là nhóm đủ lớn để việc sàng là bất khả thi. Hai phát biểu tương thích với nhau, và phần lớn tranh luận về chủ đề này đến từ việc chọn một và bỏ cái kia.

Bài báo Logjam năm 2015 đã chứng minh một cuộc hạ cấp xuống Diffie-Hellman 512 bit cấp xuất khẩu và ước tính chi phí tấn công các nhóm lớn hơn, được dùng lại rộng rãi với nguồn lực đáng kể. Cuộc trình diễn là cụ thể, các ước tính là ước tính, và không cái nào là bằng chứng rằng một phiên VPN cụ thể đã bị giải mã.

Trích dẫn bài báo vì cơ chế và vì cuộc hạ cấp đã được chứng minh, không phải như một phép đo việc triển khai của bạn. Thống kê cũ về việc bao nhiêu máy chủ chia sẻ một nhóm mặc định mô tả internet của năm đó, không mô tả một mạng bạn có thể kiểm tra hôm nay. Điều đáng mang theo là câu hỏi: các thiết bị của bạn còn thương lượng một nhóm nhỏ hay được kiểm tra yếu không?

Được tiêu chuẩn hóa không đồng nghĩa với yếu

RFC 7919 định nghĩa các nhóm trường hữu hạn có tên để hai đầu thống nhất một nhóm theo định danh và áp dụng một chính sách nhất quán. Được tiêu chuẩn hóa là một lợi thế, vì nó loại bỏ sự mơ hồ khi thương lượng và cho phép một hiện thực từ chối các kích thước không được hỗ trợ. Một nhóm có tên chỉ yếu khi kích thước của nó dưới chính sách mà bạn tuyên bố tuân theo, chứ không phải vì nó xuất hiện trong một tài liệu. Logic tương tự áp dụng cho các nhóm đường cong elliptic, vốn có cấu trúc khác và các kiểu hỏng khác.

Hãy tách các cấu trúc khi lý luận về chúng. Một kết luận về Diffie-Hellman trên trường hữu hạn không nói gì về X25519, và một kết luận về nhóm MODP 1024 bit không nói gì về nhóm 3072 bit. Chính sách sức mạnh là theo cơ chế, theo kích thước và theo phiên bản giao thức, vì thế cụm từ mật mã mạnh không phải một khẳng định có thể rà soát.

Xác thực là nửa còn lại, và nó không thay thế. Một nhóm mạnh không có kiểm tra đối tác để kẻ tấn công ở giữa, và một chứng chỉ hợp lệ không cứu được trao đổi 768 bit. Hãy rà soát chúng như hai đường độc lập, rồi xác nhận cả hai thực sự được thương lượng.

Đọc nhóm đã thương lượng trên một kết nối thật

Đọc nhóm đã thương lượng từ thiết bị chứ không phải từ mẫu cấu hình. Mẫu mô tả ý định, còn giá trị đáng quan tâm là giá trị mà hai đầu đã đồng ý trong lần bắt tay cuối. Trên một điểm cuối IPsec, đầu ra trạng thái thường in đề xuất đã chọn, bao gồm nhóm MODP.

Ghi lại dòng đó trước và sau một thay đổi chính sách, và giữ cả hai trong bản ghi thay đổi. Việc so sánh chính là bằng chứng.

ipsec statusall | grep -Ei "proposal|ESP|IKE"
openssl dhparam -in /etc/vpn/dh3072.pem -check -noout

Nếu sau thay đổi trạng thái vẫn hiển thị nhóm cũ, kết nối đã không thương lượng lại và việc sửa cấu hình không chứng minh được gì. Khởi động lại đối tác hoặc xóa hiệp hội bảo mật, rồi đọc lại trạng thái. Một chính sách chỉ áp dụng cho kết nối mới sẽ để các đường hầm tồn tại lâu trên tham số cũ chừng nào chúng còn hoạt động.

Kiểm tra nhóm và danh tính đối tác riêng rẽ

Tách điều nhóm bảo vệ khỏi việc ai ở đầu bên kia. Ghi lại phương thức trao đổi khóa, kích thước nhóm và phương thức xác thực thành ba trường, vì chúng hỏng độc lập. Một đường hầm đã thương lượng nhóm 3072 bit nhưng chấp nhận mọi chứng chỉ không phải cùng mức rủi ro với đường hầm ghim đối tác và dùng nhóm 2048 bit.

Viết tiêu chí chấp nhận trước khi bắt đầu rà soát, để kết quả là so sánh chứ không phải ý kiến. Kích thước nhóm tối thiểu cho mỗi phiên bản giao thức, danh sách cho phép các nhóm có tên và kiểm tra đối tác bắt buộc là đủ để biến quyết định thành máy móc. Chính sự mơ hồ trong danh sách đó biến một cuộc rà soát thành tranh luận, và tranh luận không được khắc phục. Khi đó đầu ra là danh sách các điểm cuối vi phạm một quy tắc đã nêu.

ipsec statusall | grep -Ei "peer|auth|cert"
openssl s_client -connect vpn.acme.example:443 -brief -cipher 'DHE-RSA-AES256-GCM-SHA384'

Khép vòng bằng cách đọc lại các giá trị đã thương lượng sau khi khắc phục. Một tệp cấu hình tuân thủ không phải bằng chứng rằng một đường hầm đã nhận nó. Đầu ra trạng thái và một lần bắt tay mới là bằng chứng, và thu thập chúng mất ít thời gian hơn cuộc họp về việc chúng có cần thiết không.

Bài viết liên quan