A Java Framework for Security Policy Representation

Tim Fraser -- 16 November 1996

The SPRF package

This page describes the SPRF java package, which implements a framework for security policy representation. This framework is basically a collection of classes that are useful for representing security policy statements as data structures. The classes also contain methods which may be used to evaluate policy decisions based on these structures. The most primitive classes in the framework may be used to represent mathematical concepts such as sets and mappings. These are used as the basis for more specialized classes which may be used to represent higher-level concepts such as access control lists, labels, and rules. At its highest level, the framework provides classes which represent a variety of complete policy-forms, including (but not limited to) types of discretionary and non-discretionary access control.

The functionality provided by this framework might also be provided by a language and interpreter designed specifically for policy representation. (In fact, the language-based approach seems to be the more common solution.) Both approaches provide the same expressive power. It is likely that a language with the same capabilities as this framework would take much longer to develop, however, since it would require the development of a new interpreter as well as a language. This framework uses the existing Java interpreter to evaluate its policy decisions. This framework is also easily extensible, due to its object-oriented nature.

The purpose of the framework is to provide a means for representing a wide variety of application-specific policies. It is intended to be used as a component of trusted operating systems or policy-enforcing applications with configurable security policy decision functions (SPDFs).

The Need for Configurable SPDFs

Traditional operating systems (OSs) have SPDFs that are not configurable. They are only capable of enforcing one security policy - the policy is hard-coded into the SPDF itself. Unfortunately, different organizations have different information security needs. Each organization needs an OS which is capable of enforcing its own unique security policy, and an OS which can only enforce one policy cannot satisfy them all.

The answer to this problem is to develop OSs with SPDFs which may be configured to enforce whatever organization-specific security policy is necessary. [1] This configurability is made possible by SPDFs which take descriptions of policies as input, and interpret them to make their policy decisions. This ability to take a policy as input requires some sort of interpretable representation of security policy. This framework may be used for just this sort of policy representation.

Uses for this framework

This framework might be be useful in a variety of applications. As indicated by the above discussion, it could be employed to describe policies interpreted by the SPDFs of OSs and policy-enforcing applications. Since its classes encapsulate methods which can evaluate policy decisions, the framework already provides most of the interpretation and evaluation functionality normally required of SPDFs. Conceivably, the framework could be used as the basis for a number of interesting application-specific policies, ranging from access control for file servers to describing the resources available to scripts executing in sandboxes.

Expressing policies in a program-like interpretable form also allows policy descriptions to be communicated between applications. For example, a process submitting a cryptographic key to a key server might accompany it with a short description of the policy governing the key's release to other processes. In a similar vein, the ability to send policy descriptions between nodes in a distributed system might be exploited by security management tools to reconfigure remote systems.

Resources Available at this Site

A list of SPRF-related documents is provided below. It includes the API documentation for the SPRF package, which was generated with javadoc from the actual source code. It also includes the framework project proposal, initial architecture, and final thesis. These documents discuss the structure and uses of the framework in detail.

This is followed by a list of demos. These are intended to demonstrate the usefulness of the framework in a variety of situations. Only the NDAC and DSP demo is fully implemented at this time. It provides a simple SPDF simulator that allows a user to play with a sample NDAC and DSP policy. Fortunately, this is the most interesting of the three proposed demo policies.

Papers and Docs

Demos and Distribution


Back to the SSRG Security page...

Please direct comments and questions to Tim Fraser (tfraser@cs.uiuc.edu).


notes

[ 1 ] Center for Information Systems Security (CISS). Department of Defense Goal Security Architecture Version 3.0. (30 September 1995).