docs/diploma

changeset 277:8a25b6262497

minor changes; added todos
author meillo@marmaro.de
date Thu, 15 Jan 2009 15:44:31 +0100
parents ce4d5b39e554
children cab23cc3b437
files thesis/tex/0-preface.tex thesis/tex/4-MasqmailsFuture.tex thesis/tex/5-Improvements.tex
diffstat 3 files changed, 28 insertions(+), 17 deletions(-) [+]
line diff
     1.1 --- a/thesis/tex/0-preface.tex	Thu Jan 15 15:27:41 2009 +0100
     1.2 +++ b/thesis/tex/0-preface.tex	Thu Jan 15 15:44:31 2009 +0100
     1.3 @@ -14,9 +14,14 @@
     1.4  
     1.5  << have text by oliver here? >> %TODO
     1.6  
     1.7 +usage examples:
     1.8  
     1.9 +debian popcon stats
    1.10  
    1.11 -Audience:
    1.12 +<< hikernet >>
    1.13 +
    1.14 +
    1.15 +\subsubsection*{Audience}
    1.16  
    1.17  This document is targeted for \masqmail\ users and for people interested in mail systems in general.
    1.18  Security problems in electronic mail, \unix\ and the C programming language will also be discussed.
     2.1 --- a/thesis/tex/4-MasqmailsFuture.tex	Thu Jan 15 15:27:41 2009 +0100
     2.2 +++ b/thesis/tex/4-MasqmailsFuture.tex	Thu Jan 15 15:44:31 2009 +0100
     2.3 @@ -53,7 +53,7 @@
     2.4  	\begin{center}
     2.5  		\includegraphics[scale=0.75]{img/mta-channels.eps}
     2.6  	\end{center}
     2.7 -	\caption{Incoming and outgoing channels required}
     2.8 +	\caption{Required incoming and outgoing channels}
     2.9  	\label{fig:mta-channels}
    2.10  \end{figure}
    2.11  
    2.12 @@ -159,6 +159,7 @@
    2.13  
    2.14  \postfix\ for example has a \texttt{always\_bcc} feature, to send a copy of every outgoing mail to a definable recipient. At least this functionality should be given, although a more complete approach is preferable.
    2.15  
    2.16 +<< refer to SOX >> %fixme
    2.17  
    2.18  
    2.19  
    2.20 @@ -256,6 +257,7 @@
    2.21  
    2.22  Hence, aspiration for modularity, by compartmentalization, improves the overall quality and function of the software. It can be seen as an architectural requirement for a secure and modern \MTA.
    2.23  
    2.24 +%fixme: explain: why are compartments and interfaces so good?
    2.25  
    2.26  
    2.27  
    2.28 @@ -464,21 +466,7 @@
    2.29  
    2.30  \person{Wheeler}'s program \name{sloccount} calculates following estimations for \masqmail's code base as of version 0.2.21 (excluding library code):
    2.31  
    2.32 -\begin{quote}
    2.33 -{\footnotesize
    2.34 -\begin{verbatim}
    2.35 -Total Physical Source Lines of Code (SLOC)                = 9,041
    2.36 -Development Effort Estimate, Person-Years (Person-Months) = 2.02 (24.22)
    2.37 - (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
    2.38 -Schedule Estimate, Years (Months)                         = 0.70 (8.39)
    2.39 - (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
    2.40 -Estimated Average Number of Developers (Effort/Schedule)  = 2.89
    2.41 -Total Estimated Cost to Develop                           = $ 272,690
    2.42 - (average salary = $56,286/year, overhead = 2.40).
    2.43 -SLOCCount, Copyright (C) 2001-2004 David A. Wheeler
    2.44 -\end{verbatim}
    2.45 -}
    2.46 -\end{quote}
    2.47 +\codeinput{input/masqmail-sloccount.txt}
    2.48  
    2.49  The development cost is not relevant for a \freesw\ project with volunteer developers, but the development time is. About 24 man-months are estimated. The current code base was written almost completely by \person{Oliver Kurth} within four years, in his spare time. This means he needed around twice as much time. Of course, he programmed as a volunteer developer, not as employee with eight work-hours per day.
    2.50  
     3.1 --- a/thesis/tex/5-Improvements.tex	Thu Jan 15 15:27:41 2009 +0100
     3.2 +++ b/thesis/tex/5-Improvements.tex	Thu Jan 15 15:44:31 2009 +0100
     3.3 @@ -62,11 +62,13 @@
     3.4  Several ways to restrict access are available. The most simple one is restrictiction by the \NAME{IP} address. No extra complexity is added this way, but static \NAME{IP} addresses are mandatory. This kind of restriction may be enabled using the operating system's \path{hosts.allow} and \path{hosts.deny} files. To allow only connections to port 25 from localhost or the local network \texttt{192.168.100.0/24} insert the line ``\texttt{25: ALL}'' into \path{hosts.deny} and ``\texttt{25: 127.0.0.1, 192.168.100.}'' into \path{hosts.allow}.
     3.5  
     3.6  If static access restriction is not possible, for example if mail from locations with changing \NAME{IP} addresses wants to be accepted, some kind of authentication mechanism is required. Three common kinds exist:
     3.7 +
     3.8  \begin{enumerate}
     3.9  	\item \SMTP-after-\NAME{POP}: uses authenication on the \NAME{POP} protocol to permit incoming \SMTP\ connections for a limited time afterwards.
    3.10  	\item \SMTP authentication: is an extension to \SMTP. Authentication can be requested before mail is accepted.
    3.11  	\item Certificates: confirm the identity of someone.
    3.12  \end{enumerate}
    3.13 +
    3.14  The first mechanism requires a \NAME{POP} (or \NAME{IMAP}) server running on the same host (or a trusted one), to enable the \SMTP\ server to use the login dates on the \NAME{POP} server. This is a common practice used by mail service providers, but is not adequate for the environments \masqmail\ is designed for.
    3.15  
    3.16  Certificate based authentication, like provided by \NAME{TLS}, suffers from the overhead of certificate management. But \NAME{TLS} provides encryption too, so is useful anyway.
    3.17 @@ -78,6 +80,8 @@
    3.18  \hfill\cite[page 44]{dent04}
    3.19  \end{quote}
    3.20  
    3.21 +
    3.22 +Compare static with dynamic authentication: pros and cons; usecases: when to use what; how could this be covered by architecture (e.g. smtp submission).
    3.23  %either by
    3.24  %- network/ip address
    3.25  %	easiest: restricting by static IP addresses (Access control via hosts.allow/hosts.deny)
    3.26 @@ -96,9 +100,20 @@
    3.27  
    3.28  split masqmail into two instances
    3.29  
    3.30 +\begin{verbatim}
    3.31 +     +--------+ ext ||||| int +--------+
    3.32 +---> |stripped|---> inter --->|normal  |
    3.33 +     |masqmail|     pos       |masqmail|
    3.34 +     +--------+     |||||     +--------+
    3.35 +\end{verbatim}
    3.36  
    3.37  
    3.38  
    3.39 +\subsection{Spam and malware handling}
    3.40 +
    3.41 +discuss the MTA->scanner->MTA approach
    3.42 +
    3.43 +
    3.44  
    3.45  \subsection{Bug fixes}
    3.46  
    3.47 @@ -173,6 +188,9 @@
    3.48  \sendmail, \exim, \qmail, and \masqmail\ all use at least two files to store one message in the queue: one file contains the message body, another the envelope and header information. The one containing the mail body is not modified at all. \postfix\ takes a different approach in storing queued messages in an internal format within one file. \person{Finch} takes yet another different approach in suggesting to store the whole queue in one single file with pointers to separating positions \cite{finchFIXME}.
    3.49  %fixme: check, cite, and think about
    3.50  
    3.51 +%fixme: discuss: filesystem vs. database
    3.52 +
    3.53 +%fixme: what about the ``rule of repair''?
    3.54  
    3.55  
    3.56  \subsubsection*{Sanitize mail}