Một phiên đã chạy hàng giờ sẽ không giữ cùng một bộ khóa mãi mãi, và đó là chủ ý. Ba sự kiện khác nhau đều được gọi là luân chuyển khóa: vật liệu phiên mới dưới một liên kết hiện có, dựng lại toàn bộ kết nối, và lặp lại việc kiểm tra danh tính. Mỗi loại có một yếu tố kích hoạt, chi phí và dấu hiệu lỗi khác nhau. Chọn sai thì cách sửa hoặc không làm gì hoặc làm sập đường hầm mà không có lý do.

Quyết định phụ thuộc vào việc tầng nào thực sự đã hết hạn.

Ba thao tác được gọi là luân chuyển

Đổi khóa tạo ra các khóa lưu lượng mới trong mối quan hệ điều khiển hiện có, dùng cơ chế mà giao thức quy định. IKEv2 làm điều này bằng một liên kết bảo mật con mới, TLS 1.3 bằng thông điệp cập nhật khóa, và WireGuard bằng một lần bắt tay mới khi đạt giới hạn về thời gian hoặc số thông điệp. Địa chỉ đường hầm và danh tính đã xác thực vẫn giữ nguyên.

Kết nối lại loại bỏ kết nối và dựng lại từ đầu, điều này lặp lại việc gán địa chỉ, cài đặt tuyến đường và mọi thương lượng mà lần thử đầu tiên đã thực hiện.

Xác thực lại lặp lại chính việc chứng minh danh tính, có thể gồm thông tin đăng nhập, chứng chỉ hoặc yếu tố thứ hai. Nó có thể xảy ra cùng hoặc không cùng với việc kết nối lại, tùy sản phẩm.

Người dùng nhận thấy gì khi gia hạn

Đổi khóa nên gần như vô hình. Các định danh liên kết thay đổi, bộ đếm có thể được đặt lại, và ứng dụng vẫn giữ socket của mình; một khoảng dừng ngắn theo một hướng là bình thường trong lúc trao đổi. Thấy một định danh mới trong danh sách trạng thái không phải bằng chứng của lỗi. Dòng nhật ký sau cuộc trao đổi mới cho biết nó đã xong hay chưa.

Một lần rớt thật khi gia hạn chỉ vào một điểm cụ thể. Đề xuất không khớp, thông tin đăng nhập hết hạn hoặc đường đi thay đổi mỗi thứ tạo ra một dòng nhật ký khác nhau, và chỉ một trong số đó được sửa bằng cách điều chỉnh thời hạn.

Ba thao tác khác nhau ở đâu trong thực tế

Nếu thứ duy nhất hết hạn là vật liệu khóa, hãy đổi khóa. Nếu địa chỉ ngang hàng, tuyến đường hoặc ràng buộc NAT đã thay đổi và gói tin không còn đến, hãy kết nối lại. Nếu tổ chức yêu cầu kiểm tra danh tính định kỳ, đó là xác thực lại và không có điều chỉnh thời hạn nào thay thế được.

Giá trị mặc định của giao thức thường chứa câu trả lời đúng. WireGuard đổi khóa sau ngưỡng thời gian và khối lượng dữ liệu mà không cần người dùng thao tác; thời hạn IKEv2 được thương lượng cho từng liên kết con; đường hầm dựa trên TLS luân chuyển khóa trong phiên hiện có. Tăng thời hạn để tránh lỗi lặp lại chỉ trì hoãn sự cố và kéo dài phơi nhiễm nếu khóa bị xâm phạm.

Một lưu ý quan trọng với phiên dài: tần suất một mình không tạo ra bí mật chuyển tiếp. Thuộc tính này phụ thuộc vào cách khóa phiên liên hệ với bí mật dài hạn và việc khóa cũ có bị hủy hay không, đây là vấn đề thiết kế và triển khai, không phải cấu hình.

Chọn giá trị mặc định, rồi ghi lại giai đoạn

Giữ giá trị mặc định của nhà cung cấp trừ khi yêu cầu đã được ghi thành văn nói khác, và nếu có đổi thời hạn thì đổi ở cả hai phía. Sau đó ghi lại mỗi sự kiện đã đạt tới giai đoạn nào, để lần sau có thể đối chiếu với đúng điểm đó trong quá trình bắt tay.

swanctl --list-sas
ip xfrm state | grep -E 'proto|replay-window'
wg show
journalctl -u strongswan --since '1 hour ago' | grep -i -E 'rekey|rekeyed|child'

Sau khi sửa, hãy thực hiện một lần gia hạn có kiểm soát và gửi lưu lượng ứng dụng mới qua liên kết mới. Một đường hầm báo đã thiết lập nhưng không chuyển tiếp gì chính là lỗi mà bước kiểm tra này tồn tại để bắt.

Bài viết liên quan