공용 컴퓨터에서 VPN 사용하기: 먼저 확인할 것
터널은 경로를 보호할 뿐 양쪽 끝의 기계를 보호하지 않는다. 로그인하기 전에 호스트를 누가 관리하는지, 디스크에 무엇이 남는지, 접근을 어떻게 취소할지 정하라.
빌린 기계, 급한 작업, 그리고 모든 것을 암호화하겠다고 약속하는 VPN 클라이언트, 이 순서는 안전해 보이지만 안전하지 않다. 터널은 두 끝점 사이의 경로를 보호하며, 눈앞의 끝점은 확인할 수 없는 부분이다. 아래 세 단계는 기기가 쓸 만한지, 자격 증명을 어떻게 멀리 둘지, 그리고 임시 세션이 영구 사본이 되지 않도록 나중에 무엇을 할지를 정한다.
터널은 호스트가 이미 데이터를 본 뒤에 시작된다
암호화는 기계에서 프로그램으로 실행되는 VPN 클라이언트에서 일어난다. 그 프로그램 위의 모든 것, 즉 브라우저, 운영 체제, 충분한 권한을 가진 확장이나 드라이버는 데이터가 암호화되기 전에 처리한다. 이것은 프로토콜의 결함이 아니라 프로토콜이 놓인 자리다.
따라서 출구 주소를 확인하는 것은 호스트에 대해 거의 아무것도 증명하지 못한다. 기계는 모든 트래픽을 깨끗한 출구로 보내면서도 모든 키 입력을 기록할 수 있고, 두 사실은 모순되지 않는다.
유용한 틀은 네트워크가 무엇을 할 수 있는지가 아니라 호스트가 무엇을 관찰할 수 있는지 묻는 것이다. 다른 사람이 관리하는 기계에서는 그 집합이 나열할 수 있는 것보다 크다.
첫 단계: 기기를 누가 관리하는지 확인하라
통제는 관리 권한과 물리적 접근의 문제이지 예의의 문제가 아니다. 다른 사람이 소프트웨어를 설치하고, 드라이버를 올리고, 기기를 연결하고, 이미지를 복원할 수 있다면 기계의 동작은 보는 것만으로 확인할 수 없다. 관리는 능력이고, 능력은 스크린샷에 나타나지 않는다. 기계를 건네준 사람에게 물어라.
흔한 신호를 찾고 각각을 안전의 증거가 아니라 통제에 대한 증거로 다뤄라. 어느 것도 단독으로 결정적이지 않다.
- 소프트웨어를 설치할 수 없는 게스트나 키오스크 계정은 누군가 건네준 관리자 계정보다 나은 출발점이다.
- 소유자와 지원 연락처가 알려진 관리 기기는 터미널이 더 깨끗해 보이더라도 방치된 터미널보다 낫다.
- 마지막으로 누가 로그인했는지 확인할 수 없는 기계는 상태를 설명할 수 없는 기계다.
이 점검 중 어느 것도 공유 호스트를 신뢰할 수 있게 만들지 않는다. 이들은 위험이 제한된 작업을 계속할 만큼 제한되었는지를 알려줄 뿐이며, 그것은 다른 그리고 더 정직한 질문이다. 계속하기 전에 답을 적어 두어라.
둘째 단계: 자격 증명을 호스트에 남기지 마라
살아 있는 프로필은 북마크가 아니다. OpenVPN 프로필에는 내장 인증서와 개인 키가 들어 있을 수 있으며, 가져오면 그 자료가 소유하지 않은 기기에 기록된다. 쿠키를 저장하는 브라우저 세션과 보관함을 로컬에 캐시하는 암호 관리자도 마찬가지다.
| Decision | Safe default | What it buys you |
|---|---|---|
| Which device to use | One you control, or an approved managed device | A host whose software you can account for |
| Which account to sign in with | A session that does not persist, with a second factor | Limited exposure if the machine retains state |
| What to install | Nothing; use the browser and the service's own portal | No profile or client left behind for the next user |
| What to do afterwards | Sign out everywhere and revoke sessions from a trusted device | An end to access that does not depend on local cleanup |
서비스가 지원하는 가장 덜 지속적인 접근을 선호하라. 세션마다 인증하고 두 번째 요소를 요구하는 웹 포털은 프로필을 저장한 데스크톱 클라이언트보다 적게 남기며, 브라우저를 닫으면 끝나는 세션이 재부팅을 견디는 세션보다 낫다.
그다음 기계가 무엇을 보관하는지 확인하라. 공유 Linux 호스트에서는 프로필 위치를 확인하기 쉽고, Windows에서는 같은 검색에 명령 하나면 된다. 이전 사용자의 프로필을 발견하는 것은 당신의 프로필도 같은 방식으로 다뤄진다는 유용한 알림이다.
ls -la ~/.config/openvpn 2>/dev/null
Get-ChildItem -Path $HOME -Recurse -Filter *.ovpn -ErrorAction SilentlyContinue
셋째 단계: 신뢰하는 곳에서 접근을 끝내라
로컬 정리는 할 가치가 있지만 충분하지 않다. 서비스에서 로그아웃하고, 브라우저를 닫고, 내려받은 파일을 모두 지운 뒤, 정말 중요한 단계, 즉 직접 관리하는 기기에서 세션이나 자격 증명을 취소하는 것을 하라.
바로 이 마지막 동작을 사람들이 건너뛴다. 로컬 화면이 깨끗해 보이기 때문이다. 호스트의 소프트웨어가 복사한 세션 토큰은 당신이 떠난 뒤에도 계속 작동하며, 브라우저가 닫혔는지도 상관하지 않는다. 취소는 호스트가 적대적이었을 수 있다고 가정하는 유일한 단계이며, 그것이 사실이었을 때도 여전히 작동하는 유일한 단계이기도 하다.
개인 키나 복구 비밀이 기계에 닿았다면 노출된 것으로 보고 사본을 점검하는 대신 교체하고, 두 번째 요소를 사용한 계정이라면 공급자가 나열하는 기기와 세션도 검토하라. 방문 중 발급된 토큰이 아직 활성일 수 있다.
결과를, 어느 기기, 어느 계정, 무엇이 설치되었고, 무엇이 취소되었으며, 언제였는지의 형태로 신선할 때 적어 두어라. 그 메모가 다음 사람이 이후에 중요한 유일한 질문, 즉 아직 무언가 접근 권한을 가지고 있는지에 답하게 해 준다.
사적으로 관리하는 기기도 유지 보수가 필요하며, 빌린 터미널이 결코 주지 못할 끝점 관리의 기반을 준다. 터널은 쉬운 부분이었다.