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

1.1     ! root        1: % Run this file through LaTex with the appropriate wrapper.
        !             2: 
        !             3: \chapter{Security Management}
        !             4: 
        !             5: \section{Configuration}
        !             6: 
        !             7: \subsection{Compilation Options}
        !             8: 
        !             9: The configuration file \file{h/config.h} in the ISODE source tree can be edited
        !            10: to select various options. These are compile-time options --- QUIPU must be
        !            11: re-compiled and re-installed before they take effect.
        !            12: 
        !            13: To select an option, add a line like this :
        !            14: \begin{quote}\begin{verbatim}
        !            15: #define <option_name>
        !            16: \end{verbatim}\end{quote}
        !            17: 
        !            18: (Instead of $<$option\_name$>$, type the name of the option that you want).
        !            19: 
        !            20: If there is a line explicitly cancelling the option that you have selected,
        !            21: it must be removed. Such lines look like this :
        !            22: \begin{quote}\begin{verbatim}
        !            23: #undef <option_name>
        !            24: \end{verbatim}\end{quote}
        !            25: 
        !            26: The available options are as follows :
        !            27: 
        !            28: \begin{describe}
        !            29: \item [NO\_STATS]
        !            30: 
        !            31: This option results in a DSA that doesn't record any usage and
        !            32: audit information. From the standpoint of security, it is advisable not
        !            33: to select this option. Audit logs are very useful for detecting and tracing
        !            34: attempts to break the security of the system.
        !            35: 
        !            36: \item[HAVE\_PROTECTED]
        !            37: 
        !            38: This option results in a DSA that can perform protected simple authentication.
        !            39: \item[HAVE\_RSA]
        !            40: 
        !            41: This option results in a DSA that can perform strong authentication. 
        !            42: \end{describe}
        !            43: 
        !            44: To build a DSA that can perform strong or protected simple authentication,
        !            45: you will need additional files that are not part of the ISODE.
        !            46: These files (the ``QUIPU security upgrade'') are distributed by
        !            47: University College London. For further information, contact :
        !            48: 
        !            49: \begin{verse}
        !            50: Steve Kille \\
        !            51: Department of Computer Science \\
        !            52: University College London \\
        !            53: Gower Street, \\
        !            54: London, \\
        !            55: England 
        !            56: \end{verse}
        !            57: 
        !            58: \begin{verse}
        !            59: Internet: [email protected]
        !            60: \end{verse}
        !            61: 
        !            62: \subsection{Quipu Userid}
        !            63: 
        !            64: The DSA should not run under the userid of the super-user ({\em root}). The
        !            65: reason for this is that no application should be run as root unless it is
        !            66: absolutely necessary, just in case an undetected bug causes it to malfunction.
        !            67: (A process running as an ordinary user will be halted if it starts to
        !            68: misbehave; One running as root might carry on and delete important files, for
        !            69: example).
        !            70: 
        !            71: Ideally, the DSA should be assigned a special userid to run under. (Called,
        !            72: for example, ``quipu''). If this is not possible, it should run under the
        !            73: userid of the DSA manager. Whichever option is taken, we shall henceforth refer
        !            74: to the selected userid as ``quipu'' in the documentation.
        !            75: 
        !            76: \subsection{File Permissions}
        !            77: 
        !            78: The EDB files are where QUIPU stores the contents of the Directory. As these
        !            79: files potentially contain sensitive information, they should be readable and
        !            80: writable only by the quipu userid.
        !            81: 
        !            82: There are two log files; one for debugging information and one for audit.
        !            83: Both of these files should be readable and writable only by the quipu userid.
        !            84: There is a potential problem here, in that ISODE's logging code usually makes
        !            85: log files writable by everybody. To be on the safe side, make a separate
        !            86: directory for QUIPU's logs (\file{/etc/isode/quipu-logs}, for example). Make this
        !            87: directory only accessible by the quipu userid, and change the tailoring
        !            88: parameter {\em logdir} so that the logs are written there.
        !            89: 
        !            90: \section{Discretionary Access Control}
        !            91: 
        !            92: The principles of discretionary access control are explained in the
        !            93: Part II of this Manual. This section gives guidelines on setting the access
        !            94: control lists for entries in the DIT.
        !            95: 
        !            96: \subsection{What must be Publicly Readable}
        !            97: 
        !            98: Some attributes are used by the Directory itself for routing and other
        !            99: purposes. If these attributes are not publicly readable (and hence readable
        !           100: by all DSA's) then the Directory's internal communications may fail. 
        !           101: If a DUA gives messages such as ``Unavailable'' this is one possible cause.
        !           102: Note that there are many other possible causes of such failures --- Network
        !           103: congestion or a machine being down is the most likely explanation.
        !           104: 
        !           105: The following attributes ought to be publicly readable:
        !           106: 
        !           107: \begin{itemize}
        !           108: \item
        !           109: masterDSA
        !           110: \item
        !           111: slaveDSA
        !           112: \item
        !           113: presentationAddress
        !           114: \item
        !           115: userCertificate
        !           116: \item
        !           117: treeStructure
        !           118: \end{itemize}
        !           119: 
        !           120: The {\em userPassword} attribute ought to be comparable by everybody, but not
        !           121: readable.
        !           122: 
        !           123: \section{Audit}
        !           124: 
        !           125: \subsection{Enabling Auditing}
        !           126: 
        !           127: The {\em stats} parameter in the {\em quiputailor} file controls how much audit
        !           128: information is kept. It is advisable to enable recording of audit events at 
        !           129: levels {\em notice}, {\em exceptions}, and {\em fatal}.
        !           130: 
        !           131: \subsection{Relating Events to Users}
        !           132: 
        !           133: Most events in the usage log contain an {\em association descriptor} instead
        !           134: of the name of the user who caused the event. An association descriptor is
        !           135: a (small) number which identifies a connection to QUIPU. (It's rather like
        !           136: knowing which terminal line a command came in on). To discover the user name,
        !           137: it is necessary to scan back through the log to find the record for the start
        !           138: of the association. This will contain the name of the user and how they
        !           139: authenticated themselves.
        !           140: 
        !           141: \subsection{Format of Audit Records}
        !           142: 
        !           143: Each record in the log file is formatted as follows :-
        !           144: 
        !           145: \begin{quote}\begin{verbatim}
        !           146: <AuditRecord> ::= <month> "/" <day> <time> <process> 
        !           147:                   <pid> "(" <userid> ")" <Event>
        !           148: \end{verbatim}\end{quote}
        !           149: 
        !           150: \begin{describe}
        !           151: \item [time:]
        !           152: The time of the event in hh:mm:ss format.
        !           153: \item [process:]
        !           154: The name of the program (quipu).
        !           155: \item [pid:]
        !           156: The process id of the DSA.
        !           157: \item [userid:]
        !           158: The id of the user who started the DSA running. It is {\em not} the id
        !           159: of the DUA which caused the event!
        !           160: \item [Event:]
        !           161: is the rest of the message. The following sections describe most of the
        !           162: common messages.
        !           163: \end{describe}
        !           164:        
        !           165: 
        !           166: \subsection{Start of an Association}
        !           167: 
        !           168: \begin{quote}\begin{verbatim}
        !           169: <BindEvent> ::= "Bind" "(" <Integer> ")"
        !           170:                  "(" <AuthType> ")" 
        !           171:                  ":" <DN>
        !           172: <AuthType> ::= "none" | "simple" | "protected" | "strong"
        !           173: \end{verbatim}\end{quote}
        !           174: 
        !           175: For example :
        !           176: 
        !           177: \begin{quote}\begin{verbatim}
        !           178: Bind (4) (simple): c=GB@o=University College 
        !           179:          London@ou=Computer Science@cn=Steve Kille
        !           180: \end{verbatim}\end{quote}
        !           181: 
        !           182: This means that Steve Kille has started using association descriptor 4, and
        !           183: proved his identity using simple authentication (i.e. a password).
        !           184: 
        !           185: \subsection{End of an Association}
        !           186: 
        !           187: \begin{quote}\begin{verbatim}
        !           188: <UnbindEvent> ::= "Unbind" "(" <Integer> ")" <WhoBy> 
        !           189:       ":" <DN> <WhoBy> ::= "(by this)" | "(by that)"
        !           190: \end{verbatim}\end{quote}
        !           191: 
        !           192: For example :
        !           193: 
        !           194: \begin{quote}\begin{verbatim}
        !           195: Unbind (4) (by that): c=GB@o=University College
        !           196:            London@ou=Computer Science@cn=Steve Kille
        !           197: \end{verbatim}\end{quote}
        !           198: 
        !           199: This means that Steve Kille's DUA has disconnected from the DSA, and descriptor
        !           200: 4 is left free for use by someone else. The "(by that)" means that the DUA,
        !           201: rather than the DSA, decided to close the connection.
        !           202: 
        !           203: \subsection{DAP Operation}
        !           204: 
        !           205: \begin{quote}\begin{verbatim}
        !           206: <DAPOperationEvent> ::= <OpType> "(" <Integer> ")"
        !           207:                          ":" <DN>
        !           208: <OpType> ::= "Read" | "Search" | "List" | "Compare"
        !           209: \end{verbatim}\end{quote}
        !           210: 
        !           211: For example :
        !           212: 
        !           213: \begin{quote}\begin{verbatim}
        !           214: Read (4): c=gb@o=Nottingham University
        !           215: \end{verbatim}\end{quote}
        !           216: 
        !           217: This means that whoever is using association 4 (Steve Kille in this example)
        !           218: has read the entry for Nottingham University.
        !           219: 
        !           220: \subsection{DAP Result}
        !           221: 
        !           222: \begin{quote}\begin{verbatim}
        !           223: <DAPResultEvent> ::= "Result sent" "(" <Integer> ")"
        !           224: <DAPErrorEvent>  ::= "Error sent"  "(" <Integer> ")"
        !           225: \end{verbatim}\end{quote}
        !           226: 
        !           227: Each operation will normally be answered by either a result or an error.
        !           228: 
        !           229: \subsection{Chaining}
        !           230: 
        !           231: \begin{quote}\begin{verbatim}
        !           232: <ChainingEvent> ::= "Chain" "(" <Integer> ")"
        !           233: \end{verbatim}\end{quote}
        !           234: 
        !           235: This means that the DSA has decided to contact another DSA in order to
        !           236: perform the operation received previously.
        !           237: 
        !           238: \subsection{Other Events}
        !           239: 
        !           240: The are many other messages that can be written to the audit log. The text
        !           241: messages should be self-explanatory.

unix.superglobalmegacorp.com

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