En applikationsprogrammeringsgränssnitt (Application Programming Interface/API)-nyckel är en unik kod som används av ett API för att identifiera den anropande applikationen eller användaren. API-nycklar används för att spåra och kontrollera vem som använder ett API och hur de används, samt för att autentisera och auktorisera applikationer – ungefär på samma sätt som användarnamn och lösenord fungerar. En API-nyckel kan vara en enda nyckel eller en uppsättning av flera nycklar. Användaren bör följa bästa praxis för att förbättra sin övergripande säkerhet och förhindra stöld av API-nycklar och undvika de relaterade konsekvenserna av att deras API-nycklar hackas.
API kontra API-nyckel
För att förstå vad en API-nyckel är måste du först förstå vad ett API är. Ett applikationsprogrammeringsgränssnitt eller API är en mjukvaruförmedlare som tillåter två eller flera applikationer att dela information. CoinMarketCaps API gör till exempel att andra applikationer att hämta och använda kryptodata, såsom pris, volym och börsvärde.
En API-nyckel finns i många olika former – den kan vara en enda nyckel eller en uppsättning av flera nycklar. Olika system använder dessa nycklar för att autentisera och auktorisera ett program, ungefär som ett användarnamn och lösenord används. En API-nyckel används av en API-klient för att autentisera ett program som anropar denna API.
Om Binance Academy till exempel vill använda CoinMarketCap-API, genereras en API-nyckel av CoinMarketCap och användas för att autentisera identiteten för Binance Academy (API-klienten), som begär API-åtkomst. När Binance Academy öppnar CoinMarketCaps API ska denna API-nyckel skickas till CoinMarketCap tillsammans med en begäran.
Denna API-nyckel ska endast användas av Binance Academy och ska inte delas med eller skickas till andra. Genom att dela denna API-nyckel kan en tredje part som Binance Academy komma åt CoinMarketCap och alla åtgärder från tredje part kommer att se ut som om de kommer från Binance Academy.
API-nyckeln kan också användas av CoinMarketCap API för att bekräfta om applikationen har behörighet att komma åt den begärda resursen. Dessutom använder API-ägare API-nycklar för att övervaka API-aktivitet, till exempel typ av aktivitet, trafik och antalet förfrågningar.
Vad är en API-nyckel?
En API-nyckel används för att kontrollera och spåra vem som använder ett API och hur det används. Termen ”API-nyckel” kan betyda olika saker för olika system. Vissa system har en enda kod, men andra kan ha flera koder för en enda ”API-nyckel”.
Därför är en ”API-nyckel” en unik kod eller en uppsättning av unika koder som används av ett API för att autentisera och auktorisera den anropande användaren eller applikationen. Vissa koder används för autentisering och andra används för att skapa kryptografiska signaturer för att bevisa legitimiteten för en begäran.
Dessa autentiseringskoder kallas vanligtvis kollektivt för en ”API-nyckel”, medan koderna som används för kryptografiska signaturer har olika namn, till exempel ”hemlig nyckel”, ”offentlig nyckel”, eller ”privat nyckel”. Autentisering innebär att identifiera de inblandade enheterna och bekräfta att de är vilka de säger att de är.
Auktorisering, å andra sidan, specificerar de API-tjänster som har tillåten åtkomst. Funktionen hos en API-nyckel liknar funktionen hos ett användarnamn och lösenord: den kan också anslutas till andra säkerhetsfunktioner för att förbättra den övergripande säkerheten.
Varje API-nyckel genereras vanligtvis för en specifik entitet av API-ägaren (mer information följer nedan) och varje gång ett anrop görs till en API-slutpunkt – som kräver användarautentisering eller auktorisering, eller både och – används den relevanta nyckeln.
Kryptografiska signaturer
Vissa API-nycklar använder kryptografiska signaturer som ett extra verifieringslager. När en användare vill skicka vissa data till ett API kan en digital signatur som genereras av en annan nyckel läggas till i denna begäran. Med hjälp av kryptografi kan API-ägaren verifiera att denna digitala signatur matchar de data som skickas.
Symmetriska och asymmetriska signaturer
Data som delas via ett API kan signeras med kryptografiska nycklar, som ingår i följande kategorier:
Symmetriska nycklar
Dessa inkluderar användning av en hemlig nyckel för att utföra både signering av data och verifiering av en signatur. Med symmetriska nycklar genereras API-nyckeln och den hemliga nyckeln vanligtvis av API-ägaren och samma hemliga nyckel måste användas av API-tjänsten för signaturverifiering. Den största fördelen med att använda en enskild nyckel är att det går snabbare och kräver mindre beräkningskraft för signaturgenerering och verifiering. Ett bra exempel på en symmetrisk nyckel är HMAC.
Asymmetriska nycklar
Dessa involverar användning av två nycklar: en privat nyckel och en offentlig nyckel som är olika, men kryptografiskt länkade. Den privata nyckeln används för signaturgenerering och den offentliga nyckeln används för signaturverifiering. API-nyckeln genereras av API-ägaren, men den privata nyckeln och det offentliga nyckelparet genereras av användaren. Endast den offentliga nyckeln behöver användas av API-ägaren för signaturverifiering, så att den privata nyckeln kan förbli lokal och hemlig.
Den största fördelen med att använda asymmetriska nycklar är den högre säkerheten genom att separera signaturgenerering och verifieringsnycklar. Detta gör att externa system kan verifiera signaturer utan att kunna generera signaturer. En annan fördel är att vissa asymmetriska krypteringssystem stöder funktionen att kunna lägga till ett lösenord till privata nycklar. Ett bra exempel är ett RSA-nyckelpar.
Är API-nycklar säkra?
Ansvaret för en API-nyckel ligger hos användaren. API-nycklar liknar lösenord och måste behandlas med samma försiktighet. Att dela en API-nyckel är ungefär som att dela ett lösenord och bör därför inte göras eftersom det skulle äventyra användarens konto.
API-nycklar är vanliga mål i cyberattacker eftersom de kan användas för att utföra kraftfulla operationer på system, såsom att begära personlig information eller genomföra finansiella transaktioner. Det har faktiskt förekommit fall då sökrobotar lyckats attackerar online-koddatabaser för att stjäla API-nycklar.
Konsekvenserna av API-nyckelstöld kan vara drastiska och leda till betydande ekonomiska förluster. Eftersom vissa API-nycklar inte löper ut kan de dessutom användas på obestämd tid av angriparen när de stulits, tills nycklarna själva återkallas.
Bästa praxis när du använder API-nycklar
På grund av deras tillgång till känsliga data och deras allmänna sårbarhet, är det av största vikt att använda API-nycklar på ett säkert sätt. Du kan följa dessa riktlinjer för bästa praxis när du använder API-nycklar för att förbättra den övergripande säkerheten:
Byt dina API-nycklar ofta, om möjligt. Detta betyder att du bör ta bort din nuvarande API-nyckel och skapa en ny. Med flera system är det enkelt att generera och ta bort API-nycklar. På samma sätt som vissa system kräver att du ändrar ditt lösenord varje eller var tredje månad, du bör byta ut dina API-nycklar med liknande frekvens, om möjligt.
Använd ip-vitlistning: när du skapar en API-nyckel upprättar du en lista över ip-adresser som är auktoriserade för att använda nyckeln (en ip-vitlista). Du kan också ange en lista över blockerade ip-adresser (en ip-svartlista). Även om din API-nyckel blir stulen kan den på det här sättet fortfarande inte nås av en okänd ip.
Använd flera API-nycklar: att ha flera nycklar och dela på ansvaret mellan dem minskar säkerhetsrisken, eftersom din säkerhet inte beror på en enda nyckel med omfattande behörigheter. Du kan också ställa in olika ip-vitlistor för varje nyckel, vilket ytterligare ökar säkerheten.
Förvara API-nycklar säkert: spara inte dina nycklar på offentliga platser, på offentliga datorer eller i deras ursprungliga textformat. Förvara istället var och en med kryptering eller ett lösenordsprogram för bättre säkerhet och var försiktig så att du inte exponerar dem av misstag.
Dela inte dina API-nycklar. Att dela din API-nyckel liknar processen att dela ditt lösenord. Genom att göra detta ger du en annan part samma autentiserings- och behörigheter som du. Om den äventyras kan din API-nyckel stjälas och användas för att hacka ditt konto. En API-nyckel ska endast användas mellan dig och det system som genererar den.
Om din API-nyckel hackas måste du först inaktivera den för att förhindra ytterligare skador. Om det sker några ekonomiska förluster tar du skärmbilder av viktig information relaterad till händelsen kontaktar du närstående enheter och lämnar en polisanmälan. Detta är det bästa sättet att öka dina chanser att återfå förlorade tillgångar.
Sammanfattningsvis
API-nycklar tillhandahåller grundläggande autentiserings- och auktoriseringsfunktioner och du måste hantera och skydda dina nycklar noggrant. Det finns många lager och aspekter för att garantera säker användning av API-nycklar. I korthet ska en API-nyckel behandlas som ett lösenord till ditt konto.