Việc thu hồi không bao giờ đi vào một đường hầm đang chạy để xóa phiên. Danh sách là đầu vào của việc xác minh chứng chỉ và được tra cứu trong quá trình trao đổi kênh điều khiển mở phiên TLS. Một sự thật đó giải thích cả hai điều bất ngờ: máy khách đã bị thu hồi kết nối lại vì danh sách chưa bao giờ đến được bộ xác minh, và một phiên đang tồn tại vẫn sống vì không ai xác minh lại bất cứ điều gì.

Danh sách là đầu vào, không phải hành động

Khi thiết lập phiên, máy chủ xác thực chứng chỉ máy khách theo các điểm neo tin cậy của mình, và chỉ thị thu hồi thêm một lần tra danh sách vào quyết định đó. Việc kiểm tra diễn ra trên máy chủ, nên máy khách không thể thấy chứng chỉ của mình đã bị thu hồi và tiếp tục đưa ra đúng chứng chỉ đó. Vì vậy một hồ sơ vẫn kết nối được chỉ chứng minh rằng một bộ xác minh nào đó đã chấp nhận chuỗi, chứ không phải việc thu hồi đã thất bại.

Bản thân danh sách là một đối tượng đã ký với ngày phát hành và ngày cập nhật kế tiếp. Một danh sách không liên quan, một danh sách do cơ quan khác ký hoặc một danh sách đã quá ngày cập nhật kế tiếp không thay thế được danh sách hiện tại, và việc một danh sách cũ bị từ chối hay được chấp nhận lặng lẽ phụ thuộc vào cách triển khai.

Kết nối mới so với phiên đang chạy

Việc thu hồi được đánh giá khi một phiên được thiết lập hoặc thương lượng lại, không phải trên kênh dữ liệu ở từng gói. Một máy khách đã kết nối giữ khóa lưu lượng, nên vẫn cho gói đi qua sau khi chứng chỉ của nó xuất hiện trên danh sách. Khoảng thương lượng lại mặc định được đo bằng giờ, vì thế một danh sách cập nhật có thể có hiệu lực với người mới trong khi đường hầm đang chạy vẫn tồn tại.

SituationWhat the list doesWhen it applies
Fresh connectionBlocks the handshakeAt verification, immediately
RenegotiationBlocks the new exchangeAt the next renegotiation interval
Established data channelNothingUntil the session ends

Việc thực thi ngay lập tức đòi hỏi một hành động có chủ đích chứ không chỉ danh sách. Khởi động lại dịch vụ buộc mọi máy khách kết nối lại, trong khi kết thúc một phiên qua giao diện quản trị để các phiên khác không bị đụng tới. Hãy chọn một cách cho mỗi sự cố và ghi lại cách bạn đã dùng. Hai lựa chọn có phạm vi ảnh hưởng khác nhau, và đó là quyết định thực sự.

Giao đúng tệp mà bộ xác minh thực sự đọc

Danh sách phải được tạo từ hồ sơ của cơ quan rồi sao chép đến mọi máy có xác minh chứng chỉ. Tạo nó trên máy chủ CA mà không bao giờ cài lên máy chủ là lỗi phổ biến nhất, và nó trông đúng như một tính năng thu hồi bị hỏng.

ca ca.crt
cert server.crt
key server.key
crl-verify /etc/openvpn/crl.pem

Hai chi tiết quyết định tệp có thực sự được đọc hay không. Một đường dẫn tương đối được phân giải theo thư mục cấu hình, nên một bản sao để lại trong thư mục nhà của người vận hành có thể không bao giờ được tìm thấy. Và tiến trình nền thường từ bỏ quyền sau khi khởi động, nên tài khoản chạy cần quyền tìm kiếm trên mọi thư mục cha và quyền đọc trên tệp. Hãy kiểm tra cả hai bằng tài khoản chạy chứ không phải root, nếu không bài kiểm tra sẽ chứng minh điều sai.

Trên máy chủ systemd, một unit được gia cố cũng có thể che đường dẫn, bằng chế độ xem chỉ đọc hoặc một thư mục hệ thống được bảo vệ. Từ bên trong dịch vụ, điều đó không thể phân biệt với một tệp bị thiếu, nên hãy kiểm tra các giới hạn của unit trước khi đi tìm lỗi phân quyền. Hãy đọc tệp unit trước khi đổ lỗi cho chế độ của tệp.

Xác nhận trên máy chủ, không phải trên máy khách

Nhật ký máy chủ gọi tên điều đã xảy ra: mở danh sách, tải nó hoặc xác minh thất bại với số sê-ri đã bị thu hồi. Máy khách chỉ báo một lỗi bắt tay chung chung, vì thế nhật ký máy khách là nơi tồi để tìm một quyết định thu hồi.

Hãy xác minh bằng một lần thử mới từ hồ sơ đã thu hồi rồi dừng lại. Một kết nối thành công từ hồ sơ đó là dấu hiệu để kiểm tra đường dẫn tệp và tài khoản chạy, không phải để cho rằng danh sách đã sai. Hãy giữ lần thử thành công đó làm bài kiểm tra chấp nhận, và đừng tính một lần kết nối lại mà bạn không quan sát.

Điều gì không thu hồi gì cả

Xóa hồ sơ khỏi máy tính xách tay, gỡ tệp chứng chỉ khỏi máy khách hoặc bảo người dùng ngừng kết nối không thay đổi gì trên máy chủ. Chứng chỉ vẫn hợp lệ cho đến khi cơ quan ghi nhận việc thu hồi và bộ xác minh đọc danh sách kết quả.

Đó cũng là lý do nên viết chuỗi ra: ghi nhận việc thu hồi, tạo và ký danh sách, phân phối đúng tệp đó, và xác nhận tài khoản dịch vụ đọc được nó. Mỗi mắt xích đều ngắn, và bất kỳ mắt nào thiếu cũng để một máy khách đã bị thu hồi vui vẻ kết nối. Một danh sách kiểm tra bốn dòng thắng một giả định không có dòng nào.

Bài viết liên quan