Nhật ký OpenVPN: mật mã kênh điều khiển so với mật mã kênh dữ liệu
DHE-RSA-AES256-SHA trong nhật ký mô tả kênh điều khiển TLS, không phải mật mã bảo vệ lưu lượng của bạn. Hãy tìm kết quả riêng của kênh dữ liệu.
Một dòng nhật ký nêu DHE-RSA-AES256-SHA không phải là bản tóm tắt toàn bộ kết nối. Nó thuộc về bắt tay TLS bảo vệ kênh điều khiển, và lưu lượng bên trong đường hầm có thể được mã hóa theo cách hoàn toàn khác. Trình bày nó như mật mã dữ liệu của VPN là sai lầm cần tránh.
Hai kết quả đều quan trọng, và chúng trả lời những câu hỏi khác nhau. Một là bộ TLS được thương lượng cho kênh điều khiển; cái kia là mật mã dữ liệu cho các gói mà đường hầm mang theo.
Hai kết quả, hai câu hỏi
Kênh điều khiển mang bắt tay và các thông điệp quản lý giữa các bên. Mật mã của nó do ngăn xếp TLS chọn, nên tên tuân theo quy ước TLS. Kênh dữ liệu mang lưu lượng người dùng và được cấu hình bởi chính thương lượng mật mã của OpenVPN.
Hãy quyết định bạn đang trả lời câu hỏi nào trước khi đọc bất kỳ dòng nào. Đường hầm có được mã hóa hay không và bắt tay có mạnh hay không không phải là cùng một câu hỏi.
Đoạn nhật ký hiển thị cả hai dòng là đoạn hữu ích. Đọc dòng điều khiển để biết phiên bản và bộ TLS, và dòng dữ liệu để biết thuật toán thực sự bảo vệ tải trọng.
Giải mã tên bộ TLS trong ngữ cảnh riêng của nó
Trong một tên kiểu OpenSSL lịch sử như DHE-RSA-AES256-SHA, mỗi thành phần mô tả một quyết định khác nhau. DHE là thỏa thuận khóa Diffie-Hellman tạm thời, RSA là phương thức xác thực, AES256 là AES-256 ở chế độ CBC cho các bản ghi TLS, và SHA là MAC bản ghi dựa trên SHA-1.
Thành phần cuối không phải là dấu vân tay chứng chỉ, và đọc nó như vậy là lỗi phổ biến. Tên cũng không tự nó cho biết phiên bản giao thức, vì TLS 1.3 dùng một sơ đồ đặt tên hoàn toàn khác. TLS_AES_256_GCM_SHA384 theo hình thức mới hơn đó, trong đó hàm băm cuối là một phần của cấu trúc bộ chứ không phải lựa chọn MAC. Chỉ áp dụng cách đọc theo thành phần cho kiểu đặt tên cũ hơn.
tài liệu tham chiếu bộ OpenSSL liên kết các tên này với định nghĩa của chúng nếu một thành phần không quen thuộc.
Đọc kết quả kênh dữ liệu cho lưu lượng được mang
Đối với lưu lượng được mang, hãy đọc dòng kênh dữ liệu từ cùng phiên. Danh sách data-ciphers trong cấu hình là một tập được phép, không phải bằng chứng rằng một thuật toán cụ thể đã được thương lượng. Nhật ký ghi lại lựa chọn; cấu hình liệt kê menu.
Mật mã AEAD như AES-GCM mang theo kiểm tra toàn vẹn của riêng nó, nên HMAC riêng cho kênh dữ liệu không thuộc đường đi đó.
Chỉ thị auth không nâng cấp TLS, chứng chỉ hay mật mã dữ liệu. Nó chọn một digest cho những phần của giao thức vẫn còn dùng, và với mật mã dữ liệu AEAD thì không có HMAC dữ liệu riêng để cấu hình.
Giữ các kiểm tra danh tính ngoài kết quả mật mã
Thuật toán chữ ký chứng chỉ, kiểm tra chuỗi tin cậy và xác minh tên đối tác là ba thuộc tính nữa mà tên mật mã không nói gì về chúng. Chứng chỉ hết hạn thất bại bất kể bộ mật mã mạnh đến đâu. Tên máy chủ không khớp thất bại theo cùng cách. Sửa một cài đặt digest trong hồ sơ không sửa được cả hai.
Giữ những kiểm tra này trong ghi chú đánh giá bên cạnh kết quả mật mã, không hợp nhất vào đó.
Ghi lại các kết quả được thương lượng của phiên hiện tại
Lấy kết quả từ kết nối hiện tại và ghi lại phiên bản máy khách và máy chủ cùng với chúng. Nhật ký chỉ thêm vào có thể chứa dòng của một phiên cũ hơn, và việc trích dẫn nó như hiện tại là cách một sự cố đã sửa dường như vẫn tiếp diễn.
Đối với đánh giá chính sách, hãy trao cho chủ cấu hình phiên bản và bộ TLS được thương lượng, mật mã dữ liệu được chọn và cài đặt xác thực chứng chỉ cùng nhau. Thay đổi lớp đó, sau đó đọc một nhật ký mới để xác nhận các giá trị được thương lượng mới.