clubhouse-py - 用 Python 编写的会所 API。

Created at: 2021-02-14 02:08:16
Language: Python
License: MIT

警告/注意事项

  • 仅供参考和教育目的。这不附带任何形式的保证。

  • 请不要创建机器人或对服务做任何有害的事情。不要破坏事物。不要作恶。

  • ANDROID官方构建出来了。此项目将不再有更新。

拉取请求/问题

我暂时禁用了 PR 和问题。我只会在值得修复时接受请求。

已关闭的 PR /已关闭的问题

如有任何问题,请通过 DM 通过@stereotype32联系。请不要向垃圾邮件发送请求。

所有

rc_token
相关请求都将被拒绝。(请参阅已关闭的问题)

质量保证

你和那些建立了流媒体会所房间的网站的人有关联吗?

没有。

在会所问题上,我不隶属于任何人或任何公司。

你为什么开发这个?你向公众发布这个的全部意图是什么?

  1. 在我加入会所时,已经有很多关于会所安全问题的文章。
  2. 我决定通过对应用程序进行逆向工程来仔细研究应用程序。有了这个,我可以找出什么是真相,什么不是。
  3. 我在分析过程中发现了一些可能的安全风险。但是,在事情得到适当和安全的缓解之前,我不会透露这些信息。
  4. 我计划在进行分析后销毁我的工作,但我决定共享代码,因为 (i) 我发现整个身份验证流程和 API 基础可能会在未来发生变化,因此此 src 在某些情况下将是无价的时间点(ii)我认为Android手机用户与他人互动会更好。(iii) 我希望更多的人加入对话并从中获得乐趣。

如果有人使用你的代码进行恶意活动怎么办?那不会有问题吗?

  1. 即使源代码没有发布,心怀恶意的坏人也会做坏事。
  2. 已经有很多关于巨魔在这里和那里做坏事的报道。(参考) 这些巨魔也公开了他们的源代码,所以请有时间检查他们的源代码。这些家伙甚至没有参考其他人的源代码就完成了他们的工作。这已经表明,邪恶的人总是会不顾任何其他有用的因素而想破坏东西并做坏事。
  3. 我在 GitHub 上分享的是逆向工程师可以做的非常基本的事情。从二进制文件中获取这些信息在技术上并不难。
  4. Clubhouse 有一个简单的 API 和一些未知的安全机制;他们已经实施了禁止你过度使用的措施。
  5. 如果你真的不知道自己要做什么,甚至不要尝试任何事情。我一直在这里和那里提到同样的信息。
  6. 对于你使用此应用程序所做的任何事情,我概不负责。我也已经警告过这一点。

你已经发布了 API 密钥和秘密密钥。那不会严重影响服务器吗?

  1. 让我先把事情说清楚。这些密钥不是机密机密。
  2. 这些只是第三方服务的标识符,用于声明你的操作来自 Clubhouse 应用程序。
  3. 这些键用于通信、添加你的 instagram/twitter 帐户、聊天通知等。
  4. 如果这些密钥是实际的秘密/机密,我就不会公开密钥。

你能透露一下你在分析过程中发现了什么吗?

没有。

我只会向供应商披露这些问题。

我认为我发现的问题似乎也已被其他研究人员报告过,他们可能已经意识到这些问题和情况。

截至 2021 年 2 月 24 日,我已经向一位 Clubhouse 员工发送了 twitter DM,但我还没有收到任何消息。

那么,你能否解释一下有关中国 IP 的神话?

  1. 它已在最新版本中修复。你不必再担心这个了。
  2. 值得阅读这篇技术文章以获取更多详细信息。
  3. 博客文章是用韩语写的,所以请翻译页面。

我听说该应用程序使用 iOS 只是为了防止录音。发布这些类型的代码可能会使录音变得“更容易”。我想听听你的意见。

  1. 实际上没有办法禁止用户录制语音。想象一下,有些人旁边有一个“物理”录音设备。你或 Clubhouse 应用程序将如何检测此类行为?
  2. 此外,当有人匿名录制和分享你的语音记录时,甚至无法捕获或阻止用户。
  3. 我认为 CH 开发人员需要考虑更严重的风险/问题。似乎有比这个更高优先级的问题。(我假设他们已经在使用 atm 了)

你如何看待会所应用程序?该应用程序是否足够安全?你能评价他们的安全质量吗?

从我作为安全工程师的个人角度来看:

  1. API:制作精良,我看到开发人员正在尝试修复一些安全问题。虽然他们还没有修复它,但。
  2. 通知:LGTM。但有时服务器会经常宕机。我没有深入研究过。
  3. 与语音协议的交互:嗯,但看起来他们正在努力解决这个问题。我认为深入挖掘更有趣,但这样做会超出范围。

你不认为你的行为在道德上是错误的吗?

  1. 我还听说这些问题在一个开放的 Clubhouse 聊天室中被提出和讨论了几个月,我想我已经澄清了人们几个月来的很多问题。我想这已经帮助了一些非常关心这里事情的工程师。
  2. 我很确定如果不是我,有人会这样做。至少我给了一些主动尝试,并与你们分享细节。

我听说语音通信没有加密。这是真的吗?

截至 2021 年 2 月 24 日,

  1. 这篇技术文章已经很好地解释了当前情况。
  2. 我也很好奇并阅读了 Agora.io 中的一些文档(参考
  3. 正如技术帖子中提到的,看起来通信加密从未完成。
  4. 另外,查看这些文档和我的代码时,你可能已经注意到
    enableEncryption
    这里从未使用过。
  5. 在最新版本中,他们添加了加密例程,但尚未使用。它应该在即将发布的版本中修复。

我听说该应用程序也在使用相机权限。我现在真的很担心。

你也不必担心这一点。这里有一些东西要分享。

  1. 它可能已打开,因为你尝试拍摄自己的照片以放置个人资料图片。
  2. ... 或者语音 SDK 正想秘密访问你的相机。但从我的分析来看,我没有看到 App 发生这样的事情来拍摄照片或视频。尽管它们具有与你的相机通信的功能,但该应用程序不使用该功能的那部分 atm。(截至 2021 年 2 月已确认安全)

我听说该应用程序还会在添加你的 Instagram/Twitter 帐户时获取你的信息。你检查了吗?

是的。你也不必担心这个。

Clubhouse 仅获取你信息的非常基本的部分,以验证你是给定帐户的所有者。

  • 对于 Instagram:你允许 Clubhouse 仅使用你的用户名。仅此而已。
  • 对于 Twitter:你允许 Clubhouse 阅读你的个人资料、时间线和推文。但是,Clubhouse 无法读取你的个人 DM。这是他们可以向用户请求的最少权限。

权限设置也可以更改,但在这种情况下,系统会再次要求你使用其他权限重新授权应用程序。不要太担心这部分。

如果你仍然担心这一点,你还可以通过执行以下操作来撤销访问权限。

  • 对于 Instagram:
    Settings
    ->
    Security
    ->
    Apps and Websites
    ->
    Active
    ->
    Clubhouse
    -> 撤销访问。
  • 对于 Twitter:
    Settings
    ->
    Security and account access
    ->
    Apps and sessions
    ->
    Connected apps
    ->
    Clubhouse
    -> 撤销访问。

如果 Clubhouse 开放漏洞赏金计划,你是否有进一步分析的计划?

非常不可能。

Clubhouse 真的在努力修复各种安全问题吗?我真的很担心。

是的,但有一些原因导致开发人员需要一些时间。

  1. 他们可能不想在更新时破坏东西。开发人员还需要时间来修复和测试他们自己的代码。
  2. Clubhouse 是一家拥有约 10 名员工的小公司。你还需要考虑解决问题的人力。
  3. 可能需要几天时间才能让 Apple 审核他们的更新。
  4. 他们还需要一些时间来做出“最佳举措”,以便有效地解决问题。

作为一个典型的用户,我在使用Clubhouse时需要特别注意什么?

  1. 作为演讲者:始终假设有人在录制你的声音。在你说话之前总是想很多次。不要说机密/个人的事情。我并不是说会所正在录制你的声音。有可能一些巨魔或记者想记录多个聊天室。
  2. 作为主持人:你需要保持警惕并迅速做出决定以使你的频道健康。如果有人说了一些奇怪的话或做了一些疯狂的事情,你需要迅速做出决定。将该扬声器移至观众席或将用户踢出频道。就这么简单。另外,请注意你有很多特权。不要将版主交给不认识的人。任何主持人都可以破坏频道。

你为什么要屏蔽问题/PR?

主要有两个原因:

  1. 有些人在没有实际查看源代码和测试代码的情况下向我发送了一些问题。
  2. 有些人浪费时间发送毫无价值的 PR。

我暂时不会打开这些。可以给我留言或者自己做个fork,有空我看看

用 Python 编写的会所 API

clubhouse-py
最初是为了互操作性而开发的。

还创建了具有非常基本功能的独立客户端,包括但不限于音频聊天。

请注意,你可能会因发送无效的 API 请求而被永久禁止。服务器的速率限制和安全机制相当严格。

下载

检查发布。OSX(x86_64) 可能还不能稳定使用。

演示

请单击图像打开 Youtube 视频演示。

演示视频

要求

  • Windows 或 OSX
  • Python 3.7 或更高版本

安装

通过点子

  1. 通过pip安装
$ pip3 install clubhouse-py
...
Successfully built clubhouse-py
Installing collected packages: clubhouse-py
Successfully installed clubhouse-py-304.0.1
  1. 你需要安装 Agora SDK 进行语音通信。参考Agora-Python-SDK#installation

手动安装

  1. 克隆项目
$ git clone https://github.com/stypr/clubhouse-py.git clubhouse
$ cd clubhouse
  1. 你需要先安装依赖项。
$ pip3 install -r requirements.txt
  1. 你需要安装 Agora SDK 进行语音通信。参考Agora-Python-SDK#installation

用法

  • 用于从其他脚本调用 API
from clubhouse.clubhouse import Clubhouse

...

if __name__ == "__main__":
    clubhouse = Clubhouse()
  • 用于运行独立客户端
$ python3 cli.py

网吧

PubNub 用于在对话中进行通知。这还没有实施。但是,你可以使用源代码中提供的 PubSub 密钥来实现这一点。

参考/推荐阅读

你还可以基于以下存储库添加更多端点和功能。

请注意,这些存储库被部分引用以创建此项目。

大多数东西都是从头开始测试和手工制作的。