← 最新论文
💻 计算机科学

Qualifying Observation Integrity for Selective Authorization in PostgreSQL

本文提出了一种受限的 PostgreSQL 安装限定符,该限定符通过代码检查和经过身份验证的行为预言机来强制执行生产者与消费者之间的契约,从而确保选择性授权的完整性,进而实现策略决策的安全复用,并在保持数据不变的情况下实现 24% 的性能提升,同时严密防止了简单的结构化检查所遗漏的不安全限定。

原作者: Aleksandar Mihajlovic

发布于 2026-10-29
📖 1 分钟阅读☕ 轻松阅读

原作者: Aleksandar Mihajlovic

原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 ✨ 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

在数字世界中,数据库充当着从银行账户到在线购物篮等一切事物的中央记忆。它们存储着世界的当前状态:账户中有多少钱、库存中有多少商品,或者用户是否有权进入某栋建筑。当计算机程序向数据库请求执行某项操作的权限时,数据库会检查当前的实况。如果事实自上次检查以来发生了变化,答案可能会有所不同。例如,如果用户有足够的资金,购买可能会被批准;但如果另一笔交易在几秒钟后花掉了这笔钱,那么之前的批准就应当被撤销。为了确保安全,系统通常会在每次即将执行操作时重新检查事实。这种方式很可靠,但也很慢,尤其是当相同的实况在没有变化的情况下被连续检查数千次时。

研究人员长期以来一直在寻找通过记住上次检查事实的时间来提高效率的方法。如果系统能够证明底层数据没有发生变化,它就可以重复使用旧的权限,而无需再次询问。这被称为选择性授权(selective authorization)。然而,这种捷径只有在系统能够绝对确定数据确实未发生变化时才有效。如果系统被误导,认为数据是稳定的,而实际上数据正在发生变化,它可能会为本该被拦截的交易授予权限。核心挑战不仅在于检查数据,还在于验证那些旨在追踪变化的机制本身是否运作正常,并且这些机制对正确的人员是可见的。

研究人员 Aleksandar Mihajlovic 开发了一种方法,用于验证特定类型的数据库系统(即 PostgreSQL)中的这些追踪机制。其目标是为数据库安装创建一个严格的规则集,使其能够被信任使用这种捷径。这个名为 OntontoCommit 的系统充当了守门人的角色。在数据库被允许重复使用旧的权限决策之前,这个守门人会检查代码和配置,以确保对数据的每一次更改都被妥善记录,并且检查记录的人确实能够看到这些记录。该研究关注一个特定的边界:发生变化的时刻与观察到变化的时刻。如果两者之间存在间隙,整个系统的安全性就会受到威胁。

这项研究始于识别即使在代码表面看起来正确的情况下,这种信任也容易被破坏的方式。研究人员发现,系统有两种可以静默失效的具体方式。在第一种情况下,一个旨在更新变更计数器的辅助函数其输入参数名称被交换了。代码仍然可以运行,且接受的数据类型也是正确的,但由于名称混淆,一种类型的变更计数器被更新了,而另一种类型的计数器却停滞不前。这就像是一个交通灯系统,南北向车道的传感器被错误地连接到了东西向的按钮上;灯光虽然会变换,但并不是为了需要它们的车辆而变。在第二种情况下,系统配置了一个安全特性,该特性会向普通用户隐藏某些行的数据。系统管理员正确地更新了变更计数器,但检查权限的人却被阻止查看该更新。对于检查者来说,计数器看起来似乎为零,尽管它实际上已经增加了。这造成了一种虚假的安全感。

为了防止这些故障,研究人员构建了一个资格审查工具,在数据库安装被允许使用该捷径之前对其进行检查。该工具不仅仅是在寻找代码的存在,它还会验证函数的精确绑定、表的归属以及每个用户角色的可见性设置。它坚持要求负责更新变更计数器的代码必须与系统预期的签名完全匹配。它还禁止在用于追踪这些变化的特定表上使用行级安全性(row-level security),以确保检查权限的人始终能看到计数器的真实状态。该工具扮演着严厉检查员的角色,拒绝任何试图使用不支持的变体或隐藏变化证据的安装。

研究人员在一个模拟完整购买过程的受控环境中测试了这种方法。系统被设置为处理一个场景:用户尝试购买某物,同时检查其账户余额及任何现有的资金冻结情况。实验比较了两种方法:一种是系统每次都从头开始重新评估整个策略,另一种是系统使用选择性授权捷径。测试是在标准版本的数据库软件上进行的,但在模拟的计算机环境中运行,以确保对条件进行精确控制。研究包括了一组 108 个不同的配置对,其中一些设计为安全的,另一些设计为不安全的,以观察资格审查工具能否分辨差异。

结果显示,资格审查工具在识别不安全配置方面非常有效。它成功拒绝了所有五个刻意设计的非安全设置,包括那些参数名称交换和数据行隐藏的情况。与此同时,它接受了所有 48 个有效的安全配置。它还正确地拒绝了两个虽然安全但不符合该工具严格规则的配置,这表明它优先考虑安全性而非便利性。在性能测试中,当数据保持不变时,选择性授权方法表现出显著的速度优势。对于一个拥有一万行数据的集合,使用捷径的系统完成整个循环的中位时间为 66 毫秒,而重新检查所有内容的系统则需要 87 毫秒。这代表了 24% 的时间缩减。然而,研究也发现,当数据实际发生变化时,捷径并没有提供速度优势,甚至可能略慢,因为系统必须重新评估策略。

研究还强调了测试的局限性。研究人员证明,仅仅运行几次测试来观察系统是否工作,并不足以保证它在任何时候都能正常工作。完全有可能构建出这样一种场景:系统通过了一系列测试,但在某种特定的、未被察觉的条件下仍然失败。研究表明,一个系统可以在通过一系列检查的同时,仍然向观察者隐藏了一个关键的变化。这意味着,确保安全的唯一方法是针对系统是如何构建的实施严格的规则,而不是仅仅依赖测试来发现错误。该工具并不声称能证明系统在所有可能的宇宙中都是完美的,但它提供了一个可验证的契约,证明该安装遵循了特定的安全模式。

最终,这项工作提供了一种在不牺牲安全性的前提下提高数据库速度的实用方法。通过定义一套关于如何实现和验证变更追踪的清晰规则,研究人员创造了一种方式,可以信任数据库对其自身状态的陈述。这项研究并不声称解决了数据库安全中的所有问题,也不建议将此方法应用于所有情况。它是一个针对特定数据库设置的专门化解决方案,这种设置通过牺牲一定的灵活性来换取更高程度的确定性。研究结果表明,对于那些对速度和安全性要求都很高的应用(如金融交易),一个经过严格资格审查的系统可以提供可靠的捷径。研究结论指出,这些捷径的安全程度完全取决于观察路径的完整性——即从变化发生到变化被观察到的过程——并且这条路径必须像检查数据本身一样受到严格检查。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →