본문 바로가기
네트워크2

유니콘 HTTPS :: HTTPS 암호화 통신 :: DPI 차단 우회 기능

by 로맨틱스터디 2025. 10. 8.
728x90
반응형

유니콘 HTTPS

웹사이트 접속 시 HTTPS 암호화 통신을 보호하는 우회 앱입니다.

 

주로 DPI(Deep Packet Inspection) 차단 우회 기능을 제공합니다.

 

*inspection: 검사


🔐 유니콘 HTTPS의 주요 기능

  • DPI 차단 우회: 정부나 통신사에서 특정 HTTPS 사이트를 차단할 때, 유니콘 HTTPS를 활성화하면 차단을 우회하여 해당 사이트에 접속할 수 있습니다.
  • SNI 정보 보호: TLS 핸드셰이크 과정에서 서버 이름 표시(Server Name Indication, SNI)를 숨겨서 차단을 우회합니다.
  • 로컬 VPN 방식: 외부 서버를 거치지 않고, 기기 내에서 직접 암호화된 데이터를 처리하여 속도 저하 없이 우회가 가능합니다.
  • 브라우저 호환성: 크롬, 삼성 인터넷, 파이어폭스 등 다양한 브라우저에서 지원됩니다.

✅ 활성화 시와 비활성화 시의 차이점

상태 설명
활성화 DPI 차단 우회 기능이 작동하여 차단된 사이트에 접속 가능
비활성화 DPI 차단 우회 기능이 작동하지 않아 차단된 사이트에 접속 불가

 


⚠️ 주의사항

  • VPN과의 차이점: 유니콘 HTTPS는 VPN과 다르게 외부 서버를 거치지 않고 로컬에서 작동하므로 속도 저하가 적습니다.
  • 보안성: 로컬 VPN 방식으로 작동하므로 외부 서버를 통한 데이터 유출 위험이 낮습니다.
  • 사용 권장: 차단된 사이트에 접속해야 할 때만 활성화하고, 일반적인 웹 서핑 시에는 비활성화하여 불필요한 우회를 피하는 것이 좋습니다.

 

Deep Packet Inspection(DPI)는 네트워크 관련해서 꽤 중요한 개념이에요. 쉽게 풀어서 설명할게요.


1. Deep Packet Inspection(DPI)란?

  • 네트워크 상에서 데이터 패킷을 자세히 들여다보는 기술이에요.
  • 단순히 패킷의 헤더만 보는 게 아니라, 패킷 안의 실제 데이터(payload)까지 검사합니다.

2. DPI가 하는 일

  1. 트래픽 분석
    • 어떤 서비스, 어떤 웹사이트, 어떤 애플리케이션에서 보내는 데이터인지 확인 가능
    • 예: 유튜브 영상 스트리밍, 페이스북 메신저 등
  2. 차단/제한
    • 기업, 학교, 정부에서 특정 사이트나 서비스 차단 가능
    • 예: 특정 포트나 SNI(Server Name Indication) 기반 차단
  3. 보안/방화벽
    • 악성코드, 바이러스, 공격 패턴 탐지
    • 네트워크 트래픽 모니터링침입 방어
  4. QoS(서비스 품질 관리)
    • P2P 트래픽이나 대용량 트래픽 제한
    • 특정 트래픽 우선순위 지정

3. DPI vs 일반 패킷 검사

구분 일반 패킷 검사
(Shallow Packet Inspection)
DPI
(Deep Packet Inspection)
검사 범위 패킷 헤더(IP, 포트, 프로토콜) 헤더 + 페이로드(내용)
기능 라우팅, NAT, 방화벽 기본 기능 사이트 차단, 콘텐츠 분석, 보안, QoS
차단 수준 제한적 정밀/정교

4. HTTPS와 DPI

  • HTTPS처럼 암호화된 트래픽은 DPI가 내용(payload)을 볼 수 없음
  • 하지만 SNI(Server Name Indication)나 IP 주소 기반으로 접속하는 사이트 정도는 추적 가능
  • 그래서 DPI를 우회하려면 SNI 숨기기, VPN, HTTPS 우회 앱 같은 기술을 사용

💡 정리

  • DPI = 네트워크 패킷을 “속까지 훤히 들여다보는” 기술
  • 용도: 트래픽 분석, 차단, 보안, QoS 관리
  • HTTPS 때문에 직접 내용을 보는 건 어렵지만, 메타 정보(어떤 사이트에 접속했는지)는 여전히 볼 수 있음

 

DPI 차단 우회”라는 말은 조금 헷갈릴 수 있는데, 차근차근 풀어서 설명할게요.


1. DPI 차단이란?

  • DPI(Deep Packet Inspection) 기술을 사용하면, 네트워크 상에서 패킷의 내용(payload)까지 분석할 수 있어요.
  • 이를 통해 특정 사이트, 서비스, 콘텐츠를 차단할 수 있음.

예시:

  • 학교나 회사에서 “SNS 접속 차단”
  • 일부 국가에서 “특정 뉴스 사이트 접속 차단”

이때 DPI는 단순히 IP/포트만 보는 게 아니라, 트래픽 패턴, SNI(Server Name Indication), HTTP 헤더 등까지 분석해서 차단 가능


2. 차단 우회(Bypass)란?

  • DPI가 차단하는 것우회해서-> 접속하는 기술이나 방법
  • 즉, 네트워크가 “이 사이트 접속 금지!”라고 해도 사용자가 정상적으로 접속할 수 있게 만드는 것

3. DPI 차단 우회 방법

  1. VPN
    • 모든 트래픽을 암호화하여 DPI가 내용 분석 못 하게
    • DPI는 IP 주소 패턴만 보고 차단 가능, 내용은 못 봄
  2. HTTPS 우회 앱 (예: 유니콘 HTTPS)
    • TLS/HTTPS 연결 과정에서 SNI 등 메타정보를 숨김
    • DPI가 “어느 사이트인지” 식별하지 못하도록
  3. Tor, Shadowsocks 등
    • 트래픽을 암호화하고 우회 서버를 통해 전달 → 차단 우회

4. 핵심 차이

구분 차단 차단 우회
DPI 패킷 분석 → 특정 사이트/서비스 접근 차단 암호화/숨김 → DPI가 내용을 못 봐서 접속 가능
적용 예 학교, 회사, 일부 국가 네트워크 VPN, HTTPS 우회 앱, Tor 등

✅ 정리

  • DPI 차단 = 네트워크 상에서 패킷 내용을 분석하여 사이트/서비스 접속을 막음
  • DPI 차단 우회 = 암호화/숨김 등 기술을 이용해 DPI가 차단하지 못하게 하고 접속하는 것

 

SNI(Server Name Indication)는 HTTPS와 관련해서 중요한 개념이에요. 하나씩 자세히 설명할게요.


1. SNI(Server Name Indication)란?

  • TLS/SSL 연결 시, 클라이언트가 접속하려는 서버의 도메인 이름을 알려주는 확장 기능
  • 즉, **“내가 접속하려는 사이트 이름이 뭐야”**를 TLS 핸드셰이크 과정에서 서버에게 알려주는 것

2. 왜 필요할까?

  • 하나의 서버(IP)에서 여러 도메인을 호스팅하는 경우가 많아요.
  • 예:
    • example.commyblog.com같은 서버 IP를 공유
  • HTTPS 연결 시, 서버는 어떤 인증서(Certificate)를 써야 할지 알아야 함
  • SNI가 없으면 서버는 “어떤 도메인 인증서를 써야 할지 모르기 때문에 연결이 실패

3. TLS 핸드셰이크에서 SNI 동작

  1. 클라이언트 → 서버: ClientHello 메시지 전송
    • SNI 포함: example.com
  2. 서버 → 클라이언트: 적절한 인증서 선택 후 응답
  3. TLS 연결 성립암호화된 HTTPS 통신 시작

4. DPI와 SNI

  • HTTPS는 트래픽 내용을 암호화하지만, TLS 핸드셰이크 과정의 SNI 정보는 암호화되지 않음
  • 그래서 DPI 장비는 SNI를 보고 접속하려는 도메인을 식별 가능
  • 일부 차단 정책은 SNI 기반으로 특정 사이트 접속을 막음

5. SNI 차단 우회

  • SNI를 암호화(ESNI / ECH: Encrypted Client Hello)
  • HTTPS 우회 앱(예: 유니콘 HTTPS)에서 SNI를 숨기거나 변조 → DPI가 어떤 사이트인지 못 보고 차단 회피 가능

정리

  • SNI = TLS 연결 시 클라이언트가 서버에 보내는 접속하려는 도메인 정보
  • 필요 이유: 한 IP에서 여러 도메인 HTTPS 인증서 구분
  • DPI 활용: SNI 보고 사이트 차단 가능 → 우회 필요

 

TLS 핸드셰이크에서 ClientHello는 핵심 메시지라 꼭 이해해야 해요. 차근차근 풀어드릴게요.


1. TLS 핸드셰이크 개념

TLS(Transport Layer Security)

HTTPS에서 클라이언트와 ~ 서버 간 안전한 암호화 통신을 설정하는 프로토콜이에요.


핸드셰이크(handshake)암호화 통신을 시작하기 전, 서로 조건을 협상하는 단계입니다.


2. ClientHello란?

  • 클라이언트가 서버에게 보내는 첫 번째 메시지
  • 목적:
    1. 지원 가능한 TLS 버전 알리기
    2. 사용할 암호 스위트(Cipher Suite) 제안
    3. 랜덤 값 보내서 세션 키 생성에 활용
    4. SNI(Server Name Indication) 포함 → 접속하려는 도메인 알림
    5. 기타 확장 정보 제공 (예: 압축, ALPN: HTTP/2 지원 여부 등)

즉, 안녕하세요, 이렇게 통신할 수 있어요. 그리고 저는 example.com에 접속하고 싶습니다.” 라고 서버에 알리는 메시지입니다.


3. ClientHello 메시지 구성 요소

항목 역할
TLS 버전 클라이언트가 지원하는 TLS 버전
랜덤 값 세션 키 생성에 사용
Cipher Suites 클라이언트가 지원하는 암호화 방식 목록
Compression Methods 지원하는 압축 방식
Extensions 확장 정보 (예: SNI, ALPN, ECH 등)

4. TLS 핸드셰이크 흐름 (간략)

  1. Client → Server: ClientHello
    • 암호화 협상, SNI 포함
  2. Server → Client: ServerHello
    • 사용할 TLS 버전, Cipher Suite 선택
  3. 서버 인증서(Server Certificate) 전송
  4. 세션 키 교환 (Pre-Master Secret → Master Secret 생성)
  5. Finished 메시지 교환암호화된 통신 시작

5. DPI와 ClientHello

  • DPI 장비는 ClientHello에서 SNI를 확인
  • 아직 암호화가 시작되기 전이므로, “어떤 도메인에 접속하려는지” 파악 가능
  • 따라서 HTTPS 우회 앱은 이 ClientHello 단계에서 SNI를 숨기거나 암호화(ECH)하여 차단을 우회합니다.

✅ 정리

  • ClientHello = TLS 핸드셰이크의 첫 번째 메시지
  • 클라이언트가 서버에게 지원 가능한 암호화 방식, TLS 버전, 접속할 도메인(SNI) 등을 알려주는 단계
  • DPI 차단 우회는 주로 ClientHello의 SNI 정보를 숨기거나 암호화하는 방식으로 이루어짐

 

SNI가 없으면(또는 숨겨지면) TLS 핸드셰이크 단계에서는 "접속하려는 도메인 이름"을 바로 알 수 없다.
하지만 “알 수 없다”가 곧 “완전히 모른다”는 뜻은 아니고,

현실에선 다른 방법들(목적지 IP, DNS 쿼리, 트래픽 메타데이터 등)로 어느 정도 추정이 가능하다는 점이 중요합니다.

 

아래에 이유와 결과를 정리할게요.


1) SNI가 없는 경우 — 서버 입장에서

  • TLS 핸드셰이크의 ClientHello에 도메인 정보(SNI)가 없으면 서버는 어떤 인증서(어떤 호스트용)를 내보낼지 알 수 없음.
  • 서버가 여러 도메인 하나의 IP에서 호스팅(virtual hosting)하는 경우에는 보통 다음 중 하나를 함:
    1. 기본(default) 인증서를 보낸다 — 클라이언트의 호스트 검사(hostname verification)가 실패하면 브라우저가 경고를 띄움.
    2. IP별로 별도 인증서/별도 IP를 할당해둔 경우에는 SNI 없이도 맞는 인증서를 제공할 수 있음(그러나 비용·관리 복잡도↑).
    3. 인증서가 여러 이름(SAN)이나 와일드카드를 포함하면 SNI 없어도 통과할 수 있음(모든 호스트를 포함해야 함).

결과: 대부분의 현대 서버/브라우저 환경에서는 SNI가 없으면 연결 실패 또는 인증 경고가 발생할 가능성이 큽니다.


2) DPI(차단자) 관점 — SNI가 없을 때

  • ClientHello에 SNI가 없으면, DPI는 그 필드로 도메인을 식별할 수 없음.
  • 그러나 DPI는 여전히 다음을 볼 수 있음(따라서 차단 가능성은 남아 있음):
    • 목적지 IP 주소/포트(TCP/IP 헤더) — IP를 차단하면 차단됨.
    • DNS 쿼리(평문 DNS를 쓰면 어떤 도메인을 요청했는지 알 수 있음).
    • TLS fingerprint, 패킷 크기/타이밍 등 메타데이터서비스/프로토콜을 추정.
  • 따라서 SNI가 없다고 해서 “완전한 은닉”은 아니며, 차단자는 다른 수단으로 차단할 수 있음.

3) 클라이언트(브라우저) 관점 — SNI 없이 접속하면?

  • 현대 브라우저/클라이언트는 거의 항상 SNI를 보냄(거의 필수).
  • 만약 SNI 없이 접속 시도하면:
    • 서버가 기본 인증서를 보내고 브라우저에서 인증서 호스트 불일치 경고 뜰 수 있음.
    • 또는 서버가 연결을 거부할 수 있음.

4) SNI를 숨기려면(우회/보호 방법)

  • ECH (Encrypted Client Hello): ClientHello 자체의 민감 필드(SNI 포함)를 암호화하는 표준(점차 보급 중). ECH 사용 시 DPI가 SNI를 읽을 수 없음.
  • 터널링(VPN, TLS 터널 등): 모든 트래픽을 다른 종단으로 감싸면 DPI는 그 터널 서버 IP만 보게 됨.
  • DNS 보호(DoH/DoT): DNS 요청을 암호화하면 DNS에서 도메인 노출을 막을 수 있음.

단점: 차단자는 터널/터널 서버 IP를 차단하거나 다른 정책을 쓸 수 있음.


5) 요약

  • SNI 없으면 TLS 핸드셰이크 단계에서 “도메인 이름”은 드러나지 않음 → DPI가 그 필드로는 차단 불가.
  • 하지만 목적지 IP, DNS 질의, TLS 메타정보 등으로 차단 가능하므로 “완전한 식별 불가”는 아님.
  • 또한 서버는 어떤 인증서로 응답할지 몰라서(virtual hosting 환경) 인증 실패/경고가 날 수 있음—즉 사용자 경험에 문제 발생.

 

 

핵심은 DPI가 차단할 때 보는 “주소”가 어디인지 정확히 이해하는 거예요.


1️⃣ DPI가 차단할 때 기준

DPI(Deep Packet Inspection)는 HTTPS라도 암호화 전/외부의 메타정보를 분석해서 차단합니다.

 

주로 보는 정보:

정보 위치 설명
목적지 서버 IP/포트 TCP/IP 헤더 해당 서버로 가는 트래픽 자체를 차단 가능
SNI
(Server Name Indication)
TLS ClientHello 클라이언트가 접속하려는 도메인 이름.
서버 선택용으로 TLS 핸드셰이크에서 보내는 정보.
DPI는 이걸 보고 차단 가능
DNS 요청 DNS 패킷 클라이언트가 도메인 이름을 질의하는 내용. 평문 DNS누구나 확인 가능

2️⃣ Host와 Origin의 차이

헤더 의미 DPI 차단 여부
Host 요청하는 목적지 서버의 도메인 이름
(GET /index.html HTTP/1.1 Host: example.com)
HTTPS에서는 암호화 후 전송
→ DPI는 기본적으로 못 봄
Origin 요청을 보낸 출처(예: 웹 페이지의 도메인)
(Origin: https://myblog.com)
HTTPS에서는 암호화
→ DPI는 못 봄

즉, DPI가 보는 것은 Host/Origin 헤더가 아님.

  • DPI는 SNI, IP, DNS 같은 암호화 전에 노출되는 정보를 보고 차단합니다.
  • 목적은 “클라이언트가 어느 사이트(도메인)에 접속하려고 하는가?” 판단하는 것.

3️⃣ 한 문장 요약

  • DPI 차단 기준 = 접속하려는 서버의 도메인(SNI), IP, DNS 질의
  • Host나 Origin 헤더는 TLS로 암호화되므로 DPI 차단용으로 직접 쓰지 못함
  • 쉽게 말해: “내가 접속하려는 사이트”를 식별 → 차단, “내가 어느 페이지에서 요청했는지(Origin)”는 차단에 필요하지 않음

 

728x90
반응형