Passord
Basis
Børre Stenseth
Server >Autentisering

Autentisering og sikkerhet

Hva

I en webapplikasjon er det ofte nødvendig å vite hvem som befinner seg i den andre enden av nettforbindelsen, enten for å kontrollere tilgang til en ressurs (autentisering og autorisering) eller for å holde oversikt over hva vedkommende har gjort (sesjonshåndtering). I denne modulen skal vi se på det første problemet.

Den enkleste (og ofte sikreste) måten å finne en brukers identitet er å bruke HTTP-protokollens støtte for brukerautentisering.

OBS: Autentisering alene ikke gir et sikkert system. Webtrafikk sendes vanligvis ukryptert, og det er i så fall trivielt for en angriper å plukke opp og lese dataene som blir sendt. Hvis autentiseringen foregår med HTTPs basic-metode sendes dessuten også brukernavn og passord i klartekst. Sensitive data må sendes kryptert ved hjelp av SSL. (Oppsett og bruk av SSL dekkes ikke her.)

Bruk av .htaccess

Hvis du ikke har administrasjonrettigheter på webserveren (dvs. ikke er root) er det enklest å sette opp autentisering vha. fila .htaccess i katalogen som skal tilgangsbeskyttes (.htaccess kan også brukes til mye annet nyttig, se f.eks. Apache-dokumentasjonen [1] eller Comprehensive guide to .htaccess [2] .

Her er en enkel oppskrift på tilgangsbeskyttelse av en katalog (med underkataloger). Dette innebærer at du må lage to filer: en fil (.htaccess) i den katalogen du vil passordbeskytte, og en fil (.htpasswd) utenfor html/htdocs-katalogen der du vil plassere passordet. Eksempelet er slik det tar seg ut for brukeren borres:

  1. Lag fila .htaccess med teksteditoren du foretrekker (pass på unix-format), tilsvarende dette:
    AuthUserFile /home/borres/autent/.htpasswd
    AuthName "Mine hemmelige filer"
    AuthType Basic
    
    require user bever
        
    Plasser fila i den katalogen du vil beskytte. Pass på at navnet på fila begynner med punktum (.htaccess).
  2. Koble deg til webserveren vha. f.eks PuTTY [3] , og opprett en ny .htpasswd-fil med følgende kommando:
    htpasswd -c /home/borres/autent/.htpasswd bever
        
    Utelat -c dersom fila allerede finnes. Skriv inn passordet når du blir bedt om det (to ganger).
    Det er veldig viktig at .htpasswd-fila plasseres et sted der den ikke kan nås fra web. Plasser den gjerne i hjemmekatalogen, men aldri i htdocs/html med underkataloger. Fila vil nemlig inneholde bruker- og passordinformasjon, og sikkerheten svekkes betydelig dersom den kan leses direkte via web.
  3. Hvis du nå prøver å gå til katalogen vil du bli bedt om å skrive inn brukernavn og passord.

Sikkerhet

Som nevnt over gir ikke HTTP-autentisering noen stor grad av sikkerhet på egenhånd. Sikker, avlyttingsfri kommunikasjon forutsetter at den skjer kryptert vha. SSL/HTTPS [4] .

Referanser
  1. HTTP Server Project Apache httpd.apache.org/ 02-11-2014
  1. Comprehensive guide to .htaccess Javascript kit www.javascriptkit.com/howto/htaccess.shtml 02-11-2014
  1. PuTTY putty.org www.putty.org/ 14-11-2014
  1. HTTPS Wikipedia no.wikipedia.org/wiki/HTTPS 14-11-2014
Server >Autentisering