잘못된 VPN 시도: 어떤 자격 증명 분류가 경계를 넘었나
실패한 시도가 아무것도 보내지 않았을 수도 있고, 응답한 쪽에 비밀번호를 넘겼을 수도 있습니다. 무엇을 폐기할지 정하기 전에 흔적을 분류하십시오.
잘못된 VPN에 연결했고 클라이언트가 실패를 보고했습니다. 그것이 문제였는지는 실패 전에 회선을 무엇이 지나갔는지에 달려 있고, 그 단어 자체는 알려주지 않습니다. 어떤 핸드셰이크는 비밀을 전혀 나르지 않지만, 다른 것은 주소에 응답한 누구에게나 비밀번호를 넘깁니다. 무엇이든 폐기하기 전에 둘 중 어느 쪽이 일어났는지 밝히십시오.
멈추고 증거를 보존하십시오
클라이언트 로그, 선택한 프로필, 입력한 주소, 대략적인 시각을 보존하십시오. 프로필 편집이나 재설치가 필요한 기록을 파괴하므로 클라이언트 밖에 적어 두십시오. 통제하는 경로로 엔드포인트가 확인될 때까지 이후의 모든 시도를 멈추십시오.
시도가 안전했는지 묻는 동안 편집하지 않은 프로필이나 로그를 공개 포럼에 절대 올리지 마십시오. 그 문서에는 개인 키 경로, 내부 호스트 이름, 토큰이 들어 있는 경우가 많으므로 먼저 가린 뒤 엔드포인트를 소유한 관리자와 공유하십시오.
경계를 넘을 수 있는 것
혼란의 대부분은 모든 실패를 한 종류의 사건으로 다루는 데서 옵니다. 반대편에 도달할 수 있는 것은 네 가지입니다. 공개 인증서, 키가 사용되었음을 증명하는 서명, 비밀번호 또는 일회용 코드, 그리고 직접 고른 파일입니다. 각각 결과와 수리가 다르며, 흔적을 분류하는 것이 그 뒤의 모든 것을 결정하는 단계입니다.
인증서의 경우는 이동하는 것이 설계상 공개되어 있고 식별 필드는 연결하는 누구에게나 이미 보이므로 가장 가볍습니다. 챌린지에 대한 서명은 키가 사용되었다고 말할 뿐 전송되었다고 말하지 않습니다. 비밀번호는 반대의 경우로, 받은 쪽은 다른 곳에서 시도할 수 있고 비밀번호를 검증하도록 만들어진 서비스는 바로 그 값의 의도된 수신자입니다.
키 증명은 키 업로드가 아닙니다
현대의 TLS는 그 두 개념을 의도적으로 분리합니다. RFC 8446은 CertificateVerify 메시지를 규정하며, 여기서 클라이언트는 자신의 인증서에 맞는 개인 키로 챌린지에 서명합니다. 서명은 키를 나르지 않고 소유를 보여 주므로, 인증서로 인증된 시도가 곧바로 키 유출은 아닙니다.
그 안심에는 말해 둘 한계가 있습니다. 증명은 키가 그 교환에 참여했음을 보여 줄 뿐, 기기의 로컬 프로그램이 이미 무엇을 읽었는지는 말하지 않습니다. 알려지지 않은 시도가 실제로 얼마나 나아갔는지도 말하지 않으므로 로그는 여전히 이론보다 중요합니다.
비밀번호는 전혀 다른 신뢰 모델을 따릅니다. 외부 검증기로 구성된 집선 장치는 제출된 값을 그대로 전달할 수 있으므로, 그것을 받는 것이 의도된 기능이고 잘못된 목적지는 이론이 아니라 실제 노출입니다.
로그로 시도를 재구성하십시오
시도를 재구성하는 사실은 네 가지로, 실제로 접속한 주소, 서버 신원이 검증되었는지, 어떤 인증 방식이 선택되었는지, 그리고 처리가 어디서 멈췄는지입니다. 각각은 클라이언트 로그에 나타나고 각각 다른 이야기를 배제합니다. 경로나 할당된 주소에 관한 오류는 터널 설정이 실패하기 전에 인증이 끝났을 수 있으므로 이미 회선에 무엇이 있었는지 말하지 않습니다.
그 사실들은 기억이 아니라 클라이언트 자체 로그에서 뽑아내고, 좁은 필터로 출력을 가리고 공유할 수 있을 만큼 짧게 유지하십시오.
grep -n -i -E 'verify|authentication|certificate|error|timeout' client.log | tail -30
이 중 어느 것도 호스트 이름으로 대신하지 마십시오. 익숙한 이름, 현재의 DNS 응답, 소프트웨어가 보여 주는 인증서 경고는 현재를 설명할 뿐 이전 연결이 아닙니다. 비밀번호 입력 요구도 클라이언트가 제출 전에 실패했을 수 있으므로 무언가 전송되었다는 증거가 아닙니다.
판단하고 나서 행동하십시오
판단은 실패가 얼마나 놀라워 보였는지가 아니라 흔적에서 나오며, 재구성한 사실에 네 행을 비추어 읽으십시오.
| Decision | Evidence that puts you here | Evidence that rules it out |
|---|---|---|
| Change the password now | A password was submitted and a server reply arrived | The log stops before any submission |
| Review active sessions | A one-time code was accepted by the wrong endpoint | The code was never sent, or was rejected before use |
| Revoke and reissue | The file you selected contained key material, not just settings | The upload was a profile with no embedded key |
| No further action | The attempt ended before any authentication value was offered | You later find an earlier attempt you had forgotten |
비밀번호가 의도하지 않은 서비스에 도달했다면 계정 관리 경로로 변경하고 다른 곳에서 재사용되었는지 확인하십시오. 만료된 일회용 코드는 그 경로를 닫지만 그것으로 만든 세션은 닫지 않으므로 신원 관리자에게 세션 검토를 요청하십시오. 키 파일이 실제로 업로드되었다면 오용 증거를 기다리지 말고 발급 기관의 폐기 절차를 따르십시오.
마지막으로 무엇이 전송되었고, 무엇이 아직 알려지지 않았으며, 어떤 자격 증명에 조치가 필요한지를 제한된 결과로 적으십시오. 나중 검토가 요구하는 것이 바로 그 기록이며, 두 가지 편안한 결론 어느 것보다 유용합니다.