유니콘 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가 하는 일
- 트래픽 분석
- 어떤 서비스, 어떤 웹사이트, 어떤 애플리케이션에서 보내는 데이터인지 확인 가능
- 예: 유튜브 영상 스트리밍, 페이스북 메신저 등
- 차단/제한
- 기업, 학교, 정부에서 특정 사이트나 서비스 차단 가능
- 예: 특정 포트나 SNI(Server Name Indication) 기반 차단
- 보안/방화벽
- 악성코드, 바이러스, 공격 패턴 탐지
- 네트워크 트래픽 모니터링 및 침입 방어
- 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 차단 우회 방법
- VPN
- 모든 트래픽을 암호화하여 DPI가 내용 분석 못 하게 함
- DPI는 IP 주소나 패턴만 보고 차단 가능, 내용은 못 봄
- HTTPS 우회 앱 (예: 유니콘 HTTPS)
- TLS/HTTPS 연결 과정에서 SNI 등 메타정보를 숨김
- DPI가 “어느 사이트인지” 식별하지 못하도록 함
- 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.com과 myblog.com이 같은 서버 IP를 공유
- HTTPS 연결 시, 서버는 어떤 인증서(Certificate)를 써야 할지 알아야 함
- SNI가 없으면 서버는 “어떤 도메인 인증서를 써야 할지 모르기 때문에 연결이 실패”
3. TLS 핸드셰이크에서 SNI 동작
- 클라이언트 → 서버: ClientHello 메시지 전송
- SNI 포함: example.com
- 서버 → 클라이언트: 적절한 인증서 선택 후 응답
- 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란?
- 클라이언트가 서버에게 보내는 첫 번째 메시지
- 목적:
- 지원 가능한 TLS 버전 알리기
- 사용할 암호 스위트(Cipher Suite) 제안
- 랜덤 값 보내서 세션 키 생성에 활용
- SNI(Server Name Indication) 포함 → 접속하려는 도메인 알림
- 기타 확장 정보 제공 (예: 압축, ALPN: HTTP/2 지원 여부 등)
즉, “안녕하세요, 이렇게 통신할 수 있어요. 그리고 저는 example.com에 접속하고 싶습니다.” 라고 서버에 알리는 메시지입니다.
3. ClientHello 메시지 구성 요소
| 항목 | 역할 |
| TLS 버전 | 클라이언트가 지원하는 TLS 버전 |
| 랜덤 값 | 세션 키 생성에 사용 |
| Cipher Suites | 클라이언트가 지원하는 암호화 방식 목록 |
| Compression Methods | 지원하는 압축 방식 |
| Extensions | 확장 정보 (예: SNI, ALPN, ECH 등) |
4. TLS 핸드셰이크 흐름 (간략)
- Client → Server: ClientHello
- 암호화 협상, SNI 포함
- Server → Client: ServerHello
- 사용할 TLS 버전, Cipher Suite 선택
- 서버 인증서(Server Certificate) 전송
- 세션 키 교환 (Pre-Master Secret → Master Secret 생성)
- 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)하는 경우에는 보통 다음 중 하나를 함:
- 기본(default) 인증서를 보낸다 — 클라이언트의 호스트 검사(hostname verification)가 실패하면 브라우저가 경고를 띄움.
- IP별로 별도 인증서/별도 IP를 할당해둔 경우에는 SNI 없이도 맞는 인증서를 제공할 수 있음(그러나 비용·관리 복잡도↑).
- 인증서가 여러 이름(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)”는 차단에 필요하지 않음
'네트워크2' 카테고리의 다른 글
| HTTP/1.1 프로토콜 버전 http/1.1, h2, h3 ... (0) | 2025.11.15 |
|---|---|
| TCP/IP 4계층 모델 (0) | 2025.11.15 |
| OSI 7계층 (네트워크 통신을 7단계로 나눈 모델) (0) | 2025.10.24 |
| 차단 우회 방법 (0) | 2025.10.08 |
| Cloudflare 란? :: CDN/프록시 서버 & 원 서버 (0) | 2025.10.08 |
| 요청 헤더 :: Host (목적지) vsOrigin (출처) (0) | 2025.10.08 |
| 정보 제공 상태 코드 :: 1xx (0) | 2025.10.08 |
| 서버 오류 코드 :: 5xx (0) | 2025.10.08 |