SSTP máy khách SSTP chỉ chấp nhận máy chủ sau khi xác thực TLS thành công, và lần kiểm tra đó so sánh một tên, một chuỗi và một mục đích. Tên đến từ hồ sơ kết nối, không phải từ địa chỉ mà bạn tình cờ ping được. Khi một trong ba điều không khớp, máy khách báo lỗi chứng chỉ và không bao giờ đến được lời nhắc đăng nhập.

Tên trong hồ sơ quyết định nội dung được kiểm tra

SSTP chạy TLS trên TCP 443, nên máy khách hành xử như mọi máy khách TLS khác: lấy tên máy chủ từ hồ sơ, yêu cầu tên đó và so sánh chứng chỉ với nó. Nếu bạn gõ địa chỉ IP vào hồ sơ, việc so sánh trở thành so sánh địa chỉ IP, điều mà hầu hết chứng chỉ máy chủ không đáp ứng.

Vì vậy một thử nghiệm trên trình duyệt có thể thành công trong khi VPN thất bại, do trình duyệt dùng tên khác với hồ sơ. Sự phân tách tương tự xuất hiện khi DNS split-horizon phân giải tên máy chủ VPN thành địa chỉ nội bộ trong khi trình duyệt đã đến một địa chỉ công cộng. Trước hết hãy căn hồ sơ với tên máy chủ đã được ghi lại, rồi so sánh chứng chỉ. Bất cứ điều gì khác bạn thay đổi trước đó đều là phỏng đoán.

Chứng chỉ máy chủ phải mang những gì

Các máy khách hiện đại so khớp với phần mở rộng tên thay thế của chủ thể, nên tên máy chủ phải có ở đó dưới dạng mục DNS. Chỉ tên chung là không đủ cho các ngăn xếp xác thực ngày nay, và ký tự đại diện bao phủ một nhãn chứ không phải bất kỳ miền con nào bạn nghĩ ra. Ba chứng chỉ minh họa ranh giới: đúng tên nhưng sai mục đích thì xác nhận danh tính rồi thất bại ở bước kiểm tra mục đích, đúng tên và mục đích nhưng thiếu chứng chỉ trung gian thì thất bại ở chuỗi, và một tên chỉ xuất hiện trong tên chung thì thất bại trước khi một trong hai điều kia có ý nghĩa.

Chứng chỉ cũng cần mục đích xác thực máy chủ, giá trị sử dụng khóa mở rộng được nêu trong đặc tả SSTP của Microsoft, tức serverAuth với định danh đối tượng 1.3.6.1.5.5.7.3.1. Việc sử dụng khóa và một chuỗi hợp lệ hoàn thiện bộ. Một chứng chỉ có trên máy chủ, được cấp cho đúng tên nhưng chỉ để xác thực máy khách, vẫn thất bại.

Kiểm tra chuỗi và đồng hồ trước thông tin đăng nhập

Sự cố thời gian và tin cậy tạo ra cùng kết quả nhìn thấy như tên không khớp, và cả hai đều rẻ hơn để chẩn đoán so với vấn đề mật khẩu. Kiểm tra đồng hồ của máy chủ và đồng hồ của máy khách, rồi đọc chuỗi theo cách máy khách nhìn thấy:

# from the client, or any host that runs openssl
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts </dev/null 2>/dev/null | openssl x509 -noout -subject -dates -ext subjectAltName
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -verify_return_error </dev/null
# on the Windows server that holds the SSTP listener
w32tm /query /status

Lệnh đầu tiên in ra tên, cửa sổ hiệu lực và các tên thay thế mà máy khách sẽ so sánh. Lệnh thứ hai báo cáo lỗi xác minh cùng chuỗi như được trình bày, và đó là nơi chứng chỉ trung gian thiếu xuất hiện. Trên Windows, truy vấn dịch vụ thời gian cho bạn biết đồng hồ đang được chỉnh hay chỉ đơn giản là đã trôi.

Một CA nội bộ thêm một điều kiện nữa: máy khách phải tin tưởng CA đó. Cài đặt gốc của tổ chức qua kênh phân phối đã được phê duyệt, không phải từ một trang đề nghị chứng chỉ thay thế, vì quyết định đó chính là toàn bộ mô hình tin cậy thu nhỏ.

Xác thực máy chủ và xác thực người dùng là các giai đoạn tuần tự với những thất bại khác nhau. Lỗi chứng chỉ nghĩa là máy khách chưa bao giờ tin máy chủ, còn mật khẩu bị từ chối nghĩa là nó đã tin máy chủ và thông tin đăng nhập sai. Tắt xác thực chứng chỉ để đến lời nhắc mật khẩu là loại bỏ sự bảo đảm thay vì sửa nó. Để chứng minh phần còn lại của đường đi hoạt động, hãy thử cùng tên máy chủ và cổng từ một máy khách đã tin chuỗi, và để nguyên hồ sơ đã triển khai.

Sửa tên hoặc chứng chỉ rồi kiểm tra lại

Ba điều kiện quyết định việc sửa. Nếu tên trong hồ sơ sai, sửa hồ sơ hoặc thêm tên còn thiếu vào chứng chỉ. Nếu chuỗi không đầy đủ, cài chứng chỉ trung gian trên máy chủ. Nếu mục đích sai, cấp lại thay vì vá quanh nó.

Sau thay đổi, kết nối lại bằng máy khách được hỗ trợ và xác nhận rằng lời nhắc đăng nhập xuất hiện, rồi đường hầm đi lên. Ghi lại trong phiếu tên máy chủ đã dùng, nhà phát hành và ngày hết hạn. Chính bản ghi đó biến lần gia hạn tiếp theo thành một việc đã lên lịch thay vì một sự cố nữa, và cũng cho người tiếp theo thấy điều kiện nào trong ba điều kiện thực sự bị hỏng.

Bài viết liên quan