Chuỗi chứng chỉ của máy chủ có thể ghi đè kho tin cậy của máy khách không?
Một chuỗi đầy đủ là bằng chứng, không phải mệnh lệnh. Việc xác thực diễn ra trên máy khách với các neo riêng của nó, nên không máy chủ nào có thể áp đặt quyết định tin cậy.
Trình duyệt hiển thị cảnh báo chứng chỉ trên một trang có chuỗi đầy đủ, và phản xạ đầu tiên là sửa máy chủ. Thông thường máy chủ trình bày đúng những gì nó nên trình bày. Máy khách quyết định chấp nhận những neo nào, và không cách sắp xếp chứng chỉ trung gian nào có thể thay đổi quyết định đó từ đầu bên kia của kết nối. Ranh giới đó giải thích phần lớn những gì trông giống sự cố chứng chỉ.
Việc xác thực chạy trên máy khách, với các neo của máy khách
Xác thực đường dẫn lấy các chứng chỉ được trình bày và xây dựng chuỗi đến một neo tin cậy mà hệ thống xác thực đã có. RFC 5280 mô tả mô hình đó, và đặt việc chọn neo ở phần triển khai cục bộ chứ không phải ở máy chủ. Một ứng dụng có thể thêm chính sách riêng lên trên: một khóa được ghim, một kho tin cậy doanh nghiệp, hoặc kiểm tra danh tính chặt chẽ hơn. Danh sách chứng chỉ mà máy chủ gửi là bằng chứng được đề nghị cho tiến trình đó, không bao giờ là mệnh lệnh cho tiến trình đó.
Vậy một chuỗi đầy đủ chứng minh máy chủ có các mảnh. Nó không chứng minh máy khách sẽ chấp nhận chúng.
Để xem máy chủ thực sự gửi gì, hãy chạy openssl s_client -connect app.example.net:443 -servername app.example.net -showcerts và đếm các chứng chỉ trong đầu ra. Một chuỗi không đầy đủ ở đó là bản sửa phía máy chủ. Một chuỗi đầy đủ chuyển câu hỏi sang máy khách và các neo của nó, nơi máy chủ không có tiếng nói.
Kiểm tra TLS thực sự thay đổi điều gì
Thiết bị kiểm tra kết thúc phiên TLS phía máy khách và mở một phiên riêng đến dịch vụ thật. Máy khách sau đó xác thực chứng chỉ của thiết bị, chứng chỉ này phải nối chuỗi đến một neo mà máy khách tin cậy. Đó là lý do các thiết bị được quản lý nhận gốc kiểm tra qua quản lý thiết bị, và đó là lý do một thiết bị cá nhân không có nó hiển thị cảnh báo.
Cách sắp xếp là có chủ đích và cục bộ. Không gì trong chuỗi của máy chủ gốc có thể buộc một trình duyệt không được quản lý chấp nhận danh tính thay thế, và không gì trong đó ngăn một thiết bị được quản lý làm điều đó.
Kết thúc VPN không phải giải mã HTTPS
Một lớp VPN vận chuyển gói giữa máy khách và cổng. Việc gỡ bỏ nó, hay đọc cấu hình của nó, không làm lộ tải trọng HTTPS bên trong.
Phiên TLS vẫn chạy giữa trình duyệt và máy chủ web, với cùng các quy tắc xác thực, trừ khi có thứ gì đó kết thúc nó một cách rõ ràng. Nhầm lẫn hai lớp tạo ra yêu cầu quản trị viên VPN cung cấp chứng chỉ, trong khi chứng chỉ đó thuộc về proxy kiểm tra hoặc chính trang web. Hãy hỏi thành phần nào đang trình bày chứng chỉ trước khi thay đổi bất kỳ kho tin cậy nào.
Đặt kỳ vọng trong thành phần bạn kiểm soát
Nếu bạn vận hành ứng dụng và máy khách của nó, hãy cùng xác định danh tính dịch vụ mong đợi, các nhà phát hành được chấp nhận và mọi yêu cầu về ghim hoặc xác thực máy khách. Lập kế hoạch gia hạn và phục hồi để một thay đổi chứng chỉ hợp pháp không trở thành gián đoạn. Nếu bạn chỉ vận hành máy chủ công khai, hãy ghi lại loại xác thực bạn yêu cầu và những môi trường máy khách bạn hỗ trợ. Gửi một chuỗi ưu tiên không chứng nhận thiết bị của người lạ.
Trên thiết bị được quản lý, hãy giải quyết không tương thích qua chủ sở hữu ứng dụng và mạng. Tắt xác thực, thêm một gốc không giải thích, hoặc cố vượt qua chính sách kiểm tra không thiết lập mối quan hệ ngang hàng dự định.
Kiểm tra kết quả trên một hồ sơ máy khách sạch, không phải trên máy đã thêm ngoại lệ. Đó là kiểm tra duy nhất cho thấy một thiết bị mới sẽ trải nghiệm gì.