WebRTC는 DTLS-SRTP를 구현해야하지만… SDE를 구현해서는 안됩니다

두 번째로 그러한 조항은 모든 구현이 호출 앱의 JavaScript에 대한 메커니즘을 제공하여 후보자 만 사용해야한다는 것을 나타냅니다. 이렇게하면 피어가 IP 주소를 전혀 배우지 못하게 할 수 있습니다.

WebRTC의 DTLS 도메인은 어디에서 왔습니까??

WebRTC 동료의 경우 협상에 사용되는 DTL은 어떤 도메인입니까?? 나는 당황했다. SDP에는 관련 속성 정의가없는 것 같습니다. 웹 페이지가있는 도메인입니까??

2021 년 7 월 12 일 14:36에 물었다

25 3 3 청동 배지

1 답변 1

WebRTC는 인증서를 사용하지 않습니다. 도메인이 관여하지 않습니다. WebRTC와 함께 PKI에서 얻은 진위는 인증서 지문으로 대체됩니다.

각면은 인증서를 생성 한 다음 세션 설명에서 지문을 공유합니다 (제안/답변). DTLS 핸드 셰이크가 완료되면 교환 된 인증서가 동일하도록합니다.

DTLS가 실제로 작동하는 방법은 WebRTC에서 호기심 많은#을 조금 더 확보하기 위해 설명됩니다.

2021 년 7 월 12 일 15:25에 응답했습니다

Sean Dubois Sean Dubois

3,867 1 1 골드 배지 11 11 실버 배지 22 22 청동 배지

그러나 OpenSSL SSLConnector에는 도메인이 필요합니다. 이 경우이 매개 변수에 대해 어떤 값을 전달 해야하는지?

WebRTC는 DTLS-SRTP를 구현해야하지만… SDE를 구현해서는 안됩니다?

WebRTC 표준화에 관한 내 게시물에서 기대했듯이 IETF 87 TH 회의는 지난주 독일 베를린에서 열렸습니다. WebRTC의 의제 중 하나는 SDE가 WebRTC의 일부 (및 방법) 여부였습니다.

IETF 드래프트에 따르면, 모든 WEBRTC 준수 구현은 보안 RTP 프로파일 RTP/SAVP 위에 구축하는 RTP/SAVPF 프로파일을 지원해야합니다. 이것은 미디어 채널 (e.g. 오디오, 비디오)는 SRTP (Secure RTP)를 통해 보호해야하며 다른 보안 기능 중에서 미디어 암호화를 제공합니다. 실제로, 평원 (암호화되지 않은) RTP의 사용은 WebRTC 사양에 의해 명시 적으로 금지됩니다.

WEBRTC 키 관리 대안

SRTP는 주요 관리 프로토콜과 상호 작용해야합니다 (E.g. 미디어 트래픽 세션의 보안 매개 변수를 협상하기 위해 Mikey, Zrtp, SDES, DTLS-SRTP). 그것’신호 전달 (e.g. SIP, HTTP) 및 미디어 (e.g. 멀티미디어 커뮤니케이션과 관련된 RTP)는 독립적으로 보안 할 수 있습니다. 예를 들어, 미디어 스트림 (SDES) 및 MIKEY (Media Streams) 및 Mikey (Media Streams) 및 Mikey (Mindicedia Key Exchange)에 대한 SDP 보안 설명은 SDP를 통해 세션의 보안 매개 변수를 전달하기 위해 신호 평면을 사용합니다. 이것은 신호가 차례로 보호되어야한다는 것을 의미합니다. 그러나 신호 및 미디어를 독립적으로 고정시키는 것은 신호 사용자가 미디어 사용자와 동일하다는 보장을 제공하지 않기 때문에 어떤 경우에는 불충분 할 수 있습니다. 따라서 두 평면 사이의 암호화 결합이 바람직하다-ZRTP와 DTLS-SRTP는 이것을한다.

주제에 대해 많은 문학을 찾을 수 있지만 간단히 말해서 다음과 같습니다

  • SDES – SRTP 세션을 설정하는 보안 매개 변수 및 키는 SDP 속성 형태로 명확한 텍스트로 교환되므로 예를 들어 TLS를 사용하여 SDP 메시지를 보호하기 위해 신호 평면에 의존합니다.
  • Mikey – 주요 교환을 수행하고 멀티미디어 응용 프로그램을 대신하여 암호화 매개 변수를 협상합니다. 메시지는 SDP 페이로드로 전송되고 Base64에서 인코딩됩니다.
  • ZRTP-공유 비밀 및 기타 보안 매개 변수가 Diffie-Hellman에 의존하여 교환됩니다. 상호 인증은 짧은 인증 문자열 (SAS)을 사용할 수 있으므로’t PKI의 지원이 필요합니다. ZRTP Exchange는 RTP 트래픽에 대해 멀티미디어 세션에서 사용한 동일한 포트 번호를 통해 발생합니다 (신호 경로와 달리).
  • DTLS-SRTP-암호화 매개 변수를 교환하고 키잉 자료를 도출 할 수 있습니다. 주요 교환은 미디어 평면에서 이루어지며 미디어 자체와 동일한 포트에서 다중화됩니다. 우리는 향후 게시물에서 이것에 대해 자세히 설명 할 것이지만, 한편, 일부 얼음 검사가 완료되면 DTLS-SRTP는 SDP 메시지 교환에서 SDP 메시지 교환에서 키를 공개 할 필요없이 SRTP 미디어 채널을 설정할 수 있도록합니다.

Draft-IETF-RTCWEB-RTP-USAGE-07 (2013 년 7 월 현재 초안)에 따르면 WebRTC :

구현은 키 관리를 위해 DTLS-SRTP를 지원해야합니다. 다른 주요 관리 체계가 지원 될 수 있습니다

DTLS-SRTP는 기본 및 선호하는 메커니즘이며 DTLS-SRTP 및 SDES를 지원하는 제안이 접수되면 신호가 확보되었는지 여부에 관계없이 DTLS-SRTP를 선택해야합니다. 나에서’M 현장에서 가장 많이보고 있습니다 (나는 할 수있다’T 모두 말하기) WEBRTC 시험은 일반적으로 Secure HTTP (HTTPS) 또는 Secure Websockets (WSS)를 통해 TLS를 통해 신호 전달을 실행하고 있습니다.

토론

일반적으로 DTLS-SRTP가 WEBRTC 실시간 미디어를위한 (MTI) 보안 메커니즘을 구현해야한다는 의문은 거의 없습니다 (일부 ZRTP는 잠재적으로 일부 시나리오에서 더 간단한 접근 또는 더 나은 보호를 제공 할 수 있다고 주장합니다). 베를린에서의 논의는 DTLS-SRTP에 대한 지원을 의무화하는 것 외에도 IETF가 후진 호환성을 제공하기 위해 오늘날 우리가 시행 한 다른 기존 메커니즘을 재사용하는 방법에 대한 권장 사항을 제공 할 수 있는지 여부였습니다. 즉, WebRTC-to-SIP 인터 워킹 시나리오에서 SDE를 재사용합니다. 예, 그것’VoIP 네트워크의 RTP 트래픽의 대부분이 오늘날 보안되지 않았다는 사실은 사실입니다. 사실, 이것은 실제로 고객이 예산을 충족시키기 위해 공급 업체에 대한 최초의 기능 중 하나입니다. 그러나 확보되면 대부분의 배포 I’VE는 SDE를 사용하고 있습니다 (언급 된 바와 같이 신호 평면 보안에 대한 의존성이 크게 의존합니다).

WebRTC 구현과 관련하여 Google’에스

WebRTC는 DTLS-SRTP를 구현해야하지만… SDE를 구현해서는 안됩니다

두 번째로 그러한 조항은 모든 구현이 호출 앱의 JavaScript에 대한 메커니즘을 제공하여 후보자 만 사용해야한다는 것을 나타냅니다. 이렇게하면 피어가 IP 주소를 전혀 배우지 못하게 할 수 있습니다.

WebRTC의 DTLS 도메인은 어디에서 왔습니까??

WebRTC 동료의 경우 협상에 사용되는 DTL은 어떤 도메인입니까?? 나는 당황했다. SDP에는 관련 속성 정의가없는 것 같습니다. 웹 페이지가있는 도메인입니까??

2021 년 7 월 12 일 14:36에 물었다

25 3 3 청동 배지

1 답변 1

WebRTC는 인증서를 사용하지 않습니다. 도메인이 관여하지 않습니다. WebRTC와 함께 PKI에서 얻은 진위는 인증서 지문으로 대체됩니다.

각면은 인증서를 생성 한 다음 세션 설명에서 지문을 공유합니다 (제안/답변). DTLS 핸드 셰이크가 완료되면 교환 된 인증서가 동일하도록합니다.

DTLS가 실제로 작동하는 방법은 WebRTC에서 호기심 많은#을 조금 더 확보하기 위해 설명됩니다.

2021 년 7 월 12 일 15:25에 응답했습니다

Sean Dubois Sean Dubois

3,867 1 1 골드 배지 11 11 실버 배지 22 22 청동 배지

그러나 OpenSSL SSLConnector에는 도메인이 필요합니다. 이 경우이 매개 변수에 대해 어떤 값을 전달 해야하는지?

WebRTC는 DTLS-SRTP를 구현해야하지만… SDE를 구현해서는 안됩니다?

WebRTC 표준화에 관한 내 게시물에서 기대했듯이 IETF 87 TH 회의는 지난주 독일 베를린에서 열렸습니다. WebRTC의 의제 중 하나는 SDE가 WebRTC의 일부 (및 방법) 여부였습니다.

IETF 드래프트에 따르면, 모든 WEBRTC 준수 구현은 보안 RTP 프로파일 RTP/SAVP 위에 구축하는 RTP/SAVPF 프로파일을 지원해야합니다. 이것은 미디어 채널 (e.g. 오디오, 비디오)는 SRTP (Secure RTP)를 통해 보호해야하며 다른 보안 기능 중에서 미디어 암호화를 제공합니다. 실제로, 평원 (암호화되지 않은) RTP의 사용은 WebRTC 사양에 의해 명시 적으로 금지됩니다.

WEBRTC 키 관리 대안

SRTP는 주요 관리 프로토콜과 상호 작용해야합니다 (E.g. 미디어 트래픽 세션의 보안 매개 변수를 협상하기 위해 Mikey, Zrtp, SDES, DTLS-SRTP). 그것’신호 전달 (e.g. SIP, HTTP) 및 미디어 (e.g. 멀티미디어 커뮤니케이션과 관련된 RTP)는 독립적으로 보안 할 수 있습니다. 예를 들어, 미디어 스트림 (SDES) 및 MIKEY (Media Streams) 및 Mikey (Media Streams) 및 Mikey (Mindicedia Key Exchange)에 대한 SDP 보안 설명은 SDP를 통해 세션의 보안 매개 변수를 전달하기 위해 신호 평면을 사용합니다. 이것은 신호가 차례로 보호되어야한다는 것을 의미합니다. 그러나 신호 및 미디어를 독립적으로 고정시키는 것은 신호 사용자가 미디어 사용자와 동일하다는 보장을 제공하지 않기 때문에 어떤 경우에는 불충분 할 수 있습니다. 따라서 두 평면 사이의 암호화 결합이 바람직하다-ZRTP와 DTLS-SRTP는 이것을한다.

주제에 대해 많은 문학을 찾을 수 있지만 간단히 말해서 다음과 같습니다

  • SDES – SRTP 세션을 설정하는 보안 매개 변수 및 키는 SDP 속성 형태로 명확한 텍스트로 교환되므로 예를 들어 TLS를 사용하여 SDP 메시지를 보호하기 위해 신호 평면에 의존합니다.
  • Mikey – 주요 교환을 수행하고 멀티미디어 응용 프로그램을 대신하여 암호화 매개 변수를 협상합니다. 메시지는 SDP 페이로드로 전송되고 Base64에서 인코딩됩니다.
  • ZRTP-공유 비밀 및 기타 보안 매개 변수가 Diffie-Hellman에 의존하여 교환됩니다. 상호 인증은 짧은 인증 문자열 (SAS)을 사용할 수 있으므로’t PKI의 지원이 필요합니다. ZRTP Exchange는 RTP 트래픽에 대해 멀티미디어 세션에서 사용한 동일한 포트 번호를 통해 발생합니다 (신호 경로와 달리).
  • DTLS-SRTP-암호화 매개 변수를 교환하고 키잉 자료를 도출 할 수 있습니다. 주요 교환은 미디어 평면에서 이루어지며 미디어 자체와 동일한 포트에서 다중화됩니다. 우리는 향후 게시물에서 이것에 대해 자세히 설명 할 것이지만, 한편, 일부 얼음 검사가 완료되면 DTLS-SRTP는 SDP 메시지 교환에서 SDP 메시지 교환에서 키를 공개 할 필요없이 SRTP 미디어 채널을 설정할 수 있도록합니다.

Draft-IETF-RTCWEB-RTP-USAGE-07 (2013 년 7 월 현재 초안)에 따르면 WebRTC :

구현은 키 관리를 위해 DTLS-SRTP를 지원해야합니다. 다른 주요 관리 체계가 지원 될 수 있습니다

DTLS-SRTP는 기본 및 선호하는 메커니즘이며 DTLS-SRTP 및 SDES를 지원하는 제안이 접수되면 신호가 확보되었는지 여부에 관계없이 DTLS-SRTP를 선택해야합니다. 나에서’M 현장에서 가장 많이보고 있습니다 (나는 할 수있다’T 모두 말하기) WEBRTC 시험은 일반적으로 Secure HTTP (HTTPS) 또는 Secure Websockets (WSS)를 통해 TLS를 통해 신호 전달을 실행하고 있습니다.

토론

일반적으로 DTLS-SRTP가 WEBRTC 실시간 미디어를위한 (MTI) 보안 메커니즘을 구현해야한다는 의문은 거의 없습니다 (일부 ZRTP는 잠재적으로 일부 시나리오에서 더 간단한 접근 또는 더 나은 보호를 제공 할 수 있다고 주장합니다). 베를린에서의 논의는 DTLS-SRTP에 대한 지원을 의무화하는 것 외에도 IETF가 오늘날 우리가 가지고있는 다른 기존 메커니즘을 재사용하는 방법에 대한 권장 사항을 제공하여 후진 호환성을 제공 할 수 있는지 여부였습니다. 즉, WebRTC-to-SIP 인터 워킹 시나리오에서 SDE를 재사용합니다. 예, 그것’VoIP 네트워크의 RTP 트래픽의 대부분이 오늘날 보안되지 않았다는 사실은 사실입니다. 사실, 이것은 실제로 고객이 예산을 충족시키기 위해 공급 업체에 대한 최초의 기능 중 하나입니다. 그러나 확보되면 대부분의 배포 I’VE는 SDE를 사용하고 있습니다 (언급 된 바와 같이 신호 평면 보안에 대한 의존성이 크게 의존합니다).

WebRTC 구현과 관련하여 Google’S Chrome은 Mozilla 동안 DTLS-SRTP 및 SDE를 모두 지원합니다’S Firefox 만 DTLS-SRTP를 구현합니다. 호기심으로, i’M 평가하에있는 WEBRTC-SIP 게이트웨이 중 일부가 SDE 만 구현하고 로드맵 품목으로 DTLS-SRTP를 갖는 현장 시험에 참여했습니다. 그 게이트웨이 공급 업체는 아마도 SDE가 기본 인터 워싱 시나리오에 충분하다고 생각했을 것입니다.

WEBRTC 브라우저 보안 키 지원

베를린 토론의 슬라이드는 여기에서 찾을 수 있습니다. 프레젠테이션에서 볼 수 있듯이 SDES 지지자들의 일부 주장은 다음과 같습니다

  • 상업적 인센티브 – IT’이미 거기에 있고 작동합니다
  • 초기 미디어 클리핑
  • 복잡성과 비용 사이의 트레이드 오프
  • 인터 워싱 사례에서 엔드 투 엔드 SRTP에 대한 수당

마지막 총알에서 이것은 상대방의 VoIP 엔드 포인트가 SDE를 사용하는 경우 인터 워크 게이트웨이의 SRTP 트래픽을 해독 할 필요가 없음을 의미합니다.

물론, 토론의 주요 요점은 SDE가 DTLS-SRTP와 비교할 때 인터 워싱 사용 사례의 보안을 실제로 저하시키는 지 여부였습니다. 제 생각에는 SDE에 대한 일부 주장 중 일부는 DTLS-SRTP에도 적용됩니다. SDES 지지자들은 모든 사용 사례에 대해 제안을 제안하지는 않았지만 대신 인터 워크 시나리오에 대한 적용 가능성을 어떻게 든 제한하는 것을 옹호하고있었습니다.

다른 사람들은 거꾸로 호환성이 어쨌든 미디어 게이트웨이를 사용해야 할 때 (얼음 종료의 경우 최소한) 중요한 요소가 아니라고 주장했다. 따라서 dtls-srtp-to-sdes interworking은 게이트웨이 기능의 또 다른 기능 일 수 있습니다 (이 프리젠 테이션에서 추출한 다음 다이어그램에서 볼 수 있듯이).

결과

토론의 결과로, SDE는 WebRTC-to-Sip Interworking과 같은 선택된 사용 사례에서 권장되지 않았을뿐만 아니라 WEBRTC에 대해 일반적으로 완전히 금지되었습니다. SDE를 채택하는 것은 대부분의 보안 속성을 저하시키면서 브라우저 투 브라우저 커뮤니케이션의 범위를 넘어서 웹 브라우저에 대한 요구 사항을 부과하는 것으로 해석되었습니다.

단일 솔루션을 갖는 것이 상호 운용성 관점에서 유익 할 수 있다고 생각합니다.이자형. 옵션이 적을수록 일반적으로 상호 운용성이 향상됩니다.)’특히 업계가 실제로 무엇을 구현 해야하는지 궁금해’m 프로젝트에서 이것은 수백만 개의 엔드 포인트를 의미 할 수 있습니다). Time은 공급 업체가 어떻게 반응하는지 알려주지 만, 기본적으로 특정 기능/동작이 RFC 호환이지만 구성 가능하고 때로는 숨겨진 옵션이 제공되는 첫 번째 사례는 아닙니다 “하나’자신의 위험” 기능을 지원합니다

WebRTC 보안에 대해 조금 더 배우고 싶습니다? 향후 블로그 항목 에서이 주제에 대해 자세히 설명 할 것입니다. 그 동안 여기와 여기에서 몇 가지 흥미로운 참조를 찾으십시오. 내 친구와 전 동료 Jiri, Dorgham, John, Uli 및 Henning은 SIP 보안 책의 멀티미디어 보안에 대한 매우 포괄적 인 설명을 포함합니다. [이메일 보호]로 이메일을 보내거나 트위터 @victorpascual (@victorpascual)에서 저를 팔로우 할 수도 있습니다.

관련 게시물

RSS 피드

독자 상호 작용

코멘트

  1. 비제이 k. Gurbani는 2013 년 8 월 15 일 오전 11시 14 분에 말합니다

Victor가 논의하는 문제는 Webrtc에만 고유하지 않습니다. SIP 세계가 조금씩 다루었던 것은 일반적인 문제입니다. 아래 논문은 인터넷 멀티미디어 통신 환경에서 다양한 키싱 체계의 상대적인 장점과 단점을 제공합니다. 사본을 원하시면 Bell-Labs Dot Com에서 VKG에서 이메일을 보낼 수 있습니다. Gurbani, v.케이. 및 Kolesnikov, v., “세션 시작 프로토콜 (SIP)의 미디어 키잉 기술 설문 조사 및 분석,” IEEE 커뮤니케이션 설문 조사 및 튜토리얼, 13 (2), pp에서. 183-198, 2011.

참조 Vijay에 감사드립니다 – 매우 흥미로운 논문. BTW,이 새로운 인터넷 초안은 몇 시간 전에 출판되었습니다 “ZRTP를 사용하여 WEBRTC를 보호합니다”
http : // 도구.IETF.org/html/draft-johnston-rtcweb-zrtp-00 요약 : “Webrtc, Web Real-Time Communications는 웹 개발자가 몇 줄의 JavaScript를 사용하여 웹 페이지 및 응용 프로그램에 실시간 통신을 추가 할 수 있도록하는 데 사용되는 일련의 프로토콜 및 API입니다. WEBRTC 미디어 흐름은 SRTP에 의해 암호화되고 인증되며, 안전한 실시간 전송 프로토콜 인 SRTP는 DTLS-SRTP, Datagram Transport Layer Security가 보안 실시간 전송 프로토콜에 의해 제공되는 반면, 보안 실시간 전송 프로토콜입니다. 그러나 일부 제 3 자 신원 서비스 또는 인증 기관이 없으면 WEBRTC 미디어 흐름은 MITM (Man-in-the-Middle) 공격에 대한 보호가 없습니다. Unicast Secure RTP의 미디어 경로 키 계약, RFC 6189는 짧은 인증 문자열 (SAS)으로 보강 된 주요 연속성을 사용하여 MITM 공격자에 대한 보호를 제공합니다. 이 사양은 DTLS-SRTP를 사용하여 Keyed WebRTC 미디어 흐름에 대한 MITM 보호를 제공하기 위해 WEBRTC 데이터 채널을 통해 ZRTP를 사용하는 방법에 대해 설명합니다. 이를 통해 ZRTP 또는 사용자가 ZRTP를 구현하기 위해 플러그인 또는 확장자를 다운로드 할 수 있도록 브라우저가 필요하지 않고 MITM 공격자에 대한 보호 기능을 제공합니다.”

빠른 업데이트 : Google이 방금 Krome이 다단계 프로세스에서 SDE를 폐지한다고 발표했습니다 “1) Chrome 31에서는 SDES도 여전히 제공되지만 DTLS가 기본적으로 켜져 있습니다. 더 이상 dtlssrtpkeyagreement : dtls를 활성화하기 위해 진정한 제약 조건을 전달할 필요가 없습니다. 우리는 ORIGIN 당 인증서 캐싱을 사용하고 있기 때문에 DTLS Cert 생성의 성능 히트는 더 이상 문제가되지 않으므로 기본값으로 만들 수 있습니다. dtlssrtpkeyagreement : false를 설정하여 DTLS를 비활성화 할 수 있지만 현재 응용 프로그램 변경이 필요하지 않습니다. 2) 다가오는 Chrome 버전의 Chrome 33에서 SDE는 더 이상 기본적으로 제공되지 않으며 새로운 TBD 제약 조건이 지정된 경우에만 사용됩니다. SDE가 필요한 응용 프로그램의 경우이 새로운 제약 조건을 지정하려면 응용 프로그램 변경이 필요합니다. 3)이 시점에서 미래 버전의 Chrome, TBD 에서이 SDES 제약 조건이 제거되고 DTLS-SRTP 만 지원됩니다. 우리는 이것이 2014 년에 발생할 것으로 예상되므로 가능한 빨리 DTLS-SRTP로 신청서를 마이그레이션하십시오.” 출처 : https : // 그룹.Google.com/포럼/#!주제/토론 -WEBRTC/67W4ZRTMONS

흥미로운 포스트 빅터에 감사드립니다. 나는 단지 WebRTC에 대한 보안 문제를 찾고 있었고 이것을 발견했습니다. 어쩌면 이에 대한 현재 상태가 변경되었을 수도 있습니다. 약 1 년 전에 게시물이 게시 되었기 때문에 저는 WebRTC에 새로워졌으며 WebRTC가 DLTS-RTSP를 사용하고있는 모든 것이 나타납니다. 그러나 휴대 전화의 보안에서 발생하는 일?. 내가 아는 한, RTSP는 예를 들어 모바일 plattforms에서 비디오를 해독하는 데 약간 느리게 될 수 있습니다. 미리 감사드립니다. víctor hidalgo

  • 차드 하트 (Chad Hart)는 2014 년 7 월 12 일 오전 7시 55 분에 말합니다

제발 돈’T SRTP (Secure Real-Time Transport)와 실시간 스트리밍 프로토콜 (RTSP)을 혼합하십시오. WebRTC는 DTLS-SRTP를 사용합니다. 모든 암호화와 마찬가지로 DTLS-SRTP는 암호 해독이 필요하며 이와 관련된 오버 헤드가 있지만 현대 장치에서는 미미합니다. 암호화 비용에 대한 우려는 일반적으로 높은 양을 처리 해야하는 서버 측 장비에 중점을 두었으므로 서비스 제공 가격이 잠재적으로 증가 할 수 있습니다.

  • 빅터는 2014 년 7 월 14 일 오전 3시 6 분에 말합니다

안녕 차드, 맞아, 나는 dtls-srtp no dtls-rtsp를 참조했다. 현대 장치에 관련된 마이너스 오버 헤드가 내가 기대했던 것입니다. 답변 해 주셔서 감사합니다. 승리자

답장을 남겨주세요 답장 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 의견 데이터가 처리되는 방법을 알아보십시오.

WEBRTC 보안에 대한 연구

웹 실시간 커뮤니케이션 (WEBRTC로 약칭)은 최근 웹 애플리케이션 기술의 트렌드로 플러그인이나 기타 요구 사항없이 브라우저에서 실시간 통신을 가능하게하는 능력을 약속합니다. 그러나이 기술의 오픈 소스 특성은 기술의 잠재적 채택 자에게 보안 관련 우려를 유발할 가능성이있을 수 있습니다. 이 백서는 기술의 비교 보안을 보여주기 위해 WebRTC의 보안에 대해 자세히 논의 할 것입니다.

1. 소개

WebRTC는 오픈 소스 웹 기반 애플리케이션 기술로, 사용자가 플러그인을 설치할 필요없이 실시간 미디어를 보낼 수 있습니다. 적절한 브라우저를 사용하면 사용자가 관련 웹 페이지를 탐색하여 단순히 다른 파티를 전화 할 수 있습니다.

이 기술의 주요 사용 사례 중 일부에는 다음이 포함됩니다

  • 실시간 오디오 및/또는 화상 통화
  • 웹 회의
  • 직접 데이터 전송

대부분의 실시간 시스템과 달리 (e.g. SIP), WebRTC Communications는 JavaScript API를 통해 일부 웹 서버에 의해 직접 제어됩니다.

플러그인이없는 브라우저에서 내장 된 오디오 및 시각적 통신을 가능하게하는 전망은 흥미 롭습니다. 그러나 이것은 자연스럽게 그러한 기술의 보안에 대한 우려를 제기하고 최종 사용자와 모든 중개 항공사 또는 제 3자를 위해 신뢰할 수있는 커뮤니케이션을 제공 할 수 있는지 여부.

이 보고서는 이러한 주제를 다루고 WebRTC가 모든 경우 보안을 제공하기 위해 제공하는 보호를 조사합니다. 그러나이 백서의 목적 상, 기본 응용 프로그램은 범위를 벗어난 것으로 취급됩니다.

2. WEBRTC 아키텍처 개요

WebRTC는 피어 투 피어 (P2P) 토폴로지를 사용하여 두 동료 간의 직접 미디어가 풍부한 의사 소통을 가능하게합니다. WebRTC는 사용자의 브라우저 내에 거주하며 작동 할 추가 소프트웨어가 필요하지 않습니다. 동료들 사이의 실제 의사 소통은 “신호 전달”이라는 메타 데이터 교환에 의해 미리 정리되어 있습니다. 이 프로세스는 통화를 시작하고 광고하는 데 사용되며 낯선 당사자 간의 연결 설정을 용이하게합니다.

도 1에 도시 된 바와 같이,이 프로세스는 중개 서버를 통해 발생합니다

그림 1. 간단한 WEBRTC 호출 토폴로지

그림 1. 간단한 webrtc 호출 토폴로지

신호 프로토콜은 WEBRTC 내에 지정되지 않으므로 개발자가 자체 선택의 프로토콜을 구현할 수 있습니다. 이를 통해 특정 사용 사례 또는 시나리오에 WEBRTC 앱을 적응시키는 데 더 깊은 유연성이 가능합니다.

WEBRTC 커뮤니케이션은 어떻게 작동합니까??

WebRTC는 3 개의 API에 의존하며, 각각은 웹 애플리케이션 내에서 실시간 통신을 가능하게하기 위해 특정 기능을 수행합니다. 이 API는 명명되고 간단히 설명됩니다. 각 프로토콜 및 기술의 구현 및 기술 세부 사항은이 보고서의 범위를 벗어나지 만 관련 문서는 온라인으로 쉽게 사용할 수 있습니다.

getusermedia

수년 동안 컴퓨터에서 오디오 또는 비디오를 캡처하기 위해 Flash 또는 Silverlight와 같은 타사 브라우저 플러그인에 의존해야했습니다. 그러나 HTML 5의 시대는 수많은 장치에 직접 하드웨어 액세스를 안내했으며 시스템의 기본 하드웨어 기능과 인터페이스하는 JavaScript API를 제공합니다.

GetUsermedia는 이러한 API 중 하나이며 브라우저가 사용자의 카메라 및 마이크에 액세스 할 수 있습니다. WebRTC가 사용하지만이 API는 실제로 HTML 5의 일부로 제공됩니다.

rtcpeerconnection

rtcpeerconnection은 WEBRTC 사양의 일부로 특별히 제공되는 두 개의 API 중 첫 번째입니다. RTCPeerConnection 인터페이스는 실제 WEBRTC 연결을 나타내며 두 ​​동료 간의 효율적인 데이터 스트리밍을 처리하는 데 의존합니다.

발신자가 원격 당사자와의 연결을 시작하려면 브라우저는 RTCPeerConnection 객체를 인스턴스화하여 시작합니다. 여기에는 동료와 교환하기위한 자체 생성 SDP 설명이 포함됩니다. 수신자는 차례로 자체 SDP 설명으로 응답합니다. SDP 설명은 NAT Traversal의 전체 얼음 워크 플로의 일부로 사용됩니다.

이제 연결이 설정되면 RTCPeerConnection은 실시간 오디오 및 비디오 데이터를 브라우저 간의 비트 스트림으로 전송할 수 있습니다.

궁극적으로 RTCPeerConnection API는 각 피어 투 피어 연결의 전체 수명주기를 관리하고 단일 사용하기 쉬운 인터페이스 내의 모든 연결 설정, 관리 및 상태를 캡슐화합니다.

rtcpeerconnection에는 두 가지 특성이 있습니다 .- 두 브라우저 간의 직접 피어 투 피어 통신 – UDP/IP 사용 – 패킷 도착의 보장은 없지만 (TCP/IP에서와 같이) 결과적으로 오버 헤드가 많이 줄어 듭니다. – (일부 데이터 손실을 허용함으로써 실시간 커뮤니케이션 제공에 중점을 둘 수 있습니다.))

rtcdatachannel

RTCDATACHANNE은 WEBRTC의 일부로 제공되는 두 번째 메인 API이며, 임의의 응용 프로그램 데이터의 교환이 동료간에 발생하는 주요 통신 채널을 나타냅니다. 다시 말해, 한 피어에서 다른 피어로 데이터를 직접 전송하는 데 사용됩니다.

통신 채널을위한 여러 가지 대안 옵션이 존재하지만 (E.g. WebSocket, Server 전송 이벤트) 이벤트이지만이 대안은 직접 연결된 피어가 아닌 서버와의 통신을 위해 설계되었습니다. rtcdatachannel.

2.1. 기본 기술

세 가지 주요 API는 WEBRTC의 개발자를 향한 측면이지만 이러한 프로토콜 (RTCPeerConnection 및 RTCDatachannel API)을 제공하기 위해 활용되는 여러 기초 기술이 있습니다.

그림 2. WEBRTC 프로토콜 스택

그림 2. WebRTC 프로토콜 스택

UDP에 대한 피어 투 피어 연결을 확립하고 유지하려면 얼음, 기절 및 회전이 필요합니다. 암호화는 WebRTC의 필수 기능이므로 DTLS는 피어간에 모든 데이터 전송을 보호하는 데 사용됩니다. 마지막으로 SCTP 및 SRTP.

SDP : 세션 설명 프로토콜

세션 설명 프로토콜 (SDP)은 세션 초대장을 발표하고 관리하는 표준 방법으로 사용되는 설명 프로토콜입니다. SDP는 텍스트 기반 형식의 브라우저 기능 및 선호도를 나타내며 다음과 같은 정보를 포함 할 수 있습니다. – 미디어 기능 (비디오, 오디오) 및 고용 된 코덱 – IP 주소 및 포트 번호 -P2P 데이터 전송 프로토콜 (WEBRTC는 SecurerTP를 사용) – 통신에 사용 가능한 대역폭 (이름, 식별, 시간 능력 등.) -> 그러나 이것들은 WebRTC에서 사용되지 않습니다. – 기타 관련 메타 데이터.

현재 SDP는 SIP (Session Initiation Protocol), 실시간 전송 프로토콜 (RTP) 및 실시간 스트리밍 프로토콜 (RSP)의 컨텍스트에서 널리 사용됩니다.

ICE : 대화식 연결 설정

신호는 메타 데이터 교환을 위해 중개 서버의 초기 사용이 필요하지만 완료되면 WEBRTC는 사용자간에 직접 P2P 연결을 설정하려고 시도합니다. 이 과정은 얼음 프레임 워크를 통해 수행됩니다.

Ice는 인터넷을 통해 동료들 사이의 연결을 설정하는 데 사용되는 프레임 워크입니다. WEBRTC는 직접 P2P 연결을 활용하려고하지만 실제로는 NAT (네트워크 주소 변환)의 광범위한 존재로 인해 두 동료가 의사 소통하는 방법을 협상하기가 어렵습니다.

제한된 32 비트 표현으로 IPv4 주소의 지속적인 널리 퍼진 유병률로 인해 대부분의 네트워크 지원 장치에는 인터넷에서 직접 볼 수있는 고유 한 공개 IPv4 주소가 없습니다. NAT는 아웃 바운드 요청이 통과 될 때 개인 주소를 공개 주소로 동적으로 번역하여 작동합니다. 마찬가지로, 공개 IP에 대한 인바운드 요청은 내부 네트워크에서 올바른 라우팅을 보장하기 위해 개인 IP로 다시 변환됩니다. 결과적으로 개인 IP를 공유하는 것은 종종 피어와의 연결을 설정하기에 충분한 정보가 아닙니다. ICE는 NAT를 통해 커뮤니케이션하여 동료를 연결하는 최상의 경로를 찾기 위해 제기 한 어려움을 극복하려고 시도합니다.

모든 가능성을 동시에 시도함으로써 Ice는 작동하는 가장 효율적인 옵션을 선택할 수 있습니다. Ice는 먼저 장치의 운영 체제 및 네트워크 카드에서 얻은 호스트 주소를 사용하여 연결하려고합니다. 실패하면 (NATS 뒤의 장치에 필연적으로 할 것인지 불가피하게) 얼음이 스탠버 서버를 사용하여 외부 주소를 얻습니다. 그것이 실패하면 트래픽이 턴 릴레이 서버를 통해 라우팅으로 돌아갑니다.

응시자 커뮤니케이션 경로는 텍스트 기반 형식으로 렌더링되며 우선 순위에 따라 주문한 목록. 옵션은 다음 중 하나의 형태를 취합니다. – 직접 P2P 통신 – NAT 트래버스를위한 포트 매핑 (이 경로는 결국 P2P 통신을 지시하기 위해 해결) – 중개자로서의 턴을 사용하여 Stun을 사용합니다

가능한 모든 후보자 중에서 가장 작은 오버 헤드가있는 경로가 선택됩니다.

기절 : NAT의 세션 트래버스 유틸리티

P2P 커뮤니케이션을 수행하기 위해 두 당사자는 반드시 동료의 IP 주소와 지정된 UDP 포트에 대한 지식이 반드시 필요합니다. 결과적으로 WEBRTC 커뮤니케이션을 설정하기 전에 일정량의 정보 교환이 필요합니다.

스턴 서버는 각 피어가 공개 IP 주소를 결정하는 데 사용되며 연결 설정 중에 얼음 프레임 워크에서 참조됩니다. Stun 서버는 일반적으로 공개적으로 액세스 할 수 있으며 WebRTC 응용 프로그램에서 자유롭게 사용할 수 있습니다.

회전 : NAT 주변의 릴레이를 사용하여 트래버스

P2P 통신을 설정하는 것이 실패한 경우 턴 서버를 통해 폴백 옵션을 제공 할 수 있습니다. 동료 간의 트래픽을 중계함으로써 WebRTC 커뮤니케이션은 보장 될 수 있지만 미디어 품질과 대기 시간의 저하를 겪을 수 있습니다.

턴 서버는 최종 사용자의 환경에 관계없이 통화 설정에서 높은 성공을 보장 할 수 있습니다. 데이터가 중개 서버를 통해 전송되면 서버 대역폭도 소비됩니다. 많은 통화가 서버를 통해 동시에 라우팅되면 대역폭도 크기가 상당 해졌습니다.

서버 자체는 일반적으로 자유롭게 액세스 할 수 없으며 응용 프로그램 제공 업체가 구체적으로 제공 (또는 임대)해야합니다.

삼. 브라우저 기반 보안 고려 사항

운송 업체와 최종 사용자 모두에게 실시간 커뮤니케이션 응용 프로그램이 보안 위험을 부과 할 수 있다는 여러 가지 방법이 있습니다. 이러한 보안 위험은 실시간 데이터 및 미디어의 전송을 처리하는 모든 응용 프로그램에 적용 할 수 있습니다.

WebRTC. 이제 WERBRTC가 이러한 각 위험을 차례로 처리하는 방법에 대해 계속 논의 할 것입니다.

삼.1. 브라우저 트러스트 모델

WEBRTC 아키텍처는 보안 관점에서 네트워크 리소스가 신뢰의 계층에 존재한다고 가정합니다. 사용자의 관점에서, 브라우저 (또는 사용자 클라이언트)는 모든 WEBRTC 보안의 기초이며 신뢰할 수있는 컴퓨팅베이스 (TCB) 역할을합니다.

브라우저의 임무는 인터넷에 액세스 할 수있는 동시에 사용자에게 적절한 보안 보호를 제공하는 것입니다. WEBRTC의 보안 요구 사항은이 요구 사항에 직접 구축됩니다. 브라우저는 사용자가 모든 WebRTC 응용 프로그램 및 컨텐츠에 액세스하는 포털입니다.

서버에서 제공 한 HTML 및 JS는 브라우저가 다양한 동작을 실행하게 할 수 있지만 브라우저는 해당 스크립트를 샌드 박스로 분리합니다. 상기 샌드 박스는 서로와 사용자의 컴퓨터에서 스크립트를 분리합니다. 일반적으로 스크립트는 동일한 도메인의 리소스 와만 상호 작용할 수 있습니다.

브라우저는 사용자가 원하는 모든 보안 정책을 시행하며 모든 제 3 자의 확인의 첫 단계입니다. 모든 인증 된 엔티티는 브라우저에서 신원을 확인했습니다.

사용자가 신뢰할 수있는 적절한 브라우저를 선택하면 모든 WebRTC 커뮤니케이션이 “보안”으로 간주되고 WebRTC 기술의 표준 허용 보안 아키텍처를 따라갈 수 있습니다. 그러나 브라우저가 “신뢰할 수있는”의심의 여지가 있다면 (E.g. 신뢰할 수있는 위치가 아닌 제 3 자에서 다운로드 한 후), WERBRTC 응용 프로그램과의 모든 상호 작용에 영향을 미치며 안정적으로 안전하지 않을 수 있습니다.

다시 말해, WebRTC가 사용자에게 제공하는 신뢰 수준은 브라우저에 대한 사용자의 신뢰에 직접 영향을받습니다.

삼.2. SOP : 동일한 원산지 정책

페이지의 일부 또는 전부가로드 될 때마다 페이지의 웹 서버에서 모든 웹 페이지 리소스가 가져 오는 것은 DOM의 기본 측면입니다. 브라우저에서 페이지가 새로로드되거나 웹 페이지에있는 스크립트가 그러한 요청을 할 때 리소스를 가져 오는 것이 발생합니다. 이러한 스크립트는 E를 통해 HTTP 요청을 쉽게 할 수 있습니다.g. xmlhttprequest () API는 지정한 모든 서버에 그러한 요청을 할 수 없습니다. 오히려 요청은 스크립트가 시작된 위치와 동일한 “원점”으로 이루어져야합니다. “원점”은 URI 체계, 호스트 이름 및 포트 번호로 구성됩니다. 이 전반적인 제한은 “동일한 원산지 정책”(SOP)이라고합니다.

SOP는 스크립트가 원산지 도메인에 특정한 분리 된 샌드 박스에서 실행되도록 강제로, 따라서 정보 교환에서 동일한 페이지의 다른 기원 또는 iframes의 페이지를 방지합니다. 동일한 Origin 서버의 웹 페이지 및 스크립트는 서로 상호 작용할 때 방해받지 않습니다’S JS 변수. 따라서 원점은 웹 샌드 박스의 기본 단위를 구성합니다.

Origin별로 실행 샌드 박스를 시행함으로써 최종 사용자는 자격 증명의 오용으로부터 보호됩니다. 광고 패널 내에서 스크립트를 실행하고 로그인 정보를 훔치지 않고 소셜 네트워킹 웹 사이트를 안전하게 사용할 것으로 예상됩니다.

마찬가지로, E의 서버도 마찬가지입니다.g. 웹 페이지 제공 업체는 사용자의 브라우저를 통해 장착 된 공격으로부터 보호됩니다. 그러한 보호 조치가 존재하지 않으면 DOS 공격은 학대 자원 요청을 통해 시작될 수 있습니다.

삼.2.1 우회 SOP

SOP는 일반적으로 사용자와 웹 서버의 보안에 매우 중요하지만 특정 유형의 웹 앱을 만들기가 더 어려워지는 단점이 있지만. 상호 상호 작용을 허용하는 방법은 존재하지만, 이들은 일반적으로 상호 합의이며 특정 채널로 제한됩니다.

W3C Cross-Origin Resource Sharing (CORS) 사양은 문제에 대한 답변 중 하나입니다. 브라우저가 스크립트 대상 서버에 연락하여 주어진 유형의 트랜잭션에 기꺼이 참여할 것인지 결정할 수 있습니다. 따라서 대상 서버에 특정 요청에 대해 구체적으로 옵트 인하고 다른 모든 요청을 거부 할 수있는 옵션을 제공함으로써 크로스 오리핀 요청을 안전하게 허용 할 수 있습니다.

WebSockets는 유사한 기능을 허용하는 또 다른 옵션이지만 격리 된 HTTP 요청이 아닌 투명 채널에서. 이러한 연결이 설정되면 스크립트는 일련의 HTTP 요청/응답 트랜잭션으로 프레임이 필요하기 때문에 원하는대로 트래픽 및 리소스를 전송할 수 있습니다.

두 경우 모두 초기 검증 단계는 기원이 다른 스크립트에 의해 데이터의 임의의 전송을 방지합니다.

4. WEBRTC 보안 고려 사항

4.1. 설치 및 업데이트

기존 데스크톱 소프트웨어의 일반적인 문제는 응용 프로그램 자체를 신뢰할 수 있는지 여부입니다. 새로운 소프트웨어 또는 플러그인 설치는 잠재적으로 맬웨어 또는 기타 바람직하지 않은 소프트웨어를 설치할 수 있습니다. 많은 최종 사용자는 소프트웨어가 어디에서 만들어 졌는지 또는 정확히 앱을 다운로드하는 사람을 모릅니다. 악성 소프트웨어를 포함하여 완벽하게 안전하고 신뢰할 수있는 소프트웨어를 재 포장하고 무료 소프트웨어 웹 사이트에서 사용자 정의 패키지를 제공하는 데 큰 성공을 거두었습니다.

그러나 WebRTC는 플러그인이 아니며 구성 요소에 대한 설치 프로세스도 없습니다. 모든 기본 WEBRTC 기술은 Chrome 또는 Firefox와 같은 적절한 WEBRTC 호환 브라우저를 다운로드하는 데있어 단순히 설치됩니다. 사용자가 그러한 브라우저가있는 경우 다른 설정 또는 준비가 필요없는 WEBRTC 응용 프로그램을 탐색하고 사용할 수 있습니다. 따라서 적절한 WEBRTC 응용 프로그램을 사용하여 맬웨어 또는 바이러스를 설치할 위험이 없습니다. 그러나 WebRTC 앱은 Verisign과 같은 유효한 인증자가 서명 한 HTTPS 웹 사이트를 통해 액세스해야합니다.

또 다른 관련 고려 사항은 소프트웨어에서 발견 된 보안 결함의 패치입니다. 모든 소프트웨어 기술과 마찬가지로 WebRTC에서 미래 버그 또는 취약점이 발견 될 가능성이 전적으로 가능합니다. 기존 데스크톱 응용 프로그램 (일반적인 VoIP 응용 프로그램과 같은)에서 취약성이 발견되면 패치 개발이 상당한 시간이 걸릴 수 있습니다. 보안은 여전히 ​​기능 이후 2 차 고려 사항으로 취급되므로 응용 프로그램 개발에 빈번한 문제입니다. 이보다 더 깊어지면 하드웨어 기반 통신 방법을 고려할 수 있습니다. VoIP 전화가 얼마나 자주 보안 업데이트를 받습니까?? 정기적으로 업데이트 할 책임이있는 사람을 믿을 수 있습니까?? 누가 책임을 지는지 알고 있습니까??

이와 반대로 브라우저는 사용자가 노출되는 위험의 빈도 및 범위로 인해 빠르게 진행되는 개발 장면이며 유비쿼터스 특성 (및 브라우저를 통해 액세스하는 정보의 중요성). WebRTC의 구성 요소가 브라우저의 일부로 제공되므로 브라우저가 업데이트 될 때마다 업데이트됩니다. 브라우저의 WEBRTC 구현에서 향후 취약점을 찾으면 수정이 빠르게 전달 될 것입니다. 이것은 특히 Chrome과 Firefox의 빠른 개발주기에서 사실 인 것으로 보입니다. 실제로 자동 업데이트 시대에 WebRTC 구성 요소는 서버에서 패치를 사용할 수있게 자마자 새로운 브라우저 버전을 통해 업데이트 할 수 있습니다. 대부분의 현대식 브라우저는 심각한 취약성 또는 위협이 발견 된 후 24 시간 이내에 자동 업데이트에 대한 좋은 기록을 가지고 있습니다.

참고 사항 : WEBRTC는 플러그인을 설치할 필요가 없다고 언급했지만 타사 WEBRTC 프레임 워크는 현재 지원되지 않은 브라우저 (예 : Safari 및 IE)에서 지원할 수있는 플러그인을 제공 할 수 있습니다. 이러한 경우 사용자주의 (또는 지원되는 브라우저)가 권장됩니다.

4.2. 미디어/지역 자원에 대한 액세스

브라우저는 로컬 리소스 (카메라, 마이크, 파일 포함)에 액세스 할 수 있으며, 이는 사용자의 마이크 및 카메라에 액세스하는 웹 애플리케이션의 불가피한 관심을 이끌어냅니다. 웹 애플리케이션이 사용자의 카메라 또는 마이크에 자유롭게 액세스 할 수 있다면, 파렴치한 앱은 사용자의 지식없이 비디오 또는 오디오 피드를 녹화하거나 배포하려고 시도 할 수 있습니다. 백그라운드 탭에 거주하는 웹 사이트가 사용자의 신뢰를 남용하기 위해 간단한 문제 일 수 있습니다 (사용자는 그러한 커뮤니케이션 응용 프로그램을 인식하지 못할 수도 있습니다).

WebRTC는 사용자가 카메라 또는 마이크를 사용하도록 명시 적으로 권한을 부여하도록 요구함으로써 이것을 전투합니다 (둘 다 개별적으로 구성 할 수 있음). 사용자에게 일회성 또는 영구 액세스 권한을 요청할 수 있습니다. WEBRTC 응용 프로그램이 임의로 액세스 또는 운영을 할 수 없습니다. 또한 마이크 또는 카메라를 사용하는 경우 클라이언트 UI는 마이크 또는 카메라가 작동 중인지 사용자에게 명시 적으로 표시해야합니다. Chrome에서는 사용자 미디어에 액세스하는 모든 탭에서 빨간 점 형태를 취합니다.

그림 3. 크롬 UI 표시기

그림 3. 크롬 UI 표시기

이 보안 보호의 철학은 사용자가 항상 전화를 받아야하는지 또는 전화를 받아야하는지에 대한 정보에 근거한 결정을 내려야한다는 것입니다. 다시 말해서, 사용자는 다음을 이해해야합니다 .- 미디어에 대한 액세스를 요청하는 사람 또는 미디어가 진행되는 곳 – 또는 둘 다.

추가 조항으로 WEBRTC 사양은 UI 표시기가 마스크 될 때 브라우저가 카메라와 마이크를 중지해야한다고 지정합니다 (E.g. 창으로 겹침). 이것은 이상적인 행동이지만 반드시 보장되는 것은 아니며 사용자는주의를 기울여야합니다. 그러나 다행히도이 추가 기능은 사용자가 기대하는 동작이 아닙니다.

스크린 공유는 범위의 고유 한 유연성으로 인한 추가 보안 고려 사항을 도입합니다. 사용자는 공유하는 정보의 범위를 즉시 알지 못할 수 있습니다. 예를 들어, 그들은 단순히 특정 창의 스트림을 공유하고 있다고 생각할 수 있습니다 (E.g. 원격 파티에 프레젠테이션을하는 동안), 실제로는 실제 화면을 청중에게 보여줍니다. 이는 사용자가 초기 화면 공유 설정을 올바르게 설정하지 못하거나 사용자가 공유하는 내용의 범위를 단순히 잊을 수있는 결과 일 수 있습니다.

4.삼. 미디어 암호화 및 커뮤니케이션 보안

실시간 커뮤니케이션 응용 프로그램이 보안 위험을 부과 할 수 있다는 여러 가지 방법이 있습니다. 특히 주목할만한 것은 암호화되지 않은 미디어 또는 전송 중 데이터의 차단입니다. 이것은 브라우저-브라우저 또는 브라우저-서버 통신 사이에서 발생할 수 있으며, 모든 데이터를 볼 수있는 도청 제 3 자와 함께. 그러나 암호화는 도청자가 커뮤니케이션 스트림의 내용을 결정하는 것이 효과적으로 불가능하게 만듭니다. 비밀 암호화 키에 액세스 할 수있는 당사자 만 통신 스트림을 해독 할 수 있습니다.

암호화는 WebRTC의 필수 기능이며 신호 메커니즘을 포함하여 모든 구성 요소에서 시행됩니다. 결과적으로 WebRTC를 통해 전송 된 모든 미디어 스트림은 단단히 암호화되어 표준화되고 잘 알려진 암호화 프로토콜을 통해 제정됩니다. 사용 된 암호화 프로토콜은 채널 유형에 따라 다릅니다. 데이터 스트림은 DTLS (Datagram Transport Layer Security)를 사용하여 암호화되고 SRTP (Secure Real-Time Transport Protocol)를 사용하여 미디어 스트림이 암호화됩니다.

4.삼.1. DTLS : 데이터 그램 전송 계층 보안

WebRTC는 데이터 그램 전송 계층 보안 (DTLS)을 사용하여 정보 (특히 데이터 채널)를 암호화합니다. RTCDatachannel을 통해 전송 된 모든 데이터는 DTLS를 사용하여 고정됩니다.

DTLS는 WEBRTC를 지원하는 모든 브라우저에 내장 된 표준화 된 프로토콜이며 웹 브라우저, 이메일 및 VoIP 플랫폼에 지속적으로 사용되는 하나의 프로토콜입니다. 내장 된 특성은 또한 사용하기 전에 사전 설정이 필요하지 않음을 의미합니다. 다른 암호화 프로토콜과 마찬가지로 도청 및 정보 변조를 방지하도록 설계되었습니다. DTLS 자체는 비대칭 암호화 방법, 데이터 인증 및 메시지 인증을 통해 전체 암호화를 제공하는 프로토콜 인 스트림 지향 TLS를 모델링합니다. TLS. TLS는 TCP의 안정적인 전송 메커니즘을 위해 설계되었지만 VoIP 앱 (및 게임 등.) 일반적으로 UDP와 같은 신뢰할 수없는 데이터 그램 전송을 사용합니다.

DTLS는 SSL의 파생물이므로 모든 데이터는 표준 SSL 기반 연결을 사용하는 것만 큼 안전한 것으로 알려져 있습니다. 실제로 WEBRTC 데이터는 웹에서 모든 표준 SSL 기반 연결을 통해 보안 할 수 있으므로 WEBRTC는 거의 모든 서버 배열로 피어간에 엔드 투 엔드 암호화를 제공 할 수 있습니다.

4.삼.1.1. DTLS Over Turn

모든 WEBRTC 통신의 기본 옵션은 설치 단계에서 신호 서버와 관련된 두 브라우저 간의 직접 P2P 통신입니다. P2P 암호화는 상대적으로 구상 및 설정이 쉽지만 실패의 경우 WEBRTC 설정은 턴 서버 (사용 가능한 경우)를 통해 통신으로 돌아갑니다. 턴 커뮤니케이션 중에 미디어는 품질 상실을 겪고 대기 시간이 증가 할 수 있지만, “다른 모든 실패가 발생하면”시나리오가 도전적인 상황에서도 WEBRTC 응용 프로그램이 작동하도록 허용합니다. 또한 대체의 대체 커뮤니케이션 구조에서 암호화 된 커뮤니케이션을 고려해야합니다.

통신 방법에 관계없이 전송 된 데이터는 종말점에서 암호화 된 것으로 알려져 있습니다. Turn Server의 목적은 단순히 통화에서 당사자 간의 WebRTC 데이터 릴레이이며, 라우팅 목적으로 WebRTC 패킷의 UDP 계층 만 구문 분석합니다. 서버는 패킷을 라우팅하기 위해 애플리케이션 데이터 계층을 디코딩하지 않으므로 DTLS 암호화를 터치하지 않을 수 있음을 알고 있습니다.

결과적으로 암호화를 통해 제시되는 보호는 WebRTC 통신 중에 턴을 넘어서 손상되지 않으며 서버는 동료가 서로에게 보내는 정보를 이해하거나 수정할 수 없습니다.

4.삼.2. SRTP : 보안 실시간 전송 프로토콜

기본 RTP는 내장 보안 메커니즘이 없으므로 전송 된 데이터의 기밀성을 보호하지 않습니다. 외부 메커니즘은 대신 암호화를 제공하기 위해 의존합니다. 실제로 암호화되지 않은 RTP의 사용은 WEBRTC 사양에 의해 명시 적으로 금지됩니다.

WebRTC는 DTL이 아닌 미디어 스트림의 암호화에 SRTP를 사용합니다. SRTP가 DTL보다 가벼운 체중 옵션이기 때문입니다. 이 사양은 준수 한 WEBRTC 구현이 RTP/SAVPF (RTP/SAVP 위에 구축)를 지원해야합니다 [9] . 그러나 실제 SRTP 키 교환은 처음에 DTLS-SRTP로 엔드 투 엔드를 수행하여 MITM 공격을 감지 할 수 있습니다.

4.삼.삼. 안전한 링크 설립

WEBRTC 신청서에 새로운 전화를 구축하는 과정을 진행해 보겠습니다. 이 경우 두 당사자가 관련 될 것입니다. 앨리스와 밥. 한 당사자 (Alice)가 다른 사람 (BOB)을 호출 할 때 통화 절차가 시작되고 신호 프로세스는 양 당사자 간의 관련 메타 데이터를 교환합니다.

초기 얼음 점검이 끝나면 (또는 특히 일부), 두 동료는 하나 이상의 안전한 채널을 설정하기 시작합니다. 처음에 DTLS 핸드 셰이크는 ICE에 의해 설정된 모든 채널에서 수행됩니다. 데이터 채널의 경우이 단계만으로는 단순한 간단한 DTL이 암호화에 사용되므로 충분합니다. 그러나 미디어 채널의 경우 추가 단계가 수행됩니다.

DTLS 핸드 셰이크가 완료되면 키가 “내보내기”되고 미디어 채널의 SRTP 키에 사용됩니다. 이 단계에서 양 당사자는 악의적 인 타사에게 알려지지 않은 키와 보안 데이터 및/또는 미디어 채널을 공유한다는 것을 알고 있습니다.

4.삼.4. DTLS-SRTP 대 SDES

미디어 트래픽 세션의 보안 매개 변수를 협상하려면 SRTP가 주요 관리 프로토콜과 상호 작용해야합니다. 이 프로토콜은 설정되지 않았으므로 작업에 대한 여러 가지 가능한 옵션을 제공합니다. 이러한 두 가지 옵션은 SDE 및 DTLS-SRTP입니다.

멀티미디어 커뮤니케이션에 관련된 신호 (SIP, HTTP) 및 미디어 (RTP)는 독립적으로 보호 할 수 있음을 주목할 가치가 있습니다.

SDES

미디어 스트림 (SDES)에 대한 SDP 보안 설명은 WebRTC가 이전에 선호하는 옵션이었습니다.

SDE 내에서 SRTP 세션을 설정하는 데 사용되는 보안 매개 변수 및 키는 SDP 속성 형태로 명확한 텍스트로 교환됩니다. SDP가 신호 평면을 통해 통신함에 따라, 그러한 신호 메시지에 암호화가 추가로 제정되지 않으면 도청 제 3자는 SDES 암호화 데이터의 키를 얻을 수 있습니다. 다시 말해, 신호 평면의 암호화를 위해 특별히 암호화 프로토콜을 사용해야합니다. 이를위한 그러한 옵션 중 하나는 TLS를 사용하는 것입니다.

그러나 신호와 미디어를 독립적으로 확보하면 미디어 사용자가 신호 사용자와 다르다는 점에서 상황이 발생할 수 있습니다 (보증이 제공되지 않으므로). 이 보증을 제공하려면 암호화 바인딩이 필요합니다. dtls-srtp는 이것을 제공하는 메커니즘 중 하나이지만 SDES는 그렇지 않습니다.

오늘날에도 VoIP 네트워크의 대부분의 RTP 트래픽이 보안되지 않았다는 사실은 여전히 ​​남아 있습니다. 실제로 암호화는 고객이 일반적으로 공급 업체에게 예산을 충족시키기 위해 벤더에게 요구하는 최초의 기능 중 하나입니다. 확보되면 대부분의 배포는 SDE를 사용합니다. 방금 언급 한 바와 같이 신호 비행기 보안에 크게 의존합니다.

DTLS-SRTP

반면에 DTLS-SRTP는 신호 비행기가 아닌 미디어 평면을 통해 키를 교환합니다. 이러한 차이의 결과는 SRTP 미디어 채널이 SDS의 경우와 마찬가지로 SDP 메시지 교환을 통해 비밀 암호화 키를 밝힐 필요가 없다는 것입니다.

WEBRTC 사양 [9]은 WEBRTC 구현이 주요 관리를 위해 DTLS-SRTP를 지원하기 위해 필요하다고 주장합니다. 또한 기본 및 선호 체계로 지정되며 다른 주요 관리 체계가 구현 될 조항이 없습니다. 다시 말해, 다른 체계는 전혀 뒷받침 될 수도 있고 아닐 수도 있습니다.

DTLS-SRTP 및 SDE에 대한 피어 광고 지원에서 제안 또는 “전화”가 수신되면 신호가 확보되었는지 여부에 관계없이 DTLS-SRTP를 선택해야합니다.

토론

DTLS-SRTP는 WEBRTC 미디어의 암호화에 대한 필수 및 기본 옵션이어야합니다. 의문의 것은 다른 메커니즘, 즉 SDE가 후진 호환성을 제공하기 위해 사용되어야하는지 여부입니다.

호환성 관점에서 Google의 Chrome 브라우저는 SDE 및 DTLS-SRTP를 지원합니다. 반면에 Mozilla ‘s Firefox는 DTLS-SRTP를 구현합니다.

4.삼.5. SRTP의 약점

SRTP는 RTP 패킷의 페이로드 만 암호화하여 헤더에 대한 암호화를 제공하지 않습니다. 그러나 헤더에는 비밀을 유지하기에 바람직 할 수있는 다양한 정보가 포함되어 있습니다.

RTP 헤더에 포함 된 이러한 정보 중 하나는 포함 된 미디어 데이터의 오디오 레벨입니다. 효과적으로 SRTP 패킷을 볼 수있는 사람은 사용자가 주어진 시간에 말하는지 여부를 알 수 있습니다. 미디어 자체의 내용은 모든 도청자에게 비밀로 남아 있지만 여전히 무서운 전망입니다. 예를 들어, 법 집행관은 사용자가 알려진 나쁜 사람과 의사 소통하는지 여부를 결정할 수 있습니다.

4.4. 웹 기반 피어 인증 및 ID 관리

사용자가 동료의 신원을 확인할 수있는 것이 바람직합니다. 나.이자형. 사용자는 자연스럽게 자신이 말하고 있다고 믿는 사람과 대화하고 있으며 사기꾼이 아닙니다.

신호 서버가 사용자의 신원을 주장하는 데 어떤 길을 갈 수 있지만, 신호 서버 자체는 (그리고 인증의 경우) 신뢰할 수 없을 수 있습니다. 신호 서버와 독립적으로 동료의 인증을 수행 할 수 있어야합니다. 신원 제공 업체를 사용하여 가능할 수 있습니다.

그림 4. IDP 기반 신원이있는 호출

그림 4. IDP 기반 신원을 통한 전화

Facebook Connect, Browserid (Mozilla), Oauth (Twitter)를 포함하여 많은 웹 기반 Identity Providers (IDP)가 최근 웹에서 일반적인 곳이되었습니다. 이러한 메커니즘의 목적은 단순히 신원 제공 업체 자체의 권한에 대해 다른 서비스/사용자에 대한 신원을 확인하는 것입니다. 사용자가 Facebook에 계정을 가지고 있다면 Facebook의 IDP 인 Facebook Connect를 사용하여 다른 사람들이 자신이 페이스 북에 있다고 말하는 사람임을 증명할 수 있습니다. 이를 통해 사용자는 다른 서비스에 대한 인증을 “신뢰할 수있는”서비스의 기본 계정에 연결할 수 있습니다. 이 경우 신원 제공 업체가 보유한 “신뢰”수준은 엔드 포인트 사용자 또는 서비스에 주관적이며 종종 월드 와이드 웹의 사용자 기반 및 명성과 크게 관련이 있습니다.

각 IDP의 구현은 오픈 소스 표준을 기반으로하기보다는 다른 회사의 독립적 인 개발로 인해 다를 수 있지만 기본 원칙과 기능은 본질적으로 동일하게 유지됩니다. IDP는 신호 서버에 대한 인증을 제공하지 않습니다. 오히려 그들은 사용자 (및 프로세스를 통한 브라우저)에 대한 인증을 제공합니다. WebRTC는 또한 어떤 서비스를 사용해야하는지에 대한 요구 사항을 제시하지 않으며, 사용되는 서비스는 웹 응용 프로그램의 구현을 기반으로합니다.

웹 애플리케이션 (호출 사이트) 이이 인증 프로세스와 관련이 없으므로 브라우저가 인증 프로세스에 대한 입력을 안전하게 생성하고 웹 응용 프로그램의 출력을 안전하게 표시하는 것이 중요합니다. 이 프로세스는 웹 애플리케이션에서 위조되거나 잘못 표현 될 수 없어야합니다.

그림 5. 신원 공급자의 운영

그림 5. 신원 공급자의 운영

4.5. IP 위치 개인 정보

얼음 사용의 부작용 중 하나는 피어가 IP 주소를 배울 수 있다는 것입니다. IP 주소는 글로벌 당국에 공개적으로 등록되므로 주어진 동료 위치와 같은 세부 사항을 공개 할 수 있습니다. 이것은 자연스럽게 피어에 부정적인 영향을 줄 수 있습니다.

WebRTC는이 정보를 배우고 자하는 악의적 인 웹 사이트에서 사용자를 보호하려는 의도로 설계되지 않았습니다. 일반적으로 이러한 사이트는 HTTP 트랜잭션에서 최소한 사용자의 서버 반사 주소를 학습합니다. 서버에서 IP 주소를 숨기려면 클라이언트에 대한 명시 적 개인 정보 보호 메커니즘이 필요 하며이 보고서의 범위가 없습니다.

그러나 WebRTC는 웹 애플리케이션이 사용자와 협력하여 통화 반대편에서 사용자의 IP 주소를 숨기도록 할 수있는 여러 메커니즘을 제공합니다. 이러한 메커니즘은 차례로 상세하게 될 것입니다.

WEBRTC 구현은 사용자가 전화에 응답하기로 결정할 때까지 JS가 얼음 협상을 억제 할 수있는 메커니즘을 제공해야합니다. 이 조항은 최종 사용자가 동료가 전화에 응답하지 않기로 선택하면 피어가 IP 주소를 배우지 못하게합니다. 이것은 사용자가 온라인 상태인지 동료에게 숨기는 것의 부작용이 있습니다.

두 번째로 그러한 조항은 모든 구현이 호출 앱의 JavaScript에 대한 메커니즘을 제공하여 후보자 만 사용해야한다는 것을 나타냅니다. 이렇게하면 피어가 IP 주소를 전혀 배우지 못하게 할 수 있습니다.

또한, 호출 앱이 기존의 호출을 재구성하기위한 메커니즘이 있습니다. 이전 조항과 함께, 이것은 들어오는 통화 알림에 즉시 얼음 협상이 시작될 수있게하여 지연이 줄어들뿐만 아니라 대답하기로 결정할 때까지 사용자의 IP 주소를 공개하는 것을 피할 수 있습니다. 이를 통해 사용자는 통화 기간 동안 IP 주소를 완전히 숨길 수 있습니다.

4.6. 신호 층

신호 프로토콜은 WEBRTC에 의해 지정되지 않기 때문에 암호화 메커니즘은 분명히 선택한 신호 프로토콜에 달려 있습니다. 신호 보안의 비교적 개방적인 특성으로 인해이 보고서는 가장 일반적인 프로토콜 SIP (세션 시작 프로토콜)에 중점을두고 간단히 설명합니다.

SIP는 VoIP 커뮤니케이션에 사용되는 널리 구현 된 표준입니다. 그러나 HTTP 및 SMTP의 파생물입니다. 둘 다 정기적으로 악용되는 프로토콜입니다. 일반 텍스트 메시지를 사용하여 정보를 교환하기 때문에 모든 악의적 인 당사자가 네트워크를 탭하고 SIP 메시지를 캡처하는 것이 가능합니다. 공격자가 사용자의 민감한 정보를 읽을 수 있다면이 정보를 사용하여 사용자를 스푸핑 할 수 있습니다. 그리고 공격자가 운영자의 네트워크에 더 액세스 할 수 있다면 WebRTC 커뮤니케이션의 내용을 해독 할 수 있습니다. [14]

SIP는 명확한 텍스트로 전송되므로 결정된 공격자가 SIP 메시지를 가로 채는 것은 사소한 일입니다. 다음에 일어날 일은 공격자의 상상력에 남아 있지만 메시지 본문이나 헤더의 내용이 변조되었다고 생각하는 것은 어렵지 않습니다. 공격자가 초대 메시지를 가로 채면 자신의 IP 주소를 반영하기 위해 From Header를 변경할 수 있습니다.

4.6.1. SIP 취약점

SIP는 멀티미디어 커뮤니케이션 세션 신호 및 제어를위한 커뮤니케이션 프로토콜이며 전화 통화 설정 및 찢어짐을 위해 VoIP 기술에서 자주 구현됩니다. 그러한 옵션 중 하나와 같이 신호 목적으로 WebRTC 구현에서 유사하게 사용할 수 있습니다. 그러나 SIP 메시지는 자주 일반 텍스트로 전송됩니다. 이로 인해 자연스럽게 다수의 잠재적 공격 벡터가 생길 수 있으므로이 영역을 면밀히 검토 할 것입니다.

SIP 흐름

통화를 설정하는 과정에서 사용자의 브라우저 (또는 “사용자 에이전트”)는 중앙 레지스트라에 등록합니다. 이 등록은 원격 파티를 찾아서 연락하는 수단을 제공 할 필요가 있기 때문에 전통적인 VoIP의 필수품입니다.

당사자 (Bob)가 통화를 시작하려면 중앙 프록시 서버를 통해 초대 메시지를 보냅니다 (신호 서버입니다). 서버는 그러한 메시지를 전달하고 다른 사용자를 찾는 수단을 제공 할 책임이 있습니다. 서버는 DNS 사용과 같은이 조회 프로세스 중에 최종 사용자를 찾기위한 여러 가지 조치를 시도 할 수 있습니다.

등록 하이재킹

초기 브라우저 등록은 사용자의 연락처 지점을 발표하는 데 사용되며 사용자의 장치가 통화를 수락하고 있음을 나타냅니다. 그러나이 프로세스는 악성 엔티티가 “등록 하이 잭”공격을 수행 할 수있는 벡터를 제공합니다.

등록 메시지의 교환에는 사용자의 IP 주소를 포함하는 “Contact :”필드가 포함됩니다. 신호 서버가 들어오는 통화를 처리 할 때마다 사용자 이름 (또는 전화 번호)은 등록 된 IP 주소와 일치하며 초대는 그에 따라 전달됩니다. 이러한 등록은 주기적으로 업데이트되어 레코드가 최근 및 최신 상태로 유지되도록합니다.

SIP 메시지는 항상 일반 텍스트로 전송되므로 공격자 가이 등록 메시지의 내용을 가로 채고 읽는 것은 사소한 일 수 있습니다. 가로 채기에 따라 적절한 도구 (예 : Sivus 메시지 생성기)를 사용하여 유사한 SIP 정보를 생성 할 수 있지만 사용자의 진정한 IP 주소는 공격자 자체로 대체됩니다. 공격자는 실제 사용자를 비활성화 하고이 정보를 주기적으로 보내야합니다.

공격자가 다음을 포함하여 합법적 인 사용자를 비활성화하는 데 활용할 수있는 여러 가지 방법이 있습니다 .- 사용자의 장치에 대한 DOS 공격 수행 – 사용자를 두어 리터링하는 (여기에서 다루지 않은 다른 공격) – 등록 경주 조건을 생성하여 공격자가 15 초마다 반복적으로 등록 요청을 보냅니다. 이것은 WebRTC 신호 서비스에 대한 진정한 위험입니다.

SIP 구현이 메시지 내용의 확인 무결성을 지원하지 않기 때문에 수정 및 재생 공격은 감지되지 않으며 실행 가능한 공격 벡터입니다. 이 공격은 공격자가 원하는대로 메시지를 다시 캡처, 수정 및 재생할 수 있으므로 서버가 사용자 등록을 인증해야하더라도 작동합니다.

이 공격은 SIP (SIP Over TLS)를 구현하고 SIP 요청 및 응답을 인증함으로써 억제 될 수 있습니다 (무결성 보호 포함). 실제로, SIP의 사용과 응답 인증은 도청 및 메시지 또는 사용자 사망자를 포함한 많은 관련 공격을 억제 할 수 있습니다.

다른 가능한 공격

  • MITM 공격
    • 공격자가 초기 SIP 메시지를 가로 채려면 MITM 공격을 수행 할 수 있습니다.
    • 캡처 된 패킷은 악의적 인 파티에 의해 서버로 재생되어 서버가 통화의 원래 대상을 호출하게 할 수 있습니다. 다시 말해, 이것은 당사자가 이미받은 당사자와 동일한 두 번째 원치 않는 통화 요청의 형태를 취할 수 있습니다. 귀찮은 일이지만 공격자는 신호 패킷에 IP 정보가 포함되지 않기 때문에 전화의 당사자가 아닙니다.
    • 웹 서버는 상태가 아니며 각 요청이 별도의 세션을 제공합니다 (지속적으로 인증해야 할 필요성을 완화). 인증을위한 쿠키이지만 세션 ID가 포함 된 데이터 파일에 지나지 않습니다. 이 쿠키는 웹 서버에서 초기 액세스시 브라우저로 전송됩니다.

    암호화

    신호 전달이 공격자가 타겟팅 할 수있는 유혹적인 유리한 점을 제공하는 것처럼 보이지만 모든 것이 손실되지는 않습니다. 미디어 스트림 외에도 신호 레이어도 암호화 할 수 있습니다. 이러한 암호화 된 옵션 중 하나는 ONSIP입니다. ONSIP는 SIP Over Secure WebSockets (wss : //)를 사용하여 TLS가 웹 소켓 연결을 암호화합니다.

    이 보고서의 범위를 벗어나더라도 다른 신호 기술은 유사하게 TLS를 사용하여 WebSocket 또는 기타 웹 트래픽을 암호화 할 수 있습니다. 모든 암호화와 마찬가지로, 제 3자가 비밀 암호화 키를 모르는 경우, 통신의 일반 텍스트 내용을 읽을 수 없습니다. 이는 상기 공격 벡터의 많은 위험을 제거하는 데 도움이되지만 응용 프로그램 프로그래머는 적용 할 수 있도록 암호화 된 신호 방법을 구체적으로 구현해야합니다.

    4.7. 추가 보안 주제

    통신 네트워크의 관점

    WebRTC에 지원을 제공함으로써 통신 네트워크는 보안 위험 증가에 노출되지 않아야합니다. 그러나 소비자의 손에있는 장치 나 소프트웨어는 불가피하게 악의적 인 당사자에 의해 타협 될 것입니다.

    이러한 이유로, 신뢰할 수없는 출처 (e.g. 소비자/사용자로부터)를 검증해야하며, Telecom Network는 클라이언트에게 전송 된 모든 데이터가 악의적 인 소스에서 얻을 수 있다고 가정해야합니다.

    이 두 가지 원칙을 채택함으로써 통신 제공 업체는 자신의 시스템을 손상시킬 수있는 자신의 실수로부터 소비자를 보호하려는 모든 합리적인 시도를하려고 노력해야합니다.

    크로스 사이트 스크립팅 (XSS)

    크로스 사이트 스크립팅은 웹 애플리케이션 (예 : 브라우저 보안 위반을 통한 웹 브라우저 등)에서 일반적으로 발견되는 유형의 취약점입니다. 공격자는 동일한 원산지 정책과 같은 액세스 컨트롤을 우회하기 위해 공격자가 크로스 사이트 스크립팅 취약점을 사용할 수 있습니다.

    그 효과는 취약한 사이트에서 처리하는 데이터의 민감도와 사이트에서 구현 한 모든 보안 완화의 특성에 따라 사소한 귀찮은 것에서 상당한 보안 위험에 이르기까지 다양 할 수 있습니다’S 소유자.

    WEBRTC에 액세스하는 주요 방법이 HTML5 활성화 브라우저를 사용하고있을 것으로 예상되므로와 같은 사용에 관한 특정 보안 고려 사항이 있습니다. 크로스 사이트 스크립팅 또는 크로스 도메인 공격, WebSocket 사용, IFRAME 보안 및 기타 문제로부터 키 및 민감한 데이터 보호. 클라이언트 소프트웨어는 사용자가 제어 할 것이기 때문에 브라우저는 대부분의 경우 보호 된 환경에서 실행되지 않기 때문에 WEBRTC 클라이언트가 손상 될 가능성이 추가됩니다. 이것은 클라이언트에게 전송 된 모든 데이터가 노출 될 수 있음을 의미합니다.

    5. 경쟁/유사한 기술과 비교

    WebRTC의 비교 보안에 대한 조사는 경쟁의 보안을 고려하지 않고는 의미가 없을 것입니다. 다행스럽게도 WebRTC의 경우 웹 기반 커뮤니케이션 경기장의 경쟁에는 고유 한 문제가 있습니다.

    이 섹션은 경쟁하는 RTC 기능을 제공하는 WEBRTC 및 기타 플랫폼의 비교 강점과 약점을 탐색합니다.

    우리가 탐색 할 수있는 일부 플랫폼은 다음과 같습니다. 탐색 할 플랫폼은 아직 선택되지 않았습니다. (첫 번째 래프트 후에 오기 위해.))

    광범위하게 의존하지만 추가 설치 프로세스는 장벽을 만들 수 있습니다

    6. 안전한 디자인 관행

    WebRTC는 안전하도록 만들어졌습니다. 그러나 기본 기술에 맹목적으로 의존하는 것 이상의 보안을 염두에두고 의식적으로 코딩하는 것이 좋습니다. 이 섹션은 바닐라 WebRTC 구현에 대한 보안을 보장하기 위해 따라갈 수있는 코딩 관행에 대해 논의 할 것입니다. 특히 이러한 관행은 민감한 정보를 처리 할 것으로 예상되는 조직에 적용 할 수 있습니다.g. 은행 기관, 의료 기관 또는 기밀 기업 정보.

    안전한 신호

    앞에서 언급했듯이 WEBRTC. 이를 통해 WEBRTC 구현을 응용 프로그램의 요구에 맞게 조정할 수있는 어느 정도의 유연성을 허용하지만 특정 신호 프로토콜과 관련된 위험이있을 수 있습니다.

    신호 트래픽 암호화와 같은 추가 보안을 제공하는 신호 프로토콜을 구현하는 것이 좋습니다. 기본적으로 신호 프로세스에는 암호화가 포함되지 않을 수 있으며, 이는 교환 된 모든 신호 메시지의 내용을 도청에 열 수 있습니다. 따라서 보안/기밀에 중점을 둔 응용 프로그램은 신호 계층이 SIPS, OpenSip, HTTPS 또는 WSS와 같은 안전한 프로토콜을 통해 구현되도록해야합니다.

    인증 및 피어 모니터링

    기본 WEBRTC 앱에는 서비스 자체의 관점에서 인증을 수행하지 않고 통화를 수행하기 위해서는 사용자의 ID 만 필요합니다. 어떤 사용자가 전화에 참여하기 전에 사전 등록 또는 인증을 요구하는 것이 바람직 할 수 있습니다. 그런 다음 무분별한 엔티티는 세션에서 멀리 떨어져 있어야합니다’S에 도달하여 신뢰할 수없는 당사자에 대한 접근성을 제한합니다.

    미디어 연결은 P2P이므로 미디어 컨텐츠 (오디오 및 비디오 채널)는 전체 듀플렉스에서 동료간에 직접 전송됩니다. 따라서 신호 서버가 커뮤니케이션의 피어 수를 유지함에 따라 콜 세션에서 의심스러운 피어를 추가하기 위해 지속적으로 모니터링 할 수 있습니다. 신호 서버에 실제로 존재하는 피어의 수가 WebRTC 페이지에서 상호 작용하는 피어의 수가 더 많으면 누군가가 비밀리에 도청하고 세션 액세스에서 세션 액세스에서 종료해야한다는 것을 의미 할 수 있습니다.

    권한 요청

    사용자가 의식적으로 메시지를 읽지 않고 허가 요청 또는 유사한 대화에 동의하는 것은 유명한 행동입니다. 이것은 실제로 사용자가 의도하지 않은 권한으로 웹 응용 프로그램을 부여 할 위험이 있습니다.

    이 동작 자체를 쉽게 처리 할 수는 없지만 한 가지 솔루션은 페이지에 응용 프로그램이 요청할 권한을 페이지에 명확하게 자세히 설명하는 것일 수 있습니다. 이러한 응용 프로그램은 사용자의 개인 정보를 최전선에 배치합니다.

    중간에있는 남성

    악의적 인 파티가 MITM 공격을 설정하는 데 성공한 결과, 일반적으로이를 발견하거나 싸우는 쉬운 해결책은 없습니다. 공격에 경고가없고 의사 소통이 정상적으로 진행될 수 있기 때문입니다. 그러한 공격을 기대하지 않으면 공격은 계속해서 눈에 띄지 않을 것입니다.

    그러나 의심스러운 릴레이없이 정기적으로 미디어 경로를 모니터링함으로써 MITM 공격에 대한 완화를 향한 작은 단계를 수행 할 수 있습니다. 위에서 언급 한 것처럼 암호화 된 신호와 결합해야합니다.

    화면 공유

    화면 공유 기능의 어느 정도를 제공하는 응용 프로그램에는 사용자를 보호하기위한 경고가 있어야합니다. 앞서 논의한 바와 같이, 사용자는 공유되는 화면의 정도를 알지 못할 수 있습니다. 이러한 문제는 적절한 정보를 제공하기 위해 적절하게 설계된 응용 프로그램으로 돌아 가야합니다.

    예를 들어 화면의 일부 스트리밍을 시작하기 전에 사용자에게 올바르게 알리고 민감한 정보가 포함 된 화면을 닫는 것이 좋습니다.

    폴백

    최종 폴백 조치로서, 우리는 활발한 통화 세션이 무단 파티에 의해 손상된다는 상황을 상상하는 한 모험을 할 수 있습니다. 통화가 그러한 방식으로 손상된 것으로 확인되면 웹 애플리케이션 서버의 전원 내에 있어야합니다.

    7. 결론

    현대의 스마트 폰과 모바일 장치의 사람들은 그 어느 때보 다 더 많은 의사 소통을하고 있으며, 우리가 이전에 알고 있었던 것보다 훨씬 더 개인적인 방식으로. 특히 주요 기업 해킹 스캔들에 대한 인식이 높아지고 광범위한 정부 통신 도청을하면서 최근 몇 년 동안 암호화가 큰 주제가되었습니다. 그 결과는 그러한 조직의 사용자 불신이 급격히 증가했으며, 보안 조치를 크게 개선하는 데 무기를 요구합니다. 최종 사용자가 원하는 모든 것은 자신의 개인 데이터가 개인 데이터를 통제하고 있음을 아는 것입니다.

    WebRTC는 보안 영역의 대부분의 VoIP 서비스보다 큰 이점이 있습니다. 지금까지 대부분의 서비스는 일반적으로 보안을 선택 사항으로 처리했습니다. 즉, 대부분의 최종 사용자는 암호화없이 VoIP 통화를 사용합니다. 특히 대기업은이를위한 주요 범인이며, 사용자 또는 처리하는 데이터의 가치를 올바르게 고려하지 않고 더 저렴한 구현에 대한 비용을 절약하기로 선택합니다. 그러나 WEBRTC는 암호화되지 않은 의사 소통을 금지함에 따라 사용자는 데이터가 안전하고 개인적으로 유지되도록 확신 할 수 있습니다.

    보안을 염두에두고 설계된 WebRTC는 모든 주요 영역에서 중요한 보안 개념을 시행하거나 장려합니다. 따라서 단순히 안전한 안전을 구축하는 것뿐만 아니라 WebRTC 개발자는 보안을 진지하게 받아들이도록 권장합니다.

    안전한 커뮤니케이션에 대한 이러한 중점의 결과로 WebRTC는 현재 일부에 의해 가장 안전한 VoIP 솔루션 중 하나로 간주됩니다. 기본적으로 암호화의 주요 전제는 전화가 항상 비공개라는 것입니다. 보안 및 암호화는 더 이상 선택적 기능으로 간주되지 않습니다. 그리고 모든 것을 마무리하기 위해 WebRTC는 모든 사람에게 무료로 제공되며 개발자가 다음 애플리케이션을 구축 할 수있는 유혹적이고 신뢰할 수있는 프레임 워크를 제공합니다.

    가까운 시일 내에 우리는 점점 더 많은 커뮤니케이션 서비스가 사용자에게 보안을 크게 증가시킬 것으로 기대할 수 있습니다. 그러나 지금은 WebRTC가 청구를 주도하는 사람들 중 하나입니다.

    8. 서지

    2. RTCPeerConnection API에 대한 간단한 소개 .
    고성능 브라우저 네트워킹. 2015-07-28에 액세스.

    삼. WebRTC의 SDP .
    도구.IETF.org. 2015-07-28에 액세스.

    8. 금주의 공격 : 데이터 그램 TLS .
    블로그.cryptographyEngineering.com. 2015-07-28에 액세스.

    12. IETF-87 RTCWEB 의제 .
    도구.IETF.org. 2015-07-28에 액세스.

    15. SIP 네트워크의 보안 : 네트워크 공격 식별 .
    searchUnifiedCommunications.TechTarget.com. 2015-07-28에 액세스.

    17. WEBRTC 응용 프로그램의 보안 .
    Altanaitelecom.WordPress.com. 2015-07-28에 액세스.

    18. WEBRTC 보안 .
    Altanaitelecom.WordPress.com. 2015-07-28에 액세스.

    DTLS 프로토콜을 사용하는 SRTP

    SBC 통화의 경우 DTLS (Datagram Transport Layer Security) 프로토콜을 사용하여 IP 프로파일을 사용하여 특정 SIP 엔티티에 대한 UDP 기반 트래픽 (RFC 4347 및 6347에 따른)을 보호하도록 장치를 구성 할 수 있습니다. DTLS는 데이터 그램 기반 애플리케이션이 도청, 변조 또는 메시지 위조를 방지하도록 설계된 방식으로 통신 할 수 있도록합니다. DTLS 프로토콜은 스트림 지향 TLS 프로토콜을 기반으로하며 유사한 보안을 제공합니다. 따라서 장치는 한 네트워크가 DTL을 필요로 할 수 있고 다른 네트워크는 세션 설명 프로토콜 보안 설명 (SDES) 또는 비 안전 RTP가 필요할 수있는 혼합 환경에서 삽입 할 수 있습니다. 이 장치는 RTP-to-SRTP 및 SRTP-to-SRTP 호출에 대한 DTLS 협상을 지원합니다.

    DTLS 지원은 WebRTC와의 배포에 중요합니다. WebRTC는 SRTP 키 교환을 위해 DTLS를 통해 미디어 채널을 암호화해야합니다. DTLS를 통한 SRTP 키 협상은 WEBRTC 클라이언트와 피어 간의 DTLS 핸드 셰이크 중에 수행됩니다. WebRTC에 대한 자세한 내용은 WebRTC를 참조하십시오.

    SDE와 달리, DTLS 키 암호화는 미디어 채널 (UDP)을 통해 이루어지며 신호 채널 위에는 이루어집니다. 따라서 DTLS-SRTP는 일반적으로 “미디어를 통한 확보 된 키 교환”으로 알려져 있습니다. DTLS는 TLS와 유사하지만 UDP를 통해 실행되는 반면 TLS는 TCP를 초과합니다. DTLS 핸드 셰이크 전에 피어는 통화를 설정하기 위해 교환 된 SIP 메시지의 SDP 본문에서 DTLS 매개 변수 (지문 및 설정) 및 알고리즘 유형 (요청 및 응답)을 교환합니다. 동료들은 인증서를 교환하는 DTLS 핸드 셰이크에 참여합니다. 이 인증서는 동료 간 데이터 (SRTP) 흐름에 사용되는 대칭 키를 도출하는 데 사용됩니다. 인증서를 통해 계산 된 해시 값은 ‘a = 지문’속성을 사용하여 SDP로 전송됩니다. 핸드 셰이크의 끝에서, 각 측면은 다른 쪽에서받은 인증서가 SDP에서 지문에 맞는 것을 확인합니다. DTLS 지원을 표시하려면 SIP 메시지의 SDP 제안/답변은 ‘A = 설정’속성을 사용합니다. ‘A = 설정 : ActPass’속성 값은 장치에서 SDP 제안에 사용됩니다. 이것은 장치가 핸드 셰이크에서 클라이언트 ( ‘Act’) 또는 서버 ( ‘Pass’)가 될 의향이 있음을 나타냅니다. ‘A = 설정 : Active’속성 값은 장치의 SDP 답변에 사용됩니다. 이것은 장치가 핸드 셰이크에서 클라이언트 ( ‘Active’)가되기를 원한다는 것을 의미합니다.

    a = 설정 : ActPass
    A = 지문 : SHA-1 \ 4A : AD : B9 : B1 : 3F : 82 : 18 : 3B : 54 : 02 : 12 : DF : 3E : 5D : 49 : 6B : 19 : E5 : 7C : AB

    DTLS Cipher Suite는 TLS Cipher Suite를 재사용합니다. DTLS 핸드 셰이크는 DTL에 대해 구성된 모든 새 통화에 대해 수행됩니다. 다시 말해, 향후 통화를 위해 연결이 “열린”상태로 유지되는 TLS와 달리 새 통화마다 새로운 DTLS 연결이 필요합니다. 미디어 트래픽 보안을위한 전체 인증 및 주요 교환은 DTL을 통해 미디어 경로에서 처리됩니다. 신호 경로는 동료 인증서 지문을 확인하는 데만 사용됩니다. DTLS 메시지는 미디어에 사용되는 동일한 포트에 다중화됩니다.

    DTLS를 구성하려면 :
    1. TLS 컨텍스트 테이블 (TLS 인증서 컨텍스트 구성 참조)에서 DTLS 버전 [TLSCONTEXTS_DTLSVERSION]으로 TLS 컨텍스트를 구성합니다.
    2. IP 그룹 테이블을 엽니 다 (IP 그룹 구성 참조) SIP 엔티티와 관련된 IP 그룹의 경우 ‘Media TLS Context’매개 변수 [IPGROUP_DTLSCONTEXT]를 사용하여 DTLS의 TLS 컨텍스트를 할당하십시오.
    삼. IP 프로파일 테이블을 열고 (IP 프로파일 구성 참조) SIP 엔티티와 관련된 IP 프로파일의 경우 다음을 구성하십시오
    ‘SBC 미디어 보안 모드’매개 변수 [IPPROFILE_SBCMEDIASECURITYBEHAVIOR]를 보호 또는 둘 다로 구성하십시오 .
    ‘미디어 보안 방법’매개 변수 [ipprofile_sbcmediasecurityMethod]를 DTLS에 구성하십시오 .
    지원 된 ‘RTCP MUX’매개 변수 [ipprofile_sbcrtcpmux] 구성 . RTP에 사용되는 포트에 대한 DTLS 핸드 셰이크가 수행되므로 멀티플렉싱이 필요하므로 RTCP 및 RTP는 동일한 포트에 멀티플렉싱해야합니다.
    INI 파일 매개 변수 [SBCDTLSMTU] (또는 CLI 명령 구성 VoIP> SBC 설정> SBC-DTLS-MTU)를 구성하여 DTLS 핸드 셰이크의 최대 전송 장치 (MTU) 크기를 정의합니다.
    4. INI 파일 매개 변수 [dtlStimeBetweentRansMissions]를 사용하여 동일한 DTLS 핸드 셰이크에서 DTLS 패킷의 전송 사이에서 장치가 대기하는 최소 간격을 구성하십시오.
    ‘Cipher Server’매개 변수는 “All”으로 구성되어야합니다.
    이 장치는 엔드 포인트간에 DTL의 전달을 지원하지 않습니다.