架构

组件与数据流

每一个活动部件、它运行在哪里,以及它们之间的每一条连接,包括所用的协议和每一方使用的凭据。

本文描述截至 2026年10月3日 已实现的 LayerT。尚未实现的内容均已标注。

浏览器端

LayerT 的浏览器端是一个 Manifest V3 扩展程序。您的 MDM 使用适用于 macOS 和 Windows 的 Chrome 企业策略文件安装它,并将其图标固定到工具栏(也有适用于 Linux 的文件)。同一策略会关闭无痕模式、访客模式和 Chrome 自带的密码管理器;在 Windows 上,它会将 LayerT 添加到您其他强制安装的扩展程序中,而不是替换它们。人员也可以使用自己的工作账号,在浏览器中自行设置 LayerT。

此后,无论 LayerT 以何种方式安装,每个新浏览器都要等待所有者或 IT 管理员批准。在获得批准之前,它得不到任何规则,也不能使用共享账号。

部分是什么说明
Service Worker扩展程序的后台进程保存浏览器自己的签名密钥及其短期令牌,获取并校验签名策略,批量上报审计事件,代理共享账号授权,运行会话到期计时器
内容脚本Chrome 在每个页面的隔离环境(isolated world)中运行的脚本与页面自身的 JavaScript 相互隔离。它们只读取您的规则指定的字段中的值,检查交给文件规则所指定位置的文件,并填写共享账号登录信息
页内提示阻止卡片、通知、账号菜单和会话标签绘制在封闭的 Shadow Root 中,因此页面脚本无法读取或更改其样式。按钮只响应真实的点击和按键。它们使用系统字体,因此 LayerT 绝不会向其他公司的页面加载网络字体
账号菜单框架在提示内以框架形式显示的扩展程序页面共享账号列表位于扩展程序自己的源(origin)中,而不在页面中
工具栏弹出窗口启动器、审批和快速添加一个扩展程序页面;绝不属于任何网站
页面无法伪造的信任标识. 只要某个标签页上显示着 LayerT 提示,LayerT 就会在自己的工具栏图标上点亮一个琥珀色圆点。网站可以模仿提示的外观,但无法在浏览器工具栏中绘制内容。LayerT 提示也从不索要密码,并且有一项测试确保任何提示都不包含密码字段。

LayerT 云端

部分是什么说明
控制台和 API一个 Web 应用管理控制台、扩展程序的 API、SCIM 2.0 服务器和 OpenID Connect 客户端
Worker一个没有公网地址的独立服务运行定时任务并发送通知
运营控制台供 LayerT 员工使用的独立站点创建和管理组织。员工只有在获得该组织批准后才能查看组织内部(见身份、租户与角色)
Postgres记录系统签名策略版本、审计事件、目录数据、请求和会话。共享账号密钥以密文形式保存在单独的表中
对象存储Google Cloud Storage仅存放会话录制,在设备上加密后再上传。存储桶中从不保存明文
密钥服务云端密钥服务使用 Ed25519 为每个策略版本签名,并封装用于密封每个共享账号密钥和每段录制的密钥。密钥可以通过该服务使用,但永远无法从中复制出来。策略签名密钥受软件保护:该服务只以软件形式提供这种类型的密钥,而不在硬件安全模块中提供。已构建,并已在 LayerT 的测试环境中使用。生产环境将使用 Google Cloud KMS,目前未部署
定时任务Worker 上的周期性任务关闭过期的请求和会话、执行保留期限、在策略过期前重新签名、目录变更后重建策略、发送通知和提醒、检查网关健康状况
托管. LayerT 尚未投入生产。目前它运行在只保存模拟数据的测试环境中。投入生产后,它将运行在位于欧盟的 Google Cloud 上,区域为米兰(europe-west8),其密钥和数据库备份保存在 Google 的欧盟多区域(multi-region)中。Cloudflare 将负责 DNS 并发送通知邮件。服务提供方列于数据处理。目前尚不提供其他数据驻留选项。

LayerT 之外

部分归属LayerT 如何使用它
您的身份提供商您通过 SCIM 2.0 向 LayerT 发送人员和组,并通过 OpenID Connect 让管理员和人员登录。为 JumpCloud 构建
您的 MDM您推送 Chrome 策略,用于安装 LayerT、固定其图标,并告诉它所属的组织
您的网关 抢先体验您您租用的小型服务器。开启了路由的共享账号会让它自己的网站经由其中一台访问,因此供应商看到的是一个地址。LayerT 从外部检查每个网关,并告诉它接纳哪些连接。LayerT 不运行网关
员工使用的网站供应商LayerT 读取并填写这些网站上的表单。它从不更改供应商的服务器或流量

数据流

以下每一条数据流都通过 HTTPS 传输。

数据流方向传输内容身份验证方式
目录同步身份提供商 → API人员、组、在职状态(SCIM 2.0)LayerT 签发的 SCIM 令牌,仅以哈希形式保存
控制台登录浏览器 ↔ API ↔ 身份提供商OpenID Connect 授权码流程签名的 ID 令牌,依据提供商公布的密钥进行校验
控制台使用浏览器 → API决定、规则、设置服务器端会话,每次请求都重新检查
注册扩展程序 → API → 身份提供商人员登录一次。浏览器发送它自己生成的密钥的公钥部分,证明它持有私钥部分,并获得一个短期设备令牌。随后它等待管理员审批身份提供商的登录,以及由浏览器的密钥生成的签名
令牌续期扩展程序 → API一个新的短期设备令牌由浏览器的密钥签名的证明,依据 LayerT 在注册时保存的公钥进行校验
策略同步API → 扩展程序贵组织的签名策略设备令牌;策略本身在浏览器中使用 Ed25519 校验
人员所属的群组API → 扩展程序此浏览器自己的使用者所属的目录群组,不含其他任何人的,以有效期 24 小时的签名应答形式提供设备令牌;该应答在浏览器中使用 Ed25519 校验
审计扩展程序 → API关于阻止、匹配、审批和会话的事件,附带规则匹配到的值设备令牌,必须与事件所属的设备一致
说明理由后继续扩展程序 → API当事人越过阻止继续的理由,连同规则、页面和值。只有在服务器保存了它之后,该操作才会继续设备令牌;当事人的身份取自令牌,从不取自页面
请求与授权扩展程序 ↔ API访问请求、决定、共享账号授权设备令牌,绑定到具体人员和已注册的浏览器
录制扩展程序 → API → 对象存储加密的录制分块设备令牌;分块已经加密
网关会话 抢先体验API → 扩展程序对于已开启路由的账号:使用哪个网关、仅用于本次会话的凭据,以及供应商将看到的地址。其中不传输密码设备令牌,绑定到该人员的活动会话
网关准入 抢先体验网关 → API网关询问是否接纳每一个新连接网关自己的密钥。LayerT 只就该网关所属组织的会话向它作出答复
定时任务Cloud Scheduler → Worker仅触发信号由 Google 签名、属于调度器自身服务账号的身份令牌
登录结果扩展程序 → API共享账号登录是否成功、在哪一步停止,以及不含查询字符串的页面地址。从不包含值、标签或页面文本设备令牌
设备信息扩展程序 → API扩展程序版本、浏览器自己报告的安装方式、浏览器、操作系统和策略版本设备令牌
版本检查扩展程序 → API哪个 LayerT 版本是最新的。每个组织得到的答复都相同无。该请求不携带凭据,也不携带任何关于人员的信息
通知Worker → 审批人等待某人处理的请求、答复和警报,通过电子邮件、Slack 和扩展程序发送。不含密钥,也不含完整的值电子邮件通过 SMTPS;Slack 通过其 API 和贵组织的 Slack 连接;扩展程序使用设备令牌
Slack 中的决定Slack → API审批人对请求点击的批准或拒绝Slack 的请求签名,并在点击的那一刻再次检查审批人的权限

扩展程序发送什么,不发送什么

LayerT 只读取您的规则所指定的字段。规则匹配时,LayerT 会记录匹配到的内容,对于输入规则则会记录该字段的文字,以便审计人员核查这一判定。规则可以遮盖或隐藏其值。

  • 当规则匹配时,它会发送审计事件:规则、页面地址、字段以及匹配的值。对于表单规则,值是该字段的文字;对于粘贴规则,值是粘贴的文字。审计人员正是借此看到某个个人邮箱地址被阻止了。
  • 对于输入规则,值是规则匹配时该字段的全部文字,而不仅是匹配的部分,最多 10,000 个字符。
  • 对于文件规则,它会发送文件的名称、类型和大小、文件交给页面的方式,以及 LayerT 是否能够读取它。文件中的文字在浏览器中读取以作出判断,从不发送。
  • 浏览器始终发送完整的值。 规则的遮盖或隐藏其值的设置是在 LayerT 的服务器上、在存储任何内容之前应用的。值不会在浏览器中脱敏。
  • LayerT 填写的密码或验证码从不会被任何规则读取,因此没有任何内容可发送。输入规则完全不读取密码框或一次性验证码框。表单或粘贴规则读取它所指定的字段,其中可能包括某人自己输入了内容的密码框。
  • 它会发送附有人员理由的访问请求;当某个共享账号开启录制时,它会发送加密的录制分块。
  • 在规则允许的情况下,它会发送当事人为越过阻止继续而给出的理由。
  • 它会报告每次共享账号登录是否成功,以及浏览器的基本信息,以便 IT 了解哪些笔记本电脑受到保护。这些报告不包含输入的值,也不包含页面文本。
  • 等待发送的事件会保存在扩展程序的存储中,直到送达为止,其中可能包含匹配到的值。
  • 它不发送页面。在录制的共享账号会话之外,它发送的页面内容只有规则所匹配字段的文字,并且不发送在您的规则未指定的字段中输入的任何内容。它从不发送浏览历史、已访问页面的列表或 Cookie 值。在录制的会话中,人员输入的内容在输入位置被遮盖,即在表单字段和富文本编辑器中,录制仍会显示页面回显的内容:详情见会话与录制。