Authentication, authorization, and trust verification are central parts of an access control system. The conditions for granting access in such a system are collected in access policies. Since access conditions are often complex, dedicated languages -- policy languages -- for defining policies are in use. However, current policy languages are unable to express such conditions having privacy of users in mind. With privacy-preserving technologies, users are enabled to prove information to the access system without revealing it. In this work, we present a generic design for supporting privacy-preserving technologies in policy languages. Our design prevents unnecessary disclosure of sensitive information while still allowing the formulation of expressive rules for access control. For that we make use of zero-knowledge proofs (NIZKs). We demonstrate our design by applying it to the TPL policy language, while using SNARKs. Also, we evaluate the resulting ZK-TPL language and its associated toolchain. Our evaluation shows that for regular-sized credentials communication and verification overhead is negligible.
翻译:许可、授权和信任核查是访问控制系统的核心部分。允许进入这种系统的条件在访问政策中收集。由于访问条件往往很复杂,因此使用专用语言 -- -- 政策语言 -- -- 来界定政策,但是,目前的政策语言无法表达这种条件,而且考虑到用户的隐私;使用保护隐私的技术,用户能够向访问系统证明信息,而不必披露。在这项工作中,我们提出了一个通用的设计,用政策语言支持隐私保护技术。我们的设计防止了敏感信息的不必要的披露,同时仍然允许制定明确的访问控制规则。因为我们使用零知识证明(NIZKs),我们用TPL的政策语言来展示我们的设计,同时使用SNARKs。此外,我们评估了由此产生的ZK-TPL语言及其相关工具链。我们的评估表明,对于常规规模的证书通信和核查管理,我们没有多少。