Clubhouse - Technológie, bezpečnosť
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ť)
-
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
- Clubhouse API server
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)
-
aplikácia používa SSL Pinning
-
“zádratovaná” kontrola správneho certifikátu
-
-
pre porovnanie Test SSL pre kyberklub.sk (A+ rank)
-
- 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 (Native, third-party frameworks)
-
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
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
- prejsť z WiFi na mobilné dáta
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)
- 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.)
- Cloud Proxy vs šifrovanie
- Agora channel encryption?
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.”