죽은 Windows PC에서 WireGuard 터널 복구하기
프로필은 만들어진 계정과 컴퓨터에 묶인 DPAPI 블롭입니다. 파일을 새 PC로 복사해도 로컬 키로는 열 수 없는 바이트만 남습니다.
노트북이 WireGuard 터널 세 개를 설정한 채 죽었고, 구성 파일은 아직 디스크에 있습니다. 그것을 대체 컴퓨터로 복사하면 시작은 하지만 올라오지 않는 서비스가 만들어집니다. 파일은 파일을 만든 계정과 컴퓨터에 속한 키로 보호되므로 바이트는 이동하지만 읽을 수 있는 능력은 이동하지 않습니다. 아래 안내는 파일을 찾는 일에서 서비스를 실제로 복구하는 선택지까지 다룹니다.
터널 파일이 지금 있는 곳
저장 위치는 릴리스 사이에 옮겨졌습니다. 오래된 설치에서는 프로필을 시스템 프로필의 로컬 응용 프로그램 데이터 안 WireGuard\Configurations 폴더에 두었고, 현재 빌드는 프로그램 파일 트리 안의 데이터 디렉터리를 사용합니다. 각 터널은 보호 방식을 이름에 담은 이중 확장자의 단일 파일입니다.
Get-ChildItem "C:\Program Files\WireGuard\Data\Configurations"
.dpapi 접미사는 장식이 아닙니다. 파일은 보호된 블롭이고, 서비스는 바로 그 형태로 그것을 소비하도록 설계되었습니다. 그 파일로 터널을 설치하는 지원되는 방법은 블롭을 가리키는 상승된 호출입니다.
$blob = "C:\Program Files\WireGuard\Data\Configurations\hq.conf.dpapi"
wireguard.exe /installtunnelservice $blob
그 명령은 블롭을 풀 수 있는 컨텍스트에서만 성공합니다. 서비스를 설치할 뿐, 대신 무엇인가를 복호화하지는 않습니다.
블롭이 다른 곳에서 열리지 않는 이유
보호는 사용자의 로그온 자격 증명에서, 그리고 선택한 범위에 따라 컴퓨터에서도 키를 끌어냅니다. 보호 호출에 대한 Microsoft 문서에 따르면 기본값은 암호화한 사용자와 컴퓨터에 속하며, 컴퓨터 전체 옵션은 누가 그것을 풀 수 있는지를 바꿉니다. 두 경우 모두 키는 운영 체제의 자격 증명 자료에 살고, 파일 안에는 없습니다. 암호문은 옮길 수 있지만 키는 그렇지 않습니다.
폴더의 소유권을 가져와도 바뀌는 것은 ACL뿐입니다. 오래된 디스크를 인클로저에 넣고 블롭을 새 PC로 복사해도 키가 복사되지 않은 암호문만 남습니다. 실패는 암호학적인 것이며, 서비스를 몇 번을 다시 설치해도 바뀌지 않습니다. 새 컴퓨터에는 그 계정의 마스터 키가 없고, 오래된 키 저장소는 파일과 함께 이동하지 않습니다.
설정을 흐릿한 파일에 저장하는 제품은 대비를 분명히 보여줍니다. 그저 난독화된 구성은 난독화를 끄는 플래그를 찾으면 읽을 수 있게 되지만, 보호된 블롭은 키 없이 닫힌 채로 남습니다. 둘을 혼동하면 사람들은 존재하지 않는 디코더를 찾게 됩니다.
오래된 시스템이 아직 부팅되는 동안 시도할 것
설치가 아직 시작된다면, 터널을 만든 계정으로 로그인한 상태에서 클라이언트에서 터널을 내보내십시오. 내보내기는 평범한 구성 파일을 만들고, 바로 그 시점에 백업이 옮길 수 있는 것이 됩니다.
디스크를 읽을 수 있지만 Windows가 부팅되지 않는다면, 보호된 파일은 사실상 사라진 것입니다. 복구를 약속하는 도구는 더 이상 없는 원래 컨텍스트에서 돌아가거나, 블롭과 오래된 디스크 이미지를 넘기라고 요구하는데, 후자는 잠시 멈춰 생각할 만한 결정입니다.
어느 경우든 알게 된 것, 즉 터널 이름과 엔드포인트, 공개 키를 기록하십시오. 이름과 엔드포인트가 있으면 빠르게 다시 만들 수 있고, 공개 키가 있으면 상대편이 어느 항목을 지워야 하는지 식별할 수 있습니다.
대신 상대편 쪽에서 다시 만드십시오
직접 관리하는 상대편이라면 새 키 쌍을 만들고 새 공개 키를 상대편 목록에 추가하십시오. 기업이나 호스팅 엔드포인트라면 관리자에게 새 키를 발급하고 오래된 키를 제거해 달라고 요청하십시오. 그 요청은 디스크를 잃었다면 오래된 개인 키를 노출된 것으로 취급해야 하므로 도난 이후에 하는 것과 같습니다.
그다음 기록한 값으로 터널을 다시 만들고, 다른 무엇이든 지우기 전에 핸드셰이크를 확인하십시오. 상대편의 오래된 항목도 같은 변경에서 사라져야, 훔친 디스크가 나중에 다시 연결할 수 없습니다.
교훈은 복구 도구가 아니라 백업 정책에 들어갑니다. WireGuard 구성은 자격 증명이고, 개인 키를 가진 사람은 상대편의 신원을 가지며, 중간에 두 번째 비밀번호는 없습니다. 구성을 의도적으로 내보내 다른 비밀과 함께 보관하거나, 복구란 키를 다시 발급하는 일임을 받아들이고 어느 선택이 어느 터널에 해당하는지 적어 두십시오.