Eine Videokonferenz mit 40 Teilnehmern und Ende-zu-Ende verschlüsselte Videostreams. Signal erklärt Euch, wie das auch ohne massig Bandbreite geht.
Signal ermöglicht es inzwischen, seinen Usern mittels Ende-zu-Ende verschlüsselten Video- und Audiostreams Videokonferenzen mit bis zu 40Teilnehmern zu realisieren. Man hält am Glauben fest, diese Grenze noch weiter nach oben verschieben zu können und ausreichend stehende Bandbreite zu bieten. Auf ihrem Blog denunzieren die Entwickler Entwürfe, mit der Architektur und den verwendeten Techniken, um so etwas zu ermöglichen. Im Großen und Ganzen funktionieren die Videokonferenzen bei Signal so, dass alle Gesprächsteilnehmer Video und Audio einem bestimmten Server übermitteln, der dann die Videos aller an alle Teilnehmer in einer für den Empfänger passenden Auflösung verteilt. Bei dem Verfahren mussten die Entwickler darauf achten, es möglichst nicht zu Datenstaus kommt, wenn die Bandbreite auf Empfängerseite nicht genügt. An und für sich kein Wunderwerk. Da eine Peer-to-Peer-Lösung mit einem vollständigen Mesh-Netzwerk schon bei bereits ab wenigen Teilnehmern die Internetanschlüsse der meisten User völlig überlasten würde, arbeitet bereits ein Großteil der Dienste für Videokonferenzen nach diesem Prinzip. Letztendlich müssten dann von jeder der im Gespräch verwickelten Person Client Video und Audio zu allen anderen beteiligten Clients gestreamt werden.
Die problematische Thematik der Architektur mit den dazwischengeschaltetem Servern, welcher für die Verteilung und die Anpassung der Qualität der Videostreams auf die Bandbreite des jeweiligen Empfängers zuständig ist, besteht darin, dass der Server bei der Ende-zu-Ende-Verschlüsselung keinen Zugriff auf den Inhalt hat und die Auflösung oder Bildfrequenz dementsprechend nicht angepasst werden können. Signals Trick besteht darin, dass alle Teilnehmer den eigenen Videostream gleich in mehreren Auflösungen einzeln verschlüsselt zu den Servern schicken und auf dem Server praktisch nur entschieden wird, welcher Endpunkt mit welcher Auflösung von welchem Videostream versorgt wird. Im Prinzip erhalten die Server von Signal, Selective Forwarding Units (SFUs) genannt, dementsprechend von allen Teilnehmern mehrere verschlüsselte Videostreams.
Da deren Timestamps sich nicht alle decken und ein Stream in einer geringen Auflösung ebenfalls aus weniger Datenpaketen besteht, ist es die Aufagbe der SFUs, diese Timestamps zu anzugleichen, für die Empfänger individuell auch bei wechselnder Auflösung mit einer aktuellen Paketfolgenummerierung zu bestücken und diese zu übermitteln. Alle Empfänger erteilen den Servern Resonanz darüber wie groß der Lag bei den empfangenen Datenpaketen ist und wie groß welcher Videostream gerade angezeigt wird. Somit können die SFUs auf diesen Input reagieren, größer angezeigte Videos vor kleiner angezeigten zu bevorzugen und sich somit für jeden einzelnen Videostream die dementsprechende Auflösung entscheiden zu können. Da die Auflösung für das Gesamtergebnis ausschlaggebend ist und zugleich die Leitung der Empfänger nicht überlastet wird, geschieht alles in Echtzeit und die Daten brauchen auf den SFUs nicht zwischengespeichert werden.
Um eine problemlose Verschlüsselung zu gewährleisten, generiert jeder Sender für die eigenen Videostreams einen Schlüssel, der anschließend per nicht erkennbarer Instant Messages, die bei Signal ohnehin bereits verschlüsselt sind an alle Teilnehmer einzeln verschickt werden. Wenn Teilnehmer zu der Konferenz hinzustoßen oder diese verlassen, erstellt jeder einzelne Sender neue Schlüssel und schickt diese raus. Nach drei Sekunden mit der neuen Verschlüsselung werden diesesendet weitergesendet, so dass niemand Teile der Videokonferenz decodieren kann, der nicht zu diesem Moment auch Teilnehmer war. Signal spricht die angewandten Methode offen an, sodass sich kein Anbieter von Videokonferenzen herausreden kann.