Cả hai tùy chọn đều dùng chung một tệp khóa và cả hai đều khiến lưu lượng bắt tay khó bị giả mạo hơn, vì vậy chúng thường bị coi là hai tên gọi của cùng một tính năng. Không phải vậy. Một bên ký các gói điều khiển, bên kia còn mã hóa chúng, và không bên nào liên quan đến mật mã bảo vệ dữ liệu của bạn.

Sự khác biệt đó quan trọng khi một hồ sơ không kết nối được, khi đánh giá bảo mật hỏi khóa bảo vệ điều gì, và khi ai đó cho rằng tệp bổ sung khiến đường hầm được mã hóa theo cách không xác định.

Khóa chung thực sự bảo vệ điều gì

Khóa mà các tùy chọn này dùng thuộc về kênh điều khiển: trao đổi thương lượng tham số, chứng minh danh tính và tạo ra các khóa dữ liệu. Đây là bí mật được chia sẻ trước mà cả hai đầu phải có trước khi bắt tay có thể tiếp tục. Vì nó nằm trước các bước kiểm tra danh tính, một khóa sai sẽ dừng cuộc trò chuyện sớm hơn so với một mật khẩu sai. Chính thứ tự đó giải thích vì sao chế độ lỗi lại im lặng đến vậy.

tls-auth dùng bí mật đó để tính HMAC trên các gói điều khiển. Gói không có chữ ký hợp lệ bị loại bỏ trước khi đến xử lý TLS đắt hơn, vì vậy tùy chọn này thường được mô tả là bộ lọc đầu tiên chứ không phải thứ thay thế TLS.

tls-crypt đi xa hơn bằng cách mã hóa lưu lượng điều khiển được bảo vệ bên cạnh việc xác thực nó. Nội dung chứng chỉ, tên mật mã đã thương lượng và các chi tiết bắt tay khác không còn hiển thị trên mạng, và một người quan sát không có khóa thậm chí không thấy phiên bản TLS nào đang được thử. Với một triển khai lo lộ dấu vân tay VPN của mình, đặc tính đó là lý do chính để chọn nó. Nó vẫn là bí mật nhóm, không phải thông tin đăng nhập cho từng người dùng.

Không cơ chế nào cấp danh tính. Khóa chung là bí mật nhóm, và ai có nó đều có thể đáp ứng lớp kiểm tra đó.

Hai tùy chọn khác nhau ở đâu

Khác biệt quan sát được là những gì người quan sát thấy. Với tls-auth, bắt tay là hữu hình nhưng không thể xác minh nếu không có khóa. Với tls-crypt, bắt tay là mờ đục với bất kỳ ai không giữ khóa.

Cấu hình cũng khác. tls-auth được dùng với một giá trị hướng, nên một bên dùng một nửa vật liệu khóa và bên kia dùng nửa còn lại. tls-crypt dùng một khóa duy nhất cho cả hai hướng, vì vậy chỉ thị hướng không thuộc về cách bố trí của nó.

Trong các bản phát hành hiện đại, hai tùy chọn loại trừ lẫn nhau. Hồ sơ chỉ nên mang một trong hai, không phải cả hai, và máy chủ với máy khách phải thống nhất dùng cái nào, với vật liệu khóa khớp nhau. Giữ một chỉ thị cũ bên cạnh chỉ thị mới là tàn dư di trú thường gặp. Hãy xóa cái không hoạt động để người đọc tiếp theo biết lớp nào thực sự có hiệu lực.

Một biến thể mới hơn, tls-crypt-v2, gắn mỗi máy khách với khóa được bọc riêng của nó, nhờ đó việc thu hồi một máy khách không đòi hỏi phát hành lại khóa nhóm. Đáng để biết, nhưng đó là tùy chọn khác và không phải từ đồng nghĩa của cả hai cái ở đây.

Vì sao sự không khớp trông như không có gì xảy ra

Khi vật liệu chung không khớp, phía đối diện loại bỏ các gói mà không nói cho người gửi biết lý do. Không có lỗi xác thực nào để đọc, vì gói chưa bao giờ đến được lớp tạo ra nó.

Máy khách thử lại, máy chủ không nói gì, và triệu chứng trông như sự cố mạng. Sau đó người ta khởi động lại dịch vụ, gõ lại mật khẩu tài khoản, hoặc gỡ chỉ thị bảo vệ để «thử», việc này thay đổi triển khai thay vì chẩn đoán nó.

Hãy đọc trong nhật ký máy chủ lời phàn nàn cấp gói đầu tiên thay vì dòng thử lại cuối cùng. Xác nhận cả hai phía mang cùng tùy chọn với vật liệu khóa giống hệt và tệp khóa không bị tạo lại chỉ ở một phía.

Gỡ chỉ thị không phải là sửa chữa an toàn. Nó tắt một lớp bảo vệ cho mọi máy khách, và một đường hầm hoạt động sau đó chỉ chứng minh rằng lớp đó chính là sự không khớp.

Những gì vẫn phải cấu hình riêng

Các tùy chọn này không xác minh phía đối diện là ai. Việc xác thực chứng chỉ, neo tin cậy và tên máy chủ mong đợi vẫn là các yêu cầu riêng, và không điều nào trở thành tùy chọn vì có khóa chung.

Chúng cũng không chọn mật mã dữ liệu. Đó là một thương lượng riêng do cài đặt kênh dữ liệu ở cả hai phía điều khiển, và một đường hầm được bảo vệ bằng tls-crypt vẫn có thể dùng mật mã mà bạn không định.

Cuối cùng, bản thân khóa chung cần được xử lý. Hãy coi nó là bí mật, phân phối qua kênh đã được phê duyệt và thay thế khi bất kỳ ai từng giữ nó rời đi. Vì nó được chia sẻ, việc lộ nó là việc lộ của mọi đầu cuối dùng nó.

Bài viết liên quan