Page 203 - DCAP403_Operating System
P. 203

Operating System




                    Notes          2.   Delete a capability.

                                   3.   Restrict the rights in a capability, producing a less-privileged version,
                                   4.   Pass a capability as a parameter to a procedure.
                                   5.   Transmit a capability to another user in the system.
                                   Thus, a program can execute direct control over the movement of capabilities and can share
                                   capabilities, and therefore, objects, with other programs and users.
                                   It is possible for a user to have several capability lists. One list will generally be the master
                                   capability list containing capabilities for secondary lists, and so on. This structure is similar to a
                                   multi-level directory system, but, while directories address only files, capabilities address objects

                                   of many types.
                                   Manage the access control matrix is to store it by rows. These are called capabilities. In the
                                   example in Table 10.3, Bob’s capabilities would be as shown in Table 10.4.

                                                          Table 10.3: Naive Access Control Matrix
                                                  Operating System  Accounts Program  Accounting Data  Audit Trail
                                     Sam               rwx              rwx              rw            r
                                     Alice              x                x               rw            –
                                     Bob                rx               r               r             r

                                   The strengths and weaknesses of capabilities are more or less the opposite of ACLs. Runtime

                                   security checking is more efficient, and you can do delegation without much difficulty: Bob could

                                   create a certificate saying “Here is my capability, and I hereby delegate to David the right to read



                                   file 4 from 9 A.M. to 1 P.M.; signed Bob.” On the other hand, changing a file’s status can suddenly

                                   become more tricky, as it can be diffi cult to find out which users have access. This can be tiresome
                                   when investigating an incident or preparing evidence of a crime.
                                                                Table 10.4: A Capability
                                         User     Operating System  Accounts Program  Accounting Data  Audit Trail
                                         Bob            rx               r                r            r

                                   There were a number of experimental implementations in the 1970s, which were rather like

                                   file passwords; users would get hard-to-guess bit strings for the various read, write, and other
                                   capabilities to which they were entitled. It was found that such an arrangement could give very
                                   comprehensive protection. It was not untypical to find that almost all of an operating system

                                   could run in user mode, rather than as supervisor, so operating system bugs were not security
                                   critical. (In fact, many operating system bugs caused security violations, which made debugging
                                   the operating system much easier.)

                                   The IBM AS/400 series systems employed capability-based protection, and enjoyed some
                                   commercial success. Now capabilities are making a comeback in the form of public key certifi cates.

                                   For now, think of a public key certificate as a credential signed by some authority, which declares
                                   that the holder of a certain cryptographic key is a certain person, a member of some group, or the
                                   holder of some privilege.

                                   As an example of where certificate-based capabilities can be useful, consider a hospital. If you

                                   implemented a rule stating “a nurse will have access to all the patients who are on her ward, or
                                   who have been there in the last 90 days,” naively, each access control decision in the patient record

                                   system would require several references to administrative systems, to find out which nurses
                                   and which patients were on which ward, when. This means that a failure of the administrative
                                   systems can now affect patient safety much more directly than was previously the case, which is



          196                              LOVELY PROFESSIONAL UNIVERSITY
   198   199   200   201   202   203   204   205   206   207   208