Ett poängkort, inte en säljpitch
De tio gyllene reglerna för hantering av inloggningsuppgifter
Dessa är reglerna som ett system för inloggningsuppgifter bör byggas på – tekniska, testbara, godkända/underkända. Jämför vilket verktyg som helst med dem, inklusive vårt, och räkna hur många det klarar. Majoriteten av branschen klarar färre än hälften, eftersom sättet hemligheter har lagrats i tjugo år designades för människor som behövde läsa och komma ihåg dem. Ta bort det antagandet och ribban flyttas. Här är var den borde ligga.
Tio regler. Varje regel klarar Clavitor.
Varje regel är en universell princip för god hantering av inloggningsuppgifter. Under varje regel, i klartext, står exakt hur Clavitor följer den.
01 — Slumpmässig nyckel
Nyckeln är slumpmässig, och ingen människa ser den någonsin.
En hemlighet som en person kan läsa kan bli utsatt för nätfiske, gissas, återanvändas eller tvingas fram. Nyckeln bör vara slumpmässigt material som maskinen genererar – aldrig visad, aldrig inmatad, aldrig återvinningsbar från något en människa känner till.
02 — Inget huvudlösenord
Det finns inget huvudlösenord. En hårdvarunyckel är den enda nyckeln.
Ett huvudlösenord är en dörr, och en dörr kan dyrkas. En återställningsfras för ägaren är en återställningsfras för angriparen. Förtroendeankaret bör vara en fysisk nyckel som måste finnas på plats.
03 — Operatör blind
Operatören kan inte dekryptera data den lagrar.
Om företaget som driver servrarna kan läsa dina hemligheter, kan en illvillig anställd, en stämning eller vem som helst som bryter sig in i det företaget också göra det. Konfidentialitet bör vila på matematik, inte på operatörens goda beteende.
04 — Inget i vila där kod körs
En hemlighet existerar bara under det ögonblick den används, och ligger aldrig på den maskin som kör koden.
En autentiseringsuppgift i en .env-fil, en miljövariabel, ett lokalt cacheminne eller vanligt minne på maskinen väntar på att vad som helst som körs härnäst ska ta den, och den är precis lika exponerad på en klientenhet som på en server. En krypterad lokal kopia är fortfarande en kopia, med sin nyckel på samma maskin. Kod ska få använda en hemlighet, aldrig förvara den.
05 — Ingen uppräkning
En agent kan inte räkna upp. Den når bara det den namngavs för.
Om en aktör kan lista, söka eller bläddra i lagringen, blir en enda kompromiss en karta över allt du äger. Oförmågan att räkna upp är starkare än någon gräns som satts för uppräkning.
06 — Maskinbunden
En inloggningsuppgift är bunden till maskinen den utfärdades till.
Anta att en inloggningsuppgift så småningom kommer att stjälas. Det som spelar roll är om den är värd något utanför maskinen den tillhör. En nyckel som fungerar var som helst fungerar från angriparens bärbara dator.
07 — Ingen massutvinning
Ingen enskild aktör kan tömma valvet.
Normal användning rör vid en handfull hemligheter. En stöld försöker ta allt, snabbt. Systemet bör skilja dessa två åt och stoppa den andra utan att ägaren behöver övervaka.
08 — Loggad och attribuerad
Varje åtgärd loggas och attribueras.
Delade konton och tysta läsningar förstör ansvarsskyldighet. När något går fel behöver du veta exakt vem, eller vad, som gjorde det, och varje inloggningsuppgift den rörde vid. Ett register med luckor är inte ett register.
09 — Validerad krypto
Kryptografin är validerad, inte uppfunnen.
Hemmagjord krypto är hur smarta team förlorar. De primitiva metoder som skyddar en hemlighet bör vara sådana som oberoende granskare redan har validerat, och bygget bör göra det omöjligt att leverera utan dem. Tråkigt och granskat slår smart.
10 — Återställning med två parter
Inget valv återställs utan ägaren, och inget av ägaren ensam.
Återställning är där de flesta system tyst öppnar varje dörr de stängt: en e-poståterställning, en SMS-kod, en säkerhetsfråga, en supportdesk som kan övertalas till ett undantag. Vägen tillbaka in i ett valv bör kräva ägaren och mer än ägaren, så att varken en stulen återställningshemlighet eller en komprometterad leverantör någonsin räcker på egen hand.
Kör listan.
Kör ditt nuvarande verktyg längs de tio. Kör sedan vårt. Vi skrev ner dessa eftersom de flesta i branschen tyst misslyckas med flera – och vi byggde Clavitor för att inte misslyckas med någon.