Co je klíč API a jak ho používat bezpečně?
Domů
Články
Co je klíč API a jak ho používat bezpečně?

Co je klíč API a jak ho používat bezpečně?

Pokročilí
Zveřejněno Jan 6, 2023Aktualizováno Feb 21, 2023
7m


Klíč API (rozhraní pro programování aplikací) je jedinečný kód, který rozhraní API používá k identifikaci vyvolávající aplikace nebo uživatele. Klíče API se používají ke sledování a kontrole toho, kdo a jak rozhraní API používá, a také k ověřování a autorizaci aplikací – podobně jako uživatelská jména a hesla. Klíč API může mít podobu jednoho klíče nebo sady několika klíčů. Uživatelé by s ohledem na celkové zabezpečení proti krádeži klíče API a souvisejícím důsledkům měli dodržovat osvědčené postupy.

Rozhraní API vs. klíč API

Abyste pochopili, co je to klíč API, musíte nejdřív vědět, co je to rozhraní API. API – rozhraní pro programování aplikací – je softwarový prostředník, který umožňuje dvěma nebo více aplikacím sdílet informace. Například rozhraní API webu CoinMarketCap umožňuje ostatním aplikacím získávat a používat údaje o kryptoměnách, jako je cena, objem a tržní kapitalizace.

Klíč API má řadu různých podob – může se jednat o jeden klíč nebo sadu více klíčů. Různé systémy tyto klíče používají k ověření a autorizaci aplikace, podobně jako se používá uživatelské jméno a heslo. Klíč API používá klient API k ověření aplikace vyvolávající rozhraní API. 

Pokud chce například Akademie Binance používat rozhraní API webu CoinMarketCap, web CoinMarketCap vygeneruje klíč API, který se použije k ověření identity (klienta API) Akademie Binance, který žádá o přístup k rozhraní API. Když se Akademie Binance snaží získat přístup k rozhraní API webu CoinMarketCap, měla by spolu s požadavkem odeslat do CoinMarketCap i tento klíč API. 

Tento klíč API by měla používat výhradně Akademie Binance a neměla by ho s nikým sdílet. Sdílení tohoto klíče API umožní třetí straně přistupovat ke službě webu CoinMarketCap jménem Akademie Binance a veškerá činnost této třetí strany bude vypadat, jako by ji prováděla Akademie Binance.

Klíč API může použít také rozhraní API webu CoinMarketCap, aby si ověřilo, že aplikace může k požadovanému prostředku přistupovat. Vlastníci rozhraní API navíc klíče API používají ke sledování aktivity – typy a objem požadavků rozhraní API nebo celkový provoz. 

Co je klíč API? 

Klíč API slouží ke kontrole a sledování toho, kdo a jak rozhraní API používá. Pojem „klíč API“ může v různých systémech znamenat různé věci. Některé systémy mají jeden kód, zatímco jiné mohou mít pro jeden „klíč API“ kódů několik.   

Klíč API jako takový je jedinečný kód nebo sada jedinečných kódů, které rozhraní API používá k ověření a autorizaci vyvolávajícího uživatele nebo aplikace. Některé kódy se používají k ověřování a jiné k vytváření kryptografických podpisů, které prokazují oprávněnost požadavku. 

Tyto ověřovací kódy se souhrnně označují jako „klíč API“, zatímco kódy používané u kryptografických podpisů mají různé názvy, například „tajný klíč“, „veřejný klíč“ nebo „soukromý klíč“. Ověření obnáší identifikaci zúčastněných subjektů a potvrzení, že jsou těmi, za koho se vydávají.

Autorizace zase určuje služby rozhraní API, ke kterým je subjekt oprávněn přistupovat. Klíč API funguje podobně jako uživatelské jméno a heslo k účtu. Navíc ho můžete propojit i s dalšími bezpečnostními prvky, a zvýšit tak celkové zabezpečení. 

Každý klíč API je vlastníkem API (podrobnosti níže) obvykle vygenerován pro určitý subjekt a při každém vyvolání koncového bodu API, které vyžaduje ověření uživatele, autorizaci, případně obojí, se použije příslušný klíč.

Kryptografické podpisy

Některé klíče API používají jako další vrstvu ověření kryptografické podpisy. Když chce uživatel rozhraní API odeslat určitá data, může k požadavku přidat digitální podpis vygenerovaný jiným klíčem. Pomocí kryptografie může vlastník rozhraní API ověřit, jestli daný digitální podpis odpovídá odeslaným datům.

Symetrické a asymetrické podpisy 

Data sdílená prostřednictvím rozhraní API je možno podepsat kryptografickými klíči, které spadají do následujících kategorií:

Symetrické klíče

Tyto klíče k podepisování dat i ověření podpisu používají jeden tajný klíč. U symetrických klíčů obvykle klíč API a tajný klíč generuje vlastník rozhraní API a k ověření podpisu musí služba rozhraní API použít stejný tajný klíč. Hlavní výhodou použití jediného klíče je, že je rychlejší a že při generování a ověřování podpisu nevyžaduje tak vysoký výpočetní výkon. Dobrým příkladem symetrického klíče je HMAC.

Asymetrické klíče

Jedná se o použití odlišného soukromého a veřejného klíče, které jsou kryptograficky propojené. Soukromý klíč se používá k vygenerování podpisu a veřejný klíč se používá k ověření podpisu. Klíč API generuje vlastník rozhraní API, ale dvojici soukromého a veřejného klíče generuje uživatel. K ověření podpisu stačí vlastníkovi rozhraní API jen veřejný klíč, takže soukromý klíč může zůstat v tajnosti. 

Hlavní výhodou asymetrických klíčů je vyšší bezpečnost odděleného generování podpisu od ověřovacích klíčů. Díky tomu mohou externí systémy ověřovat podpisy, aniž by je byly schopny generovat. Další výhodou je, že některé systémy asymetrického šifrování podporují doplnění soukromých klíčů o heslo. Dobrým příkladem je pár klíčů RSA. 

Jsou klíče API bezpečné? 

Odpovědnost za bezpečnost klíče API nese uživatel. Klíče API jsou podobné heslům, a proto je třeba s nimi zacházet stejně opatrně. Sdílet klíč API je tedy podobné jako sdílet heslo, takže byste se tomu měli vyvarovat, protože tím můžete ohrozit uživatelský účet. 

Klíče API se běžně stávají terčem kybernetických útoků, protože v různých systémech slouží k důležitým operacím, jako je vyžadování osobních údajů nebo provádění finančních transakcí. Dokonce došlo k případům, kdy prohledávací moduly (crawlery) úspěšně napadly online kódové databáze a ukradly klíče API.

Důsledky krádeže klíče API mohou být drastické a vést ke značným finančním ztrátám. Navíc vzhledem k tomu, že platnost některých klíčů API je neomezená, mohou je útočníci po odcizení používat, dokud je někdo nezruší.

Osvědčené postupy při používání klíčů API

Bezpečné používání klíčů API je vzhledem k jejich přístupu k citlivým údajům a obecné zranitelnosti nesmírně důležité. Když budete při používání klíčů API dodržovat následující osvědčené postupy, zvýšíte tím jejich celkové zabezpečení. 

  1. Klíče API často střídejte: to znamená, že byste měli svůj stávající klíč API odstranit a nechat si vygenerovat nový. U řady systémů je generování a odstraňování klíčů API velmi snadné. Tak jako některé systémy vyžadují změnu hesla každých 30 až 90 dní, byste měli s podobnou frekvencí měnit i klíče API.

  2. Používejte seznam povolených IP adres: při vytváření klíče API vytvořte seznam IP adres, které mohou klíč používat. Můžete také vytvořit seznam blokovaných IP adres. Díky tomu nebude mít ke klíči API přístup ani v případě jeho krádeže žádná neznámá IP adresa.

  3. Používejte více klíčů API: několik klíčů API s rozdělenými pravomocemi sníží bezpečnostní riziko, protože vaše zabezpečení nebude závislé na jediném klíči s rozsáhlými oprávněními. Pro každý klíč můžete také nastavit různé seznamy povolených IP adres, a bezpečnostní riziko tak o to víc snížit. 

  4. Ukládejte klíče API pouze zabezpečeným způsobem: neukládejte klíče na veřejných místech, veřejných počítačích ani v původním formátu prostého rextu. Místo toho je zašifrujte nebo uložte do správce tajných klíčů a dejte si pozor, ať je omylem někde nezveřejníte. 

  5. Klíče API nesdílejte: sdílení klíče API je podobné jako sdílení hesla. Dáváte tím jiné straně stejná oprávnění k ověřování a autorizaci, jako máte vy. Pokud z jejich strany dojde k úniku klíče API, může být odcizen a někdo se může do vašeho účtu nabourat. Klíč API byste měli používat pouze vy a systém, který ho vygeneroval.

Pokud dojde k úniku vašeho klíče API, deaktivujte ho, ať zabráníte dalším škodám. Pokud dojde k finanční ztrátě, pořiďte snímky obrazovky s klíčovými informacemi souvisejícími s incidentem, kontaktujte příslušné subjekty a nahlaste to na policii. Je to nejlepší způsob, jak se pokusit získat ztracené prostředky zpět. 

Závěrem

Klíče API umožňují ověřování a autorizaci, takže uživatelé by měli své klíče pečlivě spravovat a chránit. Bezpečné používání klíčů API má mnoho úrovní a aspektů. Obecně byste měli s klíčem API zacházet stejně jako s heslem k účtu.

Související články: