Abstract
We introduce the concept of a security
language,
used to express security statements in a distributed system. Most existing security languages encode security statements as schematized data structures, such as ACLs and X.509 certificates. In contrast, Binder
is an open logic-based security language that encodes security statements as components of communicating distributed logic programs. Binder programs can be more expressive than statements in standard security languages, and the meanings of standard security constructs and operations such as certificates and delegation are simplified and clarified by their formulation in Binder. Translation into Binder has been used to explore the design of other new and existing security languages.
1![](data:image/png;base64,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)
. Security languages1
Access control decisions in a loosely-coupled distributed environment
are driven by distributed security statements. As shown in the example in Figure 1, these statements can be stored in a variety of places: in signed
certificates that can flow among the parties; in
policies local to the services; in
access control lists (ACLs) associated
with the individual resources; and perhaps elsewhere. When a client requests an operation on a resource, the service controlling that resource—here, service S controls resource R—uses the security statements available to it to determine whether to grant or deny the requested access. In this example, service S would presumably allow John Smith to read resource R.
Traditional systems store security statements in a variety of data structures. The certificate shown here might be an X.509 certificate that attests to an identity [12]; the local policy might enumerate the X.509 roots that the service will trust to certify identities; and the ACL might be an ordered list of pairs that map users’ identities to their access rights. A predefined decision procedure matches these data structures against the identity of any client requesting an operation, thereby verifying the client’s access rights.
However these security statements are encoded, they must necessarily obey some formal schema. We can say that this schema and its accompanying decision procedure define a security language, and that our certificates, policies, ACLs, etc., are formed from security statements written in our security language and interpreted by its decision procedure. For example, since X.509 specifies the form and meaning of X.509 certificates, X.509 is a security language. SDSI and SPKI are other security languages, as are PolicyMaker and KeyNote, and so on.
Many existing security languages are designed for very specific domains—like X.509, meant to control access to an X.500 database—and each can express some statements more readily than others. X.509 excels at building chains of Certification Authorities (CAs). SDSI lets us define and refer to principals and groups of principals (e.g., the group of all company employees). PolicyMaker is a language for encoding a service’s local security policy. Inevitably, in any given domain, some security languages are more expressive than others.
If we are designing a closed system with known requirements, we may be able to choose a minimalist security language, closely matching its design to our needs. Conversely, if we are designing an open system that will be used in unexpected ways and that will evolve in unknown directions, then it might be better to make our language more expressive than currently needed.
This paper presents the design of a new logic-based security language for open systems—called Binder—that is intended to be more expressive than most existing security languages, while remaining practical. Binder does not directly implement higher-level security concepts like delegation, but provides flexible low-level programming tools to do so. Our experience with Binder suggests that logic programming can be a useful foundation for a practical security language, and that it can also help us explore new and existing security languages. The section below on related work draws more specific comparisons with existing security languages.