Hvad er en API-nøgle, og hvordan bruger du den sikkert?
Hjem
Artikler
Hvad er en API-nøgle, og hvordan bruger du den sikkert?

Hvad er en API-nøgle, og hvordan bruger du den sikkert?

Let øvet
Offentliggjort Jan 6, 2023Opdateret Feb 21, 2023
7m


En API-nøgle (Application Programming Interface) er en unik kode, der bruges af en API til at identificere det kaldende program eller den kaldende bruger. API-nøgler bruges til at spore og kontrollere, hvem der bruger en API, og hvordan de bruger den, samt til at autentificere og autorisere applikationer – på samme måde som brugernavne og adgangskoder. En API-nøgle kan have form af en enkelt nøgle eller et sæt af flere nøgler. Brugere bør følge anbefalede fremgangsmåder for at forbedre deres overordnede sikkerhed mod tyveri af API-nøgler og undgå de relaterede konsekvenser af, at deres API-nøgler bliver kompromitteret.

API vs. API-nøgle

For at forstå, hvad en API-nøgle er, skal du først forstå, hvad en API er. En applikationsprogrammeringsgrænseflade eller API er et softwaremellemled, der gør det muligt for to eller flere programmer at udveksle oplysninger. CoinMarketCaps API giver f.eks. andre applikationer mulighed for at hente og bruge kryptodata, såsom pris, volumen og markedsværdi.

En API-nøgle findes i mange forskellige former – det kan være en enkelt nøgle eller et sæt af flere nøgler. Forskellige systemer bruger disse nøgler til at autentificere og autorisere et program, på samme måde som et brugernavn og en adgangskode bruges. En API-nøgle bruges af en API-klient til at autentificere et program, der kalder API'en. 

Hvis Binance Academy f.eks. ønsker at bruge CoinMarketCaps API, vil CoinMarketCap generere en API-nøgle, som bruges til at autentificere identiteten af Binance Academy (API-klienten), som anmoder om API-adgang. Når Binance Academy tilgår CoinMarketCaps API, skal denne API-nøgle sendes til CoinMarketCap sammen med anmodningen. 

Denne API-nøgle må kun bruges af Binance Academy og må ikke deles med eller sendes til andre. Hvis du deler denne API-nøgle, kan en tredjepart få adgang til CoinMarketCap som Binance Academy, og alle handlinger fra tredjeparten vil se ud, som om de kommer fra Binance Academy.

API-nøglen kan også bruges af CoinMarketCaps API til at bekræfte, om programmet er autoriseret til at få adgang til den ønskede ressource. Derudover bruger API-ejere API-nøgler til at overvåge API-aktivitet, f.eks. typer, trafik og omfang af anmodninger. 

Hvad er en API-nøgle? 

En API-nøgle bruges til at kontrollere og spore, hvem der bruger en API, og hvordan de bruger den. Udtrykket "API-nøgle" kan betyde forskellige ting for forskellige systemer. Nogle systemer har en enkelt kode, mens andre kan have flere koder for en enkelt "API-nøgle".   

Som sådan er en "API-nøgle" en unik kode eller et sæt unikke koder, der bruges af en API til at autentificere og autorisere den kaldende bruger eller applikation. Nogle koder bruges til godkendelse, og andre bruges til at oprette kryptografiske signaturer for at bevise en anmodnings legitimitet. 

Disse godkendelseskoder omtales almindeligvis samlet som en "API-nøgle", mens de koder, der anvendes til kryptografiske signaturer, har forskellige navne, f.eks. "hemmelig nøgle", "offentlig nøgle" eller "private key". Godkendelse indebærer identifikation af de involverede enheder og bekræftelse af, at de er dem, de udgiver sig for at være.

Autorisation angiver på den anden side de API-tjenester, hvortil adgangen er tilladt. En API-nøgle har samme funktion som et brugernavn og en adgangskode til en konto. Den kan også forbindes med andre sikkerhedsfunktioner for at forbedre den overordnede sikkerhed. 

Hver API-nøgle genereres typisk til en bestemt enhed af API-ejeren (flere oplysninger nedenfor), og hver gang der foretages et opkald til et API-slutpunkt – som kræver brugergodkendelse eller godkendelse eller begge dele – anvendes den relevante nøgle.

Kryptografiske signaturer

Nogle API-nøgler bruger kryptografiske signaturer som et ekstra lag af verifikation. Når en bruger ønsker at sende visse data til en API, kan en digital signatur, der er genereret af en anden nøgle, føjes til anmodningen. Ved hjælp af kryptografi kan API-ejeren verificere, at denne digitale signatur passer til de sendte data.

Symmetriske og asymmetriske signaturer 

Data, der deles via en API, kan signeres med kryptografiske nøgler, som falder ind under følgende kategorier:

Symmetriske nøgler

Disse indebærer brug af én hemmelig nøgle til både signering af data og verifikation af en signatur. Med symmetriske nøgler genereres API-nøglen og den hemmelige nøgle normalt af API-ejeren, og den samme hemmelige nøgle skal bruges af API-tjenesten til signaturverifikation. Den største fordel ved at bruge en enkelt nøgle er, at det er hurtigere og kræver mindre beregningskraft til signaturgenerering og verifikation. Et godt eksempel på en symmetrisk nøgle er HMAC.

Asymmetrisk kryptering

Dette indebærer brug af to nøgler: en private key og en public key, som er forskellige, men kryptografisk forbundet. En private key bruges til signaturgenerering, og en public key bruges til signaturverifikation. API-nøglen genereres af API-ejeren, mens private key- og public key-parret genereres af brugeren. Kun public key skal bruges af API-ejeren til signaturverifikation, så private key kan forblive lokal og hemmelig. 

Den største fordel ved at anvende asymmetriske nøgler er den forøgede sikkerhed ved at adskille signaturgenerering og verifikationsnøgler. Dette gør det muligt for eksterne systemer at verificere signaturer uden at kunne generere signaturer. En anden fordel er, at nogle asymmetriske krypteringssystemer understøtter tilføjelse af en adgangskode til private keys. Et godt eksempel er et RSA-nøglepar. 

Er API-nøgler sikre? 

Ansvaret for en API-nøgle ligger hos brugeren. API-nøgler svarer til adgangskoder og skal behandles med samme omhu. Deling af en API-nøgle svarer til deling af en adgangskode, og det bør derfor ikke ske, da det vil bringe brugerens konto i fare. 

API-nøgler er ofte mål for cyberangreb, fordi de kan bruges til at udføre kraftfulde operationer på systemer, f.eks. til at anmode om personlige oplysninger eller udføre finansielle transaktioner. Der har faktisk været tilfælde af crawlere, der har haft held til at angribe online kodedatabaser for at stjæle API-nøgler.

Konsekvenserne af tyveri af API-nøgler kan være drastiske og føre til betydelige økonomiske tab. Eftersom nogle API-nøgler ikke udløber, kan de desuden bruges ubegrænset af angribere, når de først er blevet stjålet, indtil nøglerne selv er blevet tilbagekaldt.

Anbefalede fremgangsmåder ved brug af API-nøgler

På grund af deres adgang til følsomme data og deres generelle sårbarhed er det af afgørende betydning at bruge API-nøgler på en sikker måde. Du kan følge disse retningslinjer, når du bruger API-nøgler, for at forbedre deres overordnede sikkerhed: 

  1. Roter dine API-nøgler ofte, hvis det er muligt. Det betyder, at du skal slette din nuværende API-nøgle og oprette en ny. Med flere systemer er det nemt at generere og slette API-nøgler. På samme måde som nogle systemer kræver, at du skifter din adgangskode hver 30. til 90. dag, bør du om muligt skifte dine API-nøgler med en lignende hyppighed.

  2. Brug IP-hvidlister: Når du opretter en API-nøgle, skal du udarbejde en liste over IP'er, der har tilladelse til at bruge nøglen (en IP-hvidliste). Du kan også angive en liste over blokerede IP'er (en IP-hvidliste). På denne måde kan en ukendt IP-adresse stadig ikke få adgang til din API-nøgle, selv hvis den bliver stjålet.

  3. Brug flere API-nøgler: Hvis du har flere nøgler og fordeler ansvaret mellem dem, mindsker du sikkerhedsrisikoen, da din sikkerhed ikke afhænger af en enkelt nøgle med omfattende tilladelser. Du kan også indstille forskellige IP-hvidlister for hver nøgle, hvilket yderligere mindsker sikkerhedsrisikoen. 

  4. Opbevar API-nøgler på sikker vis: Opbevar ikke dine nøgler på offentlige steder, på offentlige computere eller i deres oprindelige rene tekstformat. Opbevar dem i stedet ved hjælp af kryptering eller en hemmelig administrator for at opnå bedre sikkerhed, og vær forsigtig med ikke at afsløre dem ved et uheld. 

  5. Del ikke dine API-nøgler. Deling af din API-nøgle svarer til at dele din adgangskode. Ved at gøre dette giver du en anden part de samme godkendelses- og autorisationsrettigheder som dig. Hvis de bliver kompromitteret, kan din API-nøgle blive stjålet og brugt til at hacke sig ind på din konto. En API-nøgle bør kun bruges mellem dig og det system, der genererer den.

Hvis din API-nøgle er blevet kompromitteret, skal du først deaktivere den for at forhindre yderligere skade. Hvis der er tale om et økonomisk tab, skal du tage skærmbilleder af vigtige oplysninger om hændelsen, kontakte de pågældende parter og indgive en politianmeldelse. Det er den bedste måde til at øge dine chancer for at genvinde eventuelle tabte midler. 

Sammenfatning

API-nøgler leverer centrale godkendelses- og autorisationsfunktioner, og brugerne skal administrere og beskytte deres nøgler omhyggeligt. Der er mange lag og aspekter, der sørger for sikker brug af API-nøgler. Generelt skal en API-nøgle behandles som en adgangskode til din konto.

Yderligere læsning