Havenlon 执行控制工程 II 05|给一份授权,加一个物理作用半径

Havenlon 执行控制工程 II 05|给一份授权,加一个物理作用半径 传统数字安全非常擅长回答一类问题你是谁你有没有权限你的签名是不是真的当前规则是否放行。它处理的是数字身份、数字对象和数字规则之间的关系。而当系统真正开始影响现实世界执行条件里会出现一种软件安全很少认真处理的事实空间。一个操作者有没有权限是一个问题他此刻是不是还在设备旁边是另一个问题。两台安全设备是否都已完成认证是一个问题它们是否仍然处在预期的物理距离内又是另一个问题。一次审批是否真实是一个问题审批者是否真的站在目标设备所在的现场可能也是另一个问题。于是距离不再只是地图上的一个数字或界面上的一行位置信息。在某些执行系统里它可以成为一项执行条件——即使身份、权限、签名、审批全部正确只要物理关系已经不成立执行仍然可以被拒绝。一、身份正确不等于人真的在这里过去大多数软件根本不需要知道你离它多远。登录邮箱、查询数据、提交代码、操作云端服务用户在隔壁房间还是在另一个大陆对系统没有本质差别——凭据正确、网络可达、权限允许流程就能继续。这是一种典型的位置无关安全。数字系统把世界抽象成身份、凭据、请求和规则网络把物理距离消除掉了一次调用来自同一栋楼还是来自另一个国家在应用层看起来可能只是同一个加密请求。当执行对象进入物理世界这种距离无关就不总是合理。开一扇门操作一台现场设备启停一台机器对本地安全终端完成高风险授权——这些场景真正想表达的往往是不仅需要正确的人还需要正确的人此刻就在正确的位置。假设某台设备要求操作员使用强身份凭据认证完全通过设备确认了对方身份。但这份凭据是否意味着这个人就在设备旁边未必。他可能在远程登录可能把认证装置交给了别人可能通过某个远程系统发起请求也可能凭据正被另一个系统代理使用。从数字身份看认证完全成立从物理现场看在场并没有被证明。身份回答你是谁在场回答你现在是否真的处在执行发生的那个物理空间里。有些场景只需要前者有些高风险场景需要两者同时成立。二、给权力加一个物理半径说到物理空间人们第一反应往往是定位与地理围栏——只有人在某个园区内才允许执行。这是一种方式但位置和距离并不是同一个概念。位置回答你在哪里距离回答你和某个具体对象之间有多远。对执行控制而言后者常常更直接。系统真正关心的未必是审批者身处哪座城市而是授权设备是否仍在目标执行设备旁边未必是操作员在不在某间办公室而是参与执行授权的两个物理节点是否仍处在被允许的邻近关系中。这种设计不必知道绝对坐标只需确认两者之间的关系仍然成立也因此减少了对全球定位、地图服务和外部基础设施的依赖。网络时代最强大的能力之一就是消除距离人可以远程管理服务器、操作设备、发布代码、调动资金。效率因此提升但也意味着一份数字凭据获得的权力理论上可以从世界任何地方被行使。对某些高风险能力来说这个范围可能太宽了。距离守卫做的其实是一件相当朴素的事给某种执行权加上物理作用半径。某项操作只有在授权设备与执行设备保持预期的邻近关系时才成立一旦超出这个范围失效的不是身份不是密钥而是执行资格。这与上一篇讨论的时间边界高度同构。时间限制一份授权能用多久距离限制它能离多远。一份审批是真的并不意味着它在任何物理位置都应当拥有相同的执行能力。授权的范围因此不只包含主体和动作还可以包含时间范围与空间范围。过去的安全模型主要关注谁和做什么后来纳入了什么时候当执行真正落到物理世界在哪里、离多远也可能成为不可忽略的一维。三、物理事实怎样进入数字系统如果只是让某个终端上报我当前就在设备附近并不会自动形成安全边界。所有执行事实都要面对同一个问题这个事实是怎么来的。位置数据由谁提供主机软件能否修改是不是来自可被任意填写的应用层字段远端能否伪造数据是否足够新鲜如果一个已被控制的软件可以直接声明我距离目标很近那它显然不能作为执行条件。距离守卫的核心不是系统里存在一个距离字段而是这个物理事实本身是否拥有足够可信的来源——和时间戳、计数、设备状态一样事实不因为存在就可信它需要来源、新鲜度、边界和验证方式。这也是最工程化的难点所在。现实中的距离是连续的物理量而裁决层能处理的是数字事实中间必须有一条把物理关系转换成可信事实的路径。实现方式可以有很多种——无线测距、短距通信、近场机制、设备间的挑战应答或其他物理侧信号。无论用哪一种都必须回答同一组问题测量由谁完成何时完成能否被远程转发是否绑定当前设备身份是否绑定当前执行会话结果是否已经过期。所以真正的距离守卫不是一个传感器而是一条把物理关系转换为可信执行事实的协议路径。无线系统里最容易想到的做法是看信号强度强就认为近弱就认为远。它很方便但作为执行条件通常不够强因为无线传播会受到环境、遮挡、天线、功率、反射、设备姿态和干扰的影响。更根本的是信号强度首先证明的是我收到了多强的信号而不是严格证明对方离我多少米。这两者不能简单等同。工程上需要先明确当前的距离判断究竟想达到什么安全强度——它只是一个较弱的风险信号还是要作为最终的执行不变量两种定位会导出完全不同的设计要求。四、真正要防的是远处被伪装成近处如果距离只用于推荐附近的门店测偏几米无关紧要。一旦它决定能否执行威胁模型就必须改写攻击者真正想做的是人在远处却让系统相信他在近处。最典型的形态是中继。两个实际相距很远的节点中间有系统在快速转发通信双方都认为自己在与合法设备通信身份真实消息也未被篡改但物理距离这个事实已经被转发关系欺骗。认证能够证明对方是谁却不自动证明对方离我有多远。这与整个执行控制的思路一致不同性质的事实需要不同的验证机制不能用一个证明去替代另一个。由此引出两条设计要求。其一距离最好是被双方共同建立的关系而不是单方声明。如果只有一端宣称我在对方附近那仍然是一次位置主张让关系的两端共同参与当前这一轮邻近性验证得到的才更接近一种相互的物理关系。关系最好由关系两端共同证明而不是由其中一端独自定义。其二距离事实必须与身份绑定。仅仅知道附近有一台设备是不够的系统需要知道附近的是不是当前执行链里的那一台。否则会出现一种典型的事实绑定错误某台设备已通过认证另一台设备恰好在附近系统却把两条事实合并成已认证的那台设备就在附近。工程上应当确保邻近性事实明确归属于当前的两个已知身份、当前会话和当前执行上下文而不是一个脱离对象的抽象结论。五、它是一个有时效的事实距离是高度动态的设备会移动人会离开授权装置会被带走。所以某个时刻验证过的邻近关系隔了很久之后未必还能代表现在——它天然带有很强的新鲜度要求更适合绑定到当前执行、当前会话、当前一轮验证而不是变成这两台设备曾经靠近过此后一直算靠近。这也决定了检查的位置。如果只在意图创建时确认过一次随后经过审批、排队、裁决和调度很久之后才真正执行那么最初的距离事实很可能已经失去意义。距离越关键就越应当靠近真正的提交点——上游可以提前知道设备大致处在允许范围内但在动手之前仍要重新确认执行发生的这一刻关键物理关系是否仍然成立。它同样要遵守第一季讨论过的那套状态划分。测距失败不是远而是未知必要的邻近性证明根本没有建立是缺失验证成功但已超出允许窗口是过期一端认为有效而另一端认为无效是冲突。这些情况都不该被自动解释成应该差不多没问题。无法证明近不能自动等于可以认为近。六、它不该成为新的神谕同样需要克制。距离不是万能条件两个人站得很近并不意味着意图正确、审批合法、规则没有问题或者上游没有被攻击两台设备处在允许范围内也不代表其他执行条件自然成立。它只是一个独立事实应当参与裁决但不能替代身份、意图、审批、规则、状态和证据。执行控制一贯的原则在这里同样适用——不存在任何单一事实可以独自证明一次执行是正确的。另一个常见误解是把物理在场等同于业务授权。在场回答人在不在授权回答这个人有没有权意图回答他现在想做什么规则回答当前是否允许。完整的判断应该是这些条件同时成立而不是检测到有人靠近就执行。这一点必须写死在设计里如果系统最终变成检测到人靠近设备便自动执行那只是把一个数字条件换成了物理条件并没有形成更完整的安全。合理的关系是——距离可以激活某些能力、允许某个步骤继续、提升某份授权的执行资格但不应单独成为执行触发器。否则物理接近本身就变成了新的单点权力。顺着这一季的运行时设计往下推距离守卫也不该自己承担复杂业务逻辑。它更适合输出一个有限而明确的事实由裁决层判断当前意图是否要求这个条件、它是否仍然新鲜、是否与其他事实冲突再由执行侧在提交前确认它尚未失效。距离守卫负责证明物理关系裁决层负责判断这份关系是否是本次执行的必要条件职责依然分离。七、它适合保护什么并非所有操作都适合加上这层约束。如果一项能力本来就是远程服务强行要求现场邻近没有意义。真正适合的是那些业务语义本身就隐含本地在场的动作某些设备维护、物理门禁、敏感机器的启停、高价值的本地密钥操作或者需要人与安全装置共同在场的授权过程。在这些场景里距离守卫并不是人为增加摩擦而是把原本隐含在制度里的要求——操作员应该在现场——变成系统真正能够检查的一项执行条件。从制度要求到技术边界这是一次有价值的工程转化。它也能压缩远程凭据失陷的影响范围。假设攻击者已经取得合法账户、接口凭据甚至某种远程控制能力在没有物理约束的系统里他可以从任何地方尝试推动高风险执行而如果某些关键动作还要求特定设备在现场建立短期物理关系那么即使数字权限域已被突破他仍需跨越一条性质不同的边界。这当然拦不住所有攻击它增加的是一个独立条件让远程控制权和现场执行权不再天然等价。纯数字凭据最大的特点是易于远程使用拿到令牌、会话或密钥权限就可以跨网络传播。而当一部分执行资格依赖当前的物理环境时即使凭据被复制某些能力也不一定能被完整地带到远方——执行控制因此获得了一种数字凭据难以单独提供的性质空间锚点。Agent 场景让这一点更有意义。自主系统的价值正在于远程、持续、自主地执行但某些动作可能并不适合仅凭一份长期数字授权就在任何时间任何地点自主完成。此时距离守卫表达的是一种新的分工机器可以准备、可以规划、可以请求而某些现实改变仍需物理世界中的一个条件被满足。人的参与由此从再点一次确认变成执行上下文的一部分。八、把它变成一项不变量如果距离曾经是执行条件事后的证据也应当能回答当时这项条件是否成立。这不意味着要永久保存精确的位置轨迹——恰恰相反需要记录的可能只是某次执行时某项必要的邻近条件成立、由哪个边界验证、何时验证、对应哪个执行对象。这样将来审计才能说明一项本应在现场完成的操作为什么获得了执行资格而不是只看到一行规则放行。这里还有一条不能忽略的隐私边界。执行控制需要知道的是当前两个节点是否满足必要的物理关系这并不天然意味着系统需要持续追踪位置、保存完整移动轨迹或长期记录精确坐标。如果只需要证明足够近就没有必要采集具体在哪里如果只需要某个瞬间的现场验证就没有必要全天跟踪。安全边界不应以无限扩大监控能力为代价。证明一个执行条件所需要的数据应该少于描述一个人完整现实状态所需要的数据。回到本季第一篇的说法执行控制语言真正该表达的是不变量。距离最终也应当以这种形态进入系统——对于某类动作执行发生时授权设备与目标设备之间的可信物理关系必须仍然成立。规则可以要求它测距路径可以证明它执行侧在提交前确认它尚未失效证据最后记录它曾经成立。到这一步距离就不再是附属的传感器数据而进入了执行协议本身。需要说清楚的是这层边界并不消除风险。测量会有误差中继攻击有其手段物理条件也可能被人为制造。它降低的是远程凭据独自推动现实的概率增加的是一个必须被同时满足的独立条件。过去几十年软件安全一直在努力把世界数字化身份变成凭据权限变成角色授权变成规则行为变成接口调用结果变成日志。这种抽象让系统得以高效运行。而当这些数字判断开始真正控制钱、门、机器、车辆和生产环境现实又把一些曾被抽象掉的条件带了回来——时间是其中之一空间也是。当执行开始影响现实世界物理距离就不再只是位置数据而可能成为一项安全条件。距离守卫想做的并不是让系统知道你在哪里。它想建立的是另一种能力某些现实权力只有当数字世界与物理世界的条件同时成立时才真正生效。当这一步被工程化之后执行边界就不再只是服务器里的一次逻辑判断——它开始拥有空间。