Annotation of 43BSDReno/contrib/isode-beta/doc/manual/q-secdes.tex, revision 1.1

1.1     ! root        1: % run this through LaTeX with the appropriate wrapper
        !             2: 
        !             3: \section{Models}
        !             4: 
        !             5: \subsection{Access Control}
        !             6: 
        !             7: QUIPU uses access control lists to represent access rights; the subjects
        !             8: are DUA's (represented by DN's) and the objects are entries in the DIT,
        !             9: attributes of entries, and the child-of relation for each entry (all represented
        !            10: by DN's, and, in the case of attributes, the attribute type as well).
        !            11: 
        !            12: Furthermore, objects can be {\em containers} that hold other objects. To access
        !            13: an object within an container, it is necessary to have access rights both to
        !            14: the object and the container that holds it. In particular, entries in the DIT
        !            15: are containers. The attributes of the entry and the list of its children
        !            16: are contained within the entry. The children themselves are {\em not} contained
        !            17: within the parent.
        !            18: 
        !            19: The possible levels of access are as follows: {\em none}, {\em detect}, 
        !            20: {\em compare}, {\em read}, {\em add} and {\em write}.
        !            21: 
        !            22: \subsection{Security Domains}
        !            23: 
        !            24: The DIT is a global database, maintained by many separate organisations.  
        !            25: It is possible for the manager of DSA to change its interpretation of the 
        !            26: access control rules, in order to fraudulently obtain access to information
        !            27: held by other DSAs. 
        !            28: 
        !            29: As a result, data in a DSA may need to be protected from the managers of other
        !            30: DSA's, as well as from users. This means that special checks must be performed
        !            31: on DSP operations that come from untrusted DSA's.
        !            32: 
        !            33: In order to decide to trust a DSA, it is necessary to be able to authenticate it
        !            34: and to know that it should be trusted. QUIPU 6.0 can do neither of these, and
        !            35: so assumes that {\em all} DSA's are untrusted.
        !            36: 
        !            37: 
        !            38: \section{Representation in the DIT}
        !            39: 
        !            40: \subsection{Simple Authentication}
        !            41: 
        !            42: DUA's which use simple authentication have their password stored in the
        !            43: {\em userPassword} attribute of their entry.
        !            44: 
        !            45: \subsection{Protected Simple Authentication}
        !            46: 
        !            47: QUIPU represents both passwords (the $K_{A}$'s) and authenticators by the
        !            48: ASN.1 type {\em ProtectedPassword}.
        !            49: 
        !            50: When this structure represents a password,
        !            51: {\em algorithm} indicates which one-way function is being used and
        !            52: {\em password} is the (unencrypted) password. The other fields are
        !            53: not supplied.
        !            54: 
        !            55: When this structure represents an authenticator, {\em password}
        !            56: is the hash value 
        !            57: \begin{math}
        !            58: f_{1}(K_{A}, t_{1}, q_{1})
        !            59: \end{math},
        !            60: where $t_{1}$ is {\em time1}, $q_{1}$ is {\em random1} and 
        !            61: $K_A$ is the password. {\em algorithm} is not supplied.
        !            62: 
        !            63: A relation $\geq$ can be defined on the set of passwords and
        !            64: authenticators as follows : If $a$ is a password, $b$ is an authenticator,
        !            65: and $a$ matches $b$, then $a \geq b$. (Also, $a \geq a$). It can be shown
        !            66: that this relation
        !            67: is a partial ordering of the set, justifying our use of the symbol `$\geq$'.
        !            68: We could have defined an attribute syntax for which the above relation corresponded
        !            69: to `greater than or equal' without violating any of the implied semantics
        !            70: of X.500. However, the DAP {\em compare} operation cannot be used to test 
        !            71: `greater than or equal', only `equal', and we wanted an easy way to ask the
        !            72: Directory to check this relation. To achieve this, we made the relation
        !            73: correspond to `equals' for the {\em ProtectedPassword} attribute syntax.
        !            74: 
        !            75: \tagrind{protected}{ProtectedPassword}{protected-py}
        !            76: 
        !            77: \subsection{Access Control Lists}
        !            78: 
        !            79: The access control list for an entry is held in that entry's
        !            80: {\em accessControlList} attribute.
        !            81: 
        !            82: \subsection{Security Policies}
        !            83: 
        !            84: The {\em entrySecurityPolicy} attribute of an entry is used to indicate the
        !            85: amount of care that should be taken to preserve the integrity and
        !            86: confidentiality of that entry. While the {\em accessControlList} indicates
        !            87: who should have access to the entry, the {\em entrySecurityPolicy} indicates
        !            88: which steps should be taken to prevent unauthorized access.
        !            89: 
        !            90: The {\em dsaDefaultSecurityPolicy} attribute of a DSA indicates which
        !            91: precautions the DSA will take when dealing with entries that do not have
        !            92: an {\em entrySecurityPolicy} attribute.
        !            93: 
        !            94: The {\em dsaPermittedSecurityPolicy} attribute of a DSA indicates which
        !            95: security policies the DSA is prepared to enforce. A DSA may not support a
        !            96: security policy either because it lacks the necessary software or
        !            97: because its manager wishes to forbid use of that policy.
        !            98: 
        !            99: \subsection{Labels}
        !           100: 
        !           101: Security labels are one means of enforcing rule-based access control
        !           102: (sometimes referred to as mandatory access control). QUIPU does not
        !           103: provide mandatory access control in any form.
        !           104: 
        !           105: \section{Distributed Operations}
        !           106: \label{des-auth}
        !           107: 
        !           108: \subsection{(Protected) Simple Authentication}
        !           109: 
        !           110: If the responding DSA holds the initiator's entry, then it may check the
        !           111: password directly. Otherwise, the responder will formulate a DSP compare
        !           112: operation to check it. If the result is {\em true}, the bind will be
        !           113: accepted.
        !           114: 
        !           115: This approach can only be used to check a DAP bind; If it were used in DSP,
        !           116: there would be a danger of livelock. Hence, QUIPU will not attempt to
        !           117: verify the password in a DSP bind.
        !           118: 
        !           119: \subsection{Strong Authentication}
        !           120: 
        !           121: In strong authentication, it is necessary to build a certification path
        !           122: for the originator that will be believed by the recipient. From the standpoint
        !           123: of the protocol, the originator builds the certification path and sends it to
        !           124: the recipient. However, the originator does not know for certain which CA's
        !           125: the recipient trusts, and so cannot be sure of constructing a valid path.
        !           126: 
        !           127: QUIPU solves this problem by treating the presented certification path
        !           128: as a hint. The recipient tries to build an acceptable certification path
        !           129: out of the components of the presented path and the certificates it has cached.
        !           130: 
        !           131: \subsection{Restricting Read Access}
        !           132: 
        !           133: To maintain the confidentiality of data, results from read, search etc. must
        !           134: not be passed to another DSA unless that DSA has rights to them.
        !           135: 
        !           136: QUIPU 6.0 solves this problem in the following way :
        !           137: 
        !           138: When a DUA requests private data via an untrusted DSA, QUIPU checks whether
        !           139: any of the requested information can be seen by the DUA but not by the DSA.
        !           140: If it can, the security error `inappropriate authentication' is sent to
        !           141: the untrusted DSA. (Otherwise, the data can be safely sent over DSP).
        !           142: 
        !           143: QUIPU DSAs will understand this error to mean that they are not trusted, and
        !           144: pass a referral back to the DUA. (Other DSA's may behave differently ---
        !           145: X.500 ought to be clarified in this area).
        !           146: 
        !           147: The DUA will chase the referral, and repeat its query directly to the DSA
        !           148: holding the data. The DSA will then give the DUA the results.
        !           149: 
        !           150: \subsection{Restricting Write Access}
        !           151: 
        !           152: To maintain the integrity of the data, requests to modify data over DSP must
        !           153: not be accepted unless they are signed or can be performed by anyone.
        !           154: 
        !           155: QUIPU 6.0 solves this problem as above, by returning a security error.
        !           156: When strong authentication is added to QUIPU, modify requests will be
        !           157: accepted over DSP provided that they are signed by the DUA.
        !           158: 
        !           159: As an optimisation, QUIPU DSA's never chain modify requests unless they are
        !           160: signed. (The operation will probably be rejected, so it's quicker to
        !           161: give a referral to the DUA immediately, rather than trying to chain).
        !           162: 
        !           163: \subsection{Caching}
        !           164: \label{dsp-acl}
        !           165: 
        !           166: DSA's try to improve performance by caching the results of DSP operations.
        !           167: Caching interferes with access control in two ways :
        !           168: 
        !           169: \begin{enumerate}
        !           170: \item
        !           171: The cached data may be incomplete.
        !           172: 
        !           173: The DUA that requested it may not have had
        !           174: rights to all the data, or the DSA that held the data may not have been
        !           175: prepared to send all of it over DSP.
        !           176: \item
        !           177: Caching can prevent access control.
        !           178: 
        !           179: The original data may have been subject to access controls which the holder of
        !           180: the cache is unaware of.
        !           181: \end{enumerate}
        !           182: 
        !           183: QUIPU has a special solution that only works between QUIPU DSA's (using the
        !           184: QUIPU DSP application context) : The ACL is sent along with the data across
        !           185: DSP.
        !           186: 
        !           187: QUIPU DSAs will only cache data if they have the ACL to go with it. This ensures
        !           188: that the same access controls will be applied to a cache as to the master copy.
        !           189: It also enables a DSA to tell if the cache is complete. The required information
        !           190: is checked against the ACL in the cache; if any of it is not publicly readable,
        !           191: then it might not have been returned over DSP and the cache cannot be used.
        !           192: 
        !           193: \subsection{Replicated Data}
        !           194: 
        !           195: The mechanism originally envisaged for replicating data was ``reliable ROS''
        !           196: --- Remote operations carried by X.400(88). DSA's could use the security
        !           197: mechanisms in X.400(88) to provide both integrity and confidentiality
        !           198: for the EDB updates.
        !           199: This would make the slave updates the only place in QUIPU where cryptographic 
        !           200: techniques are used to provide confidentiality, as opposed to integrity. The
        !           201: provision of confidentiality here is justified in view of the sensitivity of
        !           202: entire entry data blocks; many of them will contain user's passwords, for
        !           203: example.
        !           204: 
        !           205: However, X.400(88) is not yet widespread, and hence cannot be used as the
        !           206: primary means of replicating data. In the interim, the {\em getEDB} mechanism
        !           207: is used. This does provides neither confidentiality nor integrity, and is
        !           208: not even subject to access control (as DSP is unauthenticated).
        !           209: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.