akademin körs anonymt — inget sparas
skapa kontonummer →
Akademin / Nivå VI · Fundament / Lektion 27
lektion 27 · fundament

HTTP Basic Auth är inte kryptering.

Den enklaste formen av inloggning på webben är ett gråzon-popup från 90-talet. Den ser säker ut. Den är det inte. Här är exakt vad som händer — och varför du aldrig ska använda den utan HTTPS.

Välj spår Hur tekniskt vill du ha det?

Du har sett den — popup-rutan med "Ange användarnamn och lösenord" som dyker upp direkt i webbläsaren, ovanpå sidan. Det är HTTP Basic Auth. Det skickar ditt lösenord nästan i klartext varje gång. Och en gång räcker.

01Hur det fungerar

Du försöker besöka en skyddad sida. Servern svarar med 401 Unauthorized och frågar artigt vem du är. Browsern visar popup-rutan, du fyller i, browsern packar in det i en header som följer med på varje följande request:

Authorization: Basic YWRhOmthbmluMTIz

Den långa strängen ser kryptisk ut, eller hur? Den är det inte. Den är bara ada:kanin123 omvänd till något som heter base64. Vem som helst med ett enradskommando kan vända tillbaka.

02Base64 är inte kryptering

Det här är förvirrande för många: base64 ser ut som något hemligt. Det är det inte. Base64 är bara ett sätt att skriva binär data med bokstäver — samma sak som att skriva ett telefonnummer med ord. Inget är gömt. Allt går att läsa.

Säkerhetsregeln: om ditt lösenord skickas över HTTP (utan S) med Basic Auth — kan vem som helst på samma nätverk (caféet, hotellet, kontoret) läsa det. Inte gissa. Inte knäcka. Bara läsa.

03Prova själv — koda och dekoda

Skriv ett användarnamn och lösenord. Du får exakt det som din webbläsare skulle skicka. Tryck sedan på dekoda för att se hur lätt det är att vända tillbaka.

Authorization-header som browsern skickar
fyll i fälten ovan
tryck för att se
Algoritm: base64 Hemlighet: nej Tar tid att dekoda: 0,001 sek

04När är Basic Auth okej?

Tre regler:

05Vad är "riktig" auth då?

De flesta moderna sajter använder kombinationer av dessa:

Nästa lektion (28) går igenom cookies — de små filerna som bär din inloggning mellan sidladdningar.

RFC 7617 beskriver Basic Auth på två sidor. Det är den enklaste auth-mekanismen som finns i HTTP, och anledningen till att den fortfarande används överallt är att den är trivial att implementera. Det är också anledningen till att den är farlig: ingenting hindrar mannen i mitten från att läsa.

01Det fullständiga flödet

Tre steg, ingen state på servern:

1. Klient: GET /admin HTTP/1.1
2. Server: 401 Unauthorized
   WWW-Authenticate: Basic realm="adminpanel"
3. Klient: GET /admin HTTP/1.1
   Authorization: Basic YWRhOmthbmluMTIz

Klienten skickar credentials på varje följande request. Det är vad som gör Basic Auth "stateless" — och samtidigt mycket riskabelt: ditt lösenord färdas över wiren varje gång, inte bara en gång.

02Digest Auth — försöket att fixa det

1999 (RFC 2617) introducerade Digest Auth: istället för att skicka lösenordet skickar klienten ett MD5-hash av lösenordet plus en nonce från servern. Klingar bra. Är inte det.

Resultat: Digest Auth används knappt utanför interna miljöer. Det moderna svaret är HTTPS + sessions/tokens.

03Bearer tokens — modern släkting

Samma format, helt annan idé:

Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

"Bearer" betyder "bäraren". Den som har token har access. Token genereras vid login (POST med credentials), och bärs sedan vid varje följande request. Den vanligaste implementationen är JWT — se lektion 29.

04Andra auth-headers du kommer se

05Prova själv — Basic Auth som angripare ser den

Skriv credentials. Du får exakt det som browsern skickar — och ser hur enkelt det dekodas tillbaka. Detta är vad en mannen-i-mitten på café-WiFi:t ser om sajten kör HTTP utan S.

raw Authorization-header
fyll i fälten ovan
vad någon i mitten ser — dekodat
fyll i fälten ovan
Encoding: base64 Skyddar: ingenting Säkerhet kommer från: HTTPS-lagret
Praktisk regel: Om din applikation använder Basic Auth — kör nginx eller motsvarande framför som tvingar HTTPS, sätt HSTS, och betrakta credentials som komprometterad om någon någonsin sett trafiken i klartext.

06När använda vilken auth

Snabb-koll — tre frågor

lektion 27 · klarad ✓ Nästa upp

Lektion 28 — Cookies & sessioner

Hur en webbsida "kommer ihåg" att du är inloggad. SameSite, HttpOnly, Secure — vad varje attribut faktiskt skyddar mot.

Nästa lektion