그 공개된 OpenVPN 키는 CA인가, 피어 키인가, tls-auth인가
한 단어, 아주 다른 세 가지 객체. 지시문을 읽고 유출이 신뢰 자료인지 신원 자료인지 판단한 뒤 유출된 것만 고치십시오.
누군가 VPN 키가 공개되었다고 보고하는데, 그 문장에는 전혀 다른 세 가지 상황이 숨어 있습니다. 모든 클라이언트가 가져야 하는 CA 인증서일 수도 있고, 한 대의 머신에서 절대 나와서는 안 되는 개인 신원 키일 수도 있으며, 또는 양쪽 끝이 모두 보관해야 하는 제어 채널 공유 비밀일 수도 있습니다. 수리 방식과 긴급도, 피해 범위가 경우마다 다르므로 첫 번째 작업은 조치가 아니라 분류입니다. 분류를 잘못하면 이후의 모든 단계가 헛수고가 됩니다.
파일 이름이 아니라 지시문에서 시작하십시오
활성 구성을 읽고 어떤 지시문이 문제의 자료를 가리키는지 찾으십시오. OpenVPN의 TLS 옵션은 신뢰할 수 있는 인증서 자료에는 ca, 로컬 피어 인증서에는 cert, 그에 속한 개인 키에는 key 를 사용합니다.
파일 이름은 아무것도 증명하지 않습니다. key.pem 이라는 파일에 인증서가 들어 있을 수 있고, 프로필 안의 인라인 블록이 디스크의 별도 파일과 정확히 같은 객체를 담을 수도 있습니다. 이름을 믿지 말고 파일을 열어 헤더를 보십시오. 그 한 번의 확인으로 보고서의 모호함 대부분이 사라집니다.
프로필이 PKCS#12 번들이라면 통제된 장소에서 풀어 실제로 무엇이 들어 있는지 확인하십시오. 번들 하나에 인증서, 그 체인, 개인 키가 함께 들어갈 수 있으므로 번들의 유출은 셋 모두의 유출입니다.
누구든 파일을 바꾸기 전에 분류를 적어 두십시오: 객체, 지시문, 어떤 피어가 보관하는지, 누가 읽을 수 있는지. 응답의 나머지는 그 문장에 달려 있습니다.
CA 인증서는 공유되도록 설계되었습니다
공개 CA 인증서는 신뢰 자료입니다. 클라이언트가 서버를 검증하는 데 필요하며, 배포는 사고가 아니라 정상적인 경우입니다. 그것을 공개해도 CA의 개인 서명 키는 공개되지 않으며, 공격자가 새 신원을 만들 수 있게 하는 객체가 바로 그것입니다.
둘은 끊임없이 혼동되므로 이 구분은 티켓에 명시할 가치가 있습니다. 답해야 할 질문은 유출된 파일이 인증서인지 서명 키인지이며, 파일 내용을 잠깐 보면 판가름 납니다. 인증서에는 공개 키와 서명이 들어 있고, 서명 키는 그 안에 전혀 나타나지 않습니다.
배포에도 여전히 주의가 필요합니다. 클라이언트는 승인된 프로필 전달 경로로 인증서를 받아야 하며 붙여넣기 사이트에서 받아서는 안 되고, 신뢰할 수 없는 경로로 도착한 인증서는 전송 중에 교체될 수 있습니다.
피어 키와 tls-auth 비밀은
피어의 개인 키는 신원 자료입니다. 복사되는 순간, 증명되던 속성이 바로 배타적 소유였기 때문에 서버는 의도된 기기와 복사본을 가진 누구도 구별할 수 없게 됩니다. 권한 부여를 계속할지 교체할지는 VPN 소유자의 결정이며, 파일을 발견한 사람의 결정이 아닙니다.
tls-auth 비밀은 세 번째입니다. 제어 채널 패킷 주위에 HMAC 인증을 추가하여 잘못 인증된 패킷이 TLS 교환 전에 폐기되게 하며, 피어의 개인 키도 아니고 애플리케이션 데이터를 암호화하는 키도 아닙니다.
그 공유 비밀이 공개되면 그것이 제공하던 장벽은 가진 모든 사람에게 사라집니다. 그렇다고 모든 보유자가 그 뒤의 인증서 및 사용자 검사를 통과한다는 뜻은 아니며, 그래서 분류가 경보 수준보다 중요합니다. 어느 장벽이 무너졌고 어느 것이 남았는지 말하십시오.
유출된 역할을 고치십시오, 옆의 역할이 아니라
공유 비밀은 파일 이름을 바꾸거나 다운로드 링크를 숨겨서 다시 비밀로 만들 수 없습니다. 교체는 새 값을 생성해 조정된 변경으로 모든 피어에 배포하는 것을 뜻하며, 한쪽만 교체하면 옛 값을 아직 가진 모든 사람에게 합의가 깨집니다.
피어 신원이 노출되었다면 그 신원에 대해 운영자의 폐기 및 재등록 절차를 사용하십시오. 무관한 계정의 비밀번호를 바꿔도 복사된 인증서가 무효가 되지 않으며, tls-auth 파일을 바꿔도 마찬가지입니다.
이 중 어느 것에 의존하기 전에 배포된 서버가 실제로 무엇을 강제하는지 확인하십시오. 갱신되지 않는 폐기 목록이나 장애 중에 비활성화된 역할 검사는 답을 완전히 바꿉니다. 저장소의 사본이 아니라 실행 중인 구성을 읽으십시오.
과거 트래픽은 그 자체의 조건으로 판단하십시오
노출된 파일만으로는 이전에 캡처된 세션을 복호화할 수 있는지 알 수 없습니다. 키 설정 방식, 노출된 자료, 어떤 기록이 존재하는지에 달려 있으며, ‘모든 트래픽이 유실되었다’와 ‘아무 일도 없었다’는 둘 다 그 사실 없이는 추측입니다.
자격 증명이 어느 범주에 속하는지 묻는 동안 또 다른 사본을 게시하지 마십시오. 대신 승인된 지원 경로로 지시문 이름과 비밀이 아닌 메타데이터를 공유하십시오.
유용한 결론은 객체, 그 역할, 잃은 보호, 필요한 조정된 조치를 명시합니다. 그보다 짧은 것은 평가가 아니라 표제입니다.