REACH / 隐私

隐私保护,说明清楚。

说明哪些数据会传输或保存,以及您可以如何管理;涵盖无需账户的使用方式、Cloudflare 中继和账户删除。

隐私政策·最后更新于2026年10月7日

本页内容

一目了然

屏幕、音频和输入

在设备之间加密。 会话内容不存储在 Reach 账户数据库或信号服务中。

账户和连接元数据

电子邮件、设备信任、连接候选和操作日志用于服务功能。 它们在下面单独描述。

您设备上的信息

配置文件、预设和设置是本地的;秘密凭据在Keychain中。 可选的窗口恢复数据单独描述。

删除涵盖的内容

删除账户不是退出登录。 操作日志、滥用预防状态和本地设置有单独的清理规则。

Reach 由适用于 iPhone 和 iPad 的Reach Viewer(在 App Store 中名为“Reach Remote”)以及适用于 Mac 的Reach Host组成。发行方KMWORKS, INC.(以下简称“我们”)负责本政策。本政策说明应用和可选后端如何处理您的数据。

在没有账户的情况下使用Reach

未登录时可使用以下两种连接方式;它们均不会经由我们的基础设施传输画面、音频、输入或连接候选信息。

  • 附近/局域网 — Reach Viewer通过同一网络上的Bonjour/mDNS找到您的Mac,并打开直接加密的QUIC连接。 默认情况下,第一个连接确认Mac上显示的配对代码。 没有会话数据离开您的网络。
  • 手动直接IP —您自己输入主机地址和端口(默认为UDP 8443,通常需要路由器上的端口转发规则),应用程序直接连接到它。 没有信号服务,没有中继。

与这些路由分开:当主机配对处于活动状态并在Mac上启用远程访问时,Reach Host将主机连接元数据的小记录发布到苹果的CloudKit中,以便您自己的设备可以相互识别,并且Reach Viewer可以发布匹配的信任记录。 两者都在下面进行了完整描述。

CloudKit配对元数据

Reach Host 会将 CKRecord 写入 Reach iCloud 容器的公共 CloudKit 数据库。应用以配对码为标识符查找该记录。但这并不表示数据存放在私有空间,也不保证只有持有配对码的人能够读取;数据库的范围是公共的,而非您的私有容器。即使存储服务由 Apple 运营,我们仍将其视为离开您设备的数据。

记录包含:

  • 您的主机名——macOS在网络上使用的设备名称
  • 主机的身份公钥及其 TLS 证书指纹
  • 配置后,Host 的外部 IP 地址和端口
  • 直接连接候选——用于设置QUIC的局域网和广域网端点
  • 发布时间戳和 CloudKit 记录的架构版本
  • 连接前的功能元数据:支持的编解码器、是否支持系统音频、向设备发现服务通告的默认分辨率,以及功能数据的版本
  • 您的 iCloud 用户记录名称:仅在 Reach 的 iCloud 容器内有效的稳定标识符。它并非始终存在;只有启用 iCloud Auto-Trust 并确认 iCloud 账户后才会写入,以便 Viewer 识别属于同一 iCloud 账户的 Host

登录 iCloud 后,Reach Viewer 可在尝试连接时向同一个公共数据库发布对应的信任记录。记录包含 Viewer 公钥的指纹、时间戳以及 CloudKit 写入的 iCloud 用户记录名称。只有在 Mac 上明确启用iCloud Auto-Trust,且确认原本不受信任的 Viewer 使用同一个 Apple ID 时,该记录才允许 Viewer 在首次连接时不输入配对码而建立信任。已经受信任的 Viewer 使用已保存的指纹重新连接,不需要这条 CloudKit 信任记录。手动移除信任优先于自动信任;要再次信任相同指纹,必须明确输入新的配对码。验证成功并将本地信任信息保存到 Mac 后,Mac 会请求删除该记录。如果 CloudKit 删除失败,可在该信任记录对应的后续连接成功建立后重试;不保证立即或最终从存储中物理删除。从 Mac 的受信任设备中移除该 Viewer 会撤销 Mac 上的本地信任,这与删除 CloudKit 记录是两项独立操作。

该应用使用此元数据进行设备发现和信任验证。 当您停止配对或远程发布或重置配对代码时,Reach Host请求删除相关主机记录。 网络或CloudKit错误可能会延迟或阻止该操作。 “忘记Mac” 在Reach Viewer中删除该设备上保存的连接详细信息和本地信任;它不会删除Mac的CloudKit记录。 删除应用程序或更改iCloud设置并不能保证删除此公共数据库中的每条记录。

Reach账户(可选)

Reach账户解锁两条互联网路线—— Internet Direct(互联网直连),它通过保存的连接配置文件执行NAT遍历,以及 Relay(中继连接) — 并且让同一账户上的设备相互信任,而无需配对代码。 账户本身不会创建路径:连接仍然需要可拨号的直接候选或配置的中继。

通过电子邮件登录。 我们发送一次性魔术链接或代码;没有密码。 如果您登录,我们的后端将存储与您的账户绑定的以下内容:

  • 您的电子邮件地址 — 仅用于登录。
  • 账户记录 — 账户识别符号和电子邮件、服务器持有的账户签名密钥对,以及管理登录状态所需的元数据:建立和验证时间、会话生成计数器和账户角色。
  • 设备注册表 — 对每台已注册设备,保存设备标识符、名称、类型(Mac Host 或 iPhone/iPad Viewer)、密码学标识符(公钥、密钥指纹、TLS 证书指纹),以及注册、最近发现和撤销的时间。对于 Mac Host,还保存可连接的地址和端口及直接连接候选列表,以便您的其他设备与其连接。
  • 登录状态 — 短期有效的会话令牌和刷新令牌以哈希形式保存,并记录到期和轮换时间。高熵登录链接令牌只保存哈希。作为例外,六位跨设备备用验证码以原值存放在同一条短期待登录记录中,记录还包含电子邮件地址、上下文哈希、验证码到期和使用时间,以及用于限制暴力破解尝试次数的计数器。
  • 令牌刷新恢复 —操作标识符、令牌哈希、到期时间和加密的刷新响应允许安全地重试中断的令牌轮换。 这些记录不存储明文会话令牌。
  • 购买权益 关联 App Store 购买记录时,保存方案、到期时间、更新时间及 Apple 原始交易标识符。
  • 通行密钥(Passkeys) — 如果使用通行密钥登录,系统会保存 WebAuthn 质询及该通行密钥的公开凭据,包括凭据 ID、公钥、签名计数器和传输方式。
  • 防滥用计数器 — 分别保存以 IP 地址和规范化电子邮件地址为索引的短期请求计数,用于保护登录接口。
  • App Store 审核专用账户 — 对仅供 App Store 审核使用的账户,账户记录还保存审核登录码的哈希值、失败尝试次数及尝试计数时间窗口的开始时间。

此信息支持登录、设备信任、连接设置、购买资格验证和服务保护。 屏幕、音频和输入内容不会存储在账户数据库中。 操作遥测、请求日志和短暂信号数据分别描述如下。 请参阅第三方服务,了解提供这些功能所需的基础设施处理。

后端运行在 Cloudflare。 本政策不承诺特定的处理区域。

信号和短暂的连接候选者

对于已登录的Internet Direct和Relay尝试,信号交换IP地址和端口等连接候选。 它处理候选有效负载、尝试身份验证绑定、存在时的查看器公共IP地址和速率限制状态。

每份连接候选数据自发布起最多有效60秒。重新发布可能更新整个连接尝试的截止时间。取消或过期处理会清理候选数据及相关状态,但不保证成功后立即物理删除,也不保证恰在60秒时删除。活动中的 Host 套接字所需的认证状态可在该套接字存续期间保留。防止已取消尝试重新开启的短期标记和服务保护计数器各有独立的有效期。

信号服务不会接收或存储屏幕、音频或输入内容。 会话内容透过下述的直接连接或Cloudflare TURN路线传输。

通过Cloudflare TURN中继

当直接路径难以打开时——例如在CGNAT、限制性防火墙或一些移动网络后面——Reach可以通过中继会话 Cloudflare TURN。 您在Reach Host中配置您自己的Cloudflare账户和凭据;您的Cloudflare费用和政策适用。

通过自动账户令牌设置,Mac从Cloudflare的API请求TURN密钥。 这会发送Cloudflare账户ID、令牌和可以包含Mac名称的密钥名。 生成的TURN密钥,或您手动输入的密钥,存储在Mac Keychain中,并用于获取短命会话凭据。 这些凭据请求直接从Mac发送到Cloudflare,而不是通过Reach账户服务器。

视频、音频和输入在经过中继时,仍通过 QUIC 上的 TLS 1.3 加密。Cloudflare 处理加密数据包及提供服务所需的网络元数据。连接延迟取决于网络和中继路径。

可选的Cloudflare使用报告

启用可选的用量报告并选择 Refresh 后,Mac 会直接调用 Cloudflare 的 GraphQL API。请求包含 Account ID、时间范围、可选的 TURN Key ID 和 API 令牌;响应返回汇总的入站与出站字节数。账户范围的结果可能包含 Reach 以外服务的 TURN 用量。仅保存令牌不会发起用量查询。

报告令牌保存在与TURN会话凭据分开的仅限设备的Keychain条目中。 启用开关、账户ID和显示范围是本地首选项;获取的结果仅在应用程序运行时保留在内存中。 关闭报告或更改 Reach 账户会清除之前的结果,而不会自动删除已保存的 Cloudflare 凭据。 在Host中删除凭据不会撤销您的Cloudflare账户已发放的密钥或令牌;在Cloudflare中管理撤销。

删除您的账户并移除设备

您可以在应用中删除 Reach Account。账户数据库会一并删除账户记录、已注册设备、会话、令牌刷新恢复记录、待处理登录码、通行密钥及相关 WebAuthn 质询。使用同一电子邮件地址、在账户建立前创建的 WebAuthn 质询也包括在内。

防滥用计数器和运行日志不包含在此次账户删除请求的范围内。计数器遵循已配置的限速时间窗口和清理流程;运行日志单独保存在 Cloudflare。此政策不承诺运行日志的固定保留期限。

过期或已用完的登录链接和代码不能重复用于身份验证。 过期的登录、WebAuthn和刷新恢复记录,以及刷新寿命已结束的会话,符合计划清理的条件。 清理计划或操作失败可能会在到期后发生物理删除。

您可以单独从账户中移除各个设备。退出登录并不等于删除账户。本地连接设置、预设、信任记录和 Cloudflare 凭据分别有独立的清理方式。删除 Reach 账户不会删除 Apple 公共 CloudKit 记录,也不会删除您自己的 Cloudflare 账户中的密钥。

屏幕录制和系统音频(Reach Host)

Reach Host 请求 macOS 的屏幕录制权限来捕获所选显示器,并请求辅助功能权限来传递 Viewer 发送的输入。可选的窗口位置恢复也使用辅助功能权限,读取和更改受支持应用窗口的位置与大小。

系统音频通过 ScreenCaptureKit 捕获。Reach Host 不请求麦克风权限,也会忽略麦克风采样;它需要的是屏幕录制/系统音频访问权限。捕获在 Mac 上进行,仅向该会话中已认证的 Viewer 串流传输。

光标位置共享

在 Direct Touch 模式中,Viewer 显示一个可拖动的光标控制柄,以便进行像素级精确的指针操作。为驱动此控制柄,Reach Host 通过与视频和输入相同的加密 QUIC 会话,向已连接且已认证的 Viewer 发送 Mac 光标的位置:归一化坐标、所属显示器和时间戳。这些数据不会发送到独立的分析服务,也不会存储为光标移动历史。使用 Relay 时,加密的会话数据包会经过 Cloudflare。

您可以在“Reach Host → Devices & Trust → Advanced → Cursor Telemetry”中关闭此功能。随后 Host 会停止发送光标位置,并通知兼容的 Viewer 清除屏幕上残留的控制柄。

本地网络接入

Reach Viewer使用本地网络权限通过Bonjour/mDNS发现附近的Mac,并直接与本地网络上的Mac通信。 手动输入Mac的IP地址不会取代此权限。 手动将IP直接指向本地网络以外的地址是一个单独的案例,需要一个可访问的地址和端口。

应用更新 (Reach Host)

Reach Host 使用 Sparkle 更新框架,在启动时及运行期间定期检查新版本。检查更新会向托管在 GitHub Pages 的更新源发送标准 HTTPS 请求;与其他 HTTPS 请求一样,该端点可以看到您的 IP 地址和 User-Agent 标头,但不会收到账户标识符、遥测数据或其他可识别身份的载荷。Reach Viewer 通过 App Store 更新,遵循 Apple 的标准 App Store 政策。

分析、跟踪和广告

Reach 不使用广告标识符(IDFA),也不集成广告或用户画像 SDK。应用不包含 Crashlytics、Sentry 或 Google Analytics。只有当您选择分享报告时,才会提供本地诊断。上文的可选 Cloudflare 用量报告与下文的后端运行记录是不同的功能。

为运行和保护服务,后端在 Cloudflare 中记录运行事件和请求日志,并在配置后向 Analytics Engine 发送指标。主要类别包括:

  • 连接生命周期事件的名称和时间、尝试标识符、区域标签、角色(Host 或 Viewer)、结果和延迟
  • 应用版本和构建号、套接字类型、重连路径,以及仅在 Host 套接字注册或注册受阻事件中记录的、由 SHA-256 衍生的稳定 Host 假名。相关的紧急停用事件还包含 Worker 请求端点。这些额外字段并不附加在每次邀请或套接字关闭事件中。
  • 分组和清理计数、套接字租约释放的原因与状态、错误类别和短关联前缀。设备恢复日志包含账户与设备标识符的前八个字符。
  • 购买关联时的运行验证记录,例如账户标识符的前8个字符、产品标识符、验证环境和应用结果。

假名本身不含设备名称或账户邮箱,但可将同一 Host 的事件关联起来。服务保护还会保存速率限制状态。本地诊断可能包含所选连接路径。当前将连接生命周期事件转发到 Analytics Engine 的代码,不会填充单独的路径类型字段。

这些记录用于连接可靠性、故障诊断、服务保护和购买验证,不包含屏幕、音频或输入内容。我们不会出售这些记录,也不会将其用于广告或用户画像。Cloudflare 作为服务提供商处理这些运行数据。

存储在您的设备上的数据

  • 连接首选项——选定的显示、分辨率、编解码器、帧率、比特率、滚动方向切换、光标遥测打开或关闭,以及每个Mac最后选择的路线
  • 工作区预设——名称、布局和每屏幕Mac以及显示标识符、路由、大小和解析度选择、窗口恢复首选项以及创建和更新时间存储在Viewer的本地设置中。
  • 保存的连接详细信息——您为直接IP主机输入的地址和端口,以及您配对的Mac的配对代码
  • 信任记录——与您配对的主机和主机信任的观众的加密指纹
  • 账户会话令牌,如果您已登录——在设备的安全钥匙串中
  • Cloudflare凭据,如果配置——中继密钥和可选报告令牌存储在Mac Keychain中。 如上所述,密钥创建、会话凭据生成和使用报告直接调用Cloudflare。
  • 诊断日志 - 临时保留用于故障诊断,除非您选择共享报告,否则永远不会上传

可选择记住应用窗口的位置

在预设中开启“Remember app window positions(记住应用窗口位置)”且 Mac 已授予辅助功能权限时,Reach 会在移除 Reach 虚拟显示器前,将受支持且仍打开的窗口引用、归一化位置与大小,以及能否调整大小,暂存在 Mac 进程内存中。重新创建该显示器后,Reach 使用这份快照恢复仍然打开的窗口。窗口标题和文档标识符不会保存为快照字段;快照不会写入磁盘或 Reach 服务器。Host 进程退出时快照会消失;关闭该显示器的窗口恢复功能也会清除快照。预设的开关选择仍保存在 Viewer 设置中。

删除iPhone或iPad应用程序会删除其应用程序容器数据。 Keychain项目是单独管理的,因此仅卸载并不能保证删除所有凭据。 在Mac上,删除Reach Host应用程序捆绑包不会自动删除其设置、应用程序支持文件或Keychain项目;如果您想要干净利落,请手动删除这些文件。

这个网站

reachremote.app 是托管在 Cloudflare Pages 上的静态网站。网站自身的样式、脚本和图片由本站提供。Cloudflare 在公开域名上添加电子邮件地址混淆处理和浏览器验证脚本。公开页面还包含用于网页浏览量和性能指标的 Cloudflare Web Analytics 信标。Cloudflare 的安全功能可能使用必要的 Cookie。我们不使用广告追踪器。Cloudflare 在响应网页请求时还会处理 IP 地址、User-Agent 等常规请求元数据。

网站语言由 URL 路径指定;旧的 ?lang=en 链接会跳转到对应的英语页面。Cloudflare 设置目的保存在 setup 查询参数中。本网站不收集 API 令牌或配对码。选择 Mac 安装文件时,网站会向 GitHub Releases API 查询最新 DMG,随后打开 GitHub 下载地址。GitHub 和 App Store 等外部服务有各自的隐私政策。

第三方服务

  • Cloudflare —服务于网站并处理可选账户、登录电子邮件、信号和操作数据。 它还在您自己的账户下提供TURN中继、密钥创建和可选使用API。 中继数据包中的会话内容在您的设备之间进行加密。
  • 苹果 (CloudKit) — 存储上面描述的配对元数据,以便您自己的设备可以相互发现。
  • 苹果 (App Store) — 分发 Reach Viewer,并根据 Apple 的标准 App Store 政策处理适用的购买、订阅和购买验证。
  • GitHub — 在 GitHub Pages 托管 Reach Host 更新源(appcast),并通过 GitHub Releases 分发 Host 安装程序。您检查或下载更新时,GitHub 会处理 IP 地址和 User-Agent 等标准 HTTPS 请求元数据。

这些服务处理其各自角色所需的数据。 Reach不向广告网络或数据经纪人出售数据。

安全

Nearby / LAN、Manual Direct IP、Internet Direct 和 Relay 的所有路径均通过 TLS 1.3 上的 QUIC 加密,并使用证书指纹固定。Viewer 只连接证书指纹已受其信任的 Host:指纹可能是在配对时记录的、保存在该设备的 Reach 账户注册信息中的,或在明确授权的首次直接连接时固定的(首次使用时信任)。之后指纹若不匹配,连接将被拒绝。我们无法解密任何路径上的此类通信内容。

儿童隐私

Reach 并非面向 13 岁以下儿童;我们不会故意收集儿童的信息。配对和账户元数据用于上述服务功能,不用于广告或用户画像。

本政策的更改

我们可能会不时更新此政策。 更改会发布在此页面上,并且顶部的日期会更新。 每当信任模型或数据流发生变化时,我们都会对其进行修改。

联系我们

关于本隐私政策的问题: support@reachremote.app。 错误报告和公开问题: github.com/SGT-Cho/Reach.

屏幕快照