몇 시간째 켜져 있는 세션이 같은 키를 영원히 유지하지는 않으며, 그것은 의도된 설계입니다. 세 가지 다른 사건이 키 회전이라고 불립니다 — 기존 연결 아래의 새 세션 자료, 연결의 완전한 재구축, 그리고 신원 확인의 반복입니다. 각각 방아쇠도, 비용도, 실패 징후도 다릅니다. 잘못 고르면 수정은 아무것도 하지 않거나 이유 없이 터널을 내립니다.

판단은 실제로 어느 계층이 만료되었는지에 달려 있습니다.

회전이라고 불리는 세 가지 작업

리키는 프로토콜이 정의한 방식을 사용해 기존 제어 관계 안에서 새 트래픽 키를 만듭니다. IKEv2는 새 자식 보안 연결로, TLS 1.3은 키 업데이트 메시지로, WireGuard는 시간 또는 메시지 한도에 도달하면 새 핸드셰이크로 이를 수행합니다. 터널 주소와 인증된 신원은 그대로 남습니다.

재연결은 연결을 버리고 처음부터 다시 만들며, 이는 주소 할당, 라우팅 설정, 첫 시도가 수행한 모든 협상을 반복합니다.

재인증은 신원 증명 자체를 반복하며, 여기에는 자격 증명, 인증서 또는 두 번째 요소가 포함될 수 있습니다. 제품에 따라 재연결과 함께 또는 없이 일어날 수 있습니다.

갱신 시 사용자가 알아차리는 것

리키는 거의 보이지 않아야 합니다. 연결 식별자가 바뀌고 카운터가 초기화될 수 있으며 애플리케이션은 소켓을 유지합니다(교환 중 한 방향의 짧은 멈춤은 정상입니다). 상태 목록에서 새 식별자가 보이는 것은 결함의 증거가 아닙니다. 교환 뒤에 오는 로그 줄이 완료되었는지 알려줍니다.

갱신 시 실제 끊김은 특정 지점을 가리킵니다. 제안 불일치, 만료된 자격 증명, 경로 변경은 각각 다른 로그 줄을 만들며, 그중 하나만 수명 조정으로 고쳐집니다.

실무에서 셋이 갈리는 지점

만료된 것이 키 자료뿐이라면 리키입니다. 피어 주소, 경로, NAT 바인딩이 바뀌어 패킷이 더 이상 도착하지 않는다면 재연결입니다. 조직이 정기적인 신원 확인을 요구한다면 그것은 재인증이며 어떤 수명 조정도 이를 대신하지 못합니다.

프로토콜 기본값은 대개 정답을 담고 있습니다. WireGuard는 사용자 조작 없이 시간과 데이터량 임계값 뒤에 키를 바꾸고, IKEv2 수명은 자식 연결마다 협상되며, TLS 기반 터널은 기존 세션 안에서 키를 회전합니다. 반복되는 오류를 피하려고 수명을 늘리면 실패를 미루고, 키가 유출될 경우 노출을 길게 만듭니다.

긴 세션에는 빈도만으로는 전방 비밀이 생기지 않는다는 한 가지 주의가 중요합니다. 이 속성은 세션 키가 장기 비밀과 어떻게 관계되는지, 오래된 키가 파기되는지에 달려 있으며, 이는 설정이 아니라 설계와 구현의 문제입니다.

기본값을 고르고, 그다음 단계를 기록하라

문서화된 요구가 달리 말하지 않는 한 공급업체 기본값을 유지하고, 수명을 바꾼다면 양쪽 피어에서 모두 바꾸십시오. 그런 다음 각 사건이 어느 단계에 도달했는지 기록해, 다음 발생을 핸드셰이크의 같은 지점과 대조할 수 있게 하십시오.

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'

수정 뒤에는 통제된 갱신을 수행하고 새 연결을 통해 새 애플리케이션 트래픽을 보내십시오. 설정되었다고 보고하면서 아무것도 전달하지 않는 터널이 바로 이 확인이 잡아내려는 실패입니다.

관련 글