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 服务器端到端加密传输。
是否有任何文件存储在访客的机器上?
不,共享代码位于主机的机器上,且不会上传到云端或存储在访客的计算机上。
主机和客户端都可以收集并在本地存储日志文件,这些文件包含会话的详细信息,如用户名、已建立连接的远程地址、插入点移动情况、输入的符号、调用的操作、文件内容的部分、已打开的文件、文件路径等内容。
来宾可访问哪些文件? 他们是否限制在特定的工作目录中?
如果主持人授予 permissions ,在活动会话期间访问主机项目的不同部分、执行代码或在终端工具窗口中工作均不受限制。
如何在代理后使用 Code With Me?
如果您在本地网络中工作,可以通过使用 私有本地服务器来绕过代理限制。
作为替代,您可以将以下 url 添加到允许列表:
https://code-with-me.jetbrains.comhttps://download.jetbrains.comhttps://download-cf.jetbrains.comwss://codewithme-relay-1.europe-north1-gke.intellij.netwss://codewithme-relay-2.europe-north1-gke.intellij.netwss://codewithme-relay-1.us-east1-gke.intellij.netwss://codewithme-relay-2.us-east1-gke.intellij.netwss://codewithme-relay-1.asia-northeast1-gke.intellij.netwss://codewithme-relay-2.asia-northeast1-gke.intellij.netwss://codewithme-relay-1.southamerica-east1-gke.intellij.netwss://codewithme-relay-2.southamerica-east1-gke.intellij.netwss://codewithme-relay-1.asia-south1-gke.intellij.netwss://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 不提供其他存储功能,但您应当注意可以使用第三方应用程序来记录编码会话和数据。
音视频通话是否加密?
音频和视频通话不是 end-to-end 加密的。
谁可以访问 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 会尝试通过以下方式连接,直到其中一个成功:
主机打开 5990-65536 范围内的第一个可用 TCP 端口,并等待客户端连接(直接连接);
主机和客机监听随机的 UDP 端口,并尝试建立点对点连接( p2p 连接)。
请参阅 UDP_hole_punching的常规描述。
这是任何 VoIP 客户端(如 Skype、Slack、Google Meet 等)使用的相同方法
作为最后的手段,Host 和 Guest 尝试通过 JetBrains 提供的中继进行通信。
语音与视频通话通过不同的路径。 视频/语音聊天支持由 Jitsi 视频会议技术提供。
主机和访客正在尝试建立点对点连接。
如果失败,他们将尝试使用第三方提供的 TURN 服务器。
p2p 和 TURN 服务器连接的流量是端到端加密的。
对于超过 2 人的通话,视频/语音通信通过 JetBrains 提供的服务器。