| WebRTC | |
|---|---|
| Basisdaten | |
| Entwickler | |
| Erscheinungsjahr | 2011 |
| Programmiersprache | C++,Java |
| Lizenz | BSD-Lizenz |
| webrtc.org | |
WebRTC (Web Real-Time Communication, deutsch „Web-Echtzeitkommunikation“) ist einoffener Standard, der eine Sammlung vonKommunikationsprotokollen undProgrammierschnittstellen (API) definiert, dieEchtzeitkommunikation überRechner-Rechner-Verbindungen ermöglichen. Damit könnenWebbrowser nicht mehr nur Datenressourcen von Backend-Servern abrufen, sondern auch Echtzeitinformationen von Browsern anderer Benutzer.
Dies ermöglicht Anwendungen wieVideokonferenz, Dateitransfer bzw.Datenübertragung,Chat undDesktopsharing. Für die Herstellung einer Verbindung zwischen den beteiligten Clients ist ein Webserver (mit oder ohne Benutzerverwaltung) erforderlich sowie im Fall von Clients in privaten IPv4-Adressbereichen hinterNAPT-Routern auch die Feststellung von deren öffentlichen IP-Adressen und Portnummern (zum Beispiel durch einenSTUN-Server).
DieReferenzimplementierung wird alsfreie Software im Quellcode unter den Bedingungen einerBSD-artigen Lizenz verbreitet.OpenWebRTC stellt eine weitere freie Implementierung auf Basis des Multimedia-FrameworksGStreamer dar, das sich besonders für Browser-unabhängige, native Anwendungen eignen soll und auchH.264 unterstützt.
Im Mai 2010 kaufteGoogle Inc. die FirmaGlobal IP Solutions (GIPS) auf und erwarb damit die Eigentumsrechte an der zugrundeliegenden Technik.[1]Seit Frühjahr 2011 beschäftigt sich eine Arbeitsgruppe desWorld Wide Web Consortium (W3C) mit der Standardisierung.[2]Eine weitere Arbeitsgruppe bei derInternet Engineering Task Force (IETF), die im Mai 2011 gebildet wurde, unterstützt die Standardisierungsarbeiten.[3]Am 1. Juni 2011 veröffentlichte Google Inc. das Referenz-Software-Framework alsfreie Software.[4]Die Ausgestaltung der Programmierschnittstelle stützt sich auf Vorarbeiten derWeb Hypertext Application Technology Working Group (WHATWG).
WebRTC funktioniert bereits in stabilen Veröffentlichungen vonOpera undGoogle Chrome sowieMozilla Firefox,[5] teilweise sind nochHerstellerpräfixe notwendig.[6] Firefox bot für die Nutzung von WebRTC auch eine eingebaute Oberfläche namens Firefox Hello, die später entfernt wurde.[7]Microsoft arbeitet an einer Implementierung der Programmierschnittstellen imInternet Explorer.[8]WebRTC wird als Angriff auf das weitgehende Monopol vonSkype bei Desktop-VoIP-Anwendungen gesehen,[9] wobei Microsoft mit Skype offenbar selbst auf WebRTC setzen wollte.[10] Nun will Microsoft den eigenen Standard CU-RTC als Standard bei dem Internet-Standardisierungsgremium W3C etablieren.[11] Im Februar 2017 hat Microsoft dem eigenen BrowserEdge eine Unterstützung für WebRTC hinzugefügt.[12]Apple führte WebRTC im Juli 2017 inSafari 11.0 ein.[13]
Am 26. Januar 2021 wurde WebRTC Version 1.0 in einer gemeinsamen Presseerklärung vom W3C und IETF als offener Standard veröffentlicht.[14] Beide Standardisierungsorganisationen kündigten eine baldige gemeinsame Weiterentwicklung in drei Themenbereichen an:[14]
Das Framework basiert aufHTML5 undJavaScript. Die Übertragung erfolgt mit (S)RTP über eine mittels derXMPP-Erweiterung Jingle in Verbindung mit dem neu eingeführtenJavaScript Session Establishment Protocol (JSEP) ausgehandelte Direktverbindung (Peer-to-Peer).[15] Datenströme sind verpflichtend zu verschlüsseln. Dazu werden Verbindungen überDTLS verschlüsselt und Audio- und Videokommunikation zusätzlich durchSRTP geschützt.[16]
Neben einer Anzahl mindestens zu unterstützender, (lizenzkosten-)freier Multimedia-Codecs können standardkonforme Implementierungen beliebige weitere Verfahren unterstützen. Für Audio istOpus als zu bevorzugendes Verfahren vorgesehen neben der für Kompatibilität zu herkömmlichen Telefonsystemen ebenfalls geforderten Unterstützung fürA-law undµ-law.[17] Der neuere Internetstandard Opus ersetzt die zuvor verwendeten, von GIPS entwickelteniLBC undiSAC. Google setzt sich daneben für den selbst freigekauften Video-CodecVP8 als vorgeschriebenes Video-Format ein, das als alternativlos dargestellt wird.[18][5] Neben mitgelieferten Multimedia-Codecs liegen der Referenzimplementierung weiterhin Werkzeuge für unter anderem Nebengeräuschunterdrückung und die Software-Bibliotheklibjingle bei.[9]
In Verbindung mit WebRTC können private IP-Adressen trotzVPN-Verbindung über JavaScript ausgelesen werden.[19] Das Beispiel Firefox Hello schließt Rechner hinter einerFirewall und mit privaten IP-Adressen aus. Deshalb kann eine Website mit JavaScript einenSTUN-Server nach der tatsächlichen IP-Adresse fragen lassen. Dies hat zur Folge, dass Anonymisierungsdienste ihren Zweck nicht mehr erfüllen und keinen Schutz mehr vor einem IP-Leak bieten können.
Zum Schutz vor einem IP-Leak bieten sich zwei Vorgehensweisen an. Eine Option bietet die Installation von Add-Ons/Plugins zur Verhinderung der Weitergabe der öffentlichen IP-Adresse, beispielsweise „WebRTC Leak Prevent“[20] oder „Easy WebRTC Block“.[21][22]
Die andere Möglichkeit ist eine Änderung der Einstellungen im Browser. Im Firefox kann über about:config der Wert media.peerconnection.enabled auf false gesetzt werden, wodurch ein IP-Leak verhindert wird.[23]
In neueren Versionen von Firefox und Chromium-basierten Webbrowsern werden IP-Leaks automatisch verhindert, indem lokale IP-Adressen durch zufälligemDNS-Hostnamen ersetzt werden. Dies hat gegenüber anderen Methoden den Vorteil, dass die Funktionalität innerhalb des gleichen lokalen Netzwerks nicht beeinträchtigt wird.[24]
WebRTC ist eine Standardisierung von W3C und IETF und wird gemeinsam weiterentwickelt.[14]
W3C:
IETF alsRequest for Comments: