Zum Inhalt springen

WebRTC

aus Wikipedia, der freien Enzyklopädie
Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden.

[[Datei:Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.|150px]]
Basisdaten

Maintainer Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Entwickler Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Erscheinungsjahr 2011
Aktuelle Version 1.0
(Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.)
Aktuelle Vorabversion Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
(Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.)
Betriebssystem Skriptfehler: Ein solches Modul „Wikidata“ ist nicht vorhanden.
Programmier­sprache C++, Java
Lizenz BSD-Lizenz
webrtc.org

WebRTC (Web Real-Time Communication, deutsch „Web-Echtzeitkommunikation“) ist ein offener Standard, der eine Sammlung von Kommunikationsprotokollen und Programmierschnittstellen (API) definiert, die Echtzeitkommunikation über Rechner-Rechner-Verbindungen ermöglichen. Damit können Webbrowser nicht mehr nur Datenressourcen von Backend-Servern abrufen, sondern auch Echtzeitinformationen von Browsern anderer Benutzer.

Dies ermöglicht Anwendungen wie Videokonferenz, Dateitransfer bzw. Datenübertragung, Chat und Desktopsharing. 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 hinter NAPT-Routern auch die Feststellung von deren öffentlichen IP-Adressen und Portnummern (zum Beispiel durch einen STUN-Server).

Die Referenzimplementierung wird als freie Software im Quellcode unter den Bedingungen einer BSD-artigen Lizenz verbreitet. OpenWebRTC stellt eine weitere freie Implementierung auf Basis des Multimedia-Frameworks GStreamer dar, das sich besonders für Browser-unabhängige, native Anwendungen eignen soll und auch H.264 unterstützt.

Geschichte[Bearbeiten]

Im Mai 2010 kaufte Google Inc. die Firma Global IP Solutions (GIPS) auf und erwarb damit die Eigentumsrechte an der zugrundeliegenden Technik.<ref name="uebernahme" /> Seit Frühjahr 2011 beschäftigt sich eine Arbeitsgruppe des World Wide Web Consortium (W3C) mit der Standardisierung.<ref name="mailinglist" /> Eine weitere Arbeitsgruppe bei der Internet Engineering Task Force (IETF), die im Mai 2011 gebildet wurde, unterstützt die Standardisierungsarbeiten.<ref>[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] IETF, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 4. März 2016; (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).</ref> Am 1. Juni 2011 veröffentlichte Google Inc. das Referenz-Software-Framework als freie Software.<ref name="release" /> Die Ausgestaltung der Programmierschnittstelle stützt sich auf Vorarbeiten der Web Hypertext Application Technology Working Group (WHATWG).

WebRTC funktionierte bereits seit 2014 in stabilen Veröffentlichungen von Opera und Google Chrome sowie Mozilla Firefox,<ref name="theH" /> teilweise waren jedoch noch Herstellerpräfixe notwendig.<ref name=":0">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar);</ref> Firefox bot für die Nutzung von WebRTC auch eine eingebaute Oberfläche namens Firefox Hello, die später entfernt wurde.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Mozilla; ehemals im Vorlage:Referrer (nicht mehr online verfügbar);.Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref> Microsoft arbeitete an einer Implementierung der Programmierschnittstellen im Internet Explorer<ref name="ie" />, die aber nie fertiggestellt wurde<ref name=":0" />. Als Nachfolger des Internet Explorer unterstützt Microsoft Edge WebRTC seit 2017 teilweise; vollständig wird es seit Januar 2020 unterstützt. Apple führte WebRTC im Juli 2017 in Safari 11.0 ein.<ref>WebRTC im Safari Browser What’s new in Safari</ref>

WebRTC wurde als Angriff auf das weitgehende Monopol von Skype bei Desktop-VoIP-Anwendungen gesehen,<ref name="webrtc" /> wobei Microsoft mit Skype offenbar selbst auf WebRTC setzen wollte.<ref name="skype" /> Gleichzeitig versuchte Microsoft den eigenen Standard CU-RTC als Standard bei dem Internet-Standardisierungsgremium W3C etablieren.<ref>Formatkrieg beim Videochat: WebRTC gegen CU-RTC heise.de</ref>

Am 26. Januar 2021 wurde WebRTC Version 1.0 in einer gemeinsamen Presseerklärung vom W3C und IETF als offener Standard veröffentlicht.<ref name="w3.org-2021-01-26" /> Beide Standardisierungsorganisationen kündigten eine baldige gemeinsame Weiterentwicklung in drei Themenbereichen an:<ref name="w3.org-2021-01-26" />

  • Ende-zu-Ende-Verschlüsselung bei serververmittelten Videokonferenzen
  • Live-Verarbeitung von Audio- und Video-Feeds, auch über maschinelles Lernen
  • Minimierung des Stromverbrauch für das Einsatzfeld Internet der Dinge zum Beispiel als Sensor in einem Gerät.

Technik[Bearbeiten]

Das Framework basiert auf HTML5 und JavaScript. Die Übertragung erfolgt mit (S)RTP über eine mittels der XMPP-Erweiterung Jingle in Verbindung mit dem neu eingeführten JavaScript Session Establishment Protocol (JSEP) ausgehandelte Direktverbindung (Peer-to-Peer).<ref name="protocols" /> Datenströme sind verpflichtend zu verschlüsseln. Dazu werden Verbindungen über DTLS verschlüsselt und Audio- und Videokommunikation zusätzlich durch SRTP geschützt.<ref name="secure">Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref>

Neben einer Anzahl mindestens zu unterstützender, (lizenzkosten-)freier Multimedia-Codecs können standardkonforme Implementierungen beliebige weitere Verfahren unterstützen. Für Audio ist Opus als zu bevorzugendes Verfahren vorgesehen neben der für Kompatibilität zu herkömmlichen Telefonsystemen ebenfalls geforderten Unterstützung für A-law und µ-law.<ref>tools.ietf.org</ref> Der neuere Internetstandard Opus ersetzt die zuvor verwendeten, von GIPS entwickelten iLBC und iSAC. Google setzt sich daneben für den selbst freigekauften Video-Codec VP8 als vorgeschriebenes Video-Format ein, das als alternativlos dargestellt wird.<ref name="codecs" /><ref name="theH" /> Neben mitgelieferten Multimedia-Codecs liegen der Referenzimplementierung weiterhin Werkzeuge für unter anderem Nebengeräuschunterdrückung und die Software-Bibliothek libjingle bei.<ref name="webrtc" />

Sicherheitslücken[Bearbeiten]

IP-Leak[Bearbeiten]

In Verbindung mit WebRTC können private IP-Adressen trotz VPN-Verbindung über JavaScript ausgelesen werden.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar);.Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref> Das Beispiel Firefox Hello schließt Rechner hinter einer Firewall und mit privaten IP-Adressen aus. Deshalb kann eine Website mit JavaScript einen STUN-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.

Gegenmaßnahmen[Bearbeiten]

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“<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref> oder „Easy WebRTC Block“.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar);.Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref><ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref>

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.<ref>[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 15. Dezember 2020;.</ref>

In neueren Versionen von Firefox und Chromium-basierten Webbrowsern werden IP-Leaks automatisch verhindert, indem lokale IP-Adressen durch zufällige mDNS-Hostnamen ersetzt werden. Dies hat gegenüber anderen Methoden den Vorteil, dass die Funktionalität innerhalb des gleichen lokalen Netzwerks nicht beeinträchtigt wird.<ref>Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Ehemals im Vorlage:Referrer (nicht mehr online verfügbar); (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive)</ref>

Normen und Standards[Bearbeiten]

WebRTC ist eine Standardisierung von W3C und IETF und wird gemeinsam weiterentwickelt.<ref name="w3.org-2021-01-26" />

W3C:

IETF als Request for Comments:

Weblinks[Bearbeiten]

  • webrtc.org – Google Developer über WebRTC u. a. mit Tutorial

Einzelnachweise[Bearbeiten]

<references> <ref name="uebernahme"> Jens Ihlenfeld: Google kauft Spezialisten für Echtzeitkommunikation. golem.de, 18. Mai 2010 </ref> <ref name="mailinglist"> lists.w3.org </ref> <ref name="release"> Harald Alvestrand (Google Inc.): Google release of WebRTC source code from Harald Alvestrand on 2011-05-31, 1. Juni 2011 </ref> <ref name="theH"> Fabian A. Scherschel: Google proposes VP8 and Opus for WebRTC standard. The H Open, 31. Juli 2012. </ref> <ref name="ie"> <templatestyles src="Webarchiv/styles.css" />Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. (Memento vom 7. März 2016 im Internet Archive) </ref> <ref name="skype"> Janko Roettgers: Scoop: Microsoft bets on WebRTC for Skype’s browser future, GigaOM, 26. Juni 2012 </ref> <ref name="webrtc"> Jörg Thoma: Freies HTML5-Framework zur Echtzeitkommunikation. golem.de, 1. Juni 2011. </ref> <ref name="protocols"> Dele Olajide: Jingle WebRTC Transport Proto. igniterealtime.org/blogs, 17. Februar 2012 </ref> <ref name="codecs"> Jens Ihlenfeld: Google will VP8 und Opus zur Pflicht machen. golem.de, 30. Juli 2012. </ref> <ref name="w3.org-2021-01-26"> Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden.; ehemals im Vorlage:Referrer (nicht mehr online verfügbar);.Vorlage:Toter Link/Core (Seite nicht mehr abrufbar. Suche im Internet Archive) </ref> </references>