Zum Hauptinhalt springen Skip to page footer

AuthType Digest: Eine sicherere Methode zur Authentifizierung in Apache

| Tutorial | Apache Linux

Schluss mit unsicheren Authentifizierungsmethoden! In unserem Tutorial stellen wir Ihnen AuthType Digest vor - die sichere Authentifizierung in Apache. Erfahren Sie, wie Sie Ihr System vor unerwünschten Zugriffen schützen und gleichzeitig die Benutzerfreundlichkeit verbessern können. Entdecken Sie die Vorteile von AuthType Digest und der sicheren Webserver-Kommunikation.

AuthType Digest

AuthType Digest“ ist ein Authentifizierungstyp in der Apache-Konfiguration, der eine sicherere Alternative zur Basisauthentifizierung bietet. Bei der Standardauthentifizierung werden der Benutzername und das Kennwort in Base64-codierter Form gesendet, während die Digest-Authentifizierung das Kennwort mithilfe einer kryptografischen Hash-Funktion verschlüsselt.

Mit „AuthType Digest“ sendet der Client den verschlüsselten Digest-Wert des Passworts im HTTP-Anforderungsheader, wenn er versucht, auf den geschützten Bereich des Servers zuzugreifen. Der Server validiert den Digest-Wert, indem er ihn mit der gespeicherten Version vergleicht. Das Passwort selbst wird niemals im Klartext gesendet. Die Verwendung von „AuthType Digest“ bietet ein zusätzliches Maß an Sicherheit, da das Passwort nicht im Klartext gesendet wird. Dies verringert das Risiko, dass Passwörter während der Übertragung preisgegeben werden.

Um „AuthType Digest“ verwenden zu können, müssen Sie die entsprechenden Einstellungen in Ihrer Apache-Konfigurationsdatei vornehmen, einschließlich der Angabe des Benutzerverzeichnisses, in dem Benutzerinformationen und Digest-Werte gespeichert werden. Zusätzlich muss der Benutzer und sein Passwort im entsprechenden Benutzerverzeichnis eingetragen werden.

Es ist wichtig zu beachten, dass „AuthType Digest“ möglicherweise immer noch anfällig für Angriffe wie Brute-Force- und Wörterbuchangriffe ist. Daher sollten Sie weiterhin starke Passwörter verwenden und regelmäßige Sicherheitsmaßnahmen ergreifen, um die Integrität des Authentifizierungsprozesses sicherzustellen. 

Apache

Gehen Sie folgendermaßen vor, um den Zugriffsschutz mithilfe virtueller Hosts und AuthType Digest zu konfigurieren:

  • Stellen Sie sicher, dass das Apache-Modul „mod_auth_digest“ aktiviert ist. Suchen Sie in Ihrer Apache-Konfigurationsdatei (normalerweise httpd.conf oder apache2.conf) die Zeile „LoadModule auth_digest_module module/mod_auth_digest.so“ und entfernen Sie ggf. das Kommentarzeichen (#) am Anfang der Zeile. Oder aktivieren Sie das Modul mit folgendem Befehl:

 

a2enmod  auth_digest_module
  • Erstellen Sie eine Datei mit Benutzerinformationen zur Authentifizierung. Sie können diese Datei mit dem htdigest-Tool von Apache erstellen. Führen Sie den folgenden Befehl im Terminal aus. Ersetze "/path/to/your/.htdigest" durch den Pfad und den Dateinamen, den Sie für die Benutzerinformationen verwenden möchten. Sie werden nach einem Passwort für den Benutzer "username" gefragt.
htdigest -c /path/to/your/.htdigest "Restricted Access" username
  • Öffnen Sie Ihre Apache-Konfigurationsdatei und fügen Sie den folgenden Code in den entsprechenden Virtual Host-Block ein. Ersetzen Sie „website1.com“ durch Ihren tatsächlichen Servernamen und „/path/to/your/document/root“ durch den Pfad zum Dokumentverzeichnis Ihres virtuellen Hosts. 
<VirtualHost *:80>
    ServerName website1.com
    DocumentRoot /path/to/your/document/root

    <Directory "/path/to/your/document/root">
        AuthType Digest
        AuthName "Restricted Access"
        AuthDigestDomain / http://website1.com
        AuthDigestProvider file
        AuthUserFile /path/to/your/.htdigest
        Require valid-user
    </Directory>
</VirtualHost>
  • Starten oder aktualisieren Sie den Apache-Webserver.

Nginx

Leider unterstützt Nginx standardmäßig keinen Zugriffsschutz mittels Digest-Authentifizierung. 

AuthName "Restricted Access"

Die „AuthName“-Direktive wird in der Apache-Konfiguration verwendet, um den Sicherheitsnamen oder die Sicherheitsbeschreibung festzulegen. Sie definiert den Text, der dem Benutzer angezeigt wird, wenn er zur Eingabe von Anmeldeinformationen aufgefordert wird.

Im gegebenen Beispiel ist der Wert von „AuthName“ „Restricted Access“. Das bedeutet, dass, wenn der Benutzer zur Eingabe von Anmeldeinformationen aufgefordert wird, der Text „Restricted Access“ als Hinweis oder Aufforderung angezeigt wird. Dies wird verwendet, um den Benutzer darüber zu informieren, dass der Zugriff auf den Bereich eingeschränkt ist und eine Authentifizierung erfordert. Der angegebene Wert „AuthName“ hat normalerweise keinen Einfluss auf die tatsächliche Funktionalität des Zugriffsschutzes. Hierbei handelt es sich lediglich um eine Textbeschreibung, die dem Benutzer angezeigt wird, um ihn über den Zugriffsschutz und dessen Zweck zu informieren. Sie können diesen Wert entsprechend Ihren Anforderungen anpassen, um Ihren Benutzern klare Anweisungen und Informationen zu geben. 

AuthDigestDomain / http://website1.com

Die Direktive „AuthDigestDomain“ wird in der Apache-Konfiguration verwendet, um die Domäne für die Digest-Authentifizierung festzulegen. Sie definiert den gültigen Anwendungsbereiche oder die Bereiche, für die die Digest-Authentifizierung gilt.

In diesem Beispiel ist der „AuthDigestDomain“-Wert „/ website1.com". Der Schrägstrich (/) stellt die Stammdomäne dar und „website1.com“ ist die spezifische Domäne, für die der Zugriffsschutz gilt.

Durch die Angabe einer Domäne in „AuthDigestDomain“ wird angegeben, dass die Digest-Authentifizierung auf Anforderungen an den angegebenen Bereich angewendet werden soll. Dadurch wird sichergestellt, dass die Digest-Authentifizierung nur auf URLs innerhalb des definierten Bereichs angewendet wird.

In diesem Fall bedeutet dies, dass die Digest-Authentifizierung auf alle Anfragen an die Stammdomäne (/) oder URLs unter „website1.com“ angewendet wird. Andere Domänen oder URLs außerhalb dieses Bereichs sind vom Zugriffsschutz nicht betroffen.

Abhängig von Ihren Anforderungen können Sie die „AuthDigestDomain“ anpassen, um den Umfang der Digest-Authentifizierung auf bestimmte Domänen oder Verzeichnisse zu beschränken. 

Anpassungsmöglichkeiten für AuthDigestDomain

Die AuthDigestDomain-Direktive bietet mehrere Möglichkeiten, den Umfang der Digest-Authentifizierung von Apache anzupassen. Hier sind einige gängige Anpassungsoptionen.

  • Einzeldomäne: Sie können eine einzelne Domäne angeben, für die der Zugriffsschutz gilt. Dadurch wird die Digest-Authentifizierung für alle URLs unter "website.com" aktiviert. Zum Beispiel:  
AuthDigestDomain website1.com
  • Mehrere Domänen: Sie können mehrere Domänen angeben, indem Sie die Direktive mehrmals verwenden oder die Domänen durch Leerzeichen oder Kommas trennen. Dadurch wird die Digest-Authentifizierung sowohl für URLs unter "website1.com" als auch für URLs unter "subdomain.website1.com" aktiviert. Zum Beispiel:  
AuthDigestDomain website1.com
AuthDigestDomain subdomain.website1.com
  • Teilbereiche einer Domain: Sie können einen bestimmten Teil der Domäne angeben, indem Sie einen Pfad oder ein Verzeichnis angeben. Dadurch wird die Digest-Authentifizierung für URLs aktiviert, die sich innerhalb des angegebenen Verzeichnisses oder Pfads befinden. In diesem Fall würde sie für URLs wie "http://website1com/subdirectory" und "http://website1.com/subdirectory/another" gelten. Zum Beispiel:  
AuthDigestDomain /subdirectory
AuthDigestDomain /subdirectory/another
  • Wildcards / Platzhalter: Durch Wildcards oder Platzhalter kann der Geltungsbereich auf mehrere Domänen oder Teilbereiche erweitert werden. Dadurch wird die Digest-Authentifizierung für Domänen mit Namen wie "website1.com", "website1.net" usw. oder für URLs, die mit "/subdirectory/" beginnen, aktiviert. Zum Beispiel:  
AuthDigestDomain website1.*
AuthDigestDomain /subdirectory/*

Mit diesen Anpassungsoptionen können Sie den Umfang der Digest-Authentifizierung genau auf Ihre gewünschte Domäne, Subdomäne oder Ihren gewünschten Pfad abstimmen. Es kann an Ihre Bedürfnisse und die erforderliche Gruppierung von Schutzgebieten angepasst werden. 

AuthDigestProvider file

Die AuthDigestProvider-Direktive in der Apache-Konfiguration gibt an, wie die Digest-Authentifizierung durchgeführt wird und wo Benutzerinformationen gespeichert werden.

Der Wert ‘file’ bei AuthDigestProvider gibt an, dass Benutzerinformationen in einer Datei gespeichert sind. Diese Datei enthält Hashes von Benutzernamen und Passwörtern, die bei der Digest-Authentifizierung verwendet werden.

Wenn die AuthDigestProvider file konfiguriert ist, erwartet Apache, dass die AuthUserFile-Direktive verwendet wird, um den Pfad zur Benutzerinformationsdatei anzugeben. Diese Datei wird normalerweise mit dem Apache-Tool htdigest erstellt, um den Benutzer und das Passwort hinzuzufügen. Hier ist ein Beispiel für die Verwendung der Direktiven AuthDigestProvider und AuthUserFile in einer Apache-Konfiguration. 

<Directory "/path/to/your/document/root">
    AuthType Digest
    AuthName "Restricted Access"
    AuthDigestDomain / http://example.com
    AuthDigestProvider file
    AuthUserFile /path/to/your/.htdigest
    Require valid-user
</Directory>

In diesem Beispiel wird eine AuthDigestProvider file verwendet, um zu demonstrieren, dass Benutzerinformationen in einer Datei gespeichert werden. Der Pfad zu dieser Datei wird mit der AuthUserFile-Direktive angegeben.

Es ist wichtig sicherzustellen, dass die von Ihnen angegebene Datei (/path/to/your/.htdigest im obigen Beispiel) vorhanden ist und die richtigen Benutzerinformationen enthält. Andernfalls funktioniert die Digest-Authentifizierung nicht ordnungsgemäß und der Zugriffsschutz wird nicht aktiviert.

Durch die Kombination der Dateidirektiven AuthDigestProvider und AuthUserFile können Benutzerinformationen für die Digest-Authentifizierung in einer externen Datei gespeichert und verwaltet werden. Dies vereinfacht die Verwaltung von Benutzerkonten und erleichtert das Aktualisieren oder Ändern von Berechtigungen. 

Weitere AuthDigestProvider

Neben Dateien als AuthDigestProvider bietet die Apache-Konfiguration auch andere Optionen zum Speichern von Benutzerinformationen für die Digest-Authentifizierung. Weitere AuthDigestProvider-Optionen sind:

DBM: Mit dieser Option können Sie eine DBM-Datenbank (Database Manager) zum Speichern von Benutzerinformationen verwenden. Sie können die AuthDigestProvider-Direktive auf DBM setzen und den Pfad zur DBM-Datenbank in der AuthDBMUserFile-Direktive angeben. 

AuthDigestProvider DBM
AuthDBMUserFile /path/to/your/dbm_file
  • SHM: SHM ermöglicht die Speicherung von Benutzerinformationen im gemeinsamen Speicher. Der Pfad zum gemeinsam genutzten Speicher wird in der AuthSHMUserFile-Direktive angegeben. 
AuthDigestProvider SHM
AuthSHMUserFile /path/to/your/shm_file

Hinweis

Beachten Sie, dass die Verwendung von DBM und SHM die Aktivierung der jeweiligen Apache-Module mod_authn_dbm und mod_authn_socache erfordert.

Die Auswahl eines AuthDigestProviders hängt von Ihren spezifischen Anforderungen und der bevorzugten Methode zum Speichern von Benutzerinformationen ab. Die Verwendung file ist die gebräuchlichste und einfachste Option. Wenn Sie jedoch eine Datenbank oder einen gemeinsam genutzten Speicher verwenden möchten, können Sie stattdessen DBM und SHM verwenden. 

AuthUserFile /path/to/your/.htdigest

Die AuthUserFile-Direktive in der Apache-Konfiguration wird verwendet, um den Pfad zu einer Datei anzugeben, die Benutzerinformationen für die Authentifizierung enthält.

Im angegebenen Beispiel ist der Wert von AuthUserFile /path/to/your/.htdigest“. Der Pfad und Dateiname der Datei, die Benutzerinformationen für die Digest-Authentifizierung enthält. Der .htdigest-Dateiname ist eine Konvention, die häufig verwendet wird, um anzugeben, dass die Datei Benutzerinformationen für die Digest-Authentifizierung enthält.

Die AuthUserFile-Datei enthält Benutzernamen- und Kennwort-Hashes, die bei der Digest-Authentifizierung verwendet werden. Sie können das htdigest-Tool von Apache verwenden, um diese Datei zu erstellen und zu aktualisieren. Mit diesem Tool können Sie Benutzer und deren Passwörter hinzufügen oder ändern.

Es ist wichtig sicherzustellen, dass der angegebene Pfad zur AuthUserFile-Datei korrekt ist und Ihr Webserver Lesezugriff auf die Datei hat. Andernfalls kann die Digest-Authentifizierung nicht auf Benutzerinformationen zugreifen und der Zugriffsschutz funktioniert nicht ordnungsgemäß.

Hier ist ein Beispiel für die Verwendung der AuthUserFile-Direktive in einer Apache-Konfiguration:

AuthUserFile /path/to/your/.htdigest

Geben Sie den tatsächlichen Pfad und Dateinamen entsprechend der Dateistruktur an. Durch die korrekte Angabe der AuthUserFile-Direktive kann der Webserver auf Benutzerinformationen zugreifen und eine Digest-Authentifizierung durchführen, um den Zugriff zu schützen. 

Apache-Tool htdigest

Das Apache-Tool htdigest wird zum Erstellen und Verwalten von Dateien mit Benutzerinformationen für die Digest-Authentifizierung verwendet. Mit htdigest können Benutzer hinzugefügt, ihre Passwörter geändert oder gelöscht werden.

Die allgemeine Syntax für den Befehl htdigest lautet:  

htdigest [-c] htdigestfile realm username

Die wichtigsten Parameter sind:

  • -c (optional): Mit diesem Schalter wird eine neue .htdigest-Datei erstellt oder eine vorhandene Datei überschrieben. Beachten Sie, dass dadurch die vorherige Datei entfernt wird, sofern sie vorhanden ist. Wenn keine Schalter angegeben sind, hängt htdigest die Benutzerinformationen an eine vorhandene Datei an oder aktualisiert den Benutzernamen, falls dieser bereits vorhanden ist.
  • htdigestfile: Der Pfad und Name der .htdigest-Datei, in der Benutzerinformationen gespeichert sind.
  • realm: Der Bereich oder die Domäne, für den die Benutzerinformationen gelten. Dieser muss mit dem AuthName-Wert in Ihrer Apache-Konfiguration übereinstimmen.
  • username: Der Benutzername, der hinzugefügt oder geändert werden soll.

Der Befehl htdigest fordert zur Eingabe des Kennworts für den angegebenen Benutzernamen auf. Passwörter werden als Passwort-Hashes statt als Klartext gespeichert.

Beispiel für die Verwendung von htdigest:  

htdigest -c /path/to/your/.htdigest "Restricted Access" alice
Adding password for alice in realm Restricted Access.
New password:
Re-type new password:

In diesem Beispiel wird eine neue .htdigest-Datei mit dem Namen /path/to/your/.htdigest erstellt. Der Bereich ist auf „Restricted Access“ eingestellt und der Benutzername ist „alice“. Nach Eingabe Ihres Benutzernamens werden Sie aufgefordert, Ihr Passwort zweimal einzugeben. Passwörter werden gehasht und in .htdigest-Dateien gespeichert.

Um einen Benutzer mit htdigest hinzuzufügen, führen Sie den Befehl ohne den Schalter -c aus. 

htdigest /path/to/your/.htdigest "Restricted Access" bob

Dieser Befehl fügt den Benutzer „bob“ zur vorhandenen .htdigest-Datei hinzu, ohne sie zu überschreiben.

Mit htdigest können Sie Benutzerinformationen für die Digest-Authentifizierung erstellen, verwalten und aktualisieren, um den Zugriffsschutz mit Apache zu implementieren. 

Direktive Require valid-user

Die Require valid-user-Direktive wird in der Apache-Konfiguration verwendet, um den Zugriff auf bestimmte Bereiche oder Ressourcen auf erfolgreich authentifizierte Benutzer zu beschränken.

Wenn Require valid-user festgelegt ist, muss der Benutzer einen gültigen Authentifizierungsprozess bestehen, um auf den Bereich zugreifen zu können. Das bedeutet, dass Sie sich mit einem gültigen Benutzernamen und Passwort authentifizieren müssen, entweder durch Basisauthentifizierung, Digest-Authentifizierung oder eine andere konfigurierte Authentifizierungsmethode.

Die Require valid-user-Direktive kann in verschiedenen Kontexten der Apache-Konfiguration verwendet werden, beispielsweise innerhalb von <Directory>, <Location>, <Files>, <VirtualHost>-Blöcken. Dadurch können Sie den Zugriffsschutz auf bestimmte Verzeichnisse, Dateien, URLs oder virtuelle Hosts anwenden. Hier ist ein Beispiel für die Verwendung von Require valid-user innerhalb eines <Directory>-Blocks: 

<Directory "/path/to/your/document/root">
    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /path/to/your/.htpasswd
    Require valid-user
</Directory>

In diesem Beispiel wird die Basic-Authentifizierung verwendet und der Zugriff auf das Verzeichnis /path/to/your/document/root ist auf erfolgreich authentifizierte Benutzer beschränkt. Benutzerinformationen werden in der .htpasswd-Datei (AuthUserFile) gespeichert.

Durch das Hinzufügen von Require valid-user wird sichergestellt, dass nur authentifizierte Benutzer auf den Bereich zugreifen können und nicht authentifizierte Benutzer verweigert werden.

Sie können die Anweisung „Require valid-user“ auch mit anderen Zugriffskontrollanweisungen wie „Require group“ kombinieren, um den Zugriff weiter einzuschränken und bestimmte Benutzergruppen zu autorisieren. 

<Directory "/path/to/your/document/root">
    AuthType Basic
    AuthName "Restricted Access"
    AuthUserFile /path/to/your/.htpasswd
    Require group admin
</Directory>

In diesem Beispiel wird der Zugriff auf Benutzer beschränkt, die zur Gruppe „admin“ gehören. Nur Benutzer, die sich authentifizieren und zur Gruppe „admin“ gehören, erhalten Zugriff auf den Realm.

Mit Require valid-user können Sie den Zugriff auf bestimmte Bereiche oder Ressourcen von Apache auf authentifizierte Benutzer beschränken und so die Sicherheit und den Datenschutz sensibler Inhalte gewährleisten.