Skip to main content
CheckTown
Dev Tools

htpasswd Generator: Apache and Nginx Basic Authentication

Gepubliceerd 5 min lezen
In dit artikel

Wat is htpasswd?

Een htpasswd-bestand is een platte-bestandsdatabase die door Apache- en Nginx-webservers wordt gebruikt om gebruikersnamen en gehashte wachtwoorden op te slaan voor HTTP Basic Authentication. Elke regel bevat een gebruikersnaam en een wachtwoordhash gescheiden door een dubbele punt, zoals admin:$2y$10$abc... Het bestand biedt een eenvoudige manier om webbronnen te beschermen zonder een volledig authenticatiebackend nodig te hebben.

Het htpasswd-hulpprogramma maakte oorspronkelijk deel uit van het Apache HTTP Server-project, maar het bestandsformaat is een de facto standaard geworden die door veel webservers, reverse proxies en ontwikkeltools wordt ondersteund. Moderne htpasswd-generators ondersteunen meerdere hash-algoritmen waaronder bcrypt, SHA-1 en MD5, waarbij bcrypt de aanbevolen keuze is voor beveiliging.

Hoe htpasswd-generatie werkt

Het genereren van een htpasswd-invoer omvat het hashen van een wachtwoord in platte tekst met een gekozen algoritme en het formatteren ervan naast de gebruikersnaam. De sterkte van de resulterende hash hangt af van het algoritme en de configuratie.

  • bcrypt ($2y$) — de veiligste optie, gebruikt een configureerbare kostenfactor (standaard 10) die bepaalt hoe rekenintensief elke hash is, waardoor brute-force-aanvallen onpraktisch worden
  • SHA-1 ({SHA}) — produceert een Base64-gecodeerde SHA-1-digest voorafgegaan door {SHA}; sneller dan bcrypt maar aanzienlijk zwakker tegen moderne GPU-gebaseerde aanvallen
  • MD5 ($apr1$) — Apache's aangepaste MD5-variant met een willekeurige salt; verouderd formaat nog steeds ondersteund maar niet aanbevolen voor nieuwe implementaties vanwege bekende zwakheden

Probeer gratis — geen aanmelding vereist

Genereer htpasswd-invoer →

Veelvoorkomende toepassingen van htpasswd

htpasswd-gebaseerde authenticatie wordt veel gebruikt voor lichtgewicht toegangscontrole waar een volledig authenticatiesysteem overdreven zou zijn.

  • Bescherming van stagingomgevingen — beperk de toegang tot pre-productieomgevingen zodat alleen teamleden en belanghebbenden het werk in uitvoering kunnen bekijken
  • Beveiliging van beheerpanelen — voeg een extra authenticatielaag toe voor CMS-beheerpanelen, databasebeheertools of monitoringdashboards
  • Toegang tot ontwikkelomgevingen — bescherm lokale of gedeelde ontwikkelservers tegen ongeautoriseerde toegang zonder OAuth of LDAP in te stellen

Veelgestelde vragen

Moet ik bcrypt, SHA-1 of MD5 gebruiken voor htpasswd?

Gebruik altijd bcrypt wanneer mogelijk. Bcrypt is speciaal ontworpen voor wachtwoordhashing met een configureerbare kostenfactor die het bestand maakt tegen brute-force-aanvallen. SHA-1 en MD5 zijn snelle hashfuncties die niet voor wachtwoorden zijn ontworpen — ze kunnen ordes van grootte sneller gekraakt worden dan bcrypt.

Waar moet ik het htpasswd-bestand op mijn server plaatsen?

Bewaar het htpasswd-bestand buiten je webroot om te voorkomen dat het aan bezoekers wordt aangeboden. Een gangbare locatie is /etc/apache2/.htpasswd of /etc/nginx/.htpasswd. Verwijs er vervolgens naar in je serverconfiguratie met AuthUserFile (Apache) of auth_basic_user_file (Nginx). Plaats het nooit in een publiek toegankelijke directory.

Is HTTP Basic Authentication veilig genoeg voor productie?

Basic Authentication verstuurt inloggegevens als Base64-gecodeerde tekst (niet versleuteld) bij elk verzoek, dus het moet altijd via HTTPS worden gebruikt. Zelfs met HTTPS ontbreekt het aan functies zoals sessiebeheer, snelheidsbeperking en accountvergrendeling. Het is geschikt voor laagrisicoscenario's zoals stagingsites of interne tools, maar productieauthenticatie moet een volwaardig authenticatiesysteem met tokengebaseerde sessies gebruiken.

Gerelateerde Tools