본문으로 건너뛰기

WebRTC 유출

WebRTC 유출 테스트: 브라우저 통화가 내 IP 주소에 대해 드러내는 것

상위 주제: VoIP는 안전할까? 브라우저 통화가 지켜 주는 것과 드러내는 것

Google에서 callfrombrowser.org를 선호 출처로 추가하기

요약

WebRTC 유출 테스트는 브라우저가 WebRTC를 통해 웹페이지에 넘겨주는 모든 IP 주소를 보여 줍니다. 그래서 숨기려 했던 주소, 대개는 VPN을 켠 상태에서 드러나는 인터넷 서비스 제공업체(ISP)의 주소를 찾아낼 수 있습니다[1]. 브라우저에서 전화번호로 거는 통화는 IP를 통화 서비스에 보여 줄 뿐 전화를 받는 상대방에게는 보여 주지 않으며, 상대방에게는 발신자 번호가 표시됩니다[2]. 이 테스트는 브라우저로 전화하기 전에 제가 권하는 개인정보와 보안 점검 가운데 하나입니다.

핵심 정리

WebRTC 유출이란 무엇인가요?

WebRTC 통화를 시작하기 전에 브라우저는 ICE 후보라고 부르는 가능한 네트워크 경로를 모아 웹페이지에 넘기고, 페이지는 이를 상대편에 전달합니다. 각 후보에는 IP 주소가 들어 있거나, 숨긴 로컬 주소 대신 무작위 .local 이름이 들어 있습니다. 일반 웹사이트는 요청이 들어온 공인 주소만 보지만, WebRTC를 통하면 페이지가 더 많은 것을 알 수 있습니다[1]. 이 목록에 공유할 생각이 없던 주소가 하나라도 있다면 그것이 유출입니다.

통화의 나머지 경로는 WebRTC, SIP, 전화망의 원리에서 설명했습니다. 유출에서 중요한 것은 후보 목록뿐입니다. MDN은 이 목록의 주소가 언제나 페이지에 노출된다고 설명합니다[6].

WebRTC 유출 테스트에 나오는 주소와 각 주소가 드러내는 정보
후보 유형표시되는 주소개인정보 위험
host로컬 네트워크에서 쓰는 기기 주소, 또는 브라우저가 숨긴 경우 .local로 끝나는 무작위 이름[7][3]공인 주소보다는 낮지만, IETF는 사설 IPv4 주소를 꽤 중요한 핑거프린팅(기기 식별) 수단으로 봅니다[1]
srflx(server reflexive)공유기나 VPN이 STUN 서버에 보여 주는 공인 주소[7]VPN을 켰는데 ISP 주소가 나온다면 높음[1]
relay미디어를 전달하는 TURN 서버의 주소[7]낮음: 상대편은 내 주소가 아니라 중계 서버의 주소를 봅니다[6]. 다만 중계 서버 운영자는 여전히 나를 봅니다

IETF는 VPN 사례를 가장 심각한 경우로 꼽습니다. 익명을 유지하려고 VPN을 쓰는 사람들이 있기 때문입니다[1]. 나머지 두 경우는 사설 주소가 드러나는 경우와, WebRTC의 연결 확인이 프록시를 우회해 실제 공인 주소가 드러나는 경우입니다[1].

브라우저로 통화하면 내 IP 주소가 노출되나요?

통화 서비스에는 노출됩니다. 모든 웹사이트는 내 공인 주소를 보고[1], 통화를 하면 서비스 서버와의 미디어 연결이 하나 더 생깁니다. 유선전화나 휴대전화로 전화를 받는 상대방에게는 노출되지 않습니다. 통화는 서비스 업체의 게이트웨이에서 인터넷을 벗어나고[8], 전화망은 IP 주소가 아니라 발신 번호를 전달하기 때문입니다[2]. 앱끼리의 통화는 두 기기를 직접 연결할 수 있습니다.

통화 유형별로 내 IP 주소를 볼 수 있는 쪽(2026년 11월 1일에 읽은 공식 도움말 기준)
통화 유형서비스전화를 받는 상대방
브라우저에서 전화번호로 거는 통화(Google Voice, TwinPhone, Yolla)예: 미디어 연결을 직접 운영합니다아니요: 상대방에게는 발신자 번호가 보입니다[2]
무료 웹 다이얼러(Call2Friends, Globfone)예: Call2Friends는 IP 주소별로 무료 통화를 제한하고, Globfone의 개인정보처리방침은 처리하는 기술 데이터와 로그에 IP 주소를 포함합니다[9][10]아니요: 발신자 번호가 보입니다
Messenger 1:1 통화예예: 메타는 내 IP가 상대방 기기와 공유된다고 밝힙니다[4]
WhatsApp예볼 수 있음. 단 ‘통화에서 IP 주소 보호’를 켜면 볼 수 없고, 그룹 통화는 항상 중계됩니다[5]
Telegram예볼 수 있음: Telegram의 2017년 발표에 따르면 통화는 가능할 때마다 P2P로 연결됩니다[11]

실제 전화번호로 거는 통화에서 따져야 할 것은 서비스가 무엇을 알고 무엇을 보관하느냐입니다. 상대방에게 대신 무엇이 보이는지는 브라우저로 전화하면 어떤 번호가 표시되는지에서 설명했습니다.

WebRTC 유출 테스트 하는 법

유출 테스트 페이지는 다이얼러가 통화 전에 하는 일을 그대로 합니다. WebRTC 연결을 열고, STUN 서버에 어떤 공인 주소가 보이는지 묻고, 모든 후보를 일반 HTTP로 보이는 주소 옆에 나란히 표시합니다. 전화를 거는 데 쓰는 브라우저마다, 먼저 VPN을 끈 상태로, 그다음 켠 상태로 실행해 보세요.

  1. VPN 끄기: BrowserLeaks의 WebRTC Leak Test 같은 유출 테스트 페이지를 엽니다. 맨 위의 “Your Remote IP”와 “Your WebRTC IP” 아래의 “Public IP Address”가 같아야 합니다.
  2. VPN 켜기: 페이지를 새로고침합니다. 이제 “Your Remote IP”에 VPN의 주소가 나와야 합니다.
  3. WebRTC 항목에 여전히 ISP 주소가 나온다면 WebRTC가 터널을 우회하고 있는 것입니다[1].
  4. .local로 끝나는 로컬 항목은 주소가 숨겨졌다는 뜻이고[3], 192.168. 또는 10.으로 시작하는 주소가 그대로 보인다면 숨겨지지 않은 것입니다.
  5. 페이지에 마이크 확인 기능이 있다면 허용하고 다시 테스트하세요. 다이얼러에는 마이크 권한이 필요하고, 이 권한이 있으면 더 많은 주소가 드러날 수 있습니다[1]. 테스트가 끝나면 사이트 설정에서 권한을 다시 삭제하세요[12].

마이크를 허용하자 크롬에서 달라진 점

에 저는 맥의 크롬 156에서 STUN 서버 없이 로컬 테스트 페이지를 열었기 때문에, 어떤 주소도 외부 서버로 나가지 않았습니다. 마이크 권한이 없을 때 페이지가 본 것은 .local로 끝나는 무작위 문자열 이름의 host 후보 하나였습니다[3]. 마이크를 허용하자 페이지는 제 실제 로컬 IPv4 주소를 받았습니다.

이는 표준을 따른 결과입니다. 표준은 마이크 권한 같은 동의가 있을 때만 전체 주소 목록을 허용하며[1], 사파리의 엔진인 WebKit도 2017년에 같은 규칙을 설명했습니다[13]. 따라서 내가 허용한 다이얼러는 로컬 주소를 볼 수 있습니다. 그래도 공인 주소가 드러나는 것보다는 위험이 작습니다[1].

WebRTC 유출을 줄이는 브라우저 설정

브레이브는 사용자용 WebRTC IP 설정을 안내합니다. 구글은 크롬의 제어 기능을 확장 프로그램과 관리자용으로, 마이크로소프트는 엣지의 제어 기능을 관리자 정책으로 안내합니다. 파이어폭스는 기본적으로 로컬 주소를 숨기고 about:config에 끄는 스위치를 두었습니다. 어디서나 통하는 규칙이 하나 있습니다. WebRTC가 통화를 실어 나르기 때문에 WebRTC를 끄면 브라우저 다이얼러도 멈춥니다[14].

브라우저별 WebRTC 주소 제어(2026년 11월 1일에 읽은 개발사 문서 기준)
브라우저제어 방법바뀌는 점브라우저 통화에 미치는 영향
브레이브개인정보 설정의 WebRTC IP 처리 정책(브레이브 위키 기준, 마지막 수정 2018년)[15]기본값 Default Public Interface Only는 로컬 주소를 노출하지 않습니다[15]미디어가 중계 서버로 우회될 수 있습니다[1]
크롬확장 프로그램이 WebRTC IP 처리 정책을 설정할 수 있고[16], 관리자는 WebRtcIPHandling 정책을 설정할 수 있습니다[17]값에 따라 사설 주소 사용을 멈추거나 미디어를 프록시로만 보냅니다[17]프록시 전용 값은 오디오를 TCP로 보내게 만들 수 있으며, IETF는 이 경우 품질이 떨어진다고 설명합니다[1]
엣지관리자 정책 WebRtcLocalhostIpHandling[18]값 가운데 두 가지는 로컬 IP 주소 노출을 막습니다[18]크롬과 같음
파이어폭스로컬 주소는 기본적으로 숨김[19], about:config의 media.peerconnection.enabled[20]이 설정을 false로 바꾸면 WebRTC가 꺼집니다브라우저 다이얼러가 작동하지 않습니다
사파리내장 규칙WebKit이 2017년에 설명한 대로, 마이크나 카메라 권한이 없는 페이지는 host 주소를 받지 못합니다[13]없음

VPN은 브라우저 통화에서 무엇을 바꾸나요?

WebRTC를 포함한 모든 트래픽을 터널로 보내는 VPN을 쓰면, 통화 서비스에는 내 주소 대신 VPN의 주소가 보입니다. 스플릿 터널링 VPN에서는 WebRTC가 ISP 주소까지 찾아낼 수 있으므로[1], VPN을 켠 상태에서 유출 테스트를 해야 합니다. VPN은 통화에도 부작용이 있습니다.

통화할 때 IP 주소를 지키는 방법

통화 유형에 맞춰 대처하세요. 전화번호로 거는 통화에서는 상대방이 내 IP를 받지 않으므로, IP를 맡겨도 될 만큼 믿을 수 있는 서비스를 고르고 VPN을 점검하면 됩니다. 앱끼리의 통화에서는 상대방 기기가 내 기기에 직접 연결될 수 있으므로, 앱에 중계 설정이 있다면 켜 두세요.

  1. 브라우저 통화: VPN을 켠 채 유출 테스트를 하고, 브레이브에서는 Default Public Interface Only를 고르세요[15].
  2. 마이크: 한 번만 쓰는 다이얼러에는 “이번만 허용”으로 권한을 주세요[12]. 제가 크롬에서 확인했을 때, 이 권한을 가진 페이지는 로컬 주소를 볼 수 있었습니다.
  3. WhatsApp: ‘통화에서 IP 주소 보호’를 켜세요. 도움말 페이지는 안드로이드, iOS, 맥을 다루고 웹은 다루지 않으며, 중계된 통화는 품질이 다소 떨어질 수 있다고 경고합니다[5].

자주 묻는 질문

WebRTC 유출 테스트란 무엇인가요?

WebRTC 유출 테스트는 브라우저 통화가 쓰는 연결 설정 과정을 실행해, 브라우저가 내놓는 모든 IP 주소를 페이지가 일반 HTTP로 보는 주소 옆에 나란히 보여 주는 웹페이지입니다. VPN을 켰는데 이 목록에 ISP 주소가 있다면 WebRTC가 터널을 우회하고 있다는 뜻이고[1], 무작위 .local 이름이 보인다면 로컬 주소가 숨겨졌다는 뜻입니다[3].

브라우저로 전화를 걸면 상대방이 내 IP 주소를 볼 수 있나요?

유선전화나 휴대전화로 거는 통화라면 볼 수 없습니다. 서비스 업체가 게이트웨이에서 브라우저 음성을 전화 통화로 바꾸고[23], 전화망은 IP 주소가 아니라 발신 번호를 전달합니다[2]. 앱끼리의 통화는 다릅니다. Messenger는 1:1 통화에서 내 IP가 상대방 기기와 공유된다고 밝힙니다[4].

VPN을 쓰면 WebRTC 유출이 막히나요?

WebRTC를 포함한 모든 트래픽을 터널로 보내는 VPN이라면 막힙니다. 스플릿 터널링 VPN은 막지 못할 수 있습니다. WebRTC가 VPN 주소와 함께 ISP의 공인 주소를 찾아낼 수 있기 때문입니다[1]. 확인하는 방법은 VPN을 연결한 상태에서 쓰는 브라우저마다 유출 테스트를 하고, 업데이트 후에 다시 해 보는 것뿐입니다.

로컬 IP 주소가 유출되면 위험한가요?

공인 주소 유출보다는 덜 위험합니다. 192.168.1.20 같은 사설 주소는 내 위치를 알려 주지 않지만, IETF는 사설 IPv4 주소를 한 기기에서 일반 브라우징과 시크릿 브라우징 세션을 연결할 수 있는 꽤 중요한 핑거프린팅 수단으로 봅니다[1]. 파이어폭스는 기본적으로 로컬 주소를 숨기고[19], 사파리는 마이크나 카메라 권한이 없는 페이지에 숨기며[13], 제가 확인했을 때 크롬도 그랬습니다.

시크릿 모드를 쓰면 WebRTC 유출이 막히나요?

아닙니다. IETF는 WebRTC로 드러난 사설 주소가 식별자 역할을 해서, 일반 창과 시크릿 창이 같은 기기에 있다는 사실을 사이트에 알려 줄 수 있다고 지적합니다[1]. 따라서 시크릿 모드만으로는 주소를 숨길 수 없습니다. 위의 브라우저 설정을 적용한 다음, 시크릿 창에서도 유출 테스트를 해 보세요.

WebRTC 유출 차단 확장 프로그램은 효과가 있나요?

부분적으로 있습니다. 크롬에서는 확장 프로그램이 브라우저의 WebRTC IP 처리 정책을 설정할 수 있는데, 구글은 이를 미디어 성능과 로컬 주소 정보 노출 정도 사이의 절충이라고 설명합니다[16]. 값에 따라 로컬 주소를 숨기거나 미디어를 프록시로 보내게 되며, 후자는 오디오를 TCP로 옮겨 품질을 떨어뜨릴 수 있습니다[1]. 설치한 뒤에는 유출 테스트로 변화를 확인하세요.

파이어폭스에서 WebRTC를 끄려면 어떻게 하나요?

주소창에 about:config를 입력하고 media.peerconnection.enabled를 검색해 false로 바꾸세요. 모질라 소스 코드는 이 설정을 RTCPeerConnection을 켜고 끄는 스위치로 설명하며, 이를 끄면 페이지가 마이크 API에 접근하는 기능도 사라집니다[20]. 그러면 모든 브라우저 다이얼러가 작동하지 않으므로, 대부분의 사용자는 이미 로컬 주소를 숨기는 파이어폭스 기본 설정을 그대로 두는 편이 낫습니다[19].

크롬에서 WebRTC 유출을 막으려면 어떻게 하나요?

확장 프로그램이나 정책으로 막습니다. 구글이 크롬의 WebRTC 주소 제어를 문서화한 방법이 이 두 가지이기 때문입니다. 확장 프로그램은 WebRTC IP 처리 정책을 설정할 수 있고[16], 관리자는 WebRtcIPHandling 정책을 설정할 수 있는데, 그 값을 default_public_interface_only로 두면 WebRTC가 사설 주소를 쓰지 않습니다[17]. 제가 크롬에서 확인했을 때, 마이크 권한이 없는 페이지에는 이미 무작위 .local 이름만 보였습니다[3]. VPN을 쓴다면 근본적인 해결책은 모든 트래픽을 터널로 보내는 것입니다[1]. WebRTC를 아예 차단하는 방법은 브라우저 통화까지 막습니다[14].

웹사이트가 묻지도 않고 WebRTC로 제 IP를 볼 수 있나요?

공인 주소는 볼 수 있지만, 웹사이트는 원래 그 주소를 봅니다. 예를 들어 사파리는 마이크 권한이 없는 페이지에 웹사이트가 이미 알 수 있는 주소만 넘깁니다[13]. 문제는 브라우저 프록시입니다. 직접 인터넷 연결이 허용되어 있으면 WebRTC의 STUN 확인이 프록시를 우회해 실제 공인 주소를 드러낼 수 있습니다[1]. 로컬 주소는 더 잘 보호됩니다. 표준은 전체 주소 목록을 마이크 권한 같은 동의에 묶어 두었고[1], 제가 크롬에서 확인했을 때 그 권한이 없는 페이지에는 무작위 .local 이름만 보였습니다[3].

이 조사에 대해 AI에게 묻기

각 버튼을 누르면 새 탭에서 AI 어시스턴트가 열리고, 이 페이지를 출처로 링크해 요약해 달라고 요청합니다.

출처

  1. RFC 8828: WebRTC IP Address Handling Requirements · IETF (RFC Editor) · 2026년 11월 1일 확인
  2. 47 CFR 64.1601 -- Delivery requirements and privacy restrictions | eCFR · US Code of Federal Regulations (eCFR) · 2026년 11월 1일 확인
  3. Using Multicast DNS to protect privacy when exposing ICE candidates (draft-ietf-mmusic-mdns-ice-candidates) · IETF (Internet-Draft, work in progress) · 2026년 11월 1일 확인
  4. Voice call someone or a group on Messenger - Messenger Help Center (Computer) · 2026년 11월 1일 확인
  5. How to protect your IP address on WhatsApp calls | WhatsApp Help Center · WhatsApp · 2026년 11월 1일 확인
  6. RTCIceCandidate: address property - Web APIs | MDN · MDN Web Docs (Mozilla) · 2026년 11월 1일 확인
  7. RTCIceCandidate: type property - Web APIs | MDN · MDN Web Docs (Mozilla) · 2026년 11월 1일 확인
  8. Make calls | Sonetel help · 2026년 11월 1일 확인
  9. Free call | Call2Friends - Online call · 2026년 11월 1일 확인
  10. Privacy Policy | Globfone · 2026년 11월 1일 확인
  11. Voice Calls: Secure, Crystal-Clear, AI-Powered | Telegram Blog (30 March 2017) · Telegram · 2026년 11월 1일 확인
  12. Use your camera and microphone in Chrome - Computer - Google Chrome Help · Google · 2026년 11월 1일 확인
  13. A Closer Look Into WebRTC | WebKit (3 July 2017) · WebKit (Apple) · 2026년 11월 1일 확인
  14. WebRTC API - Web APIs | MDN · MDN Web Docs (Mozilla) · 2026년 11월 1일 확인
  15. WebRTC Custom Settings · brave/brave-browser Wiki · Brave Software (official GitHub wiki) · 2026년 11월 1일 확인
  16. chrome.privacy | API | Chrome for Developers · Google (Chrome for Developers) · 2026년 11월 1일 확인
  17. Chrome Enterprise policy list: WebRtcIPHandling (WebRTC IP handling) · Google (Chrome Enterprise) · 2026년 11월 1일 확인
  18. Microsoft Edge Browser Policy Documentation WebRtcLocalhostIpHandling | Microsoft Learn · Microsoft · 2026년 11월 1일 확인
  19. Firefox source: modules/libpref/init/all.js (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 2026년 11월 1일 확인
  20. Firefox source: modules/libpref/init/StaticPrefList.yaml (mozilla-firefox/firefox) · Mozilla (official Firefox source repository) · 2026년 11월 1일 확인
  21. Terms of Use – TextNow · 2026년 11월 1일 확인
  22. Privacy Policy – Privacy & Terms – Google · Google · 2026년 11월 1일 확인
  23. Call From Your Browser Without a SIM Card - TwinPhone · 2026년 11월 1일 확인