도메인 네임 시스템
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
도메인 네임 시스템(DNS)은 ARPANET 시절부터 사용된 기술로, 호스트의 숫자 주소 대신 기억하기 쉬운 이름을 사용하여 인터넷에서 컴퓨터를 식별하고 연결하는 데 사용된다. DNS는 트리 구조의 도메인 이름 공간을 가지며, 각 노드는 레이블과 리소스 레코드(RR)를 포함한다. DNS는 분산 데이터베이스 시스템으로, 네임 서버를 사용하여 관리되며, 클라이언트-서버 모델을 따른다. DNS는 호스트 이름을 IP 주소로 변환하는 "이름 해석"을 수행하며, DNS 리졸버를 통해 쿼리를 처리한다. DNS는 권한 있는 네임 서버와 캐싱 네임 서버를 사용하며, 캐싱은 DNS 서버의 부하를 줄이는 데 기여한다. DNS는 보안 문제와 개인 정보 보호 문제에 직면해 있으며, DNSSEC, DoH, DoT와 같은 기술을 통해 보안과 개인 정보를 강화하려는 노력이 이루어지고 있다. 도메인 이름은 ICANN 또는 OpenNIC과 같은 등록 기관을 통해 등록되며, 관련 표준은 IETF의 RFC 문서 형태로 제정된다.
더 읽어볼만한 페이지
- 도메인 네임 시스템 - 국제화 국가 코드 최상위 도메인
국제화 국가 코드 최상위 도메인은 다양한 언어의 문자를 국가 코드 최상위 도메인에 사용할 수 있도록 하는 시스템으로, 2009년부터 신청을 받아 아랍어, 러시아어, 중국어 등 다양한 국가에서 도입되었으나 혼동 가능성과 보안 문제 등의 과제도 안고 있다. - 도메인 네임 시스템 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다. - 인터넷 표준 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다. - 인터넷 표준 - IPv6
IPv6는 IPv4 주소 고갈 문제를 해결하고자 개발된 차세대 인터넷 프로토콜로, 128비트 주소 체계를 통해 사실상 무한대에 가까운 IP 주소를 제공하며, 주소 자동 설정, 패킷 처리 효율성 향상, 보안 기능 강화 등의 특징을 갖는다. - 인터넷 프로토콜 - IPTV
IPTV는 인터넷 프로토콜을 사용하여 실시간 방송, VOD 등 다양한 콘텐츠를 제공하는 텔레비전 서비스이며, 고속통신망과의 통합, 양방향 서비스 등의 장점을 가지지만 망 사업자 제한 등의 제한 사항도 존재한다. - 인터넷 프로토콜 - DNSSEC
DNSSEC는 DNS의 보안 취약점을 개선하기 위해 도메인 정보에 디지털 서명을 추가하여 응답 레코드의 무결성을 보장하고 DNS 위장 공격을 막는 기술로, RRSIG, DNSKEY 등 다양한 리소스 레코드 유형을 사용하여 인증 체인을 구성하며 공개 키 암호 방식을 활용한다.
도메인 네임 시스템 | |
---|---|
일반 정보 | |
![]() | |
약자 | DNS |
목적 | 네트워크 상의 자원 식별 |
날짜 | 1983년 11월 |
OSI 모델 계층 | 응용 계층 |
포트 | 53 |
RFC | RFC 1034 RFC 1035 |
2. 역사
ARPANET 시절부터 호스트의 숫자 주소 대신 더 단순하고 기억하기 쉬운 이름을 사용하는 방식이 사용되었다. 스탠퍼드 연구소는 ARPANET 컴퓨터들의 숫자 주소와 호스트 이름을 매핑하는 HOSTS.TXT 파일을 관리했다.[61][62] 존 포스텔은 숫자 주소 할당을 관리했다.[63]
도메인 이름 공간은 트리 형태로 구성된다. 트리의 각 노드는 0개 이상의 ''리소스 레코드(resource record)''를 가진다. 트리는 루트 존에서 시작하여 여러 개의 하위 존으로 나뉜다. 각 DNS 존은 하나의 권한 있는 ''네임 서버''에 의해 관리되는 노드들의 집합이다. 하나의 네임 서버가 여러 개의 존을 관리할 수도 있다.
초기에는 엘리자베스 J. 페인러가 개발하고 유지한 ARPANET 디렉토리를 통해 수동으로 주소가 할당되었다.[7] 페인러와 그녀의 팀은 도메인의 개념을 개발했고, 컴퓨터의 물리적 주소 위치에 기반하여 도메인을 제안했다. 예를 들어, 교육 기관 컴퓨터는 ''.edu'' 도메인을 갖는 식이었다.
1980년대 초, 단일 중앙 집중식 호스트 테이블 관리는 어려워졌고, 자동화된 이름 지정 시스템이 필요하게 되었다. 폴 모카페트리스는 1983년에 도메인 네임 시스템을 만들었다.[8][10] 인터넷 엔지니어링 태스크 포스는 1983년 11월에 RFC 882 및 RFC 883으로 최초의 사양을 발표했다.[11][12]
1984년, UC 버클리 학생들은 최초의 유닉스 네임 서버 구현인 BIND를 작성했다.[13] 1985년, DEC의 케빈 던랩이 DNS 구현을 수정했고, 이후 마이클 J. 카렐스, 필 알름퀴스트, 폴 빅시 등이 BIND 유지 관리를 맡았다. 인터넷 시스템 컨소시엄은 BIND 개발 및 유지 관리를 위해 1994년에 설립되었다. 2000년 이후, 43명이 넘는 다양한 핵심 개발자들이 BIND에 참여했다.[14]
1987년 11월, RFC 1034[15] 및 RFC 1035[16]는 1983년 DNS 사양을 대체했고, 이후 여러 추가 Request for Comments가 핵심 DNS 프로토콜 확장을 제안했다.[17]
3. 구조
관리 권한은 분할되어 새로운 존을 형성할 수 있다. 이때, 기존 도메인 이름 공간의 일부분이 서브도메인 형태로 다른 네임 서버에 권한이 ''위임''된다. 그리고 기존 존은 새로운 존에 대한 권한을 잃게 된다.
도메인 이름 형성 규칙은 RFC 1035, RFC 1123, RFC 2181에 정의되어 있다. 도메인 이름은 점으로 구분된 레이블(label)로 이루어지며, 가장 오른쪽 레이블은 최상위 도메인을 의미한다. 예를 들어 `www.example.com`에서 `com`이 최상위 도메인이다. 도메인의 계층은 오른쪽에서 왼쪽으로 내려가며, 왼쪽 레이블은 오른쪽 레이블의 서브도메인이다. 예를 들어, `example`은 `com` 도메인의 서브도메인이고, `www`는 `example.com`의 서브도메인이다.
각 레이블은 최대 63자, 전체 도메인 이름은 최대 253자까지 가능하다. 도메인 이름은 기술적으로 옥텟으로 표현 가능한 모든 문자를 사용할 수 있지만, 실제로는 ASCII 문자 집합의 일부(알파벳 a-z, A-Z, 숫자 0-9, 하이픈)만 허용된다. 이를 LDH 규칙이라고 한다. 도메인 이름은 대소문자를 구분하지 않으며, 레이블은 하이픈으로 시작하거나 끝날 수 없다.
3. 1. 도메인 이름 공간
도메인 이름 공간은 트리 자료 구조로 구성된다. 트리의 각 노드 또는 잎은 ''레이블''과 해당 도메인 이름과 관련된 정보를 담고 있는 0개 이상의 ''리소스 레코드''(RR)를 갖는다. 도메인 이름 자체는 레이블과 오른쪽에 있는 부모 노드의 이름을 점으로 구분하여 연결한 것으로 구성된다.[18]
트리는 루트 존에서 시작하여 ''존''으로 세분화된다. DNS 존은 존 관리자가 선택하는 만큼 많은 도메인과 서브도메인으로 구성될 수 있다. DNS는 별도의 클래스를 병렬 네임스페이스 트리의 배열로 생각할 수 있는 ''클래스''에 따라 분할될 수도 있다.[19]
존에 대한 관리 책임은 추가 존을 생성하여 분할할 수 있다. 새로운 존에 대한 권한은 지정된 네임 서버에 ''위임''된다고 한다. 부모 존은 새로운 존에 대한 권한을 상실한다.[19]
3. 2. 도메인 이름 형성
도메인 이름은 하나 이상의 부분(레이블)으로 이루어지고, 점으로 구분하여 붙여 쓴다.(예: `example.com`)
ICANN은 웹 브라우저와 같은 사용자 응용 프로그램이 유니코드 문자열을 Punycode를 사용하여 유효한 DNS 문자 집합으로 매핑하는 응용 프로그램의 국제화된 도메인 이름 (IDNA) 시스템을 승인했다. 2009년에 ICANN은 국제화된 도메인 이름 국가 코드 최상위 도메인(ccTLD)의 설치를 승인했다.
3. 3. 네임 서버
도메인 네임 시스템(DNS)은 분산 데이터베이스 시스템에 의해 관리되며, 클라이언트-서버 모델을 사용한다. 이 데이터베이스의 노드는 네임 서버이다. 각 도메인은 해당 도메인 및 하위 도메인의 네임 서버에 대한 정보를 게시하는 하나 이상의 권한 있는 DNS 서버를 갖는다. 계층 구조의 최상위는 루트 네임 서버에 의해 서비스되며, 이는 TLD를 조회(''해결'')할 때 쿼리하는 서버이다.
`ja.wikipedia.org`라는 호스트 이름의 IP 주소를 검색하는 과정을 예로 들면 다음과 같다.
1. 먼저, 클라이언트는 루트 서버 중 하나를 선택하여 최상위 도메인을 문의한다.
2. 루트 서버는 `org` 도메인의 네임 서버 (IP 주소)를 알려준다.
3. 클라이언트는 `org` 도메인의 네임 서버에 `wikipedia.org` 도메인의 네임 서버를 문의한다.
4. 마지막으로, `wikipedia.org` 도메인의 네임 서버에 `ja.wikipedia.org`의 IP 주소를 문의하여 최종 IP 주소를 얻는다.
DNS는 데이터를 분산 보관하는 다수의 권한 DNS 서버와 캐시 서버로 구성된다. 캐시 DNS 서버는 권한 DNS 서버의 응답 결과를 일정 기간 저장하여 대신 응답하며, 권한 DNS 서버의 부하를 분산시킨다.[56]
3. 3. 1. 권한 있는 네임 서버
권한 있는 네임 서버는 원본 소스(예: 도메인 관리자 또는 동적 DNS 방식)를 통해 구성된 데이터로부터 DNS 쿼리에 대한 응답만 제공하는 네임 서버이다. 이는 데이터의 캐시만 유지하는 다른 네임 서버와는 대조적이다.
권한 있는 네임 서버는 ''주 서버'' 또는 ''보조 서버''일 수 있다. 역사적으로 ''마스터/슬레이브'' 및 ''주/보조''라는 용어가 때때로 같은 의미로 사용되었지만[21], 현재는 후자를 사용하는 추세이다. 주 서버는 모든 존 레코드의 원본 사본을 저장하는 서버이다. 보조 서버는 DNS 프로토콜에서 특별한 자동 업데이트 메커니즘을 사용하여 주 서버와 통신하여 주 레코드의 동일한 사본을 유지한다.
모든 DNS 존에는 권한 있는 네임 서버 집합이 할당되어야 한다. 이 서버 집합은 네임 서버(NS) 레코드를 사용하여 상위 도메인 존에 저장된다.
권한 있는 서버는 응답에서 "''권한 있는 응답''"(''AA'') 비트라고 하는 프로토콜 플래그를 설정하여 결정적인 응답을 제공하는 상태, 즉 ''권한 있음''을 나타낸다.[16] 이 플래그는 일반적으로 dig와 같은 DNS 관리 쿼리 도구의 출력에 두드러지게 표시되어 ''응답하는 네임 서버가 해당 도메인 이름에 대한 권한이 있음을'' 나타낸다.[16]
DNS는 데이터를 분산하여 보관하는 다수의 권한 DNS 서버와 캐시 서버로 구성된다. 권한 네임 서버("권한 DNS 서버"[54], "권한 있는 DNS"[55]라고도 함)는 자신이 담당하는 일정 범위의 도메인 이름의 이름 확인을 내부 데이터베이스를 사용하여 수행하고, 그 결과의 IP 주소를 반환한다.[54]
4. 작동 방식
DNS는 사람이 이해하기 쉬운 호스트 이름을 IP 주소로 변환하는 "이름 해석(해결)"을 수행한다. 예를 들어, `www.example.com`이라는 호스트 이름은 (IPv4) 및 (IPv6) 주소로 변환될 수 있다.[3] 이 과정을 수행하는 클라이언트 측 구조나 프로그램을 "리졸버" 또는 "네임 리졸버"라고 한다.
DNS는 분산 데이터베이스 시스템으로, 인터넷상의 여러 DNS 서버에 정보가 분산되어 저장된다. 각 도메인은 존(zone)이라는 관할 구역으로 나누어 관리된다. 존은 도메인 네임 스페이스상의 어떤 부분에 해당하며, 각각의 존은 독립적인 DNS 콘텐츠 서버에 의해 관리된다.[16] DNS 콘텐츠 서버는 관리하는 존의 호스트 이름과 IP 주소의 조합을 담은 데이터베이스를 가지며, 클라이언트(또는 DNS 캐시 서버)의 요청에 따라 해당 호스트 이름에 대응하는 IP 주소를 반환한다.
DNS는 클라우드 서비스 및 콘텐츠 전송 네트워크와 같은 분산 인터넷 서비스에서 핵심적인 역할을 수행한다.[3] 사용자가 URL을 사용하여 이러한 서비스에 접근하면, URL의 도메인 이름은 사용자에게 가까운 서버의 IP 주소로 변환된다. 이때 서로 다른 사용자가 동시에 동일한 도메인 이름에 대해 서로 다른 변환을 받을 수 있다는 점이 중요하다.[4] 이는 사용자에게 더 빠르고 안정적인 응답을 제공하는 데 기여한다.
DNS 클라이언트는 루트 서버에서 시작하여 여러 DNS 서버를 거치며 최종적인 호스트 이름의 IP 주소를 얻는다 (DNS 재귀 검색).[11][12] 예를 들어, `ja.wikipedia.org`라는 호스트 이름의 IP 주소를 검색하는 과정은 다음과 같다.
# 클라이언트는 우선 루트 서버 중 하나(예: `A.ROOT-SERVERS.NET`, `198.41.0.4`)에 `org` 도메인의 네임 서버를 문의한다.
# 루트 서버는 `org` 도메인의 네임 서버 중 하나(예: `a7.nstld.com`, `192.5.6.36`)를 알려준다.
# 클라이언트는 `org` 도메인의 네임 서버에 `wikipedia.org` 도메인의 네임 서버를 문의한다.
# `org` 도메인의 네임 서버는 `wikipedia.org` 도메인의 네임 서버(예: `dns34.register.com`, `216.21.226.87`)를 알려준다.
# 클라이언트는 `wikipedia.org` 도메인의 네임 서버에 `ja.wikipedia.org`의 IP 주소를 문의하여 최종 응답을 받는다.
이러한 과정은 #주소 확인 메커니즘에서 더 자세히 설명된다.
4. 1. 주소 확인 메커니즘
도메인 이름 해석기는 오른쪽(최상위) 도메인 레이블부터 시작하는 일련의 쿼리를 통해 해당 도메인 이름에 대한 도메인 네임 서버를 결정한다.[16]네트워크 호스트는 도메인 이름 해석기가 제대로 작동하도록 하기 위해 루트 네임 서버의 알려진 주소에 대한 초기 캐시(''힌트'')로 구성된다. 이 힌트는 관리자가 신뢰할 수 있는 소스에서 데이터 세트를 검색하여 주기적으로 업데이트한다.
해석기가 프로세스를 가속화할 캐시된 레코드가 없다고 가정하면, 해석 프로세스는 루트 서버 중 하나에 대한 쿼리로 시작한다. 일반적인 작동 방식에서 루트 서버는 직접 응답하지 않고, 보다 권한 있는 서버에 대한 참조를 응답한다. 예를 들어 "www.wikipedia.org"에 대한 쿼리는 ''org'' 서버로 참조된다. 이제 해석기는 참조된 서버에 쿼리를 보내고, 권한 있는 응답을 받을 때까지 이 과정을 반복적으로 반복한다.
인터넷의 모든 해석이 루트에서 시작해야 한다면 루트 서버에 큰 부담이 갈 것이다. 이를 해결하기 위해 DNS 서버에서 캐싱을 사용하여 루트 서버의 부담을 줄인다. 그 결과 루트 네임 서버는 실제로 모든 요청의 작은 부분에만 관여한다.[24]
`ja.wikipedia.org`라는 호스트 이름의 IP 주소를 검색하는 과정은 다음과 같다.
# 클라이언트는 우선 루트 서버 중 하나(예: `A.ROOT-SERVERS.NET`, `198.41.0.4`)에 `org` 도메인의 네임 서버를 문의한다.
# 루트 서버는 `org` 도메인의 네임 서버 중 하나(예: `a7.nstld.com`, `192.5.6.36`)를 알려준다.
# 클라이언트는 `org` 도메인의 네임 서버에 `wikipedia.org` 도메인의 네임 서버를 문의한다.
# `org` 도메인의 네임 서버는 `wikipedia.org` 도메인의 네임 서버(예: `dns34.register.com`, `216.21.226.87`)를 알려준다.
# 클라이언트는 `wikipedia.org` 도메인의 네임 서버에 `ja.wikipedia.org`의 IP 주소를 문의하여 최종 응답을 받는다.
4. 1. 1. 재귀 및 캐싱 네임 서버
이론적으로는 권한 있는 네임 서버만으로 인터넷 운영이 충분하다. 그러나 권한 있는 네임 서버만 운영될 경우, 모든 DNS 쿼리는 루트 존에서 재귀적 쿼리로 시작해야 하며, 각 사용자 시스템은 재귀적 연산을 수행할 수 있는 리졸버 소프트웨어를 구현해야 한다.[24]효율성을 개선하고, 인터넷 전반의 DNS 트래픽을 줄이며, 최종 사용자 애플리케이션의 성능을 향상시키기 위해, 도메인 네임 시스템은 DNS 캐시 서버를 지원하며, 이 서버는 해당 도메인 이름 레코드의 구성(''time-to-live'')에 의해 결정된 기간 동안 DNS 쿼리 결과를 저장한다.
일반적으로 이러한 캐싱 DNS 서버는 쿼리된 도메인의 권한 있는 네임 서버까지 DNS 루트에서 시작하여 주어진 이름을 해석하는 데 필요한 재귀적 알고리즘도 구현한다. 네임 서버에 이 기능이 구현되어 있으면 사용자 애플리케이션은 설계 및 운영 효율성을 얻을 수 있다.
네임 서버에서 DNS 캐싱과 재귀적 기능의 조합은 필수가 아니며, 특별한 목적을 위해 서버에서 기능을 독립적으로 구현할 수 있다.
인터넷 서비스 제공업체는 일반적으로 고객에게 재귀 및 캐싱 네임 서버를 제공한다. 또한, 많은 홈 네트워킹 라우터는 로컬 네트워크의 효율성을 향상시키기 위해 DNS 캐시 및 재귀 기능을 구현한다.
4. 2. DNS 리졸버
DNS의 클라이언트는 DNS 리졸버라고 불린다. 리졸버는 도메인 이름을 IP 주소로 변환하는 것과 같이, 요청된 리소스의 전체 확인(번역)으로 이어지는 쿼리를 시작하고 시퀀싱하는 역할을 한다.[15] DNS 리졸버는 ''재귀'', ''비재귀'', ''반복'' 쿼리 방식 등으로 분류되며, 확인 과정은 이러한 방식들을 조합하여 사용할 수 있다.[15]- '''비재귀 쿼리''': DNS 리졸버가 해당 서버가 권한을 가지고 있는 레코드를 제공하거나, 다른 서버를 쿼리하지 않고 부분적인 결과를 제공하는 DNS 서버에 쿼리를 보내는 방식이다. 캐싱 DNS 리졸버의 경우, 로컬 DNS 캐시에 대한 비재귀 쿼리는 결과를 제공하며, 상위 DNS 서버로부터 초기 응답을 받은 후 일정 기간 동안 DNS 리소스 레코드를 캐싱하여 상위 DNS 서버의 부하를 줄인다.
- '''재귀 쿼리''': DNS 리졸버가 단일 DNS 서버에 쿼리를 보내며, 이 서버는 요청자를 대신하여 다른 DNS 서버에 다시 쿼리를 보낼 수 있는 방식이다. 예를 들어, 홈 라우터에서 실행되는 간단한 스텁 리졸버는 일반적으로 사용자의 ISP에서 운영하는 DNS 서버에 재귀 쿼리를 보낸다. DNS 서버는 필요에 따라 다른 네임 서버에 쿼리를 보내어 쿼리에 완전히 응답한다. 일반적인 작동 방식에서 클라이언트는 캐싱 재귀 DNS 서버에 재귀 쿼리를 발행하고, 이 서버는 그 후 응답을 결정하기 위해 비재귀 쿼리를 발행하여 클라이언트에 단일 응답을 다시 보낸다. 리졸버 또는 리졸버를 대신하여 재귀적으로 작동하는 다른 DNS 서버는 쿼리 헤더의 비트를 사용하여 재귀 서비스의 사용을 협상한다. DNS 서버는 재귀 쿼리를 지원할 필요는 없다.
- '''반복 쿼리''': DNS 리졸버가 하나 이상의 DNS 서버 체인에 쿼리를 보내는 과정이다. 각 서버는 요청을 완전히 확인할 수 있을 때까지 체인의 다음 서버를 클라이언트에게 참조한다. 예를 들어, www.example.com의 가능한 확인은 글로벌 루트 서버, "com" 서버, 마지막으로 "example.com" 서버에 쿼리를 보낼 것이다.
4. 3. 순환 종속성 및 글루 레코드
위임에서 네임 서버는 IP 주소가 아닌 이름으로 식별된다. 이는 해석 네임 서버가 참조된 서버의 IP 주소를 알아내기 위해 또 다른 DNS 요청을 발행해야 함을 의미한다. 위임이 제공되는 도메인의 하위 도메인인 이름이 위임에 제공된 경우 순환 종속성이 발생한다.이 경우 위임을 제공하는 네임 서버는 위임에 언급된 권한 있는 네임 서버에 대한 하나 이상의 IP 주소도 제공해야 한다. 이 정보를 '글루'라고 한다. 위임하는 네임 서버는 DNS 응답의 '추가 섹션'에 레코드 형식으로 이 글루를 제공하고, 응답의 '권한 섹션'에 위임을 제공한다. 글루 레코드는 네임 서버와 IP 주소의 조합이다.
예를 들어, example.org에 대한 권한 있는 네임 서버가 ns1.example.org인 경우, www.example.org를 해석하려는 컴퓨터는 먼저 ns1.example.org를 해석한다. ns1이 example.org에 포함되어 있으므로 먼저 example.org를 해석해야 하며, 이는 순환 종속성을 나타낸다. 종속성을 끊기 위해 최상위 도메인 org의 네임 서버는 example.org에 대한 위임과 함께 글루를 포함한다. 글루 레코드는 ns1.example.org에 대한 IP 주소를 제공하는 주소 레코드이다. 해석기는 이러한 IP 주소 중 하나 이상을 사용하여 도메인의 권한 있는 서버 중 하나에 쿼리하며, 이를 통해 DNS 쿼리를 완료할 수 있다.
4. 4. 레코드 캐싱
DNS 서버의 부담을 줄이기 위한 일반적인 방법은 이름 확인 결과를 로컬 또는 중간 확인자 호스트에서 캐싱하는 것이다. 각 DNS 쿼리 결과에는 생존 시간(TTL)이 함께 제공되며, 이는 정보를 폐기하거나 새로 고쳐야 하기 전까지 유효한 시간을 나타낸다. 이 TTL은 권한 있는 DNS 서버의 관리자가 결정하며, 몇 초에서 며칠 또는 몇 주까지 가능하다.[25]이러한 분산 캐싱 아키텍처의 결과로 DNS 레코드에 대한 변경 사항은 네트워크 전체에 즉시 전파되지 않고, 모든 캐시가 TTL 후에 만료되고 새로 고쳐져야 한다. RFC 1912는 적절한 TTL 값을 결정하기 위한 기본 규칙을 전달한다.
일부 확인자는 TTL 값을 재정의할 수 있으며, 프로토콜은 최대 68년 동안 캐싱을 지원하거나 전혀 캐싱하지 않을 수도 있다. 네거티브 캐싱은, 즉 레코드가 존재하지 않는다는 사실의 캐싱은, 요청된 유형의 데이터가 존재하지 않음을 보고할 때 Start of Authority (SOA) 레코드를 포함해야 하는 영역에 대한 권한 있는 이름 서버에 의해 결정된다. SOA 레코드의 ''최소'' 필드 값과 SOA 자체의 TTL은 네거티브 응답에 대한 TTL을 설정하는 데 사용된다. 일부 대형 ISP는 TTL을 준수하지 않거나, 이름 서버 중 하나가 응답하지 않는다는 이유로 도메인 이름이 존재하지 않는다고 표시하는 등 규칙을 위반하도록 DNS 서버를 구성했다.[26]
웹 브라우저와 같은 일부 응용 프로그램은 네트워크를 통한 반복적인 조회를 피하기 위해 내부 DNS 캐시를 유지한다. 이러한 관행은 DNS 문제 디버깅 시 해당 데이터의 기록을 모호하게 하여 추가적인 어려움을 더할 수 있다. 이러한 캐시는 일반적으로 1분 정도의 매우 짧은 캐싱 시간을 사용한다.[27]
인터넷 익스플로러는 주목할 만한 예외를 나타낸다. IE 3.x 버전까지는 기본적으로 DNS 레코드를 24시간 동안 캐시한다. 인터넷 익스플로러 4.x 이상 버전(IE 8까지)은 기본 시간 초과 값을 30분으로 줄였으며, 기본 구성을 수정하여 변경할 수 있다.[28]
구글 크롬은 DNS 서버에 문제가 감지되면 특정 오류 메시지를 표시한다.
4. 5. 역방향 조회
역방향 DNS 조회는 IP 주소가 알려진 경우 도메인 이름을 묻는 DNS 쿼리이다. 여러 개의 도메인 이름을 하나의 IP 주소에 연결할 수 있다. DNS는 IP 주소를 포인터(PTR) 레코드 내의 인프라 최상위 도메인 arpa에 특수하게 형식화된 이름으로 도메인 이름 형태로 저장한다. IPv4의 경우, 도메인은 in-addr.arpa이다. IPv6의 경우, 역방향 조회 도메인은 ip6.arpa이다. IP 주소는 IPv4의 경우 역순 옥텟 표현으로, IPv6의 경우 역순 니블 표현으로 이름으로 표현된다.역방향 조회를 수행할 때, DNS 클라이언트는 모든 DNS 쿼리와 마찬가지로 위임 체인을 따라 PTR 레코드의 이름을 쿼리하기 전에 주소를 이러한 형식으로 변환한다. 예를 들어, IPv4 주소 208.80.152.2가 위키미디어에 할당되었다고 가정하면, DNS 이름으로 역순으로 표현된다: 2.152.80.208.in-addr.arpa. DNS 해석기가 포인터(PTR) 요청을 받으면, 208.in-addr.arpa 영역에 대해 미국 인터넷 번호 관리 기구(ARIN)의 서버를 가리키는 루트 서버를 쿼리하는 것으로 시작한다. ARIN의 서버는 152.80.208.in-addr.arpa를 위키미디어에 위임하며, 해석기는 2.152.80.208.in-addr.arpa에 대한 다른 쿼리를 보내고, 이는 권한 있는 응답으로 이어진다.
4. 6. 클라이언트 조회
사용자는 일반적으로 DNS 리졸버/분석기와 직접 통신하지 않고, 웹 브라우저, 이메일 클라이언트 등 인터넷 애플리케이션에서 투명하게 DNS 확인이 이루어진다. 애플리케이션이 도메인 이름 조회를 요청하면, 로컬 운영 체제의 DNS 리졸버/분석기로 확인 요청을 보낸다. 그러면 DNS 리졸버/분석기가 필요한 통신을 처리한다.[24]DNS 리졸버/분석기는 최근 조회를 담고 있는 캐시를 가지고 있다. 캐시에 답변이 있으면, 리졸버/분석기는 캐시 값을 반환한다. 캐시에 답변이 없으면, 리졸버/분석기는 지정된 DNS 서버로 요청을 보낸다. 대부분의 가정 사용자는 인터넷 서비스 제공업체가 제공하는 DNS 서버를 사용하며, DHCP를 통해 자동으로 설정되거나 수동으로 설정한다. 시스템 관리자가 자체 DNS 서버를 구성한 경우, DNS 리졸버/분석기는 해당 조직의 네임 서버를 가리킨다. 쿼리된 네임 서버는 성공 또는 실패 결과를 찾을 때까지 위에서 설명한 프로세스를 따른다. 결과를 찾으면 리졸버/분석기는 결과를 캐시하고 요청한 소프트웨어에 전달한다.[24]
4. 6. 1. 손상된 리졸버
일부 대형 ISP는 TTL을 준수하지 않거나, 이름 서버 중 하나가 응답하지 않는다는 이유로 도메인 이름이 존재하지 않는다고 표시하는 등 규칙을 위반하도록 DNS 서버를 구성하기도 한다.[26]웹 브라우저와 같은 일부 응용 프로그램은 네트워크를 통한 반복적인 조회를 피하기 위해 내부 DNS 캐시를 유지한다. 이러한 관행은 DNS 문제 디버깅 시 해당 데이터의 기록을 모호하게 하여 추가적인 어려움을 더할 수 있다. 이러한 캐시는 일반적으로 1분 정도의 매우 짧은 캐싱 시간을 사용한다.[27]
인터넷 익스플로러는 주목할 만한 예외를 나타낸다. IE 3.x 버전까지는 기본적으로 DNS 레코드를 24시간 동안 캐시한다. 인터넷 익스플로러 4.x 이상 버전(IE 8까지)은 기본 시간 초과 값을 30분으로 줄였으며, 기본 구성을 수정하여 변경할 수 있다.[28]
구글 크롬은 DNS 서버에 문제가 감지되면 특정 오류 메시지를 표시한다.
5. 주요 DNS 목록
DNS를 잘못 설정할 경우 인터넷 이용에 문제가 생길 수 있으므로, 신뢰할 수 있는 DNS 서버만 이용하는 것이 권장된다.
운영주체 | 기본 DNS | 보조 DNS | 기타 |
---|---|---|---|
KT | 168.126.63.1 | 168.126.63.2 | 열린 주소창이 작동하던 주소였으나 현재는 열린 주소창이 작동하지 않음. |
LG유플러스 | 164.124.101.2 | 203.248.252.2 | |
SK브로드밴드 | 210.220.163.82 | 219.250.36.130 | |
CJ헬로비전 | 180.182.54.1 | 180.182.54.2 | |
구글 | 8.8.8.8 | 8.8.4.4 | 구글 Public DNS |
시만텍 | 199.85.126.10 | 199.85.127.10 | 노턴 ConnectSafe DNS |
클라우드플레어 | 1.1.1.1 | 1.0.0.1 | Cloudflare DNS |
기본적으로 통신사가 제공하는 DNS는 서버가 한국에 소재하여 빠른 응답 속도를 보여준다.
구글과 시만텍의 DNS는 한국에 서버가 소재하진 않지만, 인접국인 일본에 서버가 소재하고 있어, 40ms 미만의 응답 속도를 보여준다.
클라우드플레어의 DNS는 한국에 서버를 두어 응답속도가 3~5ms정도의 응답속도를 보인다.[61][62][63]
6. 보안 문제
초기 도메인 네임 시스템(DNS) 설계는 보안을 주요 고려 사항으로 삼지 않았다. 이는 네트워크가 일반 대중에게 개방되지 않았기 때문이다. 그러나 1990년대 인터넷이 상업 부문으로 확장되면서 데이터 무결성과 사용자 인증을 보호하기 위한 보안 조치가 필요하게 되었다.[44]
DNS 캐시 포이즈닝과 같은 여러 취약성 문제가 발견되고 악용되었다. DNS 응답은 전통적으로 암호화 서명을 갖지 않아 많은 공격 가능성을 야기했다. 도메인 네임 시스템 보안 확장(DNSSEC)은 암호화된 서명이 포함된 응답을 지원하도록 DNS를 수정한다. 전방 확인 역방향 DNS와 같은 기술도 DNS 결과를 검증하는 데 사용될 수 있다.
DNS는 대부분의 인터넷 사용자가 평소에 의식하지 못하는 투명한 시스템이지만, 그 역할은 매우 중요하다. 어떤 도메인을 관리하는 DNS 서버가 정지되면 해당 도메인 내의 호스트를 나타내는 URL이나 이메일 주소의 이름 해결 등이 불가능해져, 네트워크가 사용자와 연결되어 있어도 해당 도메인 내의 서버에는 사실상 접근할 수 없게 된다. 따라서 중요한 DNS 서버는 이중화되는 경우가 많다.
또한 DNS 스푸핑을 통해 정보를 쉽게 도청 및 위조할 수 있다. 정보 레코드의 부정한 수정을 방지하기 위해 콘텐츠 서버의 마스터(프라이머리)는 인터넷(외부)에서 숨기고, 인터넷에는 특정 마스터의 복사본(존 전송)을 받는 슬레이브(세컨더리)를 공개하는 등의 구성을 통해 방어 수단을 강구한다.
6. 1. DNS 스푸핑
DNS 소프트웨어와 초기 인터넷에 배포된 소프트웨어는 원래 보안을 주요 설계 고려 사항으로 두지 않았다. 이는 네트워크가 일반 대중에게 개방되지 않았기 때문이다. 그러나 1990년대 인터넷이 상업 부문으로 확장되면서 데이터 무결성과 사용자 인증을 보호하기 위한 보안 조치의 필요성이 커졌다.악의적인 사용자에 의해 여러 취약성 문제가 발견되고 악용되었다. 그중 하나는 DNS 캐시 포이즈닝으로, 권위 있는 원본 서버인 척하면서 캐싱 리졸버에 데이터가 배포되어 데이터 저장소에 잠재적으로 잘못된 정보와 긴 만료 시간(TTL)이 포함되게 된다. 결과적으로, 합법적인 애플리케이션 요청이 악의적인 의도로 운영되는 네트워크 호스트로 리디렉션될 수 있다.
DNS 응답은 전통적으로 암호화 서명을 갖지 않아 많은 공격 가능성을 야기한다. 도메인 네임 시스템 보안 확장(DNSSEC)은 암호화된 서명이 포함된 응답을 지원하도록 DNS를 수정한다.[44] DNSCurve는 DNSSEC의 대안으로 제안되었다. TSIG와 같은 다른 확장 기능은 신뢰할 수 있는 피어 간의 암호화 인증을 지원하며, 일반적으로 영역 전송 또는 동적 업데이트 작업을 인증하는 데 사용된다.
전방 확인 역방향 DNS와 같은 기술도 DNS 결과를 검증하는 데 사용될 수 있다.
DNS는 또한 구성에 주의를 기울이지 않으면 안전하거나 개인적인 연결에서 "유출"될 수 있으며, 때로는 악의적인 사람들이 방화벽을 우회하고, 종종 무해한 것으로 간주되기 때문에 데이터 유출을 위해 DNS를 사용해 왔다.
일부 도메인 이름은 스푸핑 효과를 얻는 데 사용될 수 있다. 예를 들어, paypal.com과 paypa1.com은 서로 다른 이름이지만, 사용자는 선택한 글꼴에 따라 그래픽 사용자 인터페이스에서 이를 구별하지 못할 수 있다. 많은 글꼴에서 문자 'l'과 숫자 '1'은 매우 유사하거나 동일하게 보이기 때문이다. 이 문제는 IDN 동형이의어 공격으로 알려져 있으며, 국제화 도메인 이름을 지원하는 시스템에서 특히 심각하다. ISO 10646의 많은 문자 코드는 일반적인 컴퓨터 화면에서 동일하게 보일 수 있기 때문이다. 이 취약점은 때때로 피싱에 악용된다.[45]
6. 2. DNSMessenger
DNSMessenger[46][47][48][49]는 DNS를 사용하여 전통적인 웹 프로토콜에 의존하지 않고 원격으로 멀웨어를 통신하고 제어하는 사이버 공격 기술의 한 유형이다. DNS는 주로 도메인 이름 확인에 사용되며 네트워크 보안 도구에 의해 면밀히 모니터링되지 않는 경우가 많기 때문에 공격자가 악용할 수 있는 효과적인 채널이므로 DNS메신저 공격은 은밀하게 이루어진다.이 기술은 감염된 시스템에 명령을 보내기 위해 DNS TXT 레코드를 사용하는 방식을 포함한다. 멀웨어가 피해자의 시스템에 은밀하게 설치되면, 제어된 도메인에 접속하여 DNS 텍스트 레코드에 인코딩된 명령을 검색한다. 이러한 형태의 멀웨어 통신은 스텔스 공격이며, DNS 요청은 일반적으로 방화벽을 통과하도록 허용되고, DNS 트래픽은 종종 무해한 것으로 간주되기 때문에, 이러한 통신은 많은 네트워크 보안 방어를 우회할 수 있다.
DNS메신저 공격은 데이터 유출에서 추가 페이로드 전송에 이르기까지 광범위한 악의적인 활동을 가능하게 하며, 동시에 기존 네트워크 보안 조치의 레이더망에 걸리지 않는다. 이러한 방법에 대한 이해와 방어는 강력한 사이버 보안을 유지하는 데 매우 중요하다.
7. 개인 정보 및 추적 문제
원래 공개적이고 계층적이며 분산된, 그리고 캐싱이 많이 되는 데이터베이스로 설계된 DNS 프로토콜은 기밀성 제어가 없다. 사용자 쿼리 및 네임서버 응답은 암호화되지 않은 상태로 전송되어 네트워크 패킷 스니핑, DNS 하이재킹, DNS 캐시 포이즈닝 및 중간자 공격을 가능하게 한다.[50] 이러한 결함은 사이버 범죄자와 네트워크 운영자가 마케팅 목적으로, 캡티브 포털 및 검열의 사용자 인증에 흔히 사용된다.[50]
DNS 관련 개인 정보 문제를 해결하기 위해 사용되는 주요 접근 방식은 다음과 같다.
- DNS 확인을 VPN 운영자에게 이전하고 로컬 ISP로부터 사용자 트래픽을 숨기는 VPN
- 익명 .onion 도메인으로 기존 DNS 확인을 대체하여 양파 라우팅 감시를 통해 이름 확인과 사용자 트래픽을 모두 숨기는 Tor
- 실제 DNS 확인을 제3자 제공업체로 이전하는 프록시 및 공개 DNS 서버. 이들은 일반적으로 요청 로깅을 거의 또는 전혀 수행하지 않으며 DNS 수준 광고 또는 음란물 차단과 같은 선택적 추가 기능을 제공한다.
- *공개 DNS 서버는 기존 DNS 프로토콜을 사용하여 쿼리할 수 있으며, 이 경우 로컬 감시로부터 보호 기능을 제공하지 않거나, 이러한 보호 기능을 제공하는 DNS over HTTPS, DNS over TLS 및 DNSCrypt를 사용할 수 있다.
로컬 네트워크 운영자가 DNS를 검사하는 것을 방지하는 솔루션은 기업 네트워크 보안 정책 및 인터넷 검열을 방해한다고 비판받는다. 또한 사용자 트래픽을 수익화하고 DNS 이름 확인을 중앙 집중화하는 것으로 알려진 소수의 회사에 DNS 확인 권한을 넘겨주는 것과 일반적으로 인터넷에 해로운 것으로 인식되는 것에 대해 개인 정보 보호 관점에서 비판받는다.[50]
8. 도메인 이름 등록
도메인 이름을 사용할 권한은 인터넷 주소 자원 관리 기구(ICANN) 또는 인터넷의 이름 및 번호 시스템을 감독하는 OpenNIC과 같은 다른 기관의 인증을 받은 도메인 이름 등록 기관에 의해 위임된다. ICANN 외에도 각 최상위 도메인(TLD)은 레지스트리를 운영하는 관리 조직에 의해 기술적으로 유지 관리되고 서비스된다. ''레지스트리''는 권한 있는 영역 내의 이름 데이터베이스를 운영할 책임이 있지만, 이 용어는 TLD에 가장 자주 사용된다. ''등록자''는 도메인 등록을 요청한 개인 또는 조직이다.[17] 레지스트리는 각 도메인 이름 ''등록 기관''으로부터 등록 정보를 받으며, 등록 기관은 해당 영역의 이름을 할당할 권한(인증)을 받으며 WHOIS 프로토콜을 사용하여 정보를 게시한다. 2015년 현재 RDAP 사용이 고려되고 있다.[51]
ICANN은 TLD, TLD 레지스트리 및 도메인 이름 등록 기관의 전체 목록을 게시한다. 도메인 이름과 관련된 등록자 정보는 WHOIS 서비스를 사용하여 접근할 수 있는 온라인 데이터베이스에 유지 관리된다. 290개 이상의 국가 코드 최상위 도메인(ccTLD)의 경우 대부분 도메인 레지스트리가 WHOIS(등록자, 네임 서버, 만료 날짜 등) 정보를 유지 관리한다. 예를 들어, DENIC, 독일 NIC는 DE 도메인 데이터를 보유한다. 2001년경부터 대부분의 일반 최상위 도메인(gTLD) 레지스트리는 이른바 ''두꺼운'' 레지스트리 방식을 채택했다. 즉, WHOIS 데이터를 등록 기관 데이터베이스가 아닌 중앙 레지스트리에 보관한다.
COM 및 NET의 최상위 도메인의 경우 ''얇은'' 레지스트리 모델이 사용된다. 도메인 레지스트리(예: GoDaddy, BigRock 및 PDR, VeriSign 등)는 기본 WHOIS 데이터(즉, 등록 기관 및 네임 서버 등)를 보유한다. 반면에 ORG를 사용하는 조직 또는 등록자는 공익 레지스트리에 독점적으로 있다.
일부 도메인 이름 레지스트리는 종종 ''네트워크 정보 센터''(NIC)라고 불리며 WHOIS 데이터 세트에 대한 접근을 제공하는 것 외에도 최종 사용자에게 등록 기관 역할을 한다. COM, NET 및 ORG 도메인과 같은 최상위 도메인 레지스트리는 많은 도메인 이름 등록 기관으로 구성된 레지스트리-등록 기관 모델을 사용한다.[52] 이 관리 방식에서 레지스트리는 도메인 이름 데이터베이스와 등록 기관과의 관계만 관리한다. ''등록자''(도메인 이름 사용자)는 등록 기관의 고객이며, 경우에 따라 재판매인의 추가 하청을 통해 이루어진다.
9. 관련 표준
IETF(Internet Engineering Task Force)에서 RFC(Request for Comments) 문서 형태로 DNS 관련 표준을 발표한다.
다음은 주요 DNS 관련 RFC 문서들이다.
RFC 번호 | 제목 | 설명 |
---|---|---|
RFC 1034 | 도메인 네임 - 개념 및 기능 | DNS의 핵심 개념 정의[15] |
RFC 1035 | 도메인 네임 - 구현 및 명세 | DNS 구현 방법 정의[16] |
RFC 2136 | 도메인 네임 시스템의 동적 업데이트 (DNS UPDATE) | 동적 DNS 업데이트 정의 |
RFC 6891 | DNS의 확장 메커니즘 (EDNS0) | DNS 확장 메커니즘(EDNS) 정의 |
RFC 4033 | DNS 보안 소개 및 요구 사항 | DNSSEC 관련 표준 |
RFC 4034 | DNS 보안 확장을 위한 자원 레코드 | DNSSEC 관련 표준 |
RFC 4035 | DNS 보안 확장을 위한 프로토콜 수정 | DNSSEC 관련 표준 |
RFC 7858 | 전송 계층 보안(TLS)을 통한 DNS 사양 | DNS over TLS 정의 |
RFC 8484 | HTTPS를 통한 DNS 쿼리(DoH) | DNS over HTTPS 정의 |
10. 관련 용어
- , ''DNS 용어''[17]
- DNS 서버
- 동적 도메인 네임 시스템(Dynamic Domain Name System, DDNS)
- 리졸버
- djbdns - DNS 서버용 소프트웨어.
- BIND
- unbound - 오픈 소스 DNS 캐시 서버
- DNS 루트 존
- DNS 존 전송
- DNS 레코드 유형 목록
- MX 레코드
- SRV record|SRV 레코드영어
- 글루 레코드
- DNSBL(DNS 블랙리스트)
- DNS 라운드 로빈
- Extension mechanisms for DNS|EDNS0영어(DNS 확장 메커니즘 버전 0)
- 도메인 이름
- 최상위 도메인(TLD)
- 국제화 도메인 네임
- 정규화 도메인 이름(Fully Qualified Domain Name)
- 지역 인터넷 레지스트리
- 레지스트라
- TCP/IP
- 이름 확인
- 정방향 조회
- 역방향 조회
- 디렉터리 서비스
- DNS 스푸핑
- 생일 공격
- DNS-피닝(DNS 리바인딩DNS rebinding영어)
- DNS 보안 확장(DNSSEC)
- 애니캐스트
참조
[1]
논문
Information fusion-based method for distributed domain name system cache poisoning attack detection and identification
https://onlinelibrar[...]
2016
[2]
RFC
Internet Protocol - DARPA Internet Program Protocol Specification
The Internet Society
1981-09
[3]
웹사이트
Globally Distributed Content Delivery
https://people.cs.um[...]
2002-09-10
[4]
논문
The Akamai Network: A Platform for High-Performance Internet Applications
http://www.akamai.co[...]
2012-11-19
[5]
웹사이트
DNS Abuse Handling
https://conference.a[...]
APNIC
2016-12-18
[6]
서적
DNS and BIND
O'Reilly Media
[7]
문서
IEEE Annals
2011-07-29
[8]
웹사이트
Why Does the Net Still Work on Christmas? Paul Mockapetris - Internet Hall of Fame
2012-07-23
[9]
웹사이트
Elizabeth Feinler
2018-11-25
[10]
웹사이트
Paul Mockapetris Internet Hall of Fame
2020-02-12
[11]
웹사이트
Happy 30th Birthday, DNS!
Internet Society
2015-12-18
[12]
문서
IEEE Annals
2011-07-29
[13]
컨퍼런스
The Berkeley Internet Name Domain Server
1984-06-12
[14]
웹사이트
The History of BIND
https://www.isc.org/[...]
2022-04-04
[15]
RFC
Domain Names - Domain Concepts and Facilities
IETF
1987-11
[16]
RFC
Domain Names - Implementation and Specification
IETF
1987-11
[17]
RFC
DNS Terminology
IETF
2015-12-18
[18]
RFC
Domain Names - Domain Concepts and Facilities
IETF
2015-12-17
[19]
RFC
Domain Names - Domain Concepts and Facilities
IETF
2015-12-17
[20]
서적
International Domain Name Law: ICANN and the UDRP
Bloomsbury Publishing
[21]
논문
DNS Terminology
https://www.rfc-edit[...]
2024-07-01
[22]
서적
Linux Administration Handbook
https://books.google[...]
Addison-Wesley Professional
2006-10-30
[23]
서적
e-Infrastructure and e-Services for Developing Countries: 8th International Conference, AFRICOMM 2016, Ouagadougou, Burkina Faso, December 6-7, 2016, Proceedings
https://books.google[...]
Springer
2017-10-09
[24]
웹사이트
DNS zone
https://www.ionos.co[...]
2022-01-27
[25]
웹사이트
What is DNS propagation?
https://www.ionos.co[...]
2022-04-22
[26]
웹사이트
Providers ignoring DNS TTL?
http://ask.slashdot.[...]
Slashdot
2012-04-07
[27]
웹사이트
Ben Anderson: Why Web Browser DNS Caching Can Be A Bad Thing
http://dyn.com/web-b[...]
2014-10-20
[28]
웹사이트
How Internet Explorer uses the cache for DNS host entries
http://support.micro[...]
Microsoft Corporation
2010-07-25
[29]
웹사이트
Domain Name System (DNS) Parameters
https://www.iana.org[...]
IANA
2019-06-14
[30]
서적
Computer Networking: A Top-Down Approach
Pearson Educ. Limited
[31]
RFC
Domain Name System (DNS) IANA Considerations
2008-11
[32]
RFC
Domain Name System (DNS) IANA Considerations
2008-11
[33]
RFC
The Role of Wildcards in the Domain Name System
2006-07
[34]
RFC
Extension Mechanisms for DNS (EDNS0)
1999-08
[35]
웹사이트
Privacy of DNS over HTTPS: Requiem for a Dream?
https://raw.githubus[...]
National University of Singapore
2021-02
[36]
IETF
DNS over Dedicated QUIC Connections
Internet Engineering Task Force
2022-05-01
[37]
저널
Oblivious DNS: Practical Privacy for DNS Queries
https://petsymposium[...]
2019-01-01
[38]
웹사이트
Oblivious DNS Deployed by Cloudflare and Apple
https://medium.com/n[...]
2022-07-27
[39]
웹사이트
Oblivious DNS Over HTTPS
https://datatracker.[...]
IETF
2021-09-02
[40]
웹사이트
"No Port 53, Who Dis?" A Year of DNS over HTTPS over Tor
https://www.ndss-sym[...]
Network and Distributed System Security Symposium
2021-02-01
[41]
웹사이트
DNSCrypt – Critical, fundamental, and about time.
https://umbrella.cis[...]
2011-12-06
[42]
웹사이트
Anonymized DNSCrypt specification
https://raw.githubus[...]
DNSCrypt
[43]
웹사이트
Oblivious DoH · DNSCrypt/dnscrypt-proxy Wiki
https://github.com/D[...]
DNSCrypt project
2022-07-28
[44]
저널
Retrofitting Security into Network Protocols: The Case of DNSSEC
https://ieeexplore.i[...]
2014-01-01
[45]
웹사이트
Global Phishing Survey: Domain Name Use and Trends in 1H2010
http://www.apwg.org/[...]
APWG
2010-10-15
[46]
웹사이트
DNSMessenger (Malware Family)
https://malpedia.caa[...]
2024-12-11
[47]
웹사이트
New Fileless Malware Uses DNS Queries To Receive PowerShell Commands
https://thehackernew[...]
The Hacker News
2024-12-11
[48]
웹사이트
Covert Channels and Poor Decisions: The Tale of DNSMessenger
https://blog.talosin[...]
2024-12-11
[49]
Youtube
It's DNS again 😢 Did you know this Malware Hack?
https://www.youtube.[...]
2024-12-11
[50]
저널
DNS Privacy and the IETF
http://ipj.dreamhost[...]
2019-07-01
[51]
웹사이트
Registration Data Access Protocol (RDAP) Operational Profile for gTLD Registries and Registrars
https://web.archive.[...]
ICANN
2015-12-18
[52]
웹사이트
Find a Registrar
http://www.verisign.[...]
VeriSign, Inc.
2015-12-18
[53]
웹사이트
ISI Marks 20th Anniversary of Domain Name System
https://www.isi.edu/[...]
2022-11-06
[54]
웹사이트
インターネット用語1分解説~権威DNSサーバ(authoritative name server)とは~
https://www.nic.ad.j[...]
2022-11-06
[55]
웹사이트
第7回 DNSの仕組みについて
https://lpi.or.jp/lp[...]
2022-11-06
[56]
웹사이트
重要技術 DNSの仕組み
https://www.soumu.go[...]
2022-11-06
[57]
문서
포트53을 사용하지 않고 포트443을 사용한다.
[58]
RFC
Domain Names - Concepts and Facilities
The Internet Society
1987-11-01
[59]
RFC
Internet Protocol - DARPA Internet Program Protocol Specification
The Internet Society
1981-09-01
[60]
RFC
Domain Names - Implementation and Specification
The Internet Society
1987-11-01
[61]
RFC
Role of the Domain Name System (DNS)
2003-02-01
[62]
서적
DNS and BIND
O'Reilly Media
[63]
문서
IEEE Annals [3B2-9] man2011030074.3d 29/7/011 11:54 Page 74
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com