WebRTC

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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, 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).

WebRTC wird beim World Wide Web Consortium (W3C) als offener Standard standardisiert. Die Standardisierung wird maßgeblich betrieben und unterstützt von Google Inc., Mozilla Foundation und Opera Software ASA.[1]

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 | Quelltext bearbeiten]

Im Mai 2010 kaufte Google Inc. die Firma Global IP Solutions (GIPS) auf und erwarb damit die Eigentumsrechte an der zugrundeliegenden Technik.[2] Seit Frühjahr 2011 beschäftigt sich eine Arbeitsgruppe des W3C mit der Standardisierung.[3] Eine weitere Arbeitsgruppe bei der Internet Engineering Task Force (IETF), die im Mai 2011 gebildet wurde, unterstützt die Standardisierungsarbeiten.[4] Am 1. Juni 2011 veröffentlichte Google Inc. das Referenz-Software-Framework als freie Software.[5] Die Ausgestaltung der Programmierschnittstelle stützt sich auf Vorarbeiten der Web Hypertext Application Technology Working Group (WHATWG).

WebRTC funktioniert bereits in stabilen Veröffentlichungen von Opera und Google Chrome sowie Mozilla Firefox,[6] teilweise sind noch Herstellerpräfixe notwendig.[7] Firefox bietet für die Nutzung von WebRTC auch eine eingebaute Oberfläche namens Firefox Hello.[8] Microsoft arbeitet an einer Implementierung der Programmierschnittstellen im Internet Explorer.[9] WebRTC wird als Angriff auf das weitgehende Monopol von Skype bei Desktop-VoIP-Anwendungen gesehen,[10] wobei Microsoft mit Skype offenbar selbst auf WebRTC setzen wollte.[11] Nun will Microsoft den eigenen Standard CU-RTC als Standard bei dem Internet-Standardisierungsgremium W3C etablieren.[12]

Technik[Bearbeiten | Quelltext 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).[13] Datenströme sind verpflichtend zu verschlüsseln. Dazu werden Verbindungen über DTLS verschlüsselt und Audio- und Videokommunikation zusätzlich durch SRTP geschützt.[14]

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.[15] 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.[16][6] Neben mitgelieferten Multimedia-Codecs liegen der Referenzimplementierung weiterhin Werkzeuge für unter anderem Nebengeräuschunterdrückung und die Software-Bibliothek libjingle bei.[10]

Sicherheitslücken[Bearbeiten | Quelltext bearbeiten]

IP-Leak[Bearbeiten | Quelltext bearbeiten]

In Verbindung mit WebRTC können private IP-Adressen trotz VPN-Verbindung über JavaScript ausgelesen werden.[17] Das Beispiel Firefox Hello schließt Rechner hinter einer Firewall und mit privaten IP-Adressen aus. Deshalb kann eine Website mit JavaScript einen STUNServer 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 | Quelltext bearbeiten]

Zum Schutz vor einem IP-Leak bieten sich zwei Vorgehensweisen an. Eine Option bietet die Installation von Addons/Plugins wie WebRTC Block zur Verhinderung der Weitergabe der öffentlichen IP-Adresse. Allerdings funktioniert dieses Chrome-Addon durch Änderungen im Browser Quelltext seit März 2015 nicht mehr. Aktuell hilft bei Chrome-Browsern das Addon "WebRTC Leak Prevent", um potentielle IP-leaks zu managen.[18]

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.[19]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. WebRTC legt IP-Adresse offen. In: spyoff.com. Abgerufen am 26. Februar 2016 (deutsch).
  2. Jens Ihlenfeld: Google kauft Spezialisten für Echtzeitkommunikation, golem.de, 18. Mai 2010
  3. http://lists.w3.org/Archives/Public/public-webrtc/2011Apr/0001.html
  4. http://tools.ietf.org/wg/rtcweb/charters?item=charter-rtcweb-2011-05-03.txt
  5. Harald Alvestrand/Google Inc.: Google release of WebRTC source code, public-webrtc@w3.org, 1. Juni 2011
  6. a b Fabian A. Scherschel: Google proposes VP8 and Opus for WebRTC standard, The H Open, 31. Juli 2012
  7. Can I use: WebRTC Peer-to-peer connections. Abgerufen am 3. September 2016.
  8. Firefox Hello – Kostenlose, einfache Videogespräche. In: Mozilla. Abgerufen am 15. November 2015 (deutsch).
  9. http://html5labs.interoperabilitybridges.com/prototypes/media-capture-api-(2nd-updated)/media-capture-api-(2nd-update)/info
  10. a b Jörg Thoma: Freies HTML5-Framework zur Echtzeitkommunikation, golem.de, 1. Juni 2011
  11. Janko Roettgers: Scoop: Microsoft bets on WebRTC for Skype’s browser future, GigaOM, 26. Juni 2012
  12. Formatkrieg beim Videochat: WebRTC gegen CU-RTC heise.de
  13. Dele Olajide: Jingle WebRTC Transport Proto, 17. Februar 2012
  14. Is WebRTC Secure? In: 3CX. Abgerufen am 15. November 2015 (amerikanisches englisch).
  15. http://tools.ietf.org/html/draft-cbran-rtcweb-codec-02#section-3
  16. Jens Ihlenfeld: Google will VP8 und Opus zur Pflicht machen, golem.de, 30. Juli 2012
  17. Wie sicher ist IP-Telefonie. In: golem.de. Abgerufen am 26. Februar 2016 (deutsch).
  18. chrome web store, WebRTC Leak Prevent. Abgerufen am 16. Juni 2016 (englisch).
  19. WebRTC abschalten und weiter anonym surfen. In: blog.spyoff.com. Abgerufen am 26. Februar 2016 (deutsch).