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.