在公司电脑、公共电脑或临时设备上访问自建 Nextcloud 时,传统的账号密码登录并不理想。

一方面,需要在陌生设备上输入密码;另一方面,即使使用浏览器隐私窗口,也仍然可能留下下载文件、剪贴板内容或系统级访问记录。

Passkey 提供了一种更方便的思路:

  1. 在陌生电脑上打开 Nextcloud 登录页面;
  2. 选择使用 Passkey 或其他设备登录;
  3. 电脑显示二维码;
  4. 使用手机扫码;
  5. 在手机上通过指纹、面容或锁屏密码确认;
  6. 电脑自动完成登录。

整个过程中,Nextcloud 密码不需要输入到陌生电脑上。

不过,这种登录方式有一个容易被忽视的前提:电脑通常需要具备蓝牙功能。


Nextcloud 是否支持 Passkey

Nextcloud 支持基于 WebAuthn/FIDO2 的身份验证。

根据 Nextcloud 版本、管理员配置和已启用的应用,WebAuthn 可能以两种形式出现:

  • 作为登录密码之后的第二因素;
  • 作为无密码登录方式。

如果目标是在陌生电脑上不输入密码,应当使用无密码认证或 Passkey 登录,而不是只配置“密码加 WebAuthn 二次验证”。

通常可以在 Nextcloud 的个人安全设置中找到类似以下选项:

  • Passwordless Authentication
  • WebAuthn
  • Security Keys
  • Passkey
  • 添加无密码设备

不同版本和语言环境下,名称可能略有差异。

注册 Passkey 时,可以将凭据保存在:

  • Android 或 Chrome 使用的密码管理器;
  • Apple iCloud 钥匙串;
  • 支持 Passkey 的第三方密码管理器;
  • USB FIDO2 安全密钥。

配置完成后,建议先使用另一台可信设备实际测试一次,确认二维码登录、用户名识别和二次验证流程都符合预期。


陌生电脑上的典型登录流程

在支持跨设备 Passkey 的浏览器中,登录流程通常如下:

  1. 打开浏览器隐私窗口;
  2. 访问 Nextcloud 的 HTTPS 地址;
  3. 输入用户名,或选择使用其他设备登录;
  4. 选择手机、平板电脑或安全密钥;
  5. 浏览器显示二维码;
  6. 使用保存了 Passkey 的手机扫码;
  7. 手机要求进行生物识别或锁屏验证;
  8. 验证成功后,Nextcloud 在电脑上完成登录。

这种模式的优势是,Passkey 私钥不会复制到临时电脑上,Nextcloud 密码也不需要在该设备中输入。


为什么扫码登录还需要蓝牙

很多人会自然地认为:

二维码已经把手机和电脑连接起来了,为什么还要蓝牙?

原因是,二维码只能让手机知道“这次登录请求是什么”,却不能证明手机与发起登录的电脑确实处在同一地点。

跨设备 Passkey 通常采用一种被称为混合传输的机制。它会同时使用:

  • 二维码;
  • Bluetooth Low Energy,简称 BLE;
  • 互联网加密连接。

三者承担的职责并不相同。


第一步:电脑生成一次性二维码

电脑上的浏览器启动 Passkey 登录后,会为这一次会话生成临时信息,例如:

  • 一次性随机值;
  • 临时加密密钥;
  • 本次认证通道所需的连接参数。

这些信息会被编码进二维码。

二维码里通常不包含:

  • Nextcloud 密码;
  • 手机的 Passkey 私钥;
  • 可以长期重复使用的登录凭据。

它只是当前这次登录请求的临时入口。


第二步:手机扫描二维码

手机扫描二维码后,会获得建立本次认证连接所需的信息。

此时手机知道:

  • 哪一台浏览器正在发起请求;
  • 当前会话使用什么临时参数;
  • 应当发送什么样的近距离验证信号。

随后,手机会通过 Bluetooth Low Energy 发出一个短暂的广播。

这不等同于传统蓝牙配对。

通常不需要:

  • 在系统设置中搜索设备;
  • 输入蓝牙配对码;
  • 长期保存蓝牙配对关系。

手机只是针对当前登录请求发送一次临时 BLE 广播。


第三步:电脑监听手机的蓝牙广播

电脑根据二维码中生成的临时信息,监听附近的 BLE 广播。

只有与当前二维码相匹配的广播,才能被识别为有效信号。

可以将其简化理解为:

电脑生成一次性暗号
        ↓
暗号被编码进二维码
        ↓
手机扫码获得暗号
        ↓
手机在附近通过蓝牙广播对应信号
        ↓
电脑收到并验证信号

这一步证明的不是“附近有一台手机”,而是:

扫描了当前二维码的手机,确实处于这台电脑能够接收到蓝牙信号的范围内。


蓝牙不是主要的数据传输通道

在跨设备 Passkey 登录中,蓝牙主要用于确认设备接近。

真正的认证数据往往通过互联网中的加密通道传输。

因此,可能出现以下情况:

  • 电脑连接公司有线网络;
  • 手机使用 4G 或 5G;
  • 两台设备并不在同一个 Wi-Fi;
  • 登录仍然可以完成。

可以简单概括为:

二维码:交换一次性连接信息
蓝牙:证明手机和电脑处于附近
互联网:传输加密认证数据

因此,电脑没有蓝牙时,缺失的通常不是互联网通信能力,而是“近距离存在证明”。


蓝牙究竟证明了什么

蓝牙并不能精确测量手机距离电脑有多少厘米。

普通 BLE 受以下因素影响:

  • 天线性能;
  • 墙壁和障碍物;
  • 信号反射;
  • 周围无线环境;
  • 设备发射功率。

它通常只能证明:

电脑确实接收到了手机针对本次登录请求发出的近距离广播。

这意味着两台设备大概率位于同一房间或相邻区域,但不能视为精确定位系统。

因此,这种机制更适合称为“近距离存在验证”,而不是“精确距离验证”。


为什么不能只扫描二维码

假设跨设备登录只需要扫码,不需要蓝牙,那么可能出现如下攻击:

  1. 攻击者在远程电脑上打开登录页面;
  2. 攻击者截取登录二维码;
  3. 二维码通过聊天软件或网页发给受害者;
  4. 受害者误以为是在确认正常操作;
  5. 受害者扫码并在手机上确认;
  6. 攻击者的远程电脑获得登录权限。

加入蓝牙确认后,发起登录的电脑还必须在本地收到手机的 BLE 广播。

即使攻击者拿到了二维码截图,如果其电脑距离手机很远,也无法直接完成近距离验证。

蓝牙因此增加了一道针对远程转发攻击的防护。


电脑没有蓝牙还能不能扫码登录

对于标准的手机扫码 Passkey 跨设备认证,电脑通常需要支持并开启蓝牙。

电脑没有蓝牙时,可能出现以下现象:

  • 二维码可以正常显示;
  • 手机也可以正常扫码;
  • 手机可以识别认证请求;
  • 但电脑无法完成附近设备验证;
  • 最终登录流程失败。

具体表现会因浏览器、操作系统和 Passkey 提供商不同而变化,但不能将“二维码能显示”理解为“登录一定能完成”。


没有蓝牙时的替代方案

使用 USB FIDO2 安全密钥

对于没有蓝牙的公司电脑,USB FIDO2 安全密钥通常是最合适的替代方案。

操作流程一般为:

  1. 将安全密钥插入电脑;
  2. 打开 Nextcloud 登录页面;
  3. 选择安全密钥或 Passkey 登录;
  4. 触摸安全密钥;
  5. 必要时输入安全密钥 PIN;
  6. 完成后拔出设备。

安全密钥随身携带,不需要在公司电脑上同步个人密码管理器,也不依赖电脑蓝牙。

使用 USB 蓝牙适配器

理论上,也可以通过 USB 蓝牙适配器为电脑增加蓝牙功能。

但在公司环境中可能存在以下限制:

  • 禁止连接未知 USB 设备;
  • 无权限安装驱动;
  • 蓝牙功能被组策略关闭;
  • 浏览器无法访问蓝牙相关能力;
  • 安全软件阻止外接无线设备。

因此,这种方式是否可行取决于公司终端策略。

使用密码和 TOTP

如果 Passkey 无法使用,传统的密码加一次性验证码仍然是可靠的备用方案。

但在陌生电脑上输入主密码时,应特别注意:

  • 确认网站域名正确;
  • 确认 HTTPS 证书正常;
  • 不允许浏览器保存密码;
  • 使用完毕后主动退出登录;
  • 关闭所有隐私窗口。

隐私窗口并不等于完全无痕

使用浏览器隐私窗口,可以减少本地浏览器长期保留的数据,例如:

  • 登录 Cookie;
  • 普通浏览历史;
  • 表单记录;
  • 浏览器会话状态。

关闭全部隐私窗口后,Nextcloud 通常不会继续保持登录状态。

但隐私窗口无法清除所有痕迹。

以下内容仍可能被保留:

  • 下载到电脑本地的文件;
  • 复制到系统剪贴板的文本;
  • 截图和打印内容;
  • 公司代理服务器日志;
  • DNS 查询记录;
  • 终端管理软件记录;
  • 网络访问审计;
  • Nextcloud 服务器端登录日志;
  • Nextcloud 已创建的会话记录。

因此,正确做法应当包括:

  1. 不在临时电脑上下载敏感文件;
  2. 尽量避免复制重要内容到剪贴板;
  3. 使用完毕后主动退出 Nextcloud;
  4. 关闭全部隐私窗口;
  5. 必要时在 Nextcloud 安全设置中撤销对应会话;
  6. 不在公司设备中登录个人密码管理器进行长期同步。

Passkey 私钥会不会传到电脑

在正常的跨设备 Passkey 登录中,Passkey 私钥不会传输到临时电脑。

认证时,Nextcloud 会生成一个一次性挑战。

该挑战经过浏览器和加密通道传递到手机后,手机会要求使用者进行:

  • 指纹验证;
  • 面容验证;
  • 锁屏密码验证;
  • Passkey 提供商要求的其他确认。

验证通过后,手机使用 Passkey 私钥对挑战进行签名。

返回给 Nextcloud 的是签名结果,而不是私钥本身。

Nextcloud 再使用账户中登记的公钥验证签名是否有效。

因此,即使登录发生在不可信电脑上,正常情况下,该电脑也无法获得可长期复制使用的 Passkey 私钥。


使用前应当检查的条件

准备使用 Nextcloud Passkey 之前,建议确认以下条件:

  • Nextcloud 使用有效 HTTPS;
  • 当前 Nextcloud 版本支持 WebAuthn;
  • 管理员已启用相关无密码认证功能;
  • 浏览器支持跨设备 Passkey;
  • 手机已经保存对应 Passkey;
  • 电脑和手机蓝牙均可用;
  • 两台设备都能访问互联网;
  • 公司策略未禁止该功能;
  • 账户仍保留备用恢复方式;
  • 已在非关键设备上完成过一次实际测试。

还应当准备至少一种备用登录方式,例如:

  • 恢复代码;
  • TOTP 验证器;
  • 第二把安全密钥;
  • 另一台保存了 Passkey 的设备;
  • 管理员恢复渠道。

只配置单一 Passkey 而没有恢复方案,可能在手机损坏、账号同步异常或设备丢失时导致无法登录。


适合陌生电脑的推荐方案

根据电脑条件,可以采用以下策略。

电脑有蓝牙

优先使用:

隐私窗口
+
手机扫码 Passkey
+
手机生物识别

这种方式不需要在电脑上输入 Nextcloud 主密码。

电脑没有蓝牙,但允许使用 USB

优先使用:

隐私窗口
+
USB FIDO2 安全密钥

这是最接近手机扫码体验的替代方案。

电脑既没有蓝牙,也禁止 USB 设备

只能考虑:

隐私窗口
+
密码
+
TOTP

登录后应避免下载数据,并在使用完成后主动退出。


总结

Nextcloud 的 WebAuthn/Passkey 功能可以显著改善陌生电脑上的登录体验。

跨设备扫码登录并不是简单的“手机扫一下二维码”,而是由多个环节共同完成:

  • 二维码为本次会话交换临时连接参数;
  • 蓝牙证明手机与电脑处于附近;
  • 互联网传输加密的认证消息;
  • 手机本地完成指纹、面容或锁屏验证;
  • Passkey 私钥只在认证器一侧完成签名,不会发送给电脑。

因此,电脑没有蓝牙时,手机扫码 Passkey 通常无法完成完整的近距离验证。

对于没有蓝牙的电脑,USB FIDO2 安全密钥是更稳定、也更适合临时设备的解决方案。

同时需要注意,隐私窗口只能减少浏览器本地残留,并不能对公司网络、终端管理系统或服务器日志实现真正意义上的“完全无痕”。

Leave a Reply

Your email address will not be published. Required fields are marked *