Mi az az API-kulcs, és hogyan használható biztonságosan?
KezdŇĎlap
Cikkek
Mi az az API-kulcs, és hogyan használható biztonságosan?

Mi az az API-kulcs, és hogyan használható biztonságosan?

K√∂z√©pszintŇĪ
Közzétéve Jan 6, 2023Frissítve Feb 21, 2023
7m


Az API-kulcs egy egyedi k√≥d, amelyet egy API (Application Programming Interface ‚Äď alkalmaz√°sprogramoz√°si fel√ľlet) a h√≠v√≥ alkalmaz√°s vagy felhaszn√°l√≥ azonos√≠t√°s√°hoz haszn√°l. Az API-kulcsok seg√≠ts√©g√©vel nyomon k√∂vethetŇĎ √©s ellenŇĎrizhetŇĎ, hogy ki √©s hogyan haszn√°l egy API-t, tov√°bb√° alkalmaz√°sok hiteles√≠t√©s√©re √©s enged√©lyez√©s√©re is alkalmas ‚Äď a felhaszn√°l√≥nevek √©s jelszavak mŇĪk√∂d√©s√©hez hasonl√≥an. Az API-kulcs jelenthet egyetlen kulcsot, vagy t√∂bb kulcsb√≥l √°ll√≥ csoportot is. Az API-kulcslop√°s elleni √°ltal√°nos biztons√°guk jav√≠t√°sa √©rdek√©ben a felhaszn√°l√≥knak √©rdemes k√∂vetni√ľk a bev√°lt gyakorlatokat, hogy elker√ľlhess√©k az API-kulcsok illet√©ktelen felhaszn√°l√°s√°nak k√∂vetkezm√©nyeit.

API vs API-kulcs

Ahhoz, hogy meg√©rts√ľk mi az az API-kulcs, elŇĎsz√∂r meg kell √©rten√ľnk, mi az API. Az alkalmaz√°sprogramoz√°si fel√ľlet vagy API egy k√∂zvet√≠tŇĎ szoftver, amely lehetŇĎv√© teszi, hogy kettŇĎ vagy t√∂bb alkalmaz√°s inform√°ci√≥t osszon meg egym√°ssal. P√©ld√°ul a CoinMarketCap API-ja lehetŇĎv√© teszi, hogy m√°s alkalmaz√°sok lek√©rj√©k √©s haszn√°lj√°k a kript√≥k adatait, p√©ld√°ul az √°rfolyam-, a forgalmi √©s piaci kapitaliz√°ci√≥s adatokat.

Az API-kulcs sz√°mos k√ľl√∂nb√∂zŇĎ form√°t √∂lthet: lehet egyetlen kulcs, de egy t√∂bb kulcsb√≥l √°ll√≥ k√©szlet is. A k√ľl√∂nb√∂zŇĎ rendszerek ezekkel a kulcsokkal v√©gzik az alkalmaz√°sa hiteles√≠t√©s√©t √©s enged√©lyez√©s√©t, hasonl√≥an a felhaszn√°l√≥nevek √©s a jelszavak haszn√°lat√°hoz. Az API-kliens az API-kulccsal hiteles√≠ti az API-t h√≠v√≥ alkalmaz√°st.¬†

P√©ld√°ul, ha Binance Academy haszn√°lni k√≠v√°nja a CoinMarketCap API-j√°t, akkor a CoinMarketCap gener√°l egy API-kulcsot, √©s azzal ellenŇĎrzi a Binance Academy (az API-kliens) kil√©t√©t, amely az API-hozz√°f√©r√©st k√©ri. Amikor a Binance Academy csatlakozik a CoinMarketCap API-j√°hoz, ezt az API-kulcsot kell elk√ľldeni a CoinMarketCap r√©sz√©re a k√©relemmel egy√ľtt.¬†

Ezt az API-kulcsot csak a Binance Academy haszn√°lhatja, √©s nem szabad m√°sokkal megosztani, illetve m√°snak elk√ľldeni. Az API-kulcs megoszt√°sa lehetŇĎv√© teszi a harmadik f√©lnek, hogy a Binance Academy-nek kiadva mag√°t hozz√°f√©rjen a CoinMarketCap-hez, √©s √ļgy tŇĪnik majd, mintha az √°ltala v√©grehajtott √∂sszes mŇĪveletet a Binance Academy hajtotta volna v√©gre.

Az API-kulcsot a CoinMarketCap API is felhaszn√°lhatja annak megerŇĎs√≠t√©s√©re, hogy az alkalmaz√°s rendelkezik enged√©llyel a k√©rt forr√°s el√©r√©s√©re. Emellett az API-tulajdonosok az API-kulcsok seg√≠ts√©g√©vel megfigyelhetik az API-tev√©kenys√©get, p√©ld√°ul a k√©r√©sek t√≠pus√°t, adatforgalm√°t √©s mennyis√©g√©t.¬†

Mi az API-kulcs? 

Az API-kulcs seg√≠ts√©g√©vel kontroll√°lhat√≥ √©s nyomon k√∂vethetŇĎ, hogy ki √©s hogyan haszn√°lja az API-t. Az ‚ÄěAPI-kulcs‚ÄĚ kifejez√©s a k√ľl√∂nb√∂zŇĎ rendszerek eset√©n elt√©rŇĎ jelent√©st hordozhat. Egyes rendszerek egyetlen k√≥dot alkalmaznak, m√≠g m√°sokn√°l egyetlen ‚ÄěAPI-kulcs‚ÄĚ t√∂bb k√≥db√≥l √©p√ľl fel.¬†¬†¬†

√ćgy az ‚ÄěAPI-kulcs‚ÄĚ egy egyedi k√≥d vagy t√∂bb egyedi k√≥db√≥l √°ll√≥ k√©szlet, amellyel egy API a h√≠v√≥ felhaszn√°l√≥t vagy alkalmaz√°st hiteles√≠ti √©s enged√©lyezi. Egyes k√≥dok a hiteles√≠t√©st szolg√°lj√°k, m√≠g m√°sok az adatk√©r√©s legitimit√°s√°t bizony√≠t√≥ kriptogr√°fiai al√°√≠r√°sok l√©trehoz√°s√°ban vesznek r√©szt.¬†

Az ilyen hiteles√≠tŇĎ k√≥dok sz√©les k√∂rben haszn√°lt k√∂z√∂s megnevez√©se az ‚ÄěAPI-kulcs‚ÄĚ, m√≠g a kriptogr√°fiai al√°√≠r√°sok l√©trehoz√°s√°hoz haszn√°lt k√≥dok k√ľl√∂nb√∂zŇĎ n√©ven ismertek, p√©ld√°ul ‚Äětitkos kulcs‚ÄĚ, ‚Äěnyilv√°nos kulcs‚ÄĚ vagy ‚Äěpriv√°tkulcs‚ÄĚ. A hiteles√≠t√©s mag√°val hozza az √©rintett entit√°sok azonos√≠t√°s√°t √©s annak megerŇĎs√≠t√©s√©t, hogy val√≥ban azok, akiknek mondj√°k magukat.

Ellenben a engedélyezés azokat az API-szolgáltatásokat határozza meg, amelyekhez engedélyezett a hozzáférés. Az API-kulcs szerepe hasonló egy fiókhoz tartozó felhasználónév és jelszó szerepéhez; más biztonsági funkciókhoz is hozzákapcsolható az általános biztonság javítása érdekében. 

Az API-kulcsokat √°ltal√°ban egy konkr√©t entit√°s r√©sz√©re gener√°lja az API-tulajdonos (tov√°bbi r√©szletek al√°bb olvashat√≥k), √©s minden alkalommal, amikor egy API-v√©gpontra h√≠v√°s √©rkezik ‚Äď amely megk√∂veteli a felhaszn√°l√≥ hiteles√≠t√©s√©t, enged√©lyez√©s√©t vagy mindkettŇĎt ‚Äď a hozz√°kapcsolt kulcsot haszn√°lja.

Kriptográfiai aláírások

N√©h√°ny API-kulcs kriptogr√°fiai al√°√≠r√°sokat haszn√°l, hogy tov√°bbi szintet adjon a hiteles√≠t√©shez. Amikor egy felhaszn√°l√≥ bizonyos adatokat k√≠v√°n elk√ľldeni egy API fel√©, egy m√°sik kulccsal gener√°lt digit√°lis al√°√≠r√°s adhat√≥ a k√©r√©shez. Az API-tulajdonos kriptogr√°fiai m√≥dszerekkel ellenŇĎrizheti, hogy a digit√°lis al√°√≠r√°s megegyezik a k√ľld√∂tt adattal.

Szimmetrikus és aszimmetrikus aláírások 

Egy API-n kereszt√ľl megosztott adatokat kriptogr√°fiai kulcsok seg√≠ts√©g√©vel is al√° lehet √≠rni, amelyek a k√∂vetkezŇĎ kateg√≥ri√°kba sorolhat√≥k:

Szimmetrikus kulcsok

Ilyen megold√°s eset√©n egy titkos kulcs haszn√°latos az adat al√°√≠r√°s√°hoz √©s az al√°√≠r√°s ellenŇĎrz√©s√©hez. Szimmetrikus kulcsok eset√©n az API-kulcsot √©s titkos kulcsot √°ltal√°ban az API-tulajdonos gener√°lja, √©s az API-szolg√°ltat√°snak ugyanazt a titkos kulcsot kell haszn√°lnia az al√°√≠r√°s ellenŇĎrz√©s√©hez. Az egyetlen kulcs haszn√°lat√°nak fŇĎ elŇĎnye, hogy gyorsabb √©s kisebb sz√°m√≠t√°si teljes√≠tm√©nyt ig√©nyel az al√°√≠r√°s l√©trehoz√°s√°hoz, illetve ellenŇĎrz√©s√©hez. A szimmetrikus kulcsra j√≥ p√©lda a HMAC.

Aszimmetrikus kulcsok

Ez a m√≥dszer k√©t kulcsot haszn√°l: egy priv√°tkulcsot √©s egy nyilv√°nos kulcsot, amelyek k√ľl√∂nb√∂zŇĎek, de kriptografikus m√≥don kapcsol√≥dnak egym√°shoz. A priv√°tkulcs szolg√°l az al√°√≠r√°s gener√°l√°s√°ra, a nyilv√°nos kulcs pedig az al√°√≠r√°s ellenŇĎrz√©s√©re. Az API-kulcsot az API-tulajdonos hozza l√©tre, √°m a priv√°tkulcsot √©s a nyilv√°nos kulcsot a felhaszn√°l√≥. Az API-tulajdonosnak az al√°√≠r√°s ellenŇĎrz√©s√©hez csak a nyilv√°nos kulcsra van sz√ľks√©ge, √≠gy a priv√°tkulcs helyben √©s titokban maradhat.¬†

Az aszimmetrikus kulcsok haszn√°lat√°b√≥l fakad√≥ fŇĎ elŇĎny a nagyobb biztons√°g, amelyet az al√°√≠r√°st l√©trehoz√≥ √©s az azt ellenŇĎrzŇĎ kulcs sz√©tv√°laszt√°sa eredm√©nyez. Ez lehetŇĎv√© teszi, hogy a k√ľlsŇĎ rendszerek an√©lk√ľl ellenŇĎrizhess√©k az al√°√≠r√°sokat, hogy gener√°lni tudn√°k ŇĎket. Egy m√°sik elŇĎny, hogy az aszimmetrikus titkos√≠t√°si rendszerek t√°mogatj√°k a jelsz√≥ hozz√°ad√°s√°t a priv√°tkulcshoz. J√≥ p√©lda erre egy RSA-kulcsp√°r.¬†

Biztonságosak az API-kulcsok? 

Az API-kulccsal kapcsolatos felelŇĎss√©g a felhaszn√°l√≥√©. Az API-kulcsok hasonl√≥ak a jelszavakhoz, √©s ugyanazzal a k√∂r√ľltekint√©ssel kell kezelni ŇĎket. Egy API-kulcs megoszt√°sa hasonl√≥ egy jelsz√≥ megoszt√°s√°hoz, √©s mint ilyen, nem szabad megtenni, mivel vesz√©lyezteti a felhaszn√°l√≥ fi√≥kj√°t.¬†

Az API-kulcsok a kibert√°mad√°sok gyakori c√©lpontjai, mert a seg√≠ts√©g√ľkkel nagyszab√°s√ļ mŇĪveleteket lehet v√©grehajtani bizonyos rendszerekben, p√©ld√°ul szem√©lyes adatokat lehet lek√©rni, illetve p√©nz√ľgyi tranzakci√≥kat lehet v√©grehajtani. Bizony, volt m√°r r√° p√©lda hogy adatgyŇĪjtŇĎ programokkal (√ļn. crawlerekkel) sikeresen t√°madtak online k√≥dadatb√°zisokat √©s loptak el¬†API-kulcsokat.

Az API-kulcslop√°s drasztikus k√∂vetkezm√©nyekkel j√°rhat, √©s jelentŇĎs p√©nz√ľgyi vesztes√©geket okozhat. Tov√°bb√°, mivel n√©h√°ny API-kulcs √©rv√©nyess√©ge nem j√°r le, azokat a t√°mad√≥k a lop√°s ut√°n eg√©szen addig haszn√°lhatj√°k, am√≠g a kulcsokat vissza nem h√≠vj√°k.

Az API-kulcsok felhaszn√°l√°s√°nak bev√°lt gyakorlatai

Az √©rz√©keny adatokhoz val√≥ hozz√°f√©r√©s√ľk √©s √°ltal√°nos sebezhetŇĎs√©g√ľk miatt az API-kulcsok biztons√°gos haszn√°lata felbecs√ľlhetetlen jelentŇĎs√©ggel b√≠r. Az API-kulcsok haszn√°lata sor√°n az al√°bbi bev√°lt gyakorlatokat k√∂vetve fokozhat√≥ az √°ltal√°nos biztons√°guk:¬†

  1. V√°ltogassuk az API-kulcsokat, amilyen gyakran csak lehet. Ez azt jelenti, hogy t√∂r√∂lni kell az aktu√°lis API-kulcsot, √©s √ļjat kell k√©sz√≠teni helyette. T√∂bb rendszer eset√©n az API-kulcsok gener√°l√°sa √©s t√∂rl√©se egyszerŇĪ. Hasonl√≥an ahhoz, ahogy egyes rendszerek 30‚Äď90 naponta megk√∂vetelik a jelsz√≥ m√≥dos√≠t√°s√°t, az API-kulcsokat is hasonl√≥ gyakoris√°ggal v√°ltogatni kell, ha lehets√©ges.

  2. Haszn√°ljon IP enged√©lyez√©si list√°t: amikor l√©trehoz egy API-kulcsot, √≠rjon list√°t azokkal az IP-c√≠mekkel, amelyek haszn√°lhatj√°k az adott kulcsok (vagyis k√©sz√≠tsen egy IP enged√©lyez√©si list√°t). Emellett list√°ba szedheti a blokkolt IP-c√≠meket is (ez pedig az IP-feketelista). √ćgy m√©g ha az API-kulcsot el is lopj√°k, ismeretlen IP-c√≠mrŇĎl akkor sem kaphatnak hozz√°f√©r√©s.

  3. Haszn√°ljon t√∂bb API-kulcsot: t√∂bb kulcs haszn√°lat√°val √©s a felelŇĎss√©g feloszt√°s√°val a kulcsok k√∂z√∂tt cs√∂kkentheti a biztons√°gi kock√°zatot, mivel a v√©delme nem egyetlen, kiterjedt hozz√°f√©r√©si enged√©lyekkel rendelkezŇĎ kulcson √°ll vagy bukik. Emellett minden kulcshoz fel√°ll√≠that egy k√ľl√∂n√°ll√≥ IP enged√©lyez√©si list√°t, tov√°bb cs√∂kkentve a biztons√°gi kock√°zatot.¬†

  4. T√°rolja az API-kulcsokat biztons√°gos helyen: ne t√°rolja a kulcsokat nyilv√°nos helyeken, b√°rki √°ltal hozz√°f√©rhetŇĎ sz√°m√≠t√≥g√©peken, illetve az eredeti, egyszerŇĪ sz√∂vegform√°tumban. Ehelyett a nagyobb biztons√°g √©rdek√©ben t√°rolja az egyes kulcsokat titkos√≠tott m√≥don vagy egy titkos kezelŇĎn√©l, √©s legyen √≥vatos, nehogy v√©letlen√ľl felfedje ŇĎket.¬†

  5. Ne hossza meg m√°ssal az API-kulcsait. Az API-kulcs megoszt√°sa olyan, mintha a jelszav√°t osztan√° meg. Ha √≠gy tesz, azzal ugyanazokat a hiteles√≠t√©si √©s felhaszn√°l√≥i jogosults√°gokat adja a m√°sik f√©lnek, mint ami √Ėnnek is van. Biztons√°gi incidens eset√©n az API-kulcs√°t ellophatj√°k, √©s felhaszn√°lhatj√°k arra, hogy felt√∂rj√©k a fi√≥kj√°t. Az API-kulcsot csak √Ėn haszn√°lhatja a kulcsot l√©trehoz√≥ rendszerhez.

Ha az API-kulcsa kitud√≥dik, akkor elŇĎsz√∂r is le kell tiltania azt, hogy megelŇĎzze a tov√°bbi k√°rokat. Ha p√©nz√ľgyi vesztes√©g is keletkezett, akkor k√©sz√≠tsen k√©pernyŇĎk√©peket az incidenshez kapcsol√≥d√≥ legfontosabb inform√°ci√≥kr√≥l, l√©pjen kapcsolatba az √©rintett entit√°sokkal √©s tegyen bejelent√©st a rendŇĎrs√©gen. Ez a legjobb m√≥dja annak, hogy n√∂velje az es√©lyt az elvesztett p√©nzeszk√∂z√∂k visszaszerz√©s√©re.¬†

Záró gondolatok

Az API-kulcsok alapvetŇĎ hiteles√≠t√©si √©s enged√©lyez√©si funkci√≥kat k√≠n√°lnak, a felhaszn√°l√≥k pedig k√∂telesek kellŇĎ √≥vatoss√°ggal kezelni √©s v√©deni a kulcsaikat. Az API-kulcsok biztons√°gos haszn√°lat√°nak sz√°mos vet√ľlete √©s szintje van. √Ėsszefoglalva azt mondhatjuk, hogy az API-kulcsot ugyan√ļgy kell kezelni, mint a saj√°t fi√≥khoz tartoz√≥ jelsz√≥t.

További olvasnivaló