← 기술 블로그 목록으로 돌아가기
#952 • Domain Intelligence & RFC 3912 Socket Protocol Engineering

도메인 스나이핑과 정보 유출 없는 온디바이스 도메인 인텔리전스: ZeliWhois의 RFC 3912 TCP 포트 43 직접 질의와 2단계 리퍼럴 WHOIS 분석 아키텍처

"도메인 등록 웹사이트에서 신규 프로젝트 이름을 검색해봤더니, 다음날 누군가 선점하고 수백만 원에 되팔고 있었던 적이 있으십니까?" 제3자 웹 프록시나 검색 기록 가로채기(Domain Front-Running)를 원천 차단하는 완전 격리 온디바이스 WHOIS 인텔리전스 엔진, 국제 인터넷 표준 RFC 3912 기반의 순수 C# TcpClient 포트 43 직접 소켓 통신, 최상위 레지스트리(Registry)에서 공인 등록대행자(Registrar)로 이어지는 2단계 리퍼럴(Referral) 연쇄 질의, .kr/.com/.ai TLD 지능형 라우팅, 그리고 30일 이내 만료 임박 시각 경고 텔레메트리 아키텍처 백서.

"도메인 네임(Domain Name)은 디지털 영토의 시작점이자 기관의 정체성입니다. 학교에서 새로운 학생 창업 프로젝트나 AI 서비스 도메인을 기획할 때, 혹은 국방 사이버 관제 센터에서 악성 피싱 의심 도메인의 출처를 추적할 때 WHOIS 조회는 가장 먼저 수행되는 작업입니다. 하지만 일반적인 도메인 검색 웹사이트는 사용자의 검색 쿼리를 기록하여 도메인 브로커에게 실시간으로 판매하거나 직접 선점(Sniping)하는 악의적인 비즈니스 모델을 운영합니다. ZeliWhois는 중간 경유지 없이, 개발자의 PC에서 전 세계 공인 레지스트리 서버로 TCP 포트 43 소켓을 직접 연결하여 완전한 침묵 속에서 진실을 규명합니다."

1. 도메인 조회의 숨겨진 위협: "상용 웹사이트의 도메인 선점(Front-Running)과 검색 기록 감청"

웹 브라우저를 켜고 포털이나 도메인 등록 대행 사이트에서 도메인 가용성을 조회하는 행위는 생각보다 매우 위험합니다:

2. RFC 3912 WHOIS 프로토콜의 본질: HTTP 웹 API가 아닌 TCP 포트 43 순수 스트림

1982년 ARPANET RFC 812로 시작되어 2004년 RFC 3912로 표준화된 WHOIS 프로토콜은 웹(HTTP/JSON)이 탄생하기 훨씬 전부터 존재했던 가장 순수하고 단순한 텍스트 기반 소켓 프로토콜입니다.

프로토콜 특성 RFC 3912 표준 규격 일반 상용 웹 검색
전송 계층 / 포트 TCP 포트 43 HTTP/HTTPS (포트 80/443)
통신 구조 도메인 이름 전송 후 즉시 응답 수신 및 연결 종료 웹페이지 HTML 렌더링, 수십 개 광고 스크립트 실행
프라이버시 중간자 없는 공인 서버 직접 연결 (0바이트 기록) 웹 서버 데이터베이스에 검색 쿼리 및 IP 영구 저장
응답 지연율 0.1초 이내 초고속 순수 텍스트 수신 3초~5초 (웹 UI 렌더링 및 캡차 대기)

ZeliWhois는 복잡한 서드파티 웹 브리지 없이, 운영체제의 네이티브 TCP 소켓을 열어 국제 공인 기관에 직접 말을 건넵니다.

3. ZeliWhois의 C# 네이티브 소켓 파이프라인: TcpClient와 10초 타임아웃 CancellationToken

네트워크 지연이나 해외 레지스트리 서버의 응답 지연으로 인해 애플리케이션이 멈추는 것을 방어하기 위해, ZeliWhois는 비동기 TcpClient와 엄격한 CancellationTokenSource(10초)를 결합했습니다.

flowchart TD
    INPUT["도메인 입력 (URL 자동 정제)"] --> TLD{"GetWhoisServer (TLD 판별)"}
    
    TLD -- ".kr / .co.kr" --> KR["whois.kr (KISA KRNIC)"]
    TLD -- ".com / .net" --> COM["whois.verisign-grs.com"]
    TLD -- ".ai / .io / .dev" --> GTLD["해당 전용 레지스트리 서버"]
    
    KR & COM & GTLD --> SOCK1["1차 QueryWhois (TCP 43 소켓 연결)"]
    SOCK1 --> RESP1["1차 원시 WHOIS 텍스트 수신"]
    
    RESP1 --> CHK{"Registrar WHOIS Server 필드 존재 여부"}
    CHK -- "리퍼럴 서버 발견 (GoDaddy, 가비아 등)" --> SOCK2["2차 QueryWhois (해당 대행자 서버로 직접 질의)"]
    CHK -- "리퍼럴 서버 없음" --> PARSE["ParseSummary 정규식 파서"]
    
    SOCK2 --> PARSE
    PARSE --> SUMMARY["상단 요약 카드 (등록자, 생성일, 만료일)"]
    PARSE --> EXPDATE{"만료 30일 이내 여부"}
    EXPDATE -- "30일 이하" --> WARN["OrangeRed 경고 시각화"]
    EXPDATE -- "정상" --> OK["LimeGreen 정상 시각화"]
                

다음은 ZeliWhois의 핵심 네트워크 엔진인 QueryWhois()의 실제 소스 코드입니다:

C# (ZeliWhoisWindow.xaml.cs) RFC 3912 TCP 포트 43 직접 질의 소켓 파이프라인
private async Task<string> QueryWhois(string server, string domain)
{
    // 1. 10초 타임아웃 캔슬레이션 토큰 할당
    using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
    using var client = new TcpClient();

    // 2. 공인 WHOIS 서버의 TCP 43번 포트로 비동기 직접 접속
    await client.ConnectAsync(server, 43).WaitAsync(cts.Token);

    using var stream = client.GetStream();
    
    // 3. RFC 3912 표준 규격에 따라 "domain\r\n" 바이트 스트림 전송
    byte[] query = Encoding.ASCII.GetBytes(domain + "\r\n");
    await stream.WriteAsync(query, 0, query.Length, cts.Token);

    // 4. 전 세계 다국어 문자를 온전히 보존하기 위한 UTF-8 스트림 리더
    using var reader = new StreamReader(stream, Encoding.UTF8);
    return await reader.ReadToEndAsync(cts.Token);
}

4. 2단계 리퍼럴(Referral) 연쇄 질의: Registry(레지스트리)에서 Registrar(대행자)로의 심층 확장

.com이나 .net 같은 대규모 도메인은 씬 레지스트리(Thin Registry) 구조를 취합니다. 즉, 베리사인(VeriSign) 같은 최상위 관리 기관은 네임서버와 등록 대행자(Registrar) 정보만 갖고 있을 뿐, 실제 도메인 소유자의 상세 주소나 연락처는 대행자(가비아, 후이즈, Namecheap 등)가 관리합니다.

1차 조회만 수행하면 상세 정보를 알 수 없는 반쪽짜리 결과가 됩니다. ZeliWhois는 1차 응답에서 Registrar WHOIS Server 필드를 정규식으로 감지한 뒤, 2차 리퍼럴 소켓 연결을 자동으로 수행하여 완전한 데이터세트를 융합합니다.

5. ccTLD 및 gTLD 지능형 라우팅 엔진: .kr/.co.kr KISA KRNIC부터 .ai/.io/.dev까지

도메인 확장자마다 관할하는 인터넷 주소 관리 기관이 완전히 다릅니다. ZeliWhois는 내장된 고속 패턴 매칭 스위치를 통해 도메인 접미사를 분석하고 최적의 WHOIS 서버를 0초 만에 지정합니다:

C# (ZeliWhoisWindow.xaml.cs) TLD 및 2단계 ccTLD 지능형 라우팅 매핑
private string GetWhoisServer(string domain)
{
    string tld = domain.Split('.').Last();
    string sld = string.Join('.', domain.Split('.').TakeLast(2));

    // 대한민국 2단계 도메인 KISA KRNIC 라우팅
    return sld switch
    {
        "co.kr" or "or.kr" or "go.kr" or "ac.kr" or "pe.kr" or "ne.kr" or "re.kr" => "whois.kr",
        _ => tld switch
        {
            "kr" => "whois.kr",
            "jp" => "whois.jprs.jp",
            "io" => "whois.nic.io",
            "ai" => "whois.nic.ai",
            "dev" or "app" => "whois.nic.google",
            "org" => "whois.pir.org",
            "net" => "whois.verisign-grs.com",
            _ => "whois.verisign-grs.com" // .com 기본
        }
    };
}

6. 사이버 위협 헌팅과 만료일 진단: 정규식 필드 파서와 30일 이내 만료 임박(OrangeRed) 텔레메트리

수백 줄의 복잡한 텍스트에서 관리자가 가장 필요로 하는 정보는 "도메인 소유자가 누구인가", "언제 등록되었는가", "언제 만료되는가" 3가지입니다.

ZeliWhois는 다양한 국가와 기관의 이질적인 필드 표기법(`Creation Date`, `Created Date`, `Registered Date` 등)을 유연하게 아우르는 정규식 파서를 통해 요약 카드(`PnlSummary`)를 자동 생성합니다.

🚨 도메인 만료 임박 자동 경고 시스템

학교 및 공공기관에서 도메인 갱신을 잊어버려 도메인이 낙장(Drop)되고 스쿼터에게 빼앗기는 사고가 빈번합니다. ZeliWhois는 만료일까지 남은 일수(`daysLeft`)가 30일 이내인 경우 텍스트 색상을 주황-빨간색(OrangeRed)으로 전환하여 관리자에게 즉각적인 갱신 필요성을 시각적으로 경고합니다.

7. 도메인 인텔리전스 도구(상용 WHOIS 웹 vs Linux whois CLI vs ZeliWhois) 비교 분석

비교 지표 상용 도메인 검색 웹사이트 Linux whois CLI ZeliDesk ZeliWhois
도메인 선점(Sniping) 위험 매우 높음 (검색 로그 판매) 없음 원천 차단 (0바이트 기록)
외부 설치 및 런타임 웹 브라우저 Linux 전용 (WSL 설치 필요) Zero-Install 윈도우 네이티브
2단계 리퍼럴 자동 추적 대행자 사이트마다 다름 옵션(-h) 수동 지정 필요 완전 자동 2차 연쇄 질의
핵심 필드 요약 및 만료 경고 광고로 도배됨 원시 텍스트 출력만 지원 소유자/생성일/30일 만료 임박 색상 경고
URL 도메인 자동 정제 에러 발생 (URL 거부) 에러 발생 http:// 및 경로 자동 정제

8. 결론: "검색 기록 0바이트 유출, 기관의 브랜드와 사이버 자산을 수호하는 온디바이스 인텔리전스"

도메인은 사이버 공간에서 가장 가치 있는 무형 자산입니다. 한 번의 부주의한 웹 검색으로 참신한 서비스 이름이 탈취당하거나, 관제 센터의 침해 조사 활동이 해커에게 노출되는 위험은 온디바이스 소켓 통신을 통해 완벽하게 방어될 수 있습니다.

ZeliDesk의 ZeliWhois는 RFC 3912 표준을 가장 순수하게 구현하여, 중간 경유지 없는 투명한 질의와 2단계 리퍼럴 분석, 그리고 직관적인 도메인 라이프사이클 관리를 제공합니다. 이제 전국의 교육 현장과 국방 전산실은 완벽한 프라이버시 속에서 안전하게 인터넷 인프라를 탐색할 수 있습니다.

← 이전 기술 백서 #953 PuTTY 없는 온디바이스 원격 셸과 리눅스 서버 거버넌스: ZeliSSH의 Renci.SshNet 비동기 스트리밍 터미널과 ANSI 이스케이프 렌더링 아키텍처 다음 기술 백서 → #951 UI 프리징 없는 100만 파일 고속 스캔과 디스크 용량 거버넌스: ZeliTree의 50ms 틱 디바운스 DirectoryScanner와 비동기 계측 아키텍처
🔍 ZeliDesk ZeliWhois 온디바이스 도메인 인텔리전스 체험하기
도메인 선점 걱정 없이, RFC 3912 소켓 직접 질의로 안전하게 소유자와 만료일을 조회하세요.
72종 유틸리티 전체 둘러보기 →