Ang application programming interface (API) key ay isang natatanging code na ginagamit ng isang API para tukuyin ang tumatawag na application o user. Ginagamit ang mga API key para subaybayan at kontrolin kung sino ang gumagamit ng API at kung paano nila ito ginagamit, pati na rin para mag-authenticate at magpahintulot ng mga application — katulad ng paggana ng mga username at password. Puwedeng nasa anyo ng iisang key o isang hanay ng maraming key ang API key. Dapat sumunod ang mga user sa pinakamahuhusay na kagawian para mapaigting ang kanilang pangkalahatang seguridad laban sa pagnanakaw ng API key at para maiwasan ang mga kaugnay na kahihinatnan ng pagkompromiso sa kanilang mga API key.
API vs API Key
Para maintindihan kung ano ang API key, dapat mo munang maintindihan kung ano ang API. Ang application programming interface o API ay isang software intermediary na nagbibigay-daan sa dalawa o higit pang application na magbahagi ng impormasyon. Halimbawa, nagbibigay-daan ang API ng CoinMarketCap sa iba pang application na kumuha at gumamit ng data ng crypto, gaya ng presyo, dami, at market cap.
Maraming iba't ibang anyo ang API key — puwedeng ito ay isang key o isang hanay ng maraming key. Ginagamit ng iba't ibang system ang mga key na ito para mag-authenticate at magpahintulot ng application, katulad ng kung paano ginagamit ang username at password. Ginagamit ng isang API client ang API key para mag-authenticate ng application na tumatawag sa API.
Halimbawa, kung gustong gamitin ng Binance Academy ang CoinMarketCap API, bubuo ng API key ang CoinMarketCap at gagamitin ito para i-authenticate ang pagkakakilanlan ng Binance Academy (ang API client), na humihiling ng access sa API. Kapag na-access ng Binance Academy ang API ng CoinMarketCap, dapat ipadala ang API key na ito sa CoinMarketCap kasama ng kahilingan.
Binance Academy lang ang dapat gumamit sa API key na ito at hindi dapat ito ibahagi o ipadala sa iba. Kapag ibinahagi ang API key na ito, maa-access ng isang third party ang CoinMarketCap bilang Binance Academy, at magmumukhang nagmula sa Binance Academy ang anumang pagkilos ng third party.
Magagamit din ng CoinMarketCap API ang API key para kumpirmahin kung may pahintulot ang application na i-access ang hinihiling na resource. Dagdag pa rito, gumagamit ng mga API key ang mga may-ari ng API para subaybayan ang aktibidad ng API, gaya ng mga uri, trapiko, at dami ng mga kahilingan.
Ano ang API Key?
Ginagamit ang API key para kontrolin at subaybayan kung sino ang gumagamit ng API at kung paano nila ito ginagamit. Puwedeng magkaroon ng iba't ibang kahulugan ang terminong “API key” para sa iba't ibang system. May iisang code ang ilang system pero ang iba naman ay puwedeng magkaroon ng maraming code para sa isang “API key.”
Dahil dito, ang “API key” ay isang natatanging code o isang hanay ng mga natatanging code na ginagamit ng isang API para i-authenticate at pahintulutan ang tumatawag na user o application. Ginagamit ang ilang code para sa pag-authenticate at ginagamit naman ang ilan para sa paggawa ng mga cryptographic signature para patunayan ang pagiging lehitimo ng isang kahilingan.
Karaniwang tinutukoy ang mga authentication code na ito sa pangkalahatan bilang “API key,” habang ang mga code naman na ginagamit para sa mga cryptographic signature ay may iba't ibang pangalan, gaya ng “secret key,” “pampublikong key,” o “pribadong key.” Ang ibig sabihin ng authentication ay pagtukoy sa mga entity na sangkot at pagkumpirma na sila nga ang pakilala nila.
Sa kabilang banda, tinutukoy ng pagpapahintulot ang mga serbisyo ng API kung saan pinapayagan ang pag-access. Katulad ng username at password ng account ang function ng isang API key; puwede rin itong ikonekta sa iba pang panseguridad na feature para mapaigting ang pangkalahatang seguridad.
Karaniwang binubuo ang bawat API key para sa isang partikular na entity ng may-ari ng API (may higit pang detalye sa ibaba) at sa tuwing may tatawag sa isang API endpoint — na nangangailangan ng pag-authenticate o pagpapahintulot ng user, o pareho — gagamitin ang kaukulang key.
Mga Cryptographic Signature
Gumagamit ang ilang API key ng mga cryptographic signature bilang karagdagang layer ng pag-verify. Kapag may user na gustong magpadala ng partikular na data sa isang API, puwedeng magdagdag sa kahilingan ng isang digital signature na nabuo ng isa pang key. Gamit ang cryptography, puwedeng i-verify ng may-ari ng API na tumutugma ang digital signature na ito sa ipinadalang data.
Mga Symmetric at Asymmetric Signature
Puwedeng i-sign ang data na ibinabahagi sa pamamagitan ng API gamit ang mga cryptographic key, na nabibilang sa mga sumusunod na kategorya:
Mga symmetric key
Kasama rito ang paggamit ng isang secret key para gawin ang pag-sign ng data at pag-verify ng signature. Sa mga symmetric key, karaniwang binubuo ng may-ari ng API ang API key at secret key at dapat gamitin ng serbisyo ng API ang parehong secret para sa pag-verify ng signature. Ang pangunahing bentahe ng paggamit ng isang key ay ang paggawa noon ay mas mabilis at nangangailangan ng mas kaunting computational power para sa pagbuo at pag-verify ng signature. Isang magandang halimbawa ng symmetric key ang HMAC.
Mga asymmetric key
Kasama rito ang paggamit ng dalawang key: isang pribadong key at isang pampublikong key, na magkaiba pero magkaugnay sa pamamagitan ng cryptography. Ginagamit ang pribadong key para sa pagbuo ng signature at ginagamit ang pampublikong key para sa pag-verify ng signature. Binubuo ng may-ari ng API ang API key pero ang user ang bumubuo ng pribadong key at pampublikong key. Ang pampublikong key lang ang kailangang gamitin ng may-ari ng API para sa pag-verify ng signature, kaya puwedeng manatiling lokal at sikreto ang pribadong key.
Ang pangunahing bentahe ng paggamit ng mga asymmetric key ay ang mas mataas na seguridad ng paghihiwalay ng mga key ng pagbuo at pag-verify ng signature. Sa pamamagitan nito, makakapag-verify ng mga signature ang mga external system nang hindi nakakabuo ng mga signature. Isa pang bentahe ay sinusuportahan ng ilang system ng asymmetric na pag-encrypt ang pagdaragdag ng password sa mga pribadong key. Isang magandang halimbawa ang pares ng RSA key.
Secure ba ang mga API Key?
Nasa user ang responsibilidad ng isang API key. Katulad ng mga password ang mga API key at kailangan itong pag-ingatan sa parehong paraan. Pareho ang pagbabahagi ng API key sa pagbabahagi ng password at dahil dito, hindi ito dapat gawin dahil malalagay sa panganib ang account ng user kapag ginawa iyon.
Karaniwang tina-target ang mga API key sa mga cyberattack dahil magagamit ang mga ito para magsagawa ng mahahalagang pagpapatakbo sa mga system, gaya ng paghiling ng personal na impormasyon o pagsasagawa ng mga pinansyal na transaksyon. Sa katunayan, may mga sitwasyon kung saan matagumpay na naatake ng mga crawler ang mga online na database ng code para magnakaw ng mga API key.
Posibleng maging malala ang mga kahihinatnan ng pagnanakaw ng API key at puwede itong humantong sa pagkawala ng malaking pera. Higit pa rito, dahil hindi nag-e-expire ang ilang API key, puwedeng gamitin ang mga ito ng mga attacker sa loob ng hindi tiyak na panahon kapag nanakaw ito, hanggang sa mapawalang-bisa na ang mga mismong key.
Pinakamahuhusay na Kagawian Kapag Gumagamit ng Mga API Key
Dahil sa access ng mga ito sa sensitibong data at sa pangkalahatang kahinaan ng mga ito, napakahalaga ng secure na paggamit ng mga API key. Puwede mong sundin ang mga alituntunin ng pinakamahuhusay na kagawiang ito kapag gumagamit ng mga API key para mapaigting ang pangkalahatang seguridad ng mga ito:
Madalas na paikutin ang iyong mga API key kung posible. Ibig sabihin nito, dapat mong i-delete ang iyong kasalukuyang API key at dapat kang gumawa ng bago. Gamit ang maraming system, madaling bumuo at mag-delete ng mga API key. Katulad ng paghiling sa iyo ng ilang system na magpalit ng password bawat 30 hanggang 90 araw, dapat mong paikutin ang iyong mga API key nang ganito rin kadalas kung posible.
Gumamit ng pag-whitelist ng IP: Kapag gumawa ka ng API key, gumawa ng listahan ng mga IP na pinapahintulutang gumamit sa key (IP whitelist). Puwede ka ring tumukoy ng listahan ng mga naka-block na IP (IP blacklist). Sa ganitong paraan, kahit na manakaw ang iyong API key, hindi pa rin ito maa-access ng hindi nakikilalang IP.
Gumamit ng maraming API key: Sa pagkakaroon ng maraming key at paghahati ng mga responsibilidad sa mga ito, mababawasan ang panganib sa seguridad, dahil hindi aasa ang iyong seguridad sa isang key na maraming pahintulot. Puwede ka ring magtakda ng iba't ibang IP whitelist para sa bawat key, na mas makakabawas pa sa iyong panganib sa seguridad.
Secure na mag-store ng mga API key: Huwag i-store ang iyong mga key sa mga pampublikong lugar, sa mga pampublikong computer, o sa orihinal na plain text format ng mga ito. Sa halip, i-store ang bawat isa gamit ang pag-encrypt o isang secret manager para sa mas mahusay na seguridad, at mag-ingat na huwag malantad ang mga ito nang hindi sinasadya.
Huwag ibahagi ang iyong mga API. Ang pagbabahagi ng iyong API key ay katulad ng pagbabahagi ng iyong password. Kapag ginawa mo ito, ibinibigay mo sa ibang partido ang mga parehong pribilehiyo sa pag-authenticate at pagpapahintulot na mayroon ka. Kung makokompromiso sila, puwedeng manakaw ang iyong API key at puwede itong gamitin para i-hack ang account mo. Dapat lang gamitin ang API key sa pagitan mo at ng system na bumubuo nito.
Kung nakompromiso ang iyong API key, kailangan mo muna itong i-disable para pigilan ang karagdagang pinsala. Kung may anumang nawalang pera, kumuha ng mga screenshot ng mahalagang impormasyon na nauugnay sa insidente, makipag-ugnayan sa mga kaugnay na entity, at maghain ng report sa pulisya. Ito ang pinakamagandang paraan para lumaki ang tsansa mong mabawi ang anumang nawalang pondo.
Mga Pangwakas na Pananaw
Nagbibigay ang mga API key ng mga pangunahing function ng pag-authenticate at pagpapahintulot, at dapat maingat na pamahalaan at protektahan ng mga user ang kanilang mga key. Maraming layer at aspekto ang pagtiyak sa ligtas na paggamit ng mga API key. Sa pangkalahatan, dapat tratuhin ang API key nang tulad sa password ng iyong account.