Basic concepts

The following concepts are used within the scope of the ocap policy family.

Resource

A resource is a security domain, an internal abstraction within the scope of a resource driver. For example, a resource can be a file, port, or entity. The resource driver determines the type of resource and how operations are performed with this resource.

For a security system and external entities, a resource is perceived as a whole.

Resource driver

A resource driver is an entity that manages resources and access to them.

For example, a file system is a resource driver, and files are the resources that the file system can allow other entities to access.

In the ocap family, the driver is the capability owner for these resources.

Client

A client is an application that uses resources. A client can obtain access to a resource only if it is a capability holder for that resource.

Access right

An access right is the name of an operation or set of operations that can be performed on a resource.

Capability

A capability is a special form of a link that identifies a resource and determines the allowed operations that can be performed on that resource.

A capability, as an internal object of an ocap family instance, combines the following:

The access rights of the holder are stored within the ocap family instance.

Access rights to the resource are checked by the check and checkR security policies. For example, the check may be performed directly when the client calls the resource driver or may be initiated by the driver using the security interface (security statement).

Capability holder

A capability holder is an entity that has been granted access rights to the resource corresponding to the capability.

From the client entity, there is no access to information about whether the resource SID is a capability and which access rights it has to the resource.

A resource driver becomes the holder and owner of a capability during initialization (the init and initR policies). The remaining entities become holders of the capability during the capability transfer process (the transfer, transferR, derive and deriveR policies).

An entity ceases to be a holder after its capability is revoked (the revoke policy).

Capability Derivation Tree (CDT)

The capability derivation tree (CDT) is a hierarchical structure of capability holders. Nodes of the tree contain the capability holders, and the branches correspond to the possibility of revoking a capability from capability holders. The root of the tree contains the resource driver, which is the entity that initialized the capability.

Example

The resource driver Dave initialized the capability for a resource and transferred it to the entity Bob (derive). In turn, the entity Bob transferred this capability to the entity Carol (transfer).

The CDT will look as follows:

     Dave // driver

       |

    +--+--+

    |     |

   Bob  Carol

Page top