Code With Me 安全
Code With Me 是一个强大的工具,让您能够协作处理您的代码。有了这种能力,您就有责任保持您的代码和访问级别的安全。以下是您在 Code With Me 会话中授予计算机访问权限时可能出现的问题。
JetBrains 的服务器如何以及哪些数据正在传输?
您的项目数据正在通过 JetBrains 的服务器进行端到端加密。只有当主机和来宾验证两端的安全代码匹配时,端到端加密才是安全的。否则,端到端加密易受中间人攻击。
本地 IP 地址、项目名称和用户名无需加密即可共享,因为它们用于让 JetBrains 在主机和来宾之间建立会话。启动新的Code With Me会话时,主机通过 TLS1.2+ 与 JetBrains 服务器通信。
Code With Me通过JetBrains 创建的开源分布式协议进行通信,并使用 TLS 1.3 进行端到端加密。
如果您不希望您的数据通过 JetBrains 服务器,您可以配置本地服务器。
JetBrains 访问哪些项目数据?
JetBrains 访问本地 IP 地址、项目名称和用户名。JetBrains 不会访问与项目内容相关的信息,例如源、项目文件、配置文件,因为这些信息在其服务器中以端到端加密方式流动。
在实时会话期间收集哪些数据?
JetBrains 不会检查或收集Code With Me会话期间共享的代码的任何数据,因为这些信息流经 JetBrains 服务器的端到端加密。
是否有任何文件本地存储在客人的机器上?
不,共享代码驻留在主人的机器上,不会上传或存储在云或客人的计算机中。
主机和来宾都可以在本地收集和存储日志文件,其中包括有关会话的详细信息,例如用户名、建立连接的远程地址、插入符号的移动、键入的符号、调用的操作、部分文件内容、打开的文件、文件路径等等。
访客可以访问哪些文件?它们是否仅限于特定的工作目录?
如果主持人授予权限,则在活动会话期间访问主持人项目的不同部分、执行代码或在终端工具窗口中工作没有任何限制。
如何在代理后面使用 Code With Me?
如果您在本地网络中工作,则可以使用私有本地服务器绕过代理限制。
作为替代方案,您可以将以下 url 添加到允许列表中:
https://code-with-me.jetbrains.com
https://download.jetbrains.com
https://download-cf.jetbrains.com
wss://codewithme-relay-1.europe-north1-gke.intellij.net
wss://codewithme-relay-2.europe-north1-gke.intellij.net
wss://codewithme-relay-1.us-east1-gke.intellij.net
wss://codewithme-relay-2.us-east1-gke.intellij.net
wss://codewithme-relay-1.asia-northeast1-gke.intellij.net
wss://codewithme-relay-2.asia-northeast1-gke.intellij.net
wss://codewithme-relay-1.southamerica-east1-gke.intellij.net
wss://codewithme-relay-2.southamerica-east1-gke.intellij.net
wss://codewithme-relay-1.asia-south1-gke.intellij.net
wss://codewithme-relay-2.asia-south1-gke.intellij.net
作为主持人,我如何运行安全的 Code With Me 会话?
仅与您信任的人共享 Code With Me 会话的邀请链接。不要接受您不认识或不确定是否要参加会议的客人。不要在代码中硬编码任何敏感信息,例如密码、用户名等。您在会话中授予的访问级别应与您对客人的信任级别相匹配。
主持人如何授权客人参加他们的会议?
主持人为 Code With Me 会话创建邀请链接并将其发送给客人。当客人接受带有两端匹配的安全代码的链接时,主人确认访问 Code With Me 会话。只有在确认后,客人才能加入会议。
主机能控制什么?
作为主持人,您可以控制客人在会议期间可以看到和访问的内容。即使访客访问了会话,您也可以删除他们。您可以隐藏某些文件的访问权限并控制对计算机终端的访问。
创建邀请链接时,您可以在发送邀请链接之前配置所有访客权限。有关更多详细信息,请参阅权限部分。
Code With Me 提供了隐藏文件功能,允许 IDE 的某些部分为特定来宾隐藏这些文件(例如,IDE 不会指示或显示这些文件)。无论访客访问级别如何,都可以使用此功能。但是,这是为了方便而不是作为保证限制而提供的,并且不会消除与来宾使用命令行界面功能相关的访问可能性。
主持人可以更改会话中某些客人的权限吗?
是的,即使在会话之前为所有客人配置了权限,主持人也可以在 Code With Me 会话期间更改个别客人的权限。
主人可以在完全访问模式下限制客人的活动吗?
是的,主持人可以在 Code With Me 会话期间隐藏某些文件以防止访问,并更改限制访问的个别客人的权限。
主机可以使用“隐藏”功能将文件放在一边,这样它们就不容易通过标准访问方式访问或找到。每个客人都收集自己的日志,但 Code With Me 不提供其他存储功能,尽管您应该知道第三方应用程序可用于记录编码会话和数据。
音频/视频通话是否加密?
默认情况下,两个参与者之间的音频和视频通话没有端到端加密,但可以在通话安全选项中启用。
两个以上参与者的音频和视频通话,例如视频会议,没有端到端加密。但是,这种加密正在开发中。
谁可以访问 Code With Me 会话中的音频或视频?
在 Code With Me 会话期间,只有主持人和接受的客人可以访问音频和视频。
Code With Me 会在会话结束后保存视频、音频或聊天记录吗?
不,Code With Me 不会保存任何视频或音频通话,也不会在会话结束后保留任何聊天记录。
未经授权的客人可以加入 Code With Me 会话吗?
每位客人都必须等待主持人批准才能加入 Code With Me 会话。
主人为每位客人提供一个安全码;但房东仍需负责核实客人的身份。
客户端在会话期间保留哪些类型的数据?
Code With Me 客户端以及选择的设置保留在每个客人的机器上。
通讯是如何建立的?
主机和访客通过https://code-with-me.jetbrains.com上的 API 端点交换 Code With Me 会话信息
之后,Guest 和 Host 尝试通过以下方式连接,直到成功:
Host打开5990-65536范围内第一个可用的TCP端口,等待Guest连接(直接连接);
Host 和Guest 监听一个随机的UDP 端口并尝试建立一个点对点连接(p2p 连接)。
有关一般描述,请参阅UDP_hole_punch。
这与任何 VoIP 客户端使用的方法相同(例如,Skype、Slack、Google Meet 等)
作为最后的手段,Host 和 Guest 尝试通过JetBrains 提供的中继进行通信。
语音和视频通话正在走不同的路线。Jitsi 视频会议技术提供视频/语音聊天支持。
主机和访客正在尝试建立对等连接。
如果失败,他们会尝试使用第三方提供的 TURN 服务器。
p2p 和 TURN 服务器连接的流量都是端到端加密的。
对于超过 2 人的通话,视频/语音流量通过 JetBrains 提供的服务器传输。