有关 Code With Me 安全性的常见问题解答
最后修改时间:2023 年 9 月 11 日对于一般问题,请参阅常规常见问题解答。
Code With Me 是一个功能强大的工具,使您能够协作处理代码。有了这种能力,就有责任保证您的代码和访问级别的安全。以下是您在“与我一起编程”会话中授予计算机访问权限时可能出现的问题。
JetBrains 的服务器如何传输以及传输哪些数据?
您的项目数据将通过 JetBrains 的服务器进行端到端加密。仅当主机和访客验证两端的安全代码匹配时,端到端加密才是安全的。否则,端到端加密很容易受到 MitM 的影响。
本地 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 提供了隐藏文件功能,允许 IDE 的某些部分为特定来宾隐藏这些文件(例如,IDE 不会指示或显示这些文件)。无论访客访问级别如何,都可以使用此功能。然而,这是为了方便而提供的,而不是作为有保证的限制,并且不会消除与访客使用命令行界面功能相关的访问可能性。
主持人可以更改会话中某些访客的权限吗?
是的,即使在会议之前为所有来宾配置了权限,主持人也可以在“与我一起编程”会议期间更改个别来宾的权限。
主机可以在完全访问模式下限制访客的活动吗?
是的,主持人可以隐藏某些文件以防止访问,并更改个别来宾的权限,以限制在“与我一起编程”会话期间的访问。
主机可以使用“隐藏”功能保留文件,这样就不容易通过标准访问方式访问或找到它们。每个访客都会收集自己的日志,但 Code With Me 不提供其他存储功能,尽管您应该知道第三方应用程序可用于记录编码会话和数据。
音频/视频通话是否加密?
两个参与者之间的音频和视频通话默认不进行端到端加密,但可以在通话安全选项中启用。
视频会议等两人以上音视频通话不进行端到端加密。然而,这种加密技术正在开发中。
谁有权访问 Code With Me 会话中的音频或视频?
在 Code With Me 会话期间,只有主持人和接受的客人可以访问音频和视频。
Code With Me 会在会话结束后保存视频、音频或聊天记录吗?
不会,Code With Me 不会保存任何视频或音频通话,也不会在会话结束后保留任何聊天记录。
未经授权的访客可以加入“Code With Me”会话吗?
每位来宾必须等待主持人批准才能加入“与我一起编程”会话。
房东为每位房客提供一个安全码;然而,主人仍然有责任验证客人的身份。
客户端在会话期间保留什么类型的数据?
Code With Me 客户端以及所选的设置将保留在每位访客的计算机上。
通讯是如何建立的?
主持人和访客通过 API 端点交换 Code With Me 会话信息:https://code-with-me.jetbrains.com
之后,Guest 和 Host 将尝试通过以下方式进行连接,直到成功为止:
Host打开5990-65536范围内第一个可用的TCP端口,等待Guest连接(直连);
主机和访客监听随机 UDP 端口并尝试建立点对点连接(p2p 连接)。
有关一般描述,请参阅UDP_hole_punching 。
这与任何 VoIP 客户端(例如 Skype、Slack、Google Meet 等)使用的方法相同
作为最后的手段,主机和访客尝试通过JetBrains 提供的中继进行通信。
语音和视频通话通过不同的路线进行。视频/语音聊天支持由Jitsi 视频会议技术提供。
主机和访客正在尝试建立点对点连接。
如果失败,他们会尝试使用第三方提供的 TURN 服务器。
p2p 和 TURN 服务器连接的流量都是端到端加密的。
对于 2 人以上的通话,视频/语音流量将通过 JetBrains 提供的服务器进行。
感谢您的反馈意见!