Bạn đến trang chứng chỉ của một thiết lập VPN, thấy một tùy chọn tự ký miễn phí bên cạnh một CA công khai trả phí, và câu hỏi nghe như một lựa chọn bảo mật. Thực ra đây là lựa chọn đối tượng. Cả hai tùy chọn đều mã hóa đường hầm bằng cùng những nguyên thủy, và cả hai trở nên vô giá trị nếu khóa riêng rò rỉ. Điều phân biệt chúng là ai đưa ra tuyên bố về danh tính của máy chủ và ai ở vị trí có thể kiểm tra tuyên bố đó.

Một chứng chỉ làm hai việc thường bị nhầm lẫn

Một chứng chỉ gắn khóa công khai với một tên, và khóa thực hiện công việc mã hóa và ký. Chữ ký trên chứng chỉ là một tuyên bố riêng: một cơ quan nào đó đã kiểm tra rằng tên thuộc về chủ sở hữu khóa này. Chứng chỉ tự ký đưa ra tuyên bố đó về chính nó, điều này hoàn toàn không phải tuyên bố của bên thứ ba.

Các trang web công khai cần phiên bản bên thứ ba, vì khách truy cập đến mà không có quan hệ trước và dựa vào kho tin cậy của trình duyệt. Một ứng dụng VPN không phải người lạ. Bạn cung cấp cho nó chứng chỉ CA, hoặc ghim chứng chỉ máy chủ, bên trong hồ sơ mà nó cài đặt, nên việc xác minh chạy đúng với cơ quan bạn đã chọn. Không cần CA thương mại nào tham gia để việc kiểm tra đó có ý nghĩa.

Sức mạnh của phiên kết quả đến từ kích thước khóa và bộ mật mã, không phải từ người ký. Đó là lý do gọi một chứng chỉ tự ký là "mã hóa ít hơn" đơn giản là sai; nó được bảo lãnh ít rộng rãi hơn, đó là một thuộc tính khác.

Nơi CA công khai kiếm được khoản phí của mình

Trường hợp rõ ràng nhất là trang quản trị. Nếu đồng nghiệp, nhà thầu hoặc bất kỳ ai không có hồ sơ chuẩn bị sẵn phải mở giao diện web của máy chủ VPN mà không có cảnh báo của trình duyệt, một chứng chỉ được tin cậy công khai loại bỏ ma sát đó. Trình duyệt đã tin người ký, nên không có gì để nhập và không có gì để giải thích.

Sự tiện lợi đó có chi phí đáng nêu trước khi mua. Việc gia hạn phải được tự động hóa, nếu không trang sẽ hỏng theo lịch, chứng chỉ công khai phơi bày tên máy chủ trong nhật ký minh bạch chứng chỉ, và giới hạn tốc độ cấp phát trừng phạt một script thử lại quá hăng hái. Không điều nào là lý do để tránh CA công khai, nhưng đó là công việc vận hành mà CA riêng chuyển đi nơi khác.

Điều chứng chỉ công khai không làm là xác thực người dùng của bạn. Danh tính của ứng dụng khách là một quyết định riêng, được thực hiện bằng chứng chỉ khách, mật khẩu hoặc yếu tố thứ hai, và CA ký máy chủ không nói gì về việc ai được phép kết nối với nó.

Nơi CA riêng phù hợp với VPN

Đối với VPN riêng với một tập khách hàng đã biết, vận hành CA của riêng bạn là lựa chọn thông thường. Bạn tạo CA một lần, ký chứng chỉ máy chủ bằng tên mà khách sẽ dùng, và phân phối chứng chỉ CA trong từng hồ sơ. Sau đó mỗi khách xác minh máy chủ với cơ quan của bạn, và không bên ngoài nào biết tên máy chủ.

Chi phí là thật nhưng có giới hạn. Trình duyệt sẽ cảnh báo khi ai đó mở trang quản trị trực tiếp, vì trình duyệt không có lý do để tin CA của bạn. Việc phân phối hồ sơ trở thành một phần của quá trình giới thiệu, và xoay CA nghĩa là chạm vào từng khách. Đó là những mức giá chấp nhận được cho một dịch vụ với mười hoặc năm mươi người dùng đã biết và đau đớn cho một điểm cuối công khai với hàng nghìn.

Một điều kiện khiến toàn bộ sắp xếp có hiệu lực: việc xác minh phải diễn ra. Một khách được cấu hình để bỏ qua lỗi chứng chỉ chấp nhận bất kỳ máy chủ nào trình bày bất kỳ chứng chỉ nào, nên bảo đảm danh tính biến mất trong khi mã hóa vẫn còn. Cài đặt đó chính là điểm yếu thực sự trong hầu hết câu chuyện "tự ký là không an toàn".

Khóa riêng của CA quyết định những gì bạn có thể làm sau này

Điều bất ngờ thường đến sau nhiều tháng, khi bạn muốn thêm một thiết bị. Việc cấp chứng chỉ khách cần khóa riêng của CA, và việc tạo danh sách thu hồi cũng vậy. Nếu bạn thừa hưởng một máy chủ có các tệp chứng chỉ và khóa nhưng không có khóa CA, bạn không thể ký bất cứ điều gì mới. Các lựa chọn của bạn là xây dựng lại PKI và trao cho mỗi khách một chứng chỉ CA mới, hoặc chuyển sang xác thực bằng mật khẩu, một mô hình bảo mật khác và không khôi phục những gì đã mất.

Hai cái bẫy nhỏ hơn sống trong cùng lãnh thổ. Các script easy-rsa giả định bạn đứng trong thư mục chứa chúng, nên lỗi thiếu tệp thường có nghĩa là sai vị trí chứ không phải cài đặt hỏng. Và một thiết kế chỉ dùng chứng chỉ là hoàn toàn hợp lệ: bạn có thể yêu cầu chứng chỉ khách mà không cần khóa chia sẻ trước, miễn là mỗi khách có một cái và máy chủ xác minh chuỗi.

Cấp một chứng chỉ cho mỗi thiết bị thay vì một chứng chỉ khách dùng chung cho cả nhóm. Khi đó một laptop bị mất chỉ khiến bạn tốn một lần thu hồi thay vì cấp lại cho tất cả.

Kiểm tra những gì bạn thừa hưởng

Trước khi lên kế hoạch cho bất kỳ thay đổi nào, hãy đọc chứng chỉ bạn đã có:

$ openssl x509 -in server.crt -noout -subject -issuer -dates
subject=CN = vpn.example.net
issuer=CN = vpn.example.net
notAfter=Nov  3 09:00:00 2027 GMT
$ openssl verify -CAfile ca.crt server.crt
server.crt: OK

Nếu nhà phát hành bằng chủ thể, chứng chỉ là tự ký, đó là lựa chọn thiết kế chứ không phải khiếm khuyết. Các ngày cho bạn biết khi nào việc gia hạn trở thành vấn đề của ai đó, và việc xác minh thành công với CA bạn định triển khai xác nhận chuỗi hoạt động trước khi một khách duy nhất thử nó.

Sau đó chọn theo đối tượng và phân phối: CA công khai khi trình duyệt không xác định phải tin trang quản trị, CA riêng khi mỗi khách nhận một hồ sơ do bạn kiểm soát. Không câu trả lời nào được mã hóa nhiều hơn câu kia.

Bài viết liên quan