Trusted Solaris Operating System - Technical FAQs

Question

I need to provide MAC protection for hundreds of users. How many compartments can Trusted Solaris handle?

Answer

The number of compartments available depends on whether you are using 1-bit or large (multiple-bit) compartment words. (A compartment word is a character string that represents one or more compartment bits in a clearance or label, or information label.) With 1-bit compartment words, there are 256 compartments available.

If you use multiple-bit compartment words, the number of compartments is limitless for all practical purposes, but there are potential issues with disjointedness and hierarchical compartments. These issues can be avoided and/or used to advantage depending on the usage model. For example, setting up a pool of disjoint labels for a class of users ensures that no users will be able to access data at any labels other than their own labels.

WARNING: Since other parts of the Trusted Solaris environment may not scale well to huge numbers, we recommend you seek assistance from Sun when planning large-scale MAC protection. If you are considering large numbers of compartments, please send us your requirements.

Two general methods for providing disjoint labelss to large (more than 256) numbers of users/groups are:

For both methods, you set the number of compartment bits in the labels at a fixed length. These compartment bits must be selected from mutually exclusive sets of compartment bits.

In the large compartment word approach, each labels contains one multiple-bit compartment word and is disjoint from all other labelss with the same classification.

In the 1-bit compartment word method, each labels contains the same number of compartments, which are combined to form a unique, disjoint labels. Compartments may be used in other labelss as well to form other unique combinations.

Example 1

Creating Disjoint labelss Using Multiple-Bit Compartment Words

This example uses a person's Social Security number to define a unique compartment. (For any non-U.S. readers, the Social Security number is a 9-digit number assigned to every citizen by the U.S. government for old-age and survivors insurance.) Each compartment word contains 9 bits selected from nine 10-bit sets. The example uses the set of bits 1-10 to define the user's first Social Security number digit, bits 11-20 to define the second, and so on. The total number of possible compartment combinations is one billion. The bit pattern for a user with the Social Security number 111-22-3333 is shown below.

The corresponding entry in the label_encodings file would be:

name=John Doe; compartments=1 11 21 32 42 53 63 73 83;

Back to Top



Example 2

Creating Disjoint labelss Using 1-Bit Compartment Word Combinations

This example creates a disjoint labels for each department in a large corporation. Each labels has at least four 1-bit compartments, representing operating company, group, division, and department. This scheme allows for 10 operating companies (selected from bits 1-10), 20 groups (from bits 11-30), 20 divisions (from bits 31-50), and 30 departments (from bits 51-80). In total, 10 x 20 x 20 x 30 or 120,000 disjoint labelss can be formed for each classification. The compartments for the labels internal-use-only xyzco abcgroup sales orderentry are shown in the following figure. (Note that internal-use-only is the classification.)

The corresponding compartment definitions in the label encodings file are:

name=xyzco; compartments=4;
...
name=abcgroup; compartments=24;
...
name=sales; compartments=33;
...
name=orderentry; compartments=80;

Note that it is possible to add hierarchy to this type of compartment scheme. For example, adding a second department to a user's clearance would give that user access to information associated with either department.

Related Documentation

See the Sun reference for labels: the Trusted Solaris Label Administration manual.

Applies to Trusted Solaris Release

2.5, 2.5.1, 7, 8