Một trình quét hoặc đồng nghiệp chỉ vào số bit được in bên trong tệp khóa tĩnh của OpenVPN và hỏi tại sao đường hầm không dùng loại mã hóa có kích thước đó. Câu hỏi nghe có lý, và câu trả lời không phải là một con số: dải thông báo đếm lượng vật liệu khóa được lưu, trong khi mã hóa chỉ tiêu thụ phần mà kích thước khóa của nó yêu cầu. Coi tổng đó là một thiết lập độ mạnh sẽ dẫn đến những chỉnh sửa không thay đổi gì. Định dạng này được xây dựng để chứa nhiều vật liệu hơn bất kỳ thuật toán đơn lẻ nào sử dụng.

Ở đây trộn lẫn hai câu hỏi: tệp lưu bao nhiêu vật liệu khóa, và mã hóa đã thống nhất mạnh đến đâu. Chỉ câu thứ hai mô tả đường hầm.

Con số trên dải thông báo thực sự đếm cái gì

Vùng chứa tuần tự hóa vật liệu mã hóa và vật liệu HMAC thành các cấu trúc riêng biệt, và dạng hai chiều giữ hai bộ như vậy để mỗi hướng có thể mang khóa riêng. Mã ghi suy ra con số được in từ số cấu trúc đã tuần tự hóa, kích thước của chúng và tám bit mỗi byte. Đó là số học trên dung lượng lưu trữ, không phải khẳng định rằng một mã hóa tiêu thụ mọi byte được lưu. Phần đầu tệp cũng cố định mức phân bổ vật liệu mã hóa tối đa để một thay đổi thư viện không thể âm thầm thay đổi kích thước của định dạng.

Hãy so sánh với khóa chứng chỉ, nơi số bit thực sự mô tả kích thước của một đối tượng. Một khóa RSA 4,096 bit và một tệp khóa có dải thông báo ghi 4,096 bit là những thứ khác nhau với nhiệm vụ khác nhau, và việc đặt chúng như hai thiết lập trên cùng một nút xoay sẽ dẫn đến kết luận tồi.

Hai bộ khóa trong một tệp

Mỗi nửa tệp cung cấp vật liệu mã hóa và xác thực vì chế độ khóa chia sẻ trước bảo vệ các gói theo cả hai hướng bằng những mảnh riêng đó. Mã hóa đang hoạt động chỉ dùng các byte mà kích thước khóa của nó yêu cầu, và bản tóm lược dùng kích thước đầu ra của chính nó, vì vậy độ mạnh dùng được đến từ các tùy chọn chứ không từ độ dài tệp. Kéo dài khối thập lục phân không yêu cầu thuật toán đã cấu hình tiêu thụ nhiều hơn. Sửa chú thích bằng một con số lớn hơn còn thay đổi ít hơn nữa.

Nếu bạn thực sự muốn một khóa dài hơn, thiết lập cần thay đổi là mã hóa hoặc bản tóm lược, và trình tạo sẽ tạo ra những gì các thuật toán đã chọn cần.

Đọc hồ sơ cho bạn biết bạn đang ở chế độ nào

Cùng một định dạng tệp phục vụ hai công việc khá khác nhau, và chỉ hồ sơ cho biết bạn có loại nào. Dòng secret kiểu cũ biến tệp thành vật liệu khóa duy nhất của đường hầm, trong khi tls-auth hoặc tls-crypt biến nó thành lớp bảo vệ kênh điều khiển bên cạnh chứng chỉ. Không cách dùng nào biến nó thành khóa riêng của chứng chỉ máy khách, dù khối trông giống đến đâu. Hãy xác định tùy chọn và phiên bản trước khi tạo bản thay thế, và dùng trình tạo có tài liệu thay vì thêm ký tự.

Sự khác biệt đó cũng quyết định cách phản ứng khi bị lộ. Một khóa tls-auth bị rò rỉ không làm lộ khóa phiên, nhưng cho phép kẻ tấn công chèn lưu lượng vào kênh điều khiển, nên vẫn phải thay. Một khóa secret bị lộ còn tệ hơn, vì nó chính là vật liệu bảo vệ dữ liệu.

Một cuộc đánh giá bảo mật nên ghi lại gì

Ghi riêng ba điều: lớp bảo vệ kênh dữ liệu đã thống nhất, lớp bảo vệ kênh điều khiển, và cách các bên xác thực lẫn nhau. Một dòng như data-ciphers AES-256-GCM chỉ mô tả điều đầu tiên, và một báo cáo dừng ở đó không thể trả lời kênh điều khiển có được bảo vệ hay không. Tệp khóa tĩnh thuộc nhóm thứ hai khi được dùng với tls-auth hoặc tls-crypt, và không thuộc nhóm nào khi không được dùng. Những người đánh giá lẫn lộn các nhóm sẽ yêu cầu một tệp khóa lớn hơn trong khi điều họ muốn là mã hóa mạnh hơn.

Nếu tệp đã bị lộ, hãy xoay vòng và phân phối lại qua kênh đã được phê duyệt. Thêm ký tự vào một bí mật đã bị xâm phạm không phải là xoay vòng, và nó để vật liệu bị lộ vẫn còn hiệu lực.

Giữ hồ sơ xoay vòng cùng với hồ sơ mà nó thuộc về. Lần đánh giá tiếp theo sẽ hỏi khóa nào đã bảo vệ giai đoạn nào, và dải thông báo sẽ không trả lời điều đó.

Bài viết liên quan