WHOIS란?
WHOIS는 도메인 이름 등록 정보를 조회하는 최초의 프로토콜로, 인터넷 초기부터 사용되어 왔습니다. WHOIS 조회를 수행하면 등록대행자 정보, 생성일, 만료일, 과거에는 등록자 연락처 정보까지 포함한 도메인 등록 세부 정보가 텍스트 응답으로 반환됩니다.
WHOIS의 역사
WHOIS는 인터넷 규모가 훨씬 작았던 1980년대에 등장했습니다. 1982년 RFC 812에 처음 문서화되었으며, 시스템 관리자가 네트워크 자원을 담당하는 사람을 식별할 수 있도록 설계되었습니다. 이 프로토콜은 TCP 43번 포트에서 작동하고 간단한 텍스트 질의를 받아 사람이 읽을 수 있지만 기계가 처리하기에는 불편한 응답을 반환합니다.
WHOIS가 개발자에게 문제가 되는 이유
WHOIS 데이터를 파싱하는 애플리케이션을 만들어 본 개발자라면 근본적인 결함을 경험했을 것입니다. 표준 형식이 없습니다. 등록대행자와 레지스트리마다 WHOIS 출력을 서로 다르게 구성합니다. 실제로 다음과 같은 문제가 발생합니다.
일관되지 않은 필드 이름
- 어떤 등록대행자는 "Creation Date"를 사용합니다.
- 다른 등록대행자는 "Created On"을 사용합니다.
- 또 다른 곳은 "Registration Date"를 사용합니다.
- 일부는 소문자인 "created:"를 사용합니다.
서로 다른 날짜 형식
2024-01-15T00:00:00Z
15-Jan-2024
January 15, 2024
15/01/2024
예측하기 어려운 구조
어떤 등록대행자는 섹션 사이에 빈 줄을 넣고 다른 곳은 넣지 않습니다. 어떤 곳은 콜론을 구분자로 사용하고, 다른 곳은 탭을 사용합니다. 이런 불일치 때문에 안정적인 WHOIS 파서는 수십 개의 정규식 패턴을 유지해야 하며, 등록대행자가 형식을 바꿀 때마다 패턴을 계속 갱신해야 합니다.
WHOIS 기술 세부 정보
프로토콜 수준에서 WHOIS 질의 자체는 단순합니다.
1. WHOIS 서버의 43번 포트에 TCP 연결을 엽니다.
2. 도메인 이름 뒤에 줄 바꿈을 붙여 전송합니다.
3. 연결이 닫힐 때까지 응답을 읽습니다.
echo "example.com" | nc whois.verisign-grs.com 43
응답은 표준화된 구조가 없는 일반 텍스트이므로 주의 깊게 파싱해야 합니다.
WHOIS의 개인정보 보호 변화
2018년 GDPR 도입으로 WHOIS 데이터의 공개 범위가 근본적으로 바뀌었습니다. 과거 WHOIS 응답에는 다음 정보가 포함되었습니다.
- 등록자 이름과 조직
- 이메일 주소와 전화번호
- 실제 주소
현재는 대부분의 등록대행자가 이 개인정보를 가리고 다음 정보만 표시합니다.
- 등록대행자 이름
- 등록일과 만료일
- 네임서버 정보
- 도메인 상태 코드
이러한 개인정보 보호 조치로 WHOIS는 연락처 조회에는 덜 유용해졌지만, 가용성 확인과 기술적 도메인 정보에는 여전히 가치가 있습니다.
WHOIS와 RDAP 중 선택하기
새로운 개발에서는 가능한 경우 항상 RDAP를 우선 사용하세요. RDAP는 동일한 정보를 표준 JSON 형식으로 제공하므로 쉽게 파싱할 수 있습니다. 다만 다음과 같은 경우에는 WHOIS가 여전히 필요합니다.
- 아직 RDAP로 이전하지 않은 레거시 시스템
- RDAP를 구현하지 않은 일부 ccTLD
- 과거 데이터 분석 도구
WHOIS 서버 찾기
각 TLD에는 지정된 WHOIS 서버가 있습니다. 예를 들면 다음과 같습니다.
- .com/.net 도메인 조회에 사용하는 WHOIS 서버 주소: whois.verisign-grs.com
- .org 등록과 도메인 조회 요청을 처리하는 WHOIS 서버 주소: whois.publicinterestregistry.org
- .io WHOIS 서버: whois.nic.io
IANA는 whois.iana.org에서 적절한 TLD WHOIS 서버로 안내할 수 있는 루트 데이터베이스를 관리합니다.
WHOIS의 미래
ICANN은 RDAP 도입을 의무화했으며 WHOIS는 단계적으로 폐지되고 있습니다. WHOIS 서버가 앞으로도 수년간 운영될 가능성은 있지만, 새로운 애플리케이션은 RDAP를 기반으로 만들어야 합니다. DomScan은 지원하는 모든 TLD에서 일관되고 신뢰할 수 있는 결과를 제공하기 위해 도메인 가용성 확인에 RDAP만 사용합니다.