DNScrypt
DNSCrypt인터넷 보안 프로토콜 |
---|
키 관리 |
응용 프로그램레이어 |
도메인 네임 시스템 |
인터넷 레이어 |
DNSCrypt는 사용자의 컴퓨터와 재귀 이름 서버 간의 DNS(Domain Name System) 트래픽을 인증하고 암호화하는 네트워크 프로토콜입니다.그것은 원래 프랭크 데니스와 예청 푸에 의해 디자인되었다.
여러 자유 및 오픈소스 소프트웨어 구현이 존재하지만 이 프로토콜은 Request for Comments(RFC; 댓글 요구)를 통해 Internet Engineering Task Force(IETF; 인터넷 기술 특별 조사위원회)에 제안되지 않았습니다.Unix, Apple iOS, Linux, Android 및 MS Windows를 포함한 다양한 운영 체제에서 사용할 수 있습니다.
DNSCrypt는 위조를 검출하기 위해 클라이언트와 DNS 리졸바 사이의 수정되지 않은 DNS 트래픽을 암호화 구조로 래핑합니다.엔드 투 엔드 보안은 제공하지 않지만 man-in-the-middle [1]공격으로부터 로컬 네트워크를 보호합니다.자유 및 오픈소스 소프트웨어 구현 dnscrypt-proxy는 ODoH를 [1][2]추가로 통합합니다.
또, 적어도 대응하는 응답과 같은 크기의 질문을 요구함으로써, UDP 베이스의 증폭 공격을 경감합니다.따라서 DNSCrypt는 DNS 증폭 공격을 방지하는 데 도움이 됩니다.
도입

DNSCrypt 프로토콜은 프라이빗 배치와 더불어 여러 퍼블릭 DNS 리졸바에 의해 채택되고 있습니다.대부분은 OpenNIC 네트워크 및 가상 프라이빗 네트워크(VPN) 서비스입니다.
OpenDNS(현 시스코의 일부)는 2011년 12월 6일 DNSCrypt를 지원하는 최초의 퍼블릭 DNS 서비스를 발표했으며, 곧이어 CloudNS [3]Australia가 발표되었습니다.
2016년 3월 29일 Yandex는 Yandex [citation needed]Browser뿐만 아니라 공용 DNS 서버에서도 DNSCrypt 프로토콜을 지원한다고 발표했습니다.
2016년 10월 14일 AdGuard는 DNSCrypt를 DNS 필터링 모듈에 추가함으로써 사용자가 ISP에서 커스텀 또는 AdGuard의 자체 DNS 서버로 이동하여 온라인 프라이버시와 광고 [4][5]차단을 수행할 수 있게 되었습니다.
2018년 9월 10일 Quad9 비영리 공공 재귀 해결사 서비스는 DNSCrypt [6]지원을 발표했습니다.
보안 프로토콜을 지원하는 다른 서버는 DNSCrypt 작성자 [7]목록에 나와 있습니다.
프로토콜
DNSCrypt는 UDP 또는 TCP 중 하나를 통해 사용할 수 있습니다.어느 경우든 기본 포트는 443 입니다.프로토콜은 HTTPS와 근본적으로 다르지만 두 서비스 유형은 동일한 포트를 사용합니다.다만, 같은 포토상에서 DNS over HTTPS 와 DNSCrypt 를 사용할 수 있습니다만, 다른 서버상에서 개별적으로 실행할 필요가 있습니다.이론적으로는 멀티플렉싱 접근법이 가능하지만 두 서버 모두 통신에 동일한 포트를 사용하는 경우 두 서버 애플리케이션을 동시에 실행할 수 없습니다.
클라이언트는 웹 브라우저에서 일반적으로 볼 수 있는 신뢰할 수 있는 인증 기관에 의존하는 대신 선택한 공급자의 공용 서명 키를 명시적으로 신뢰해야 합니다.이 공개 키는 기존의 DNS 쿼리를 사용하여 취득한 증명서 세트를 확인하는 데 사용됩니다.이러한 증명서에는 키 교환에 사용되는 단기 공개 키와 사용할 암호 스위트의 식별자가 포함됩니다.클라이언트는 모든 쿼리에 대해 새로운 키를 생성하는 것이 권장되며, 서버는 24시간마다 단기 키 쌍을 순환하는 것이 권장됩니다.
DNSCrypt 프로토콜은 미리 정의된 공개 키 집합만 허용함으로써 액세스 제어 또는 계정에 사용할 수도 있습니다.이는 상용 DNS 서비스에서 IP [citation needed]주소에 의존하지 않고 고객을 식별하기 위해 사용할 수 있습니다.
쿼리와 응답은 동일한 알고리즘을 사용하여 암호화되며 패킷사이즈 누설을 피하기 위해 64바이트의 배수로 패딩됩니다.UDP를 통해 응답이 유도되는 질문보다 클 경우 서버는 TC(트랜치) 비트가 설정된 짧은 패킷으로 응답할 수 있습니다.그런 다음 클라이언트는 TCP를 사용하여 재시도하고 후속 쿼리의 패딩을 늘려야 합니다.
프로토콜 버전 1 및 2에서는 키 교환에 X25519 알고리즘, 서명에 EdDSA 알고리즘 및 인증된 암호화에는 XSalsa20-Poly1305 또는 XChaCha20-Poly1305가 사용됩니다.
2020년 현재 DNSCrypt 프로토콜의 알려진 취약성이나 기본 암호화 구조에 대한 실제 공격은 없습니다.
익명화된 DNSCrypt
익명화된 DNSCrypt는 DNS [8]프라이버시를 더욱 개선하기 위해 2019년에 제안된 프로토콜 확장입니다.
리졸바는 클라이언트에 직접 응답하는 대신 다른 리졸바에 대한 투과적인 프록시 역할을 하며 실제 클라이언트 IP를 숨길 수 있습니다.익명화된 DNSCrypt는 Tor 및 SOCKS 프록시의 대체 수단으로 DNS [8]트래픽용으로 특별히 설계되었습니다.
익명화된 DNSCrypt의 배포는 2019년 10월에 시작되었으며, 프로토콜 채택이 [9]빨랐으며 클라이언트 및 서버 구현의 공개 2주 후에만 40개의 DNS 릴레이가 설정되었습니다.
「 」를 참조해 주세요.
- HTTPS를 통한 DNS
- DNS over TLS
- Domain Name System Security Extensions(DNSEC; 도메인네임 시스템보안 확장)
- 타원곡선암호법
- 곡선 25519
- DNSCurve
레퍼런스
- ^ a b "DNSCrypt/dnscrypt-proxy: dnscrypt-proxy 2 - A flexible DNS proxy, with support for encrypted DNS protocols". GitHub. DNSCrypt. Archived from the original on 20 January 2016. Retrieved 29 January 2016.
- ^ "Oblivious DoH · DNSCrypt/dnscrypt-proxy Wiki". GitHub. DNSCrypt project. Retrieved 28 July 2022.
- ^ Ulevitch, David (6 December 2011). "DNSCrypt – Critical, fundamental, and about time". Cisco Umbrella. Archived from the original on 1 July 2020. Retrieved 1 July 2020.
- ^ "AdGuard DNS Now Supports DNSCrypt". AdGuard Blog. Archived from the original on 12 September 2017. Retrieved 11 September 2017.
- ^ "DNS filtering". AdGuard Knowledgebase. Archived from the original on 11 September 2017. Retrieved 11 September 2017.
- ^ "DNSCrypt Now in Testing". Quad9 Blog. 30 August 2018. Archived from the original on 28 December 2019. Retrieved 1 July 2020.
- ^ "DNSCrypt - List of public DoH and DNSCrypt servers". DNSCrypt. Archived from the original on 19 June 2020. Retrieved 1 July 2020.
- ^ a b "Anonymized DNSCrypt specification". GitHub. DNSCrypt. Archived from the original on 25 October 2019. Retrieved 1 July 2020.
- ^ "Anonymized DNS relays". GitHub. DNSCrypt. 1 November 2019. Archived from the original on 1 July 2020. Retrieved 1 July 2020.