Odkaz na miestnosť

Obsah

Architektúra Clubhouse App

  • Článok o analýze Clubhouse aplikácie, protokolov a API (kórejsky, ale s prekladom do angličtiny sa to dá pochopiť)

    Schéma Clubhouse App

  • Komponenty

    • Clubhouse API server
      • “logika”, autentikácia, generovanie tokenov
      • REST API, JSON + CH hlavičky s Clubhouse app info
      • https://www.clubhouseapi.com/api
    • Agora.io
      • RTC, real-time voice communication
      • na zabezpečenie hlasovej komunikácie
    • PubNub
      • real-time aktualizácie a notifikácie
      • napr. ľudia prichádzajúci do miestnosti

Komunikácia Clubhouse App s Internetom

Clubhouse API Server

  • HTTPS (port 443/TCP)
  • www.clubhouseapi.com
  • využívajú Cloudflare
      Name:	www.clubhouseapi.com
      Address: 104.20.224.46
      Name:	www.clubhouseapi.com
      Address: 104.20.225.46
      Name:	www.clubhouseapi.com
      Address: 2606:4700:10::6814:e12e
      Name:	www.clubhouseapi.com
      Address: 2606:4700:10::6814:e02e
    
  • šifrované TLS (1.0-1.3)
  • Python implementácia Clubhouse REST API (získané reverzovaním oficiálnej aplikácie)

Agora

  • viacero domén, viacero IP adries, široká škála neštandardných portov

  • rôzne dokumentované IP adresy a porty pre RTC SDK (communication), RTM SDK (messaging); verzie pre Web/Native

    • dokumentácia Agora SDK nie je úplne zhodná s pozorovaným stavom (február 2021)
  • základ pre iOS

  • Agora Cloud Proxy

    • Cloud Proxy for RTC SDK (Web)

    • Cloud Proxy for RTC SDK (Native, third-party frameworks)

      Agora Cloud Proxy

    • potrebný je Agora key, resp. App ID

    • pre signalizáciu

      • 8443/UDP na niekoľko IP adries (Ćína, Ázia, Európa, Severná Amerika)
      • 140.210.77.68, 125.88.159.163, 128.1.87.146, 128.1.77.34, 128.1.78.146, 69.28.51.142, 107.155.14.132
      • ďalšie IP adresy zadrátované v Agora SDK Clubhouse SDK Hardcoded IPs
      rtc.ip_area_code
      106.14.12.130
      47.107.39.93
      118.190.148.38
      112.126.96.46
      2600:1f18:64ea:9401:50:17:126:121
      2406:da14:97f:4701:52:194:158:59
      rtc.ip_cn_area
      52.52.84.170
      50.17.126.121
      rtc.ip_na_area
      52.58.56.244
      35.178.208.187
      rtc.ip_eur_area
      3.0.163.78
      52.194.158.59
      rtc.ip_as_area
      54.65.86.72
      rtc.ip_jp_area
      13.127.149.196
      15.206.47.129
      rtc.ip_indian_area
      rtc.ip_oceania_area
      rtc.ip_south_america_area
      rtc.ip_africa_area
      rtc.ip_oversea_area
      123.56.235.221
      101.132.108.165
      rtc.ip_tls_cn_area
      52.54.85.111
      184.72.18.217
      rtc.ip_tls_na_area
      52.28.239.238
      3.9.120.239
      rtc.ip_tls_eur_area
      13.250.89.184
      18.176.162.64
      rtc.ip_tls_as_area
      rtc.ip_tls_jp_area
      rtc.ip_tls_indian_area
      rtc.ip_tls_oceania_area
      rtc.ip_tls_south_america_area
      rtc.ip_tls_africa_area
      rtc.ip_tls_oversea_area
      
    • pre média (prenos zvuku)

      • nedokumentované

      Caution Some IP addresses and ports in the following table are for testing purposes only. In a production environment, you must apply to Agora for the official IP addresses and ports that replace them.”

    • šifrovanie? Vraj áno, ale…

Poor Connection Problem

  • objavuje sa, keď nie sú dostupné služby Agora.io
    • slabý/zlý signál
    • blokované niektoré IP adresy alebo porty
  • možné riešenia/diagnostika
    • prejsť z WiFi na mobilné dáta
      • firemná WiFi môže byť viac reštriktívna
    • zmeniť DNS servery na Google DNS
      • 8.8.8.8, 8.8.4.4
      • DNS servery od providera môžu blokovať agora.io a agoralab.io subdomény
      • (netestované) za pokus môžu stáť aj DNS servery Cloudflare (1.1.1.1), Quad9 (9.9.9.9) či OpenDNS (208.67.222.222, 208.67.220.220)
    • povoliť na firewalle odchádzajúcu komunikáciu
      • vsímať si, čo je blokované a postupne povoľovať, čo treba
      • 443/TCP, 8443/UDP, 4000-4030/UDP - nutné minimum
      • 8130/UDP, 8443/TCP - aplikácie sa na ne pokúša pripájať, ale funguje aj v prípade blokovania
    • zaujímavosť: tieto porty nie sú spomínane v dokumentácii pre Agora RTC SDK Cloud Proxy, ale dajú sa nájsť napr.
      • Interactive Live Streaming Premium, On-Premise Recording SDK (4000-4030/UDP)
      • RTM SDK (8443/TCP, 8130/UDP)
      • v prípade, že sú zablokované 4000-4030/UDP, Agora SDK skúša jednotlivé servery a rôzne porty adresy z tohto rozsahu, takže ak napríklad by bol povolený iba 4004, tak zvuk sa začne prenášať, až ked sa vyskúša pristúpiť na tento port. Používateľ teda bude v miestnosti, ale zvuk začne počúť až o niekoľko (desiatok) sekúnd a spojenie nemusí byť stabilné
      • v prípade blokovania portov je možné vidieť, ako sa aplikácia snaží pristupovať na ďalšie porty (napr. z rozsahov 9-tisic či 5-tisíc niečo)
      • bez blokovania odchádzajúcej komunikácie je možné vidieť spojenia aj na ďalšie UDP porty uvedené v Recording SDK: 1080, 4000-4030, 7000, 8000, 8913, 9700, 25000

Bezpečnostné problémy

Odosielanie dát do Číny

  • závisí od nastavenia Agora SDK
      # 0xFFFFFFFE will exclude Chinese servers from Agora's servers.
      RTC.initialize(Clubhouse.AGORA_KEY, None, agorartc.AREA_CODE_GLOB & 0xFFFFFFFE)
    

    Agora Area Codes

  • momentálne s CN a IN zvukový prenos nefunguje, s ostatnými áno

Šifrovanie komunikácie a odpočúvanie

  • predtým nešifrované a krásne čitateľné
  • teraz už to nie je úplný plaintext (nevidno tokeny, a pod.)

Alternatívne aplikácie

  • Python klient
    • nešifrovaná komunikácia
  • Houseclub/client for ClubHouse
    • veľa reklám, základné možnosti na editáciu bio. Registrácia otázna
  • clubber for clubhouse
    • bez reklám, ale minimum funkcií - skôr vhodné pre bežných poslucháčov a príležitostných speakerov (ale nemôže odísť zo stage do audience)
    • nevhodné pre moderátorov - ak ostane používateľ clubberu ako jediný moderátor, v podstate znefunkční miestnosť

Autentikácia

  • iba SMS

Súkromie používateľov

  • súkromné rozhovory, súkromné a sociálne miestnosti
  • hlas, hlasová biometria
  • telefónne čísla
  • well… radšej samostatná miestnosť?

“The quieter you become the more you are able to hear.”

Zdroje a užitočné nástroje