|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.