DNS 쿼리를 암호화하기 위해 dnscrypt-proxy를 사용할 때 사람들은 Linux 시스템에서도 dnsmasq를 사용하는 경향이 있습니다. 과거에 이 설정의 주요 목표는 DNS 쿼리에 대한 캐싱을 제공하는 것이었지만 이제는 DNS 캐싱이 dnscrypt-proxy 자체에서 구현됩니다. 따라서 dnscrypt-proxy가 지금 사람들에게 필요한 것 같습니다. 하지만 사람들은 일반적으로 dnsmasq 구성에 다음 줄(또는 이와 유사한 줄)을 추가하는 것으로 나타났습니다.
server=/pool.ntp.org/1.1.1.1
이 줄의 목적은 시간 서버 도메인에 대한 DNS 쿼리를 DNS 서버에 직접 전송하여 전체 암호화 프로세스를 건너뛰는 것입니다(단순한 DNS 쿼리일 뿐입니다). 어떤 사람들은 더 나은 시간 동기화를 제공하려면 이러한 쿼리가 가능한 한 빨리 이루어져야 한다고 나에게 말한 적이 있습니다. 그렇다면 이 접근 방식이 의미가 있을까요?
답변1
보안 관점에서 볼 때 이 접근 방식은 바람직하지 않다고 생각합니다. HTTPS 및/또는 DNSCrypt를 통한 DNS의 목적은 기밀성을 제공하는 것, 즉 쿼리를 숨기는 것뿐만 아니라 아마도 가장 중요한 것은 신뢰성을 제공하는 것입니다. 특히 NTP 서버에 일반 텍스트(암호화되지 않음)로 DNS 쿼리를 수행하면 네트워크가 HSTS를 무력화하거나 우회하기 위해 가짜 NTP 패킷을 사용하는 MITM 공격에 취약해집니다. HSTS는 해당 매개변수에 의존하기 때문에 max-age
NTP 서버를 스푸핑하고 시스템 시계를 변경하여 무력화할 수 있습니다.