🌐 NO

🔑 API-nøkkelgenerator

Generer sikre tilfeldige API-nøkler. Brukes til REST API, autentiseringstoken og hemmelige nøkler.

API-nøkkelformat
GUIDE

Les mer

01

1. Hvorfor API-nøkkelsikkerhet er viktig

API-nøkler er kritiske sikkerhetselementer for autentisering av applikasjoner. Svake nøkler er sårbare for brute force-angrep, og lekkasje kan føre til uautorisert API-tilgang. Sterke API-nøkler bør være minst 32 tegn lange tilfeldige strenger, generert med kryptografisk sikre pseudo-tilfeldige tallgeneratorer (CSPRNG). UUID v4, Base64 og Hex er mye brukt, og hver nøkkel må være unik og uforutsigbar. Trekk umiddelbart tilbake og erstatt eksponerte nøkler, og sjekk aldri inn nøklene i offentlige repositorier som GitHub.

02

2. Sammenligning av metoder for nøkkelgenerering

Det finnes flere metoder for generering av API-nøkler. UUID v4 bruker 122 tilfeldige bit med svært lav kollisjonsrisiko og er mye tatt i bruk. Base64 koder binærdata til tekst og gir omtrent 192 bits entropi i 32 tegn. Hex representerer data i heksadesimal form for høy lesbarhet og gir 256-bit sikkerhet i 64 tegn. Alfanumerisk bruker bare bokstaver og tall for URL-sikkerhet, og prefikser som sk_, api_ gjør det enkelt å identifisere nøkkeltyper. Stripe, AWS og OpenAI bruker ulike nøkkelformater for å skille mellom tjenestespesifikke nøkler.

03

3. UUID kontra tilfeldige strenger

UUID v4 er en standardisert 128-bit identifikator som sikrer global unikhet. Formatet 8-4-4-4-12 (f.eks. 550e8400-e29b-41d4-a716-446655440000) har en tydelig struktur i henhold til RFC 4122-standarden. Egendefinerte tilfeldige strenger gir fleksibilitet i lengde og format. Selv om UUID-er passer godt som primærnøkler i databaser, er tilfeldige strenger mer konsise og praktiske for API-nøkler. Sikkerhetsstyrken er omtrent lik, men tilfeldige strenger gjør det enklere å implementere valideringslogikk med prefikser og sjekksummer.

04

4. Anbefalinger for lagring av nøkler

Lagre aldri API-nøkler som ren tekst. Bruk miljøvariabler (.env) og legg dem i .gitignore for å holde dem utenfor versjonskontroll. I produksjon bør du bruke dedikerte systemer for hemmelighetsadministrasjon som AWS Secrets Manager, HashiCorp Vault eller Azure Key Vault. Når nøkler lagres i databaser, konverter dem til hasher (SHA-256) og bruk kryptering (AES-256) ved behov. Unngå å hardkode nøkler i koden; bruk heller Docker secrets eller Kubernetes Secrets. Masker nøkler i logger for å hindre eksponering, og overvåk historikken for nøkkelbruk.

05

5. Retningslinjer for nøkkelrotasjon

API-nøkler bør roteres jevnlig. Rotasjon hver 90. dag er vanlig praksis; trekk dem tilbake umiddelbart hvis du mistenker lekkasje. For rotasjon uten nedetid kan du aktivere to nøkler samtidig, bytte til den nye nøkkelen og deretter deaktivere den gamle. AWS IAM og Google Cloud API Keys tilbyr automatiske rotasjonsfunksjoner. Sett utløpsdatoer for hver nøkkel slik at gamle nøkler ugyldiggjøres automatisk, og registrer rotasjonshistorikk i revisjonslogger. Bruk av tokenbasert autentisering som OAuth 2.0 eller JWT i stedet for API-nøkler gir bedre sikkerhet med automatisk utløp.

06

6. Begrensning av forespørsler og brukskontroll

Bruk alltid rate limiting på API-nøkler for å hindre misbruk. Sett grenser som 100 forespørsler per minutt per IP eller 1 000 per time per nøkkel. Implementer kvoter for maksimalt antall daglige kall, og returner 429 Too Many Requests når grensen overskrides. Konfigurer IP-whitelister slik at nøkkelbruk bare tillates fra bestemte IP-adresser, og oppdag unormale mønstre (masseforespørsler på kort tid) for automatisk blokkering. API-gatewayer som Cloudflare, Kong og AWS API Gateway forenkler implementering av rate limiting. Sett nøkkelspesifikke tillatelser (Scopes) for å begrense tilgang til for eksempel bare lesing eller bare skriving.

Vanlige sporsmal

Sendes genererte nøkler til en server?
Nei. Alle nøkler genereres bare i nettleseren din og sendes aldri til en server, så de er trygge å bruke.
Hvilket format bør jeg velge?
UUID v4 er mye brukt på grunn av lav kollisjonsrisiko. Velg Alfanumerisk for URL-sikkerhet, eller Hex for bedre lesbarhet.