Xác thực HMAC của gói tin OpenVPN thất bại: lớp nào?
Thẻ của gói tin không khớp không phải là bản án cho tài khoản. Hãy so sánh hồ sơ mà tiến trình đã nạp, rồi đến cài đặt kênh điều khiển và kênh dữ liệu, trước khi chạm vào khóa.
Hai sự cố được báo cáo bằng cùng một bộ từ vựng và gần như không có điểm chung nào. Một là gói tin có thẻ xác thực không được kiểm chứng; cái kia là một người có thông tin đăng nhập bị từ chối. Coi cái đầu tiên như cái thứ hai sẽ khiến bạn đi tìm một mật khẩu chưa bao giờ là vấn đề.
Thông báo nêu tên một lớp, và công việc hữu ích là quyết định đó là lớp nào trước khi thay bất kỳ vật liệu nào. So sánh các ứng viên cạnh nhau là cách nhanh nhất để thấy sự khác biệt.
Hai sự cố dùng chung một từ
Lỗi xác thực gói tin xuất hiện khi xử lý lưu lượng: thẻ hoặc bản tóm lược trên gói tin nhận được không khớp với giá trị mà bên nhận đã tính. Việc từ chối tài khoản xảy ra sau khi quá trình trao đổi đăng nhập được phân tích, và nó nêu tên người dùng chứ không phải gói tin. Thông báo thứ ba, về việc không tìm thấy HMAC trong gói tin đến, lại khác nữa, vì ở đó gói tin đến hoàn toàn không có phần tử xác thực mong đợi. Tiền tố nhật ký đầy đủ cho bạn biết mình có cái nào trong ba cái, và tiền tố thường là thứ đầu tiên bị cắt bỏ khi dán lỗi vào phiếu hỗ trợ.
Sự phân biệt này thay đổi cách sửa. Một cái đòi hỏi cài đặt kênh khớp nhau, cái khác đòi hỏi trạng thái tài khoản, và cái thứ ba đòi hỏi một hồ sơ không khớp với bộ lắng nghe mà nó đã chạm tới.
So sánh những gì tiến trình đang chạy thực sự đã nạp
Một tệp đúng trên đĩa không chứng minh được gì về một tiến trình đã khởi động trước khi tệp đó được sửa. Hãy kiểm tra hồ sơ được chọn, điểm cuối mà nó đã liên hệ, và liệu dịch vụ đã được nạp lại kể từ thay đổi hay chưa. Cũng xác nhận rằng điểm cuối thuộc về hồ sơ, vì một phiên bản hoặc dịch vụ khác có thể đang lắng nghe ở nơi tệp cũ mong đợi điều gì khác.
Xuất lại một hồ sơ được hỗ trợ từ cùng nguồn là một so sánh rẻ, vì nó loại bỏ sự lệch giữa điều bạn cho là đã cấu hình và điều máy khách thực sự gửi. Tạo vật liệu khóa mới là một bước lớn hơn nhiều, và chỉ hữu ích nếu cả hai đầu cùng chấp nhận nó. Thay một phía tại chỗ sẽ tái tạo lại sự không khớp mà bạn đang cố loại bỏ.
So sánh kênh điều khiển với kênh dữ liệu
Hai cơ chế xác thực các phần khác nhau của một kết nối và được cấu hình riêng, như tài liệu tham chiếu tùy chọn 2.6 mô tả. tls-auth thêm một HMAC vào các gói tin của kênh điều khiển và nhận một đối số hướng phải ngược nhau trên hai phía, trong khi tls-crypt bảo vệ kênh điều khiển bằng một khóa chia sẻ thay vào đó. Không cái nào là phép kiểm tra tính toàn vẹn của chính kênh dữ liệu. Với một mật mã dữ liệu AEAD, phép kiểm tra đó được tích hợp trong mật mã, nên bản tóm lược auth riêng không được dùng theo cách như với mật mã không phải AEAD.
Nghĩa là một dòng auth được sao chép từ một triển khai không phải AEAD đang chạy có thể không liên quan trong một triển khai AEAD, và một triển khai AEAD vẫn có thể thất bại trên kênh điều khiển nếu khóa tls-auth hoặc hướng của nó sai. Hãy so sánh từng cài đặt với phía đối diện, chứ không phải với một cấu hình đã nhớ.
So sánh cách sửa với thuộc tính bạn đánh đổi
Tắt xác thực gói tin làm im lặng cảnh báo và loại bỏ phép kiểm tra đã tìm ra sự không khớp, điều này không giống với việc sửa hồ sơ. Hãy hỏi bạn đang từ bỏ thuộc tính nào và thiết kế còn đứng vững nếu không có nó hay không.
Hãy đọc sự kiện liên quan đầu tiên ở cả hai đầu trước khi thay đổi bất cứ điều gì, rồi chỉ thay đổi sự không khớp mà nó nêu tên.
Nếu lần thử tiếp theo tiến tới một lỗi chứng chỉ hoặc đăng nhập, đó là tiến bộ chứ không phải thoái bộ: lớp gói tin giờ đây đã đồng thuận và kết nối đã đi tiếp. Ghi lại các cài đặt đã tạo ra thay đổi, để người tiếp theo thừa hưởng một lời giải thích thay vì một bí ẩn.