암호화된 DNS 서버를 RAM에서 운영하도록 이전한 Mullvad
(mullvad.net)- Mullvad는 VPN 인프라에서 디스크 흔적을 제거한 뒤, 별도 Encrypted DNS 서비스도 RAM 기반 운영으로 옮김
- VPN에 연결하지 않은 기기에서 DNS 질의를 암호화해, 기기와 Mullvad DNS 서버 사이의 조회 내용을 제3자가 엿보기 어렵게 함
- 이 서비스는 유료 고객이 아니어도 무료로 쓸 수 있으며, 감사된 DNS와 선택적 콘텐츠 차단을 원하는 이용자를 대상으로 함
- 전 세계 서버와 설정 가이드를 제공하지만, VPN과 함께 쓰면 연결된 VPN 서버의 DNS 리졸버보다 항상 느려 권장되지 않음
- Encrypted DNS 서버도 VPN 인프라와 같은 Linux 커널 및 보안·프라이버시 설정을 사용해, 상태 없는 인프라를 RAM에서 운영하려는 흐름을 이어감
Encrypted DNS도 RAM 기반으로 전환
- Mullvad는 최근 VPN 인프라에서 사용 중인 디스크의 흔적을 제거하는 마이그레이션을 완료함
- 이번 전환으로 Encrypted DNS 서비스도 RAM에서 실행되도록 바뀜
- Mullvad가 상태 없는 인프라를 RAM에서 운영하려는 다음 단계에 해당함
DNS 질의를 암호화하는 방식
- Encrypted DNS는 DNS over TLS와 DNS over HTTPS로도 알려져 있음
- VPN 서비스에 연결하지 않았을 때, 기기와 Mullvad DNS 서버 사이의 DNS 질의를 암호화함
- 이 방식은 제3자가 DNS 질의를 엿보는 상황을 막는 데 쓰임
사용 대상과 실제 제약
- 이 서비스는 주로 Mullvad VPN 서버에 연결하지 않은 상태에서 쓰는 용도임
- 유료 고객 여부와 관계없이 완전 무료로 사용할 수 있음
- 신뢰할 수 있고 감사된 Encrypted DNS 서비스와 선택적 콘텐츠 차단을 원하는 누구나 이용 가능함
- 전 세계에 위치한 서버에서 제공되며, Mullvad 웹사이트의 설정 가이드로 구성할 수 있음
- VPN 서비스와 함께 사용할 수도 있지만, 연결된 VPN 서버의 DNS 리졸버를 쓰는 것보다 항상 느려 권장되지 않음
VPN 인프라와 맞춘 보안 구성
- 모든 Encrypted DNS 서버는 VPN 인프라와 같은 Linux 커널로 구성됨
- 보안과 프라이버시 수준도 VPN 인프라와 동일하게 맞춰져 있음
댓글과 토론
Hacker News 의견들
-
Mullvad의 암호화 DNS는 VPN 유료 이용 여부와 관계없이 누구나 쓸 수 있음
추가로 차단 목록을 통한 선택적 콘텐츠 차단도 지원하니, 원하는 TLS/HTTPS DNS 서버를 설정하면 됨
[1] https://github.com/mullvad/dns-blocklists- 참고로 macOS용 독립형 암호화 DNS 프로필(
.mobileconfig파일)은 원치 않는 네트워크 트래픽을 막기 위해 Little Snitch나 Lulu를 쓰는 경우 동작하지 않음
Apple이 고치지 않고 있는 macOS의 제한임 - 암호화 DNS의 위협 모델을 잘 모르겠음
어떤 사이트에 접속하려면 DNS로 IP를 얻어야 하는데, ISP나 VPN 제공자는 방금 조회했든 이미 알고 있었든 내가 그 IP에 접속한다는 사실을 볼 수 있음
VPN을 쓰면서도 다른 누군가가 로그를 남기는 DNS로 새고 있다는 모델이 아니라면, 이게 왜 필요한지 잘 이해가 안 됨
- 참고로 macOS용 독립형 암호화 DNS 프로필(
-
이게 물리 서버인지 VM인지 궁금함
일부 VM 유형은 합법적 요청 대응처럼 메모리 내용까지 포함해 정지·스냅샷·복제·실시간 복제가 가능하고, 베어메탈 호스트에서는 VM이나 컨테이너 내부에 접근할 수 있음
물리 구성도를 공개한 게 있는지 궁금함
혹시 Mullvad 아키텍트가 있다면, 이론적 가정과 끝없는 거북이 스택으로 빠지지 않게 도와줬으면 함- Mullvad는 System Transparency를 많이 밀고 있고, 이건 베어메탈을 위해 특별히 설계된 보안 시스템이라서 베어메탈 기반이라고 봐도 꽤 안전해 보임
https://www.system-transparency.org - 물리 서버도 말 그대로 얼려서 RAM에서 데이터를 추출할 수 있음
- 더 생각해보니 VM이 꼭 필요한 건 아님
eBPF를 이용해 특정 매개변수에 따라 요청 시 데이터 스트림을 추출할 수 있는 도구들이 있음
Sysdig/Falco 같은 도구도 가능할 수 있고, eBPF를 비활성화하려고 커널을 직접 컴파일하는지, 요청 시 디버깅 기능을 제거하거나 끄는 추가 커널 강화 작업을 하는지도 알면 유용할 듯함 - VM 일시정지 기능을 제거한 소프트웨어로 배포하거나, 베어메탈 서버에서 디스크를 빼고 PXE 부팅만 하게 만들면 해결할 수 있음
그러면 일시정지할 대상이 없어짐 - 이런 질문을 하고 있다면 아마 VPN을 직접 호스팅해야 할 것 같음
- Mullvad는 System Transparency를 많이 밀고 있고, 이건 베어메탈을 위해 특별히 설계된 보안 시스템이라서 베어메탈 기반이라고 봐도 꽤 안전해 보임
-
순진한 외부인 입장에서 궁금한데, 2023년의 RAM은 전체 내용을 암호화하나?
전원을 끄고 더 작고 휘발성 높은 메모리에 있는 어떤 암호화 키가 사라지게 해서 RAM 내용을 안정적으로 잊게 만들 수 있는지 궁금함
RAM의 콜드 부팅 공격을 완화하기 위해 무엇이 이뤄졌고, 하드웨어에서는 무엇이 바뀌었는지, RAM 내용 암호화 키가 TPM 같은 곳에 보관되는지도 궁금함- 이 경우 RAM에서 실행한다는 핵심은 비휘발성 저장소가 없다는 데 있는 것 같음
물론 서버가 물리적으로 침해되면 나쁜 일이 생길 수 있지만, 악성코드를 영구 저장할 공간이 없고, 실수든 의도든 로컬 저장소에 로그를 남길 수 없으니 서버를 지속적으로 장악하기가 더 어려워짐
RAM 내용을 암호화하면 추가 보호가 될 수는 있겠지만, 제대로 구현되어 있다면 RAM에 남는 것은 현실적으로 네트워크 선상에서 볼 수 있는 것보다 아주 조금 더 흥미로운 수준일 가능성이 큼
많아야 극소량의 활성 요청 데이터 정도를 볼 수 있을 것 같지만, 어디까지나 추측임 - AMD는 Threadripper 서버 CPU와 워크스테이션/노트북용 Ryzen PRO에서 RAM 암호화를 제공함. BIOS에서 켜야 함
https://www.amd.com/system/files/documents/amd-memory-guard-...
https://www.amd.com/content/dam/amd/en/documents/epyc-busine... - 아님. 적어도 안정적이지는 않음. 키도 RAM에 저장되는 방식 때문임. 예를 들어 대기 모드이거나 노트북 덮개만 닫힌 경우가 있음
다음 부팅 때 RAM을 강제로 지우도록 고칠 수 있는 EFI 재부팅 플래그도 있지만, 보통 비활성화되어 있음
[1] https://en.wikipedia.org/wiki/Cold_boot_attack Windows에서는 BitLocker 덕분에 아직도 동작함
[2] https://www.usenix.org/legacy/event/sec08/tech/full_papers/h... - 그게 Intel TME가 하는 일 아닌가?
- 이 경우 RAM에서 실행한다는 핵심은 비휘발성 저장소가 없다는 데 있는 것 같음
-
Mullvad에 문의해보니 베어메탈만 사용하고, 가상화나 컨테이너화는 전혀 쓰지 않는다고 확인해줬음
https://ibb.co/XLDQGGt -
Cloudflare의 DoH DNS(https://1.1.1.1)를 쓰고, 그걸 Mullvad VPN 위로 터널링함
이렇게 하면 Mullvad는 내가 방문하는 IP만 볼 수 있고, Cloudflare는 VPN IP에서 오는 DNS 요청만 보며, ISP는 아무것도 못 봄
Mullvad의 DoH DNS도 좋아 보이지만 위 방식보다 프라이버시가 덜할 수 있어서 쓰지는 않을 생각임- 안타깝지만 Mullvad가 원하면 모든 TLS 연결의 SNI를 볼 수 있음. ECH는 아직 제대로 쓰이는 단계가 아님
- Mullvad에서 다른 DNS를 쓰는 건 권장되지 않는 것 같음. 그렇게 하면 더 식별 가능해짐
-
실제 통계를 보고 싶지만, SSD와 ECC RAM으로 읽기/쓰기 집약적인 데이터 애플리케이션을 운영해본 직감으로는 둘 다 충분히 자주 고장 나서, 복원력 면에서는 이번 변경이 거의 옆그레이드처럼 느껴짐
다만 순수 성능을 몇 퍼센트라도 더 끌어내려는 노력은 박수칠 만함. 재미있는 Redis 프로젝트가 될 것 같음- 핵심은 그게 아님. Mullvad는 로그를 남기지 않겠다고 약속하고, 그걸 보여주는 가장 좋은 방법은 서버에 고정 저장소 자체를 두지 않는 것임
아마 읽기 전용 이미지로 네트워크 부팅할 것임
VPN 서버에서 이미 이렇게 했고, 이제 같은 전략을 DNS 서버에도 적용하는 중임 - ECC가 그 정도로 자주 고장 나는 걸 봤나? 우리 쪽은 대역폭이 엄청 크진 않지만 ECC RAM은 믿을 수 없을 만큼 안정적이었음
고장률을 보여주는 데이터시트 같은 게 있는지 궁금함
- 핵심은 그게 아님. Mullvad는 로그를 남기지 않겠다고 약속하고, 그걸 보여주는 가장 좋은 방법은 서버에 고정 저장소 자체를 두지 않는 것임
-
Mullvad가 하던 모든 것에 매우 만족했는데, 내 구성의 특수한 일부에 중요한 포트 포워딩을 중단한다고 발표하면서 아쉬워졌음
이유는 이해하지만 언젠가 다시 제공된다면 기꺼이 다시 고객이 될 것임- VPN 포트 포워딩은 기본적으로 “봇넷 운영자 환영” 표지판이나 다름없다고 이해하고 있음
Mullvad 입장에서는 끄는 이점이 단점보다 큼
- VPN 포트 포워딩은 기본적으로 “봇넷 운영자 환영” 표지판이나 다름없다고 이해하고 있음
-
Mullvad VPN의 보안이 Proton VPN과 비교해 어떤지 아는 사람 있나?
- 프라이버시를 원할 때 Mullvad는 거의 1순위임
법 집행기관 요청을 막아낸 이력이 있고, 실제로 넘겨줄 게 없기 때문임
모든 것이 RAM에서 실행되고 서버가 꺼지는 즉시 사라지며, 정말 아무것도 저장하지 않음
현금을 우편으로 보내거나 암호화폐로 Mullvad 계정을 살 수도 있음. 이메일 주소 같은 걸로 계정을 만들 필요도 없음 - “2019년 4월, 명백한 범죄 행위 사건에서 스위스 사법부 명령에 따라, 스위스 법을 위반하는 불법 활동에 관여한 특정 사용자 계정에 대해 IP 로깅을 활성화했습니다
스위스 법에 따라 해당 사용자는 형사 절차에서 데이터가 사용되기 전에 통지를 받고 법정에서 이에 대응할 기회를 부여받습니다” - VPN은 보안을 제공하지 않음
VPN이 하는 일은 지리적 차단을 우회하고, 해적판 콘텐츠를 내려받을 때 DMCA 통지를 막아줄 수도 있는 정도임
- 프라이버시를 원할 때 Mullvad는 거의 1순위임
-
VPN 제공업체 OVPN(ovpn.com)도 이 방식을 해오고 있음