Một tên chung, hai chứng chỉ: danh sách cho phép hay thu hồi?
Cấp lại chứng chỉ cho cùng một tên chung để chứng chỉ cũ vẫn còn hiệu lực. Danh sách tên không thể phân biệt hai chứng chỉ; chỉ CRL hoặc kiểm tra số sê-ri mới làm được.
Cấp lại chứng chỉ máy tính xách tay dưới cùng một tên chung có cảm giác như thay thế, và mọi người cho rằng cái cũ đã chết. Không phải vậy. Chứng chỉ tiền nhiệm vẫn là một chứng chỉ hợp lệ được ký bởi cùng một tổ chức, và bất kỳ kiểm soát nào cho phép máy khách theo tên sẽ tiếp tục cho phép nó. Điều phân biệt kiểm tra danh tính với kiểm tra thông tin xác thực là số sê-ri, và đó là nơi bản sửa phải nằm.
Bắt đầu với chính sách đặt tên mà máy chủ sử dụng
Hai biện pháp kiểm soát bị nhầm lẫn: cho phép máy khách vì nó tự nhận là ai, và loại bỏ một chứng chỉ cụ thể khỏi dịch vụ. Cái đầu là kiểm tra tên, cái sau là kiểm tra thu hồi. Chúng trả lời những câu hỏi khác nhau, và một triển khai có thể có cái này mà không có cái kia.
Đọc cấu hình máy chủ và ghi lại nguồn danh tính nào đang được dùng. username-as-common-name biến tên người dùng đã xác thực thành tên hiệu lực cho các tra cứu riêng của máy khách. Không có nó, tên chung của chủ thể từ chứng chỉ được dùng. Dù câu trả lời là gì, hãy ghi lại trước khi chạm vào bất kỳ danh sách cho phép nào.
Hai đường đi tạo ra một tập tên được phép khác nhau cho cùng một chứng chỉ. Đoán ở đây nghĩa là sửa sai tệp và kết luận rằng kiểm soát không hoạt động.
Kiểm tra điều gì thực sự cho phép máy khách
Một client-config-dir có tệp khớp cung cấp tùy chọn riêng cho máy khách; tự nó không phải quy tắc cho phép. Cho phép theo tên cần ccd-exclusive, thứ từ chối các máy khách không có tệp khớp. Bật nó trên một triển khai đang chạy sẽ ngắt kết nối mọi người có tên không có tệp, vì vậy hãy đếm số tệp trước khi thay đổi bất cứ điều gì.
grep -nE 'ccd-exclusive|client-config-dir|username-as-common-name' /etc/openvpn/server/server.conf
ls -1 /etc/openvpn/ccd/Số lượng chính là phép kiểm tra: so sánh danh sách thư mục với các danh tính bạn mong đợi sẽ kết nối.
Sau đó xác nhận rằng mỗi tên tệp khớp chính xác với danh tính hiệu lực, kể cả chữ hoa chữ thường và khoảng trắng. Một tệp cho office-laptop không làm gì cho chứng chỉ có chủ thể đọc là Office-Laptop. Khoảng trắng ở cuối cũng ẩn khỏi danh sách thông thường, và đó là cách một tệp trông như có mặt lại không được đọc.
Kiểm tra CRL mà cổng kết nối tải
CRL đặt tên các chứng chỉ bị thu hồi theo nhà phát hành và số sê-ri, và đó là độ chi tiết mà kiểm tra tên thiếu. Hai chứng chỉ có thể chia sẻ một tên chung và khác nhau ở số sê-ri, và chỉ danh sách ở cấp số sê-ri mới tách được chúng.
Xác nhận đường dẫn đã cấu hình, ngày phát hành và trường cập nhật tiếp theo trước khi tin tệp.
openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
openssl x509 -in office-laptop.crt -noout -serial -subjectSo sánh số sê-ri trong CRL với số sê-ri trên chứng chỉ bạn định giữ. Phép so sánh đó là toàn bộ bài kiểm tra, và làm một lần bằng mắt đáng giá hơn tin một tập lệnh mà không ai đọc. Phân phối CRL đã cập nhật qua đường dẫn mà cổng kết nối đã đọc. Một CRL nằm sai thư mục không thực thi gì, và không nhật ký máy khách nào nhắc đến nó.
Thay thế, rồi chứng minh cả hai kết quả
Phát hành bản thay thế dưới cùng tên chung, ghi lại cả hai số sê-ri, và chỉ sau đó thu hồi cái cũ. Thứ tự đó giữ một danh tính đang hoạt động sẵn sàng trong khi bạn chuẩn bị thay đổi.
Kiểm tra bản thay thế trước: nó phải xác thực được và đến được mọi thứ mà tên của nó có quyền. Sau đó kiểm tra chứng chỉ cũ và xác nhận nó bị từ chối, vì một lần thay thế thành công không nói gì về việc thu hồi. Nếu cả hai vẫn kết nối, đầu vào thu hồi không được đọc hoặc số sê-ri cũ chưa bao giờ được liệt kê. Nếu không cái nào kết nối, bạn đã làm hỏng quy tắc cho phép chứ không phải thông tin xác thực.
Các phiên đã thiết lập là vấn đề riêng, vì thu hồi áp dụng cho xác thực mới trừ khi cổng kết nối cũng được cấu hình để ngắt các kết nối đang sống. Hãy quyết định xem có cần loại bỏ ngay lập tức không trước khi hứa với ai.
Điều mà kiểm tra tên không bao giờ làm được
Danh sách cho phép trả lời liệu danh tính này có được kết nối không. Nó không thể nói danh tính đó đã dùng chứng chỉ nào, và nó sẽ cho phép một thông tin xác thực cũ chừng nào thông tin đó còn hiệu lực và chưa bị thu hồi. Khoảng trống đó lộ ra trong một sự cố, khi bản thay thế được phát hành nhiều tháng trước và cái tiền nhiệm vẫn hoạt động.
Khi cần kiểm soát ở cấp chứng chỉ, hãy dùng một cơ chế nêu tên chứng chỉ: các mục CRL, hoặc một hook xác minh kiểm tra dấu vân tay do người vận hành duy trì. Cả hai đều tốn công bảo trì, và cả hai đều trung thực về đối tượng mà chúng kiểm tra. hướng dẫn OpenVPN 2.6 ghi lại crl-verify và việc cho phép riêng cho máy khách như những tùy chọn tách biệt, chính vì lý do đó.
Ghi lại biện pháp kiểm soát nào làm việc gì, rồi kiểm tra trường hợp phủ định. Một lần thu hồi mà bạn chưa bao giờ thấy từ chối một kết nối là một cấu hình mà bạn hy vọng sẽ hoạt động.