๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”’์ •๋ณด๋ณด์•ˆ/๋„คํŠธ์›Œํฌ ๋ณด์•ˆ

๋„คํŠธ์›Œํฌ ๋ณด์•ˆ - WebRTC(IP leak issue), NAT, ICE, STUN, TURN

by Janger 2024. 4. 5.
728x90
๋ฐ˜์‘ํ˜•

 

 

Web Real-Time Communication

 

์›น/์•ฑ์—์„œ ๋ณ„๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์—†์ด ์นด๋ฉ”๋ผ, ๋งˆ์ดํฌ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ด ์ฃผ๋Š” ๊ธฐ์ˆ 

 

  • ํ™”์ƒํ†ตํ™”, ํ™”์ƒ ๊ณต์œ  ๋“ฑ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค
  • P2P๋ฐฉ์‹์œผ๋กœ Peer๊ฐ„์˜ ์ „์†ก๋˜๋„๋ก ์ง€์›
  • JavaScript API๋กœ ์ œ๊ณต
  • Peer to Peer ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์šฉ์ž IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š”๋ฐ ์ด๋•Œ ๋ฐฉํ™”๋ฒฝ ๋“ฑ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด STUN/TURN ์„œ๋ฒ„๋กœ ์ด๋ฅผ ํ•ด๊ฒฐ

 

WebRTC IP Leak Test

 

P2P ๋ฐฉ์‹์ด๋‹ค ๋ณด๋‹ˆ WebRTC API๋ฅผ ์ด์šฉํ•ด ์•„์ดํ”ผ๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ธด๋‹ค. 

๋‚ด ์•„์ดํ”ผ๊ฐ€ ๋…ธ์ถœ๋˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ์กด์žฌํ•œ๋‹ค. 

 

https://browserleaks.com/webrtc

 

WebRTC Leak Test

The WebRTC Leak Test is a critical tool for anyone using a VPN, as it leverages the WebRTC API to communicate with a STUN server and potentially reveal the user's real local and public IP addresses, even when using a VPN, proxy server, or behind a NAT. Thi

browserleaks.com

 

 

 

IP๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์Œ

 

IP๊ฐ€ ๋…ธ์ถœ๋จ

 

 

NAT(Network Address Translation)

 

NAT๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ณ€ํ™˜์ด๋ผ๋Š” ๋œป์œผ๋กœ, IP ํŒจํ‚ท์˜ ์†Œ์Šค ๋ฐ ๋ชฉ์ ์ง€ IP ์ฃผ์†Œ์™€ TCP/UDP ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€ํ™˜ํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ์‚ฌ์„ค IP ์ฃผ์†Œ๋ฅผ ๊ณต์šฉ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

 

ICE, Interactive Connectivity Establishment

 

์ƒํ˜ธ ์—ฐ๊ฒฐ ํ™•๋ฆฝ๋Š” P2P ๋„คํŠธ์›Œํ‚น์—์„œ ๋‘ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ์ง์ ‘์ ์œผ๋กœ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํ‚น์— ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ด๋Š” VoIP, P2P ํ†ต์‹ , ๋น„๋””์˜ค ๋ฐ ์ธ์Šคํ„ดํŠธ ๋ฉ”์‹œ์ง•๊ณผ ๊ฐ™์€ ๋Œ€ํ™”ํ˜• ๋ฏธ๋””์–ด์— ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ํ”ผ์–ด A์—์„œ ํ”ผ์–ด B๋กœ์˜ ์ง์ ‘ ์—ฐ๊ฒฐ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ฐ๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์„ ์ฐจ๋‹จํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ์„ ์šฐํšŒํ•ด์•ผ ํ•˜๊ณ , ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์ฒ˜๋Ÿผ ๊ธฐ๊ธฐ์— ๊ณต์šฉ IP ์ฃผ์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๊ณ ์œ  ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜๋ฉฐ, ๋ผ์šฐํ„ฐ๊ฐ€ ํ”ผ์–ด์™€ ์ง์ ‘ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ICE๋Š” STUN ๋˜๋Š” TURN ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

STUN, Session Traversal Utilities for NAT

 

https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols

 

STUN์€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ณ€ํ™˜ (NAT) ํ™˜๊ฒฝ์—์„œ ๋„คํŠธ์›Œํฌ ์ปดํ“จํ„ฐ์˜ ๊ณต์šฉ IP ์ฃผ์†Œ์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ํ™”๋œ ํ”„๋กœํ† ์ฝœ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, NAT ๋’ค์— ์ˆจ์–ด์žˆ๋Š” ์žฅ์น˜์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

STUN ์ž‘๋™ ์›๋ฆฌ


1. STUN ํด๋ผ์ด์–ธํŠธ๋Š” STUN ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
2. STUN ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๊ณต์šฉ IP ์ฃผ์†Œ์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
3. ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ NAT ๋’ค์— ์ˆจ์–ด์žˆ๋Š” ๋‹ค๋ฅธ ์žฅ์น˜์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

TURN, Traversal Using Relays around NAT

 

https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols

 

TURN์€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ณ€ํ™˜ (NAT) ๋˜๋Š” ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ์ธํ•ด ์ง์ ‘ ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ, ์ค‘๊ณ„ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋‘ ์ปดํ“จํ„ฐ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, NAT ๋’ค์— ์ˆจ์–ด์žˆ๋Š” ๋‘ ์žฅ์น˜๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.


TURN ์ž‘๋™ ์›๋ฆฌ

 

1. ํด๋ผ์ด์–ธํŠธ๋Š” TURN ์„œ๋ฒ„์— ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
2. TURN ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์— ์ค‘๊ณ„ ์ฑ„๋„์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
3. ๋‘ ํด๋ผ์ด์–ธํŠธ๋Š” TURN ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

์ถœ์ฒ˜

 

https://gh402.tistory.com/38

 

[WebRTC] WebRTC๋ž€ ๋ฌด์—‡์ผ๊นŒ?

๐ŸŽž WebRTC๋ž€ ๋ฌด์—‡์ธ๊ฐ€? Web Real-Time Communication์˜ ์•ฝ์ž๋กœ ์›น/์•ฑ์—์„œ ๋ณ„๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์—†์ด ์นด๋ฉ”๋ผ, ๋งˆ์ดํฌ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ž˜ ์•Œ๊ณ ์žˆ๋Š” ํ™”์ƒํ†ต

gh402.tistory.com

 

https://gh402.tistory.com/45

 

[WebRTC] NAT, ICE, STUN, TURN ์ด๋ž€? ( WebRTC๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ง€์‹๋“ค)

WebRTC๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „, ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตํ˜€์•ผ ํ•  ์ง€์‹๋“ค!! ๐ŸŒŽ NAT(Network Address Translation) '๋‚˜'๋Š” ๋ˆ„๊ตฌ์ธ์ง€ '์ด๋ฆ„'์œผ๋กœ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋“ฏ, ๊ฐ ๊ธฐ๊ธฐ์—๋„ ์ž์‹ ๋งŒ์˜ ์ด๋ฆ„์ด ์žˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ IP์ด๊ณ  ์ด IP๋Š” ๊ณ 

gh402.tistory.com

 

https://ko.wikipedia.org/wiki/%EC%83%81%ED%98%B8_%EC%97%B0%EA%B2%B0_%ED%99%95%EB%A6%BD

 

์ƒํ˜ธ ์—ฐ๊ฒฐ ํ™•๋ฆฝ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ์ƒํ˜ธ ์—ฐ๊ฒฐ ํ™•๋ฆฝ(ICE, Interactive Connectivity Establishment)๋Š” P2P(ํ”ผ์–ด ํˆฌ ํ”ผ์–ด) ๋„คํŠธ์›Œํ‚น์—์„œ ๋‘ ์ปดํ“จํ„ฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ ํ•œ ์ง์ ‘์ ์œผ๋กœ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ธฐ ์œ„ํ•ด

ko.wikipedia.org

 

https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols

 

Introduction to WebRTC protocols - Web APIs | MDN

This article introduces the protocols on top of which the WebRTC API is built.

developer.mozilla.org

 

728x90
๋ฐ˜์‘ํ˜•