<?xml version="1.0" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.de.xsl"?>
<modulesynopsis metafile="mod_auth_digest.xml.meta">
	<name>mod_auth_digest</name>
	<description>Nutzerauthentifizierung mit der MD5
    Digest-Authentifizierung.</description>
	<status>Experimentell</status>
	<sourcefile>mod_auth_digest.c</sourcefile>
	<identifier>auth_digest_module</identifier>
	<summary>
		<p>Dieses Modul implementiert die HTTP Digest-Authentifizierung. 
    Da sie noch nicht ausf&uuml;hrlich getestet wurde, befindet sie sich noch
    in einem experimentellen Zustand.</p>
	</summary>
	<seealso>
		<directive module="core">AuthName</directive>
	</seealso>
	<seealso>
		<directive module="core">AuthType</directive>
	</seealso>
	<seealso>
		<directive module="core">Require</directive>
	</seealso>
	<seealso>
		<directive module="core">Satisfy</directive>
	</seealso>
	<section id="using">
		<title>Die Digest-Authentifizierung</title>
		<p>Die Verwendung der MD5 Digest-Authentifizierung ist sehr einfach.
    Die Authentifizierung wird mit den Direktiven 
    <code>AuthType Digest</code> und
    <directive module="mod_auth_digest">AuthDigestFile</directive> 
    und nicht mit den Direktiven <code>AuthType Basic</code> und 
    <directive module="mod_auth">AuthUserFile</directive> eingerichtet. 
    Die <directive module="mod_auth">AuthGroupFile</directive>-Direktive 
    wird durch die <directive module="mod_auth_digest"
	>AuthDigestGroupFile</directive>-Direktive ersetzt. Ferner werden
    <directive module="mod_auth_digest">AuthDigestDomain
    </directive>-Anweisungen mit den URI(s) f&uuml;r die gesch&uuml;tzten
	Bereiche angegeben (mindestens ein URI f&uuml;r das Dokumentverzeichnis).</p>
		<p>Eine entsprechende Benutzerdatei im Textformat kann mit dem Programm
    <a href="../programs/htdigest.html">htdigest</a> eingerichtet werden.</p>
		<example><title>Beispiel:</title>
      &lt;Location /private/&gt;<br />
      <indent>
        AuthType Digest<br />
        AuthName "private area"<br />
        AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
        AuthDigestFile /web/auth/.digest_pw<br />
        Require valid-user<br />
      </indent>
      &lt;/Location&gt;
    </example>
		<note>
			<title>Hinweis</title>
			<p>Bei der Digest-Authentifizierung sind die Passw&ouml;rter sicherer
    als bei der Basic-Authentifizierung, allerdings muss der Browser dieses 
    Verfahren unterst&uuml;tzen. Seit November 2002 unterst&uuml;tzen 
    die wichtigsten Browser die Digest-Authentifizierung, unter anderem 
    die Browser <a href="http://www.opera.com/">Opera</a>, <a
	href="http://www.microsoft.com/windows/ie/">MS Internet Explorer</a> (nicht
	in Verbindung mit einer Abfragezeichenfolge), <a
	href="http://www.w3.org/Amaya/">Amaya</a>, <a
	href="http://www.mozilla.org">Mozilla</a> und <a
	href="http://channels.netscape.com/ns/browsers/download.jsp">Netscape</a> ab
	Version 7. Da die Digest-Authentifizierung noch nicht soweit verbreitet wie
	die Basic-Authentifizierung ist, sollte sie nur in &uuml;berschaubaren
	Umgebungen verwendet werden.</p>
		</note>
	</section>
	<directivesynopsis>
		<name>AuthDigestFile</name>
		<description>Standort der Textdatei mit der Benutzerliste und den
            verschl&uuml;sselten Passw&ouml;rtern</description>
		<syntax>AuthDigestFile <var>Dateipfad</var></syntax>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Mit der <directive>AuthDigestFile</directive>-Direktive wird der
    Name der Textdatei mit der Benutzerliste und den verschl&uuml;sselten 
    Passw&ouml;rtern f&uuml;r die Digest-Authentifizierung angegeben. Als 
    <var>Dateipfad</var> wird der absolute Pfad zur Benutzerdatei
	angegeben.</p>
			<p>Diese Datei verwendet ein spezielles Format und kann mit dem Programm
    <a href="../programs/htdigest.html">htdigest</a> aus dem Unterverzeichnis 
    <code>support/</code> der Apache-Distribution erstellt werden.</p>
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestGroupFile</name>
		<description>Name der Textdatei mit der Gruppenliste</description>
		<syntax>AuthDigestGroupFile <var>Dateipfad</var></syntax>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Mit der <directive>AuthDigestGroupFile</directive>-Direktive wird 
    der Name der Textdatei mit der Gruppenliste und deren Mitgliedern 
    (Benutzernamen) angegeben. Der <var>Dateipfad</var> ist der absolute 
    Pfad zur Gruppendatei.</p>
			<p>Jede Zeile der Gruppendatei enth&auml;lt einen Gruppennamen auf den 
    nach einem Doppelpunkt die durch Leerstellen voneinander getrennte 
    Liste der Benutzernamen folgt.
    Ein Beispiel:</p>
			<example>mygroup: bob joe anne</example>
			<p>Beachten Sie, dass eine Suche in umfangreichen Textdateien 
    <em>nicht</em> effektiv ist.</p>
			<note type="warning">
				<title>Achtung:</title>
				<p>Achten Sie darauf, dass die <directive>AuthGroupFile</directive>-Datei
    au&szlig;erhalb des Dokumentverzeichnisses des Webservers gespeichert wird. 
    Legen Sie diese Datei <em>nicht</em> im zu sch&uuml;tzenden Verzeichnis 
    ab, da die Clients sie sonst herunterladen k&ouml;nnen.</p>
			</note>
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestQop</name>
		<description>Legt den f&uuml;r die Authentifizierung zu verwendenden
		    Algorithmus fest.</description>
		<syntax>AuthDigestQop none|auth|auth-int [auth|auth-int]</syntax>
		<default>AuthDigestQop auth</default>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Die <directive>AuthDigestQop</directive>-Direktive defininiert die
     <dfn>Quality-of-Protection</dfn> f&uuml;r den Authentifizierungsalgorithmus.
     Bei der Voreinstellung <code>auth</code> werden nur Benutzername und 
     Passwort &uuml;berpr&uuml;ft. Bei der Einstellung <code>auth-int</code> findet 
     bei der Authentifizierung zus&auml;tzlich eine Integrit&auml;tspr&uuml;fung
	 der Daten statt. Hierbei wird ein MD5-Hash &uuml;ber die Daten gebildet und
	 gepr&uuml;ft. Beim Argument <code>none</code> wird der alte
	 Digest-Algorithmus nach RFC-2069 benutzt (der keine
	 Integrit&auml;tspr&uuml;fung vornimmt). Werden sowohl <code>auth</code> als
	 auch <code>auth-int</code> angegeben, entscheidet der Browser, welche
	 Pr&uuml;fung durchgef&uuml;hrt wird. Das Argument <code>none</code> sollte
	 nur benutzt werden, wenn der Browser aus irgendwelchen Gr&uuml;nden die
	 Server-Challenge nicht erf&uuml;llen kann.</p>
			<note>
      <code>auth-int</code> ist noch nicht implementiert.
    </note>
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestNonceLifetime</name>
		<description>G&uuml;ltigkeitsdauer des Nonce-Wertes des Servers</description>
		<syntax>AuthDigestNonceLifetime <var>seconds</var></syntax>
		<default>AuthDigestNonceLifetime 300</default>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Die <directive>AuthDigestNonceLifetime</directive>-Direktive
    legt fest, wie lange der Nonce-Wert (Zeitstempel sowie weitere Daten des
    Servers) g&uuml;ltig ist. Kontaktiert der Client den Server mit einem 
    abgelaufenen Nonce-Wert, sendet der Server eine 401 mit
	<code>stale=true</code> zur&uuml;ck. Ist der Wert von <var>seconds</var>
    gr&ouml;&szlig;er als 0, dann gibt er die G&uuml;ltigkeitsdauer des
	Nonce-Wertes an. Der Wert sollte niemals kleiner als 10 Sekunden sein.
    Ist der Wert kleiner als 0, verliert der Nonce-Wert niemals seine
	G&uuml;ltigkeit.
     <!-- Not implemented yet: If <var>seconds</var> is 0 then
    the nonce may be used exactly once by the client. Note that while
    one-time-nonces provide higher security against replay attacks,
    they also have significant performance implications, as the
    browser cannot pipeline or multiple connections for the
    requests. Because browsers cannot easily detect that
    one-time-nonces are being used, this may lead to browsers trying
    to pipeline requests und receiving 401 responses for all but the
    first request, requiring the browser to resend the requests. Note
    also that the protection against reply attacks only makes sense
    for dynamically generated content und things like POST requests;
    for static content the attacker may already have the complete
    response, so one-time-nonces do not make sense here.  -->
    </p>
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestNonceFormat</name>
		<description>Legt fest, wie der Apache den Nonce-Wert erzeugt.</description>
		<syntax>AuthDigestNonceFormat <var>Format</var></syntax>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<note>Noch nicht implementiert.</note>
			<!-- The AuthDigestNonceFormat directive determines how the nonce is
    generated. -->
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestNcCheck</name>
		<description>Schaltet die &Uuml;berpr&uuml;fung des vom Server gesendeten
Nonce-Z&auml;hlers ein.</description>
		<syntax>AuthDigestNcCheck On|Off</syntax>
		<default>AuthDigestNcCheck Off</default>
		<contextlist>
			<context>server config</context>
		</contextlist>
		<usage>
			<note>
      Noch nicht implementiert.
    </note>
			<!--
    <p>The AuthDigestNcCheck directive enables or disables the checking of the
    nonce-count sent by the server.</p>

    <p>While recommended from a security standpoint, turning this directive
    On has one important performance implication. To check the nonce-count
    *all* requests (which have an Authorization header, irrespective of
    whether they require Digest-Authentifizierung) must be serialized through
    a critical section. If the server is handling a large number of
    requests which contain the Authorization header then this may noticeably
    impact performance.</p>
     -->
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestAlgorithm</name>
		<description>Steuert, welcher Algorithmus bei der Digest-Authentifizierung 
		f&uuml;r die Berechnung der Hashwerte verwendet wird.</description>
		<syntax>AuthDigestAlgorithm MD5|MD5-sess</syntax>
		<default>AuthDigestAlgorithm MD5</default>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Die <directive>AuthDigestAlgorithm</directive>-Anweisung 
    legt den Algorithmus f&uuml;r die Berechnung der 
    Challenge- und Response-Hashes fest.</p>
			<note>
      <code>MD5-sess</code> ist zur Zeit noch nicht korrekt implementiert.
    </note>
			<!--
    <p>To use <code>MD5-sess</code> you must first code up the
    <code>get_userpw_hash()</code> function in
    <code>mod_auth_digest.c</code>.</p>
    -->
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestDomain</name>
		<description>URIs mit gleichen Digest-Authentifizierungsdaten</description>
		<syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax>
		<contextlist>
			<context>directory</context>
			<context>.htaccess</context>
		</contextlist>
		<override>AuthConfig</override>
		<usage>
			<p>Mit der <directive>AuthDigestDomain</directive>-Direktive k&ouml;nnen
			ein oder mehrere URIs im gleichen Schutzbereich angegeben werden, 
			(<em>d.h.</em> Realm und Benutzername/Passwort sind gleich).
			Die angegebenen URIs sind Pr&auml;fixe, <em>d.h.</em> der Client geht davon
			aus, dass alle URIs "unterhalb" ebenfalls vom gleichen Benutzername/
			Passwort gesch&uuml;tzt sind. Die URIs k&ouml;nnen absolute URIs 
			(mit Schema, Host, Port usw.) oder relative URIs sein.</p>
			<p>Diese Direktive <em>sollte</em> immer angegeben werden und 
			mindestens den oder die Root-URI(s) f&uuml;r diesen Bereich angeben. Werden
			keine Angaben gemacht, sendet der Client den Autorisierungsheader 
			mit <em>jeder</em> an diesen Server gesendeten Anfrage. Das steigert 
			nicht nur den Umfang der Anfragen sondern kann sich auch negativ auf 
			die Performance auswirken, wenn 
			<directive module="mod_auth_digest">AuthDigestNcCheck</directive>
			auf On gesetzt ist.</p>
			<p>Die angegebenen URIs k&ouml;nnen auch auf unterschiedliche Server
			verweisen. Clients, die damit umgehen k&ouml;nnen, nutzen dann ohne 
			wiederholte Nachfrage beim Benutzer die gleichen 
			Benutzernamen/Passw&ouml;rter f&uuml;r mehrere Server.</p>
		</usage>
	</directivesynopsis>
	<directivesynopsis>
		<name>AuthDigestShmemSize</name>
		<description>Der Shared-Memory-Bereich der Clients</description>
		<syntax>AuthDigestShmemSize <var>Gr&ouml;&szlig;e</var></syntax>
		<default>AuthDigestShmemSize 1000</default>
		<contextlist>
			<context>server config</context>
		</contextlist>
		<usage>
			<p>Die <directive>AuthDigestShmemSize</directive>-Direktive definiert 
    die Gr&ouml;&szlig;e des Shared-Memory, das beim Serverstart f&uuml;r die
	Clients allokiert wird. Der Shared-Memory-Bereich darf nicht kleiner als
    als der f&uuml;r <em>einen</em> Client ben&ouml;tigte Bereich sein.
    Der Wert h&auml;ngt vom System ab. Wenn Sie den genauen Wert ermitteln 
    m&ouml;chten, dann setzen Sie f&uuml;r
	<directive>AuthDigestShmemSize</directive> den Wert <code>0</code> und werten
	Sie die Fehlermeldung beim Serverstart aus.</p>
	
			<p>Die <var>Gr&ouml;&szlig;e</var> wird normalerweise in Bytes angegeben.
	Ein <code>K</code> oder <code>M</code> steht f&uuml;r kByte bezw.
	MBytes. Die  folgenden Anweisungen sind demnach alle
	gleichbedeutend:</p>
	
			<example>
		      AuthDigestShmemSize 1048576<br />
		      AuthDigestShmemSize 1024K<br />
		      AuthDigestShmemSize 1M
		    </example>
		</usage>
	</directivesynopsis>
</modulesynopsis>
