Clubhouse

Clubhousegespräche am offenen Fenster

Man hätte die letzten drei Monate schon sehr ausdauernd online-abstinent sein müssen um den Hype rund um die App Clubhouse nicht mitgekriegt zu haben. Endlich mal wieder eine Social-Media-App mit einem neuartigen Konzept, endlich wieder mal digitale Aufbruchstimmung. Entsprechend viel wurde auf Social Media diskutiert, entsprechend in den einschlägigen Portalen und Blogs geschrieben.

Und schreiben könnte man ja vieles, zum Beispiel

  • darüber dass die App momentan iPhone-only und damit entsprechend elitär ist
  • über den leichten Zugang zu Talkrunden mit durchaus prominenten und kompetenten Teilnehmer:innen
  • zum Thema «Monetarisierung» welches in den verschiedenen Clubhouse-Talks oft wichtiger scheint als Content an sich (und wofür es seit 5. April eine Lösung gibt)
  • etwas zum je nach Standpunkt erfrischend neuen oder eben selten dämlichen Ansatz eines an fixe „Sendezeiten“ gebundenen Angebots, und ob diese Zeitgebundenheit nicht noch viel elitärer ist als die momentane Einschränkung auf iPhones
  • philosophisches über den Wert der Vergänglichkeit in einer always-on-Digitalwelt in welcher alles gesagte/gezeigte für ewig verfügbar bleibt
  • eine Analyse der Datenschutzbestimmungen, der Vertrauenswürdigkeit des Anbieters, den Tricks mit den Kontaktdaten, oder der Tatsache dass Agora (die für den Audiochat verwendete Komponente) aus China kommt (siehe auch Das Business mit den Schattenprofilen und den Datenstaubsauger-Funktionen)

Das offene Fenster

Hier soll es aber um etwas anderes gehen. Clevere Leute bei Zerforschung haben rausgefunden, dass das praktisch unbemerkte Mithören (und Aufzeichnen) laufender Clubhouse-Gespräche relativ einfach zu bewerkstelligen ist. Das alleine ist abgesehen von der Automatisierbarkeit mässig skandalös (man kann ja auch einfach bei seinen iPhone den Lautsprecher einschalten und den Ton dann mit dem Computer aufnehmen), es eignet sich aber als gutes Beispiel dafür wie ganz generell die Kommunikation zwischen einer App und dem zugehörigen Server funktioniert, wie sie abgesichert werden kann und welche Fallstricke dabei vorhanden sein können.

Wenn wir mal vereinfacht anfangen wollen dann ist die Sache bei einer von der technischen Kommunikation her simplem App wie einer Wetter-App relativ einfach: Es gibt eine App, es gibt einen zugehörigen Server mit einem API (also einer aufrufbaren Schnittstelle), sämtlicher Datenaustausch wird von der App initiiert und läuft verschlüsselt über HTTPS).

Das funktioniert grundsätzlich wie wenn man im Browser eine Seite aufruft, hier gibt dann halt der Server anstelle einer Webseite eine Menge von Daten zurück mit welchen die Wetter-App (hoffentlich) etwas anfangen kann. Und genau wie beim Browsen kann (rein auf die Verbindung bezogen) wenig schiefgehen, zumindest solange die Wetter-App mit dem richtigen Server spricht und man nicht beispielsweise mittels Man-in-the-Middle-Attacke auf einen anderen umgeleitet wurde. Es gibt also für alles nur EINE „Ansprechstelle“ für die Wetter-App (Server und Schnittstelle).

Im Falle von Clubhouse sieht die Sache allerdings ein bisschen anders aus:

  • Clubhouse selbst ist quasi nur der Terminplaner und Concierge für die Audio-Chats
  • Die Audio-Chats selbst laufen über Software von Agora (ein Anbieter von Software die Audio- & Video-Kommunikation ermöglicht und gut in eigene Lösungen eingebunden werden kann). Wenn Clubhouse selbst der Concierge ist, dann stellt Agora quasi den Raum zur Verfügung in dem gesprochen wird.
  • Zusätzlich wird noch PubNub für die Echtzeitkommunikation zwischen allen Parteien eines Audio-Chats verwendet (mit Echtzeitkommunikation sind hier Statuswechsel, Handheben, Anzeige dass jemand in einen Raum eintritt oder ihn verlässt etc. gemeint). Bildlich gesprochen ist das die Türhüterin am Eingang des Raums, welche jeden neuen Gast mit „Alice wird den Raum betreten“ ankündigt bzw. mit „Bob hat den Raum verlassen“ verabschiedet.

Dies führt dazu, dass nun die App nicht mehr mit nur einem Server kommuniziert sondern defacto mit drei Diensten aufs Mal. Und genau dies führt dann dazu, dass die Clubhouse-Gespräche ihre quasi-vertraulichkeit und -vergänglichkeit verlieren und eher am offenen Fenster stattfinden.

Wie das? Nun, sobald man in der Clubhouse-App einen Raum betritt, wird im Hintergrund zusätzlich zur Kommunikation mit dem Clubhouse-Server auch mit einem Agora- und einem Pubnub-Server kommuniziert.

Nun machen Selbstgespräche ja nicht unbedingt so viel Spass (und man braucht auch nicht unbedingt eine App dazu), also wird das Bild bei schon nur zwei Teilnehmenden in Wahrheit etwas komplexer. Komplexer wird dann auch die Kommunikation zwischen all diesen Systemen.

Was passiert nun wenn Alice an einem Gespräch teilnehmen möchte:

  • Alice wählt bei Clubhouse einen Chatroom aus
  • Clubhouse meldet via Pubnub allen bereits im Raum anwesenden, dass Alice den Raum betreten wird
  • Clubhouse gibt Alice einen Schlüssel zum Raum
  • Alice betritt den Raum und nimmt am Gespräch teil.

Bildlich sieht das etwas wie folgt aus (Zeitlich von oben nach unten zu lesen).

Vorerst sind hier mal folgende Dinge spannend:

  • Bob sieht Alice in der Clubhouse-App als anwesend sobald Pubhub (die Türhüterin) ihren Beitritt mit „Alice ist da!“ verkündet hat. Zu diesem Zeitpunkt hat Alice selbst aber noch nicht mal den Schlüssel zum Raum erhalten (und hört das im Raum stattfindende Gespräch noch gar nicht)
  • Der Schlüssel zum Raum wird technisch über ein sogenanntes Token gelöst (quasi ein langer Textcode). Die Agora-Software (mit welcher die Räume ja realisiert sind) bietet Funktionen an, mit welchen man mittels dieses Tokens sämtliche Audiosignale des Raums auch aufzeichnen kann.

„Dank“ dem letzten Punkt ist es so mit der eingangs erwähnten Vergänglichkeit von Clubhouse-Gesprächen schon mal nicht weit her, Clubhouse (bzw. Agora) bietet sogar eine Funktion an um Gespräche direkt aufzuzeichen. Aber ist ja nicht so schlimm, Alice ist ja eh im Raum, sie erfährt ja nichts was sie nicht eh erfahren würde. Könnte man meinen…

Schauen wir an was passiert wenn Alice nun den Raum wieder verlässt:

  • Alice tippt in der App auf „Verlassen“
  • Clubhouse meldet via Pubnub allen Anwesenden dass Alice den Raum verlassen hat
  • In der App von Alice wird wieder die Übersicht angezeigt

Das Spannende ist das, was nicht passiert: Alice wird nicht gezwungen, den Schlüssel zurückzugeben und er wird auch nicht ungültig gemacht. Technisch bedeutet dies, dass das oben erwähnte Token gültig bleibt. Damit kann Alice also weiter den Gesprächen im Raum lauschen ohne dass die im Raum anwesenden das mitkriegen würden, sie kann sogar weiterhin das ganze Gespräch aufzeichnen.

Falls Alice ernsthaft beabsichtigen würde, Clubhouse-Gespräche aufzuzuzeichen, kann sie also ihre technische Kommunikation mit Clubhouse am eigenen Router mitlesen, dort das Token für Agora ermitteln und mit diesem munter weiterhorchen auch wenn alle übrigen Teilnehmenden schon lange der Meinung sind, dass sie den Raum wieder verlassen hat.

Was müsste Clubhouse tun um das Problem zu lösen?

Grundsätzlich bestehen zwei Probleme

  • Gespräche können mitgeschnitten werden
  • Schlüssel/Token verlieren ihre Gültigkeit nicht wenn man den Raum betritt

Um ersteres zu unterdrücken, würde es reichen, die entsprechende Funktion in Agora stillzulegen, zumindest was die Verwendung innerhalb Clubhouse betrifft. Schwieriger sieht es mit dem Invalidieren des Schlüssels aus. Grundsätzlich könnte Clubhouse (oder Pubnub) dies auslösen sobald Alice den Raum verlässt. Es scheint aber in Agora momentan keine Funktion zu geben welche ein solches Invalidieren überhaupt zulässt. Da müssen die Clubhouse-Entwickler, sofern ihnen die Thematik der Vertraulichkeit wichtig genug ist, wohl noch nachlegen.

Teile Diesen Beitrag

Share on twitter
Share on linkedin
Share on facebook
Share on email

Ein Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.