本文提供隐私快门或终止开关的设备设计指南、快门状态感知注意事项,以及快门应如何与指示器 LED 的现有 HLK 要求交互。
常见 LED 要求
无论是使用快门还是终止开关,HLK 都要求在 ISP 捕获传感器数据时,必须亮起可见的指示灯 LED。 对于 RGB 相机,如果相机处于活动状态,则单个可见波形 LED(例如,白色、绿色、蓝色等)必须为 ON:
对于带 RGB+IR 传感器的相机,这可能更为复杂,因为 IR 相机需要照明器 LED,照明器 LED 可以使用可见波形(850 nm)或隐形光谱(940 nm)。 此外,应用可以单独从 IR 传感器、单独从 RGB 传感器进行流式传输,或同时从两者进行流式传输。
设计使用在可见光谱内工作的 IR 照明器时,可以选择将 IR 照明器 LED 用作指示灯 LED。 这意味着,如果 IR 相机本身处于打开状态,IR 照明器 LED 将满足 HLK 要求:
使用不可见光谱 IR 照明器的设计必须使用可见波形 LED 来指示 IR 相机何时处于活动状态,以满足 HLK 要求。 我们建议共享相机正在使用的指示器 LED,以便在 IR 传感器和/或 RGB 传感器处于打开状态时,相同的可见波形 LED 打开:
我们建议所有设计在使用 IR 或 RGB 相机时打开常用指示灯 LED,无论 IR 照明器 LED 是否使用可见光波长。 下面是核心 LED 要求的完整表:
| 流状态 | 红外 LED (850 nm) | 不可见 IR LED (940 nm) |
|---|---|---|
| 相机关闭 | LED 关闭 | LED 关闭 |
| 仅开启 RGB 相机 | 正在使用的指示器 ON、IR 照明器 OFF | 正在使用的指示器 ON、IR 照明器 OFF |
| 仅 IR 相机开启 | 使用中指示器不是必需的,但建议 ON | 正在使用的指示器 ON、IR 照明器 ON |
| RGB 和 IR 相机开启 | 正在使用的指示器 ON、IR 照明器 ON | 正在使用的指示器 ON、IR 照明器 ON |
注释
LED 要求对于具有相机隐私快门或相机终止开关的设计可能有所不同。 请参阅相机隐私快门 LED 要求以了解有关相机隐私快门的信息,以及HLK LED 要求以了解相机终止开关的信息。
始终在线的人工智能体验(例如基于相机的人体存在检测)
对于支持始终开启的基于相机的 AI 功能的设备,在 AI 芯片与主相机传感器共享时,当专用存在芯片单独访问相机时,LED 要求会有所不同。 有关详细信息,请参阅Microsoft合作伙伴中心 上的状态感知白皮书 。
硬件隐私控制
当相机设计包括硬件隐私控件时,我们的设计指南有两个关键原则:
具有隐私控制的设备必须提供一致的用户体验和对隐私状态的信心:
- 一旦客户了解其设备上的快门的外观和行为,该知识应该适用于他们使用的任何具有快门的设备。
在任何情况下,相机隐私控制都不能对隐私产生虚假印象:
- 在对客户至关重要的时候,设备必须提供隐私。 如果关闭相机隐私快门或相机关闭开关,客户期望在与物理控件交互以禁用隐私功能之前,无法捕获任何图像。
控件类型
定义了两种形式的隐私控制,相机隐私快门(机械和机电)和相机终止开关。 根据设备外形规格、BOM 成本目标和设备的价格点,OEM 可以选择采用上述任何形式实现快门。 这三者中的一个重要常量是,它们必须在物理或硬件级别执行作,这意味着不涉及任何软件,因为软件可能会受到损害。
机械相机隐私快门
机械遮光板是最简单的设计,这些遮光板通过一个简单的滑动镜头盖,用户可以手动操作以遮挡或暴露相机。 它们使用不透明材料设计,在关闭时可以完全遮挡镜头。 这种设计本质上是万无一失的,因为它们在物理上不能被任何方式泄露,除非用户滑动它。
机电相机隐私快门
机电百叶窗是电气控制的机械百叶窗。 与用户手动打开或关闭快门相比,集成快门会打开/关闭,以响应设备上的物理按钮的按下。
注释
虽然此解决方案通常需要固件,但它应与其他组件隔离。 换句话说,快门控制器和按钮不应具有攻击途径,如通信总线或重新编程固件的能力。 设计必须要求硬件交互,并且不能从软件进行控制。
相机终止开关
某些设备现在附带了相机终止开关功能,该功能在关闭时物理断开相机设备与系统的连接,提供硬件控制来阻止相机访问,而无需物理快门来覆盖镜头/传感器。 虽然这是针对攻击的强大功能,但它创造了糟糕的用户体验。 关闭开关时删除设备后,系统无法判断机箱中仍有摄像头,但已关闭。 从 UX 角度来看,如果用户不小心关闭了相机的开关,这可能会导致问题,因为应用程序会报告没有连接的相机。 如果相机在使用期间被删除或在应用运行时显示,还可能导致某些应用程序崩溃或行为错误。
因此,Microsoft不建议或支持使用从系统中删除整个相机的相机终止开关。 相反,我们建议使用以下两种解决方案之一:
对于第二个解决方案,相机仍然显示在系统中,应用可以继续使用它。 ISP 会正常响应所有命令(启动/停止流媒体传输、亮度或对比度、媒体类型更改等),无论紧急停止开关是否激活。 但是,激活终止开关时,ISP 会停止从传感器捕获真实数据,而是从应用程序的角度合成和流式传输黑色帧。所有帧都是透明的。
配备多台相机的面板快门
当客户使用配有快门的设备(例如,面板上具有多个红外和RGB摄像头快门的设备)时,他们期望一旦快门关闭,隐私能免受任何意外的摄像头访问侵扰。 当系统在同一面板中有两个相机(例如 RGB 和 IR 相机)来支持 Windows Hello 时,请务必确保快门不会提供虚假的安全感。 客户预计不会明白,Windows Hello 可能有第二个相机传感器,某些设备使用单个 RGB+IR 传感器。 因此,快门必须覆盖面板上的所有相机。
确保快门和关闭开关适用于红外 (IR) 相机至关重要,因为红外相机可以被应用程序访问,并生成如图所示的高保真图像。 未能遮挡红外传感器会给人一种虚假的安全感,并侵犯用户对快门隐私功能的信任。
注释
Windows Hello 人脸需要 RGB 和 IR 相机。 如果遮挡 RGB 相机,Windows Hello 将无法正常工作。 RGB 和 IR 流都用于启用防欺骗对策。
物理快门设计指南(机械或机电)
当客户使用具有物理快门的设备时,快门的存在对它提供的隐私级别具有强烈的隐含预期。 简单地说,用户的期望是,如果设备有快门,并且快门关闭,他们将免受任何意外的相机访问。 如果该功能的实施不能达到预期效果,它将失去信任。
此外,隐私挡板的整个概念是提供一个安全层,以加强对任何实际软件攻击的防护。 换句话说,如果设备有快门,并且系统受到恶意软件的完全入侵,则该软件无法损害用户的隐私。 同样,简单地说,预期是,如果用户实际与设备上的硬件快门控件交互,快门只能更改状态。
机械设计注意事项
物理遮光板,无论是手动驱动还是机电驱动,预计将由一种不透明的材料制成,关闭时能够完全阻挡传感器,并且本身对裸眼可见。
如 在面板上具有多个摄像头的百叶窗中所述,同一面板中具有独立 IR 和 RGB 摄像头的设备必须在快门关闭时同时阻止这两个传感器。 假设采用双传感器设计,如下所示:
关闭快门后,它必须覆盖 RGB 传感器,可以选择覆盖 IR 传感器:
注释
我们目前支持对于机械快门设计不覆盖红外(IR)相机的相机的豁免。 当物理快门遮挡 RGB 相机时,ISP 固件可以丢弃来自 IR 相机的图像输出,并用生成的黑色图像替换。 但是,如果 IR 传感器用于状态感应,则建议不要覆盖 IR 传感器并确保状态传感器正常运行。 有关详细信息,请参阅Microsoft合作伙伴中心 上的状态感知白皮书 。 未来的 HLK 更新将采用此异常,并且只需要物理快门才能物理遮挡 RGB,以确保解决方案的可靠性,并增强对客户隐私的保护。
相机行为注意事项
当相机配备物理快门时,无论快门状态如何,相机都必须继续正常运行。 如果应用正在从相机流式传输,即使关闭快门,它仍会继续捕获和传输真实传感器数据。 封闭式快门对传感器的完全遮挡预计将产生一个黑色或非常接近它的图像。
当快门关闭时,OEM 可以选择将图像替换为静态图像(例如,一个相机图标,上面有一条斜杠)。 此映像必须是静态的,无法从软件更改,以防止攻击。 对于带有隐私快门的设备,图像替换可能发生在 ISP 或驱动程序中。建议在 ISP 内进行替换,以减少对 DMFT 的需求并增加主机设备的负载。
相机隐私快门 LED 要求
LED 要求必须遵循指定的 常见 LED 要求。 这意味着,如果面板上的任何相机处于打开状态,无论快门是打开还是关闭,可见波长相机使用中的指示灯 LED 都必须保持开启。 但是,如果快门关闭时它的物理设计能够覆盖LED,这也是可以接受的。 下图演示了相机主动流式传输的情况:
对于具有 IR 和 RGB 相机的设计,如果关闭快门时使用 IR 相机,某些制造商可能希望关闭 IR 照明器 LED。 我们不建议这样做,因为这增加了额外的复杂性,却带来很少的价值;仅当 Windows Hello 正在运行时,IR 相机才会处于活动状态,并且 Windows Hello 在此期间显示一条消息,指出它正在尝试登录,但快门已关闭。 有关详细信息,请参阅 紧急停止开关的实现。
但是,如果 840 nm(可见)IR 照明器 LED 不是 IR 相机的唯一使用指示器 LED(例如,当 IR 相机处于活动状态时,正常可见的白色/绿色/蓝色 LED 会亮起),则在快门关闭时,设计可能会关闭 IR 照明器 LED。
快门状态切换机制
实现隐私快门的设备不得允许任何形式的软件控制快门,并且只能打开或关闭快门,以响应用户显式与快门控件交互。 此快门控件可以是机械滑块,也可以是一个物理按钮,用于调节机电快门。 任何软件不得更改快门状态,即使硬件控件可以覆盖软件并保持快门关闭,因为关闭的快门并不总是意味着启用了隐私控制。 同样,由于同样的原因,当某个应用程序使用相机时,快门可能无法打开或关闭。 总之,如果用户瞥见设备并看到快门关闭,他们必须能够明确推断,他们的隐私受到保护,直到他们采取物理作打开快门。
快门状态感知和报告
市场内相机隐私设计的许多问题源于用户无意中关闭快门的情况,无法确定为什么他们的相机正在生成空白图像或不起作用。 因此,Windows 隐私快门功能的关键部分依赖于相机能够可靠地报告其快门状态。 利用此信息,应用程序可以通知用户关闭快门,以便他们可以做出相应的反应。 应在事件发生后尽快检测并报告快门状态更改。
建议使用两种方法来检测快门状态、 物理传感器和 基于固件的检测。 这两种方法都通过 CT_PRIVACY_CONTROL (如果源自 UVC 设备)或 KSPROPERTY_CAMERACONTROL_PRIVACY(如果源自 AVStream 或 DMFT 驱动程序)报告检测到的快门状态。
有关更多详细信息,请参阅 隐私快门通知 。
物理状态检测传感器
可以使用物理传感器检测快门状态,该传感器可以检测快门是否打开或关闭。 物理传感器可以确定性地报告快门状态,并提供更可靠的体验。 Microsoft没有关于传感器设计的任何特定指南,也没有针对传感器技术的特定建议。
基于ISP固件的状态检测
某些设计可能选择跳过物理快门,而是使用 ISP 中的固件来处理图像并报告推断的快门状态。 此类解决方案将分析固件中捕获的图像,并将其与阈值进行比较,以确定快门是否显示为关闭。 这是一种低成本的解决方案,因为它不需要任何新部件,并且还能够检测传感器的磁带等内容。 但是,选择使用此类设计时,有两个重要注意事项:
设计可能会在黑暗环境中误报快门已关闭。 但是,这有望是一个最小的风险/问题,因为相机无论如何在这样的低光环境中不可用。
除非 ISP 能够在传感器退出 D3 时定期采样,否则此方法会阻止应用查询准确的传感器状态数据,直到它们开始从相机获取流数据。
上述第二个注意事项会产生挑战。 如果相机在未流式传输时无法报告快门状态,但应用在流式传输之前已写入检查和响应快门状态,则可能发生不良情况。 为了响应我们从合作伙伴那里收到的反馈,这一要求已经放宽。 我们还更新了 API 文档,以建议软件开发人员不要根据非流式传输时报告的快门状态进行决策。 例如,我们将明确建议应用开发人员不要禁止在快门报告关闭时打开相机。
为了避免与不遵循此建议的应用出现兼容性问题的风险,预计不流式传输时无法感知快门状态的相机将报告快门在未流式传输时处于打开状态。 否则,如果相机在未流式传输时能够感知快门状态,则预计只要它不在 D3 中,它就会检测并报告快门状态。
注释
基于图像分析的快门检测算法应始终在固件中实现,而不是驱动程序,以避免增加 CPU 负载和实现最大可靠性。
下图显示了具有相机隐私快门的设备的预期行为:
相机隐私快门行为摘要表
下表总结了相机隐私快门的预期行为(手动或机电):
| ISP 状态 | 快门状态 | 可见LED指示灯 | 图像流到电脑 | 报告CT_PRIVACY_CONTROL状态 |
|---|---|---|---|---|
| 空闲/D3 | 已打开 | 关闭* | 无 | 已打开 |
| 空闲/D3 | 已关闭 | 关闭* | 无 | 打开** |
| 流媒体(任何应用) | 已打开 | 上* | 捕获的传感器图像 | 已打开 |
| 流式处理(任何应用) | 已关闭 | 上* | 捕获的传感器图像 | 已关闭 |
(*)有关指示器 LED 要求的详细信息,请参阅 相机隐私快门 LED 要求 和 快门状态切换机制 。
(**)有关详细信息,请参阅 快门状态感知和报告 ,在某些情况下,快门状态在未流式传输时仍会更新。
终止开关设计指南
当客户使用具有终止开关的设备时,他们将信任硬件交换机,以可靠地防范任何尝试捕获其映像的应用程序。 简单来说,用户普遍期望如果设备配备断链开关,并且该开关被激活,那么他们的隐私可以避免受到任何意外的摄像头访问。 若该功能的实施无法达到隐含的期望,它将失去所有信任,这一点至关重要。
此外,终止开关机制的整体概念是提供一层针对任何实际软件攻击的强化安全层。 如果设备具有终止开关,并且系统受到恶意软件的完全入侵,则该软件无法替代终止开关并损害用户的隐私。 简单地说,预期是*终止开关只能由用户以物理方式与设备交互来激活/停用。
与隐私快门设计相比,断电开关更为复杂,并且在确保可信度方面带来了更多挑战。 这是因为它们被期待具备相同的坚固性(物理开关在所有情况下被期望无故障地运行),但它们无法像镜头上的物理快门那样提供保证。 这意味着提供终止开关的设备必须生成一致的、清晰且可靠的体验。
终止开关功能
通过告知ISP固件停止从传感器捕获图像,并改为生成黑色图像,来实现开关的操作。 这样,相机仍从应用程序的角度可用且功能正常,但在停用开关处于活动状态时,不会有任何实际的传感器数据传输到主机操作系统。 可靠的设计将按如下方式运行:
交换机的物理信号连接到 ISP 上的 GPIO,以指示交换机是否处于活动状态
终止开关处于活动状态时,ISP:
电断开传感器的连接
开始合成黑色帧,以替换断开连接的传感器中的真实帧
通过隐私快门通知功能报告快门已关闭
实际上,支持这种完整体验的 ISP 硅芯片,包括在终止开关 GPIO 激活时断开传感器电源的功能,尚未在市场上推出。 因此,当前设计需要修改上述步骤 2a 以“停止传感器或放弃固件中的传感器数据”。 我们计划与 ISP 供应商合作,以减少未来芯片对这种技术调整的需求。
注释
必须在 ISP 固件中实现终止开关功能,而不是在主机 OS 上运行的驱动程序中实现。 当终止开关处于“终止”状态时,传感器的真实图像数据不得传输到 OS。
与隐私快门一样,当终止开关处于“终止”状态时,OEM 可能会将图像替换为静态图像。 映像替换可能发生在 ISP 或驱动程序内,尽管建议在 ISP 中进行替换,以减少 DMFT 的需求,并将负载添加到主机设备。 如果在驱动程序中执行图像替换,请注意,即使终止开关处于“终止”状态,实际图像数据不能传输到操作系统这一要求仍然适用。
终止开关实现
终止开关状态不得受软件控制,否则恶意应用程序可以写入控件以激活或停用终止开关。 应该用连接到ISP的GPIO的开关来控制它们。
重要的是,当相机关闭开关时,相机仍然会出现在系统中,应用仍然可以从中进行流传输,只是图像会变黑。 帧继续传送到操作系统,相机继续响应控制;应用程序不了解开关处于“终止”状态,除非应用程序正在使用 CameraOcclusionInfo APIs。 这允许通过硬件控件禁用相机,而无需引入令人困惑的“找不到相机”消息,或者在翻转开关时冒着某些应用程序崩溃的风险。
如 在面板上具有多个相机的 Shutters 中所述,在同一面板中具有单独的 IR 和 RGB 相机的设备必须在激活终止开关时同时禁用这两个传感器。
HLK LED 要求
HLK 要求当 ISP 捕获传感器数据时,指示器 LED 为 ON。 激活终止开关意味着 ISP 必须停止从传感器捕获真实数据,因此 LED 也有望在终止开关中关闭。 这可以避免任何混淆或违反信任,如果客户看到点亮的指示器或 IR 照明器 LED,他们知道软件当前正在捕获他们的图像,如果他们看不到点亮的 LED,他们知道他们不会被捕获。
终止开关状态报告
应通过 CT_PRIVACY_CONTROL(如果源自 UVC 设备)或 KSPROPERTY_CAMERACONTROL_PRIVACY(如果源自 AVStream 或 DMFT 驱动程序)报告断开开关的状态。 每当 ISP 离开 D3 时,都应报告相机关闭开关的状态。
有关更多详细信息,请参阅 隐私快门/切换通知 。
终止开关行为摘要表
下表总结了带有相机断电开关的相机的预期行为:
| ISP 状态 | 关闭开关状态 | 可见LED指示灯 | 图像流到电脑 | 报告CT_PRIVACY_CONTROL状态 |
|---|---|---|---|---|
| 空闲/D3 | 跑步 | 关闭* | 无 | 开放 |
| 空闲/D3 | Kill | 关闭* | 无 | 关闭 |
| 流式处理(任何应用) | 跑步 | 上* | 捕获的传感器图像 | 开放 |
| 流式处理(任何应用) | Kill | 关闭* | 合成的空白帧 | 关闭 |
(*)有关指示器 LED 要求的详细信息,请参阅 相机隐私快门 LED 要求 和 快门状态切换机制 。
用于快门/开关事件的 ISV 指南
当配备隐私盖板或停用开关的相机遵循本文档中的指导时,在相机进行直播时,其盖板/开关状态会实时报告给操作系统。 然后,使用相机的应用程序可以监视快门状态更改事件并相应地做出响应,例如,生成一个有用的通知,指出相机被快门或开关阻止。
有关详细信息,请参阅以下 API: