DNSSEC와 VPN: DNS 쿼리를 숨기는 쪽은 어느 쪽인가
DNSSEC는 응답의 진위를 증명할 뿐 비밀성을 보장하지 않는다. 설정을 바꾸기 전에 어느 계층이 기밀성을, 어느 계층이 경로 제어를 맡는지 확인해야 한다.
두 가지 방식이 같은 일을 하는 것으로 여겨지지만 둘 다 그 일을 하지 않는다. DNSSEC는 받은 데이터가 정말 그것을 공개하는 존에서 왔는지를 답하고, VPN은 패킷이 어떤 경로를 지나는지를 정한다. 둘 다 모든 경우에 물어본 이름을 숨기지는 않으며, 그렇게 해야 할 것처럼 보이는 설정은 대개 검증이 아니라 전송이나 경로 제어에 관한 것이다. 먼저 계층의 이름을 붙이면 막연한 프라이버시 질문이 구체적인 질문이 된다.
하나로 합쳐지는 세 가지 주장
진위성은 응답이 존이 공개한 것이며 도중에 바뀌지 않았다는 주장이다. 기밀성은 경로 위의 누구도 질의나 응답을 읽을 수 없다는 주장이다. 경로 제어는 패킷이 직접 고른 경로를 따른다는 주장이며, 터널이 제공하는 것이 바로 그것이다.
DNSSEC는 첫 번째를 다루고 나머지 둘에 대해서는 아무것도 말하지 않는다. DoT와 DoH는 리졸버까지의 구간에서 두 번째를 다룬다. VPN은 세 번째를 다루고 두 번째에도 영향을 줄 수 있지만, 트래픽이 어디로 가는지의 부수 효과일 뿐이다.
애플리케이션 트래픽은 네 번째 경우다. HTTPS는 클라이언트와 사이트 사이의 웹 교환을 보호하고 인증하며, 어떤 DNS 계층도 그것을 대신하지 않는다.
서명 검증이 할 수 있는 일과 할 수 없는 일
검증하는 리졸버는 존에서 설정된 신뢰 앵커까지 서명 사슬을 확인하고, 검증이 성공하면 인증된 데이터 플래그를 세운 응답을 돌려준다. 그 플래그는 데이터에 대한 증거이며 연결이나 목적지의 의도에 대한 증거가 아니다.
신뢰해서는 안 되는 서비스에 대해 정당한 존 소유자가 진짜 레코드를 공개하는 것을 막을 수는 없다. 침해된 도메인에서 올바르게 서명된 응답은 여전히 올바르게 서명되어 있으며, 그 도메인이 당신의 자격 증명을 받을 자격이 있는지에 대해 DNSSEC는 의견이 없다.
무엇도 숨기지도 않는다. 질의와 응답은 다른 계층이 전송을 보호하지 않는 한 리졸버와 그 경로의 어떤 관찰자도 읽을 수 있는 형태로 네트워크를 지난다. 서명된 응답과 사적인 응답은 서로 다른 속성이며, 배포는 둘 중 하나만 가질 수 있다. 둘 중 하나라도 중요하다면 둘 다 시험해야 한다.
기밀성은 실제로 어디에서 오는가
암호화된 리졸버 전송은 DNS 교환을 TLS로 감싸므로 리졸버는 질문을 여전히 보지만 당신과 리졸버 사이의 경로는 보지 못한다. 이것은 신뢰를 없애는 것이 아니라 옮기는 것이다. 리졸버를 더 믿고 로컬 네트워크를 덜 믿게 된다.
VPN은 질의를 반대편 리졸버로 실어 보낼 수 있고, 그러면 경로와 그것을 보는 리졸버가 모두 바뀐다. 이것은 프라이버시 결과를 동반하는 경로 제어 결정이며, 관리되는 네트워크에서는 내부 이름에 답할 수 있는 유일한 대상이 내부 리졸버일 수 있다.
사람들이 실제로 원하는 조합은 보통 세 가지를 동시에 갖는 것이다. 검증을 켜고, 직접 고른 리졸버로 암호화된 전송을 사용하고, 목적지에서는 애플리케이션 TLS를 쓴다. 각각 독립적이며 하나를 건너뛰면 다른 틈이 남는다.
검증과 전송을 따로 확인한다
두 가지 시험으로 대부분의 혼란이 풀린다. 첫째는 리졸버가 응답을 검증했는지 묻고, 둘째는 전송이 보호되었는지 묻는다. 실패하는 방식이 다르고 어느 쪽도 다른 쪽을 함축하지 않는다.
이 명령은 검증하는 질의의 플래그를 출력하고, 검사를 끈 상태로 질의를 반복하며, 로컬 검증을 delv 로 실행한다:
dig +dnssec example.com | grep flags
dig +cd example.com | grep status
delv example.com인증된 데이터 플래그와 서명이 있는 응답은 그 리졸버에서의 검증을 보여 준다. delv 로 검증이 실패하면 존과 신뢰 앵커 사이 어딘가에서 사슬이 끊겼다는 뜻이며, 그것은 터널의 문제가 아니라 공개 측의 문제다. 플래그가 전혀 없는 시간 초과는 전송이나 도달성 문제이며, 그것을 서명 실패로 다루면 잘못된 계층으로 가게 된다.
VPN이 조회를 깨뜨릴 때 할 일
터널 전에는 조회가 되었는데 후에 멈춘다면, 경로마다 사용하는 리졸버를 비교한다. 분할 터널링, 터널을 통해서만 닿는 내부 리졸버, 리졸버 설정을 다시 쓰는 클라이언트는 모두 DNSSEC를 건드리지 않고 응답을 바꾼다.
검증을 전역으로 끄는 것은 잘못된 첫걸음이다. 변조를 알리는 유일한 체계를 없애면서 닿을 수 없는 리졸버를 고치지도 못한다. 먼저 고장을 좁힌다. 해석, 전송, 검증, 그다음 정책 순서다. 세 번째만 DNSSEC에 속하고, 두 번째만 암호화된 전송에 속한다.