클라이언트 키를 담은 노트북을 잃어버렸을 때 첫 조치는 보통 로컬 사본을 삭제하는 것이다. 그것은 서버에서 아무것도 바꾸지 않는다. 서버는 누군가 제거하기 전까지 그 키를 받아들일 권한을 여전히 보유한다. 교체는 두 가지 작업이며, 옛 자격 증명과 관련된 것은 두 번째뿐이다.

로컬 사본은 권한이 아니다

VPN 자격 증명이 받아들여지는 이유는 서버 측 구성이 그렇게 정하기 때문이다. 인증서의 경우 인증서가 신뢰할 수 있는 발급자에 연결되고 게이트웨이가 참조하는 폐기 목록에 없음을 뜻한다. WireGuard의 경우 피어의 공개 키가 인터페이스 구성에 있음을 뜻한다. 클라이언트에서 파일을 지우면 비밀의 사본 하나가 없어질 뿐, 수용 규칙은 그대로 남는다.

그래서 도난당한 키가 뻔한 정리 후에도 계속 작동하며, 새 구성이 설치된 뒤에도 사건이 해결되지 않은 것처럼 느껴진다.

서버의 규칙에서 출발해 바깥으로 클라이언트까지 나아가라.

인증서: 결정은 서버가 쥔다

새 신원이 기록되도록 발급자 자체의 절차로 교체를 발급하고, 그다음 서명된 폐기로 옛것을 철회하라. 게이트웨이는 그 폐기 원본을 조회하도록 구성되어야 하고 다시 로드해야 한다. 그렇지 않으면 파일은 디스크에 남은 채 터널이 옛 일련번호를 계속 받아들인다. 활성 세션도 재협상까지 살아남을 수 있으므로 재연결을 계획하라.

교체가 의도한 애플리케이션에서 작동하는지 확인하고, 그다음 승인된 절차를 통해 은퇴한 인증서가 더 이상 접근을 수립하지 못함을 확인하라.

이것은 서로 다른 두 시험이며 둘 다 필요하다. RFC 5280은 게이트웨이가 의존하는 인증서 및 폐기 의미론을 정의한다.

WireGuard: 피어 키가 신원이다

WireGuard에는 인증서 계층이 없다. 피어의 공개 키가 신원이고, 서버의 allowed-ips 항목이 권한이다. 인터페이스 구성에서 옛 피어를 제거하는 것이 곧 폐기이며, 새 핸드셰이크에 즉시 적용된다.

기존 세션은 다음 핸드셰이크가 실패할 때 끝난다. 보통 즉시가 아니라 몇 분 안에 그렇게 된다.

새 구성은 비밀번호를 맡길 만한 채널로 배포하라. 개인 키가 곧 자격 증명이기 때문이다. 기기마다 키를 하나씩 유지해, 기기 하나를 잃어도 모든 기기를 바꾸지 않게 하라.

그 묶음에 또 무엇이 있었나

클라이언트 묶음은 흔히 개인 키보다 많은 것을 담는다. 정적 TLS 키, 사용자 이름과 비밀번호, 사전 공유 비밀, 프로비저닝 토큰 같은 것이다. 사건 범위를 실제로 노출된 것으로 한정하고 그 항목들도 교체하라. 인증서를 교체하면서 공유 정적 키를 그대로 두면 문 하나를 닫고 다른 문을 열어 두는 셈이다.

묶음이 기기들 사이에 공유되었다면, 그것을 가진 모든 기기가 노출을 물려받는다.

무엇을 교체했는지 적어 두라. 다음 감사가 물을 것이다.

거부를 입증하고, 그다음 교체를 기록하라

교체는 두 사실이 성립할 때 완료된다. 새 신원이 의도한 서비스에서 작동하고, 옛 신원이 거부되는 것이다. 두 번째는 테스트 환경에서 은퇴한 자격 증명으로, 또는 조직이 승인한 통제된 시도로 검증하고, 게이트웨이 로그를 읽어 거부가 정책에서 온 것이지 오타에서 온 것이 아님을 확인하라. 그다음 옛 식별자, 새 식별자, 변경 시각을 기록하라. 감사자가 재구성에 필요한 것이 바로 이 세 값이다. 티켓의 다른 무엇도 그 공백을 설명하지 못한다.

개인 키를 티켓과 대화에 남기지 말고, 정책에 따라 저장소와 백업에서 오래된 내보내기를 제거하라.

거부 시험이 없는 교체는 수정이 아니라 가정이다.

관련 글