Ce este o cheie API ╚Öi cum s─â o folosi╚Ťi ├«n siguran╚Ť─â?
Acas─â
Articole
Ce este o cheie API ╚Öi cum s─â o folosi╚Ťi ├«n siguran╚Ť─â?

Ce este o cheie API ╚Öi cum s─â o folosi╚Ťi ├«n siguran╚Ť─â?

Intermediar
Publicat Jan 6, 2023Actualizat Feb 21, 2023
7m


O cheie de interfa╚Ť─â de programare a aplica╚Ťiilor (API) este un cod unic utilizat de un API pentru a identifica aplica╚Ťia sau utilizatorul care apeleaz─â. Cheile API sunt folosite pentru a urm─âri ╚Öi controla cine folose╚Öte un API ╚Öi cum ├«l folose╚Öte, precum ╚Öi pentru a autentifica ╚Öi autoriza aplica╚Ťiile - similar cu modul ├«n care func╚Ťioneaz─â numele de utilizator ╚Öi parolele. O cheie API poate fi sub forma unei singure chei sau a unui set de chei multiple. Utilizatorii ar trebui s─â urmeze cele mai bune practici pentru a-╚Öi ├«mbun─ât─â╚Ťi securitatea general─â ├«mpotriva furtului de chei API ╚Öi pentru a evita consecin╚Ťele legate de compromiterea cheilor lor API.

API vs Cheie API

Pentru a ├«n╚Ťelege ce este o cheie API, trebuie mai ├«nt├ói s─â ├«n╚Ťelege╚Ťi ce este un API. O interfa╚Ť─â de programare a aplica╚Ťiilor sau un API este un intermediar software care permite partajarea informa╚Ťiilor ├«ntre dou─â sau mai multe aplica╚Ťii. De exemplu, API-ul CoinMarketCap permite altor aplica╚Ťii s─â preia ╚Öi s─â utilizeze date cripto, cum ar fi pre╚Ťul, volumul ╚Öi capitalizarea de pia╚Ť─â.

O cheie API are multe forme diferite - poate fi o singur─â cheie sau un set de chei multiple. Diferite sisteme folosesc aceste chei pentru a autentifica ╚Öi autoriza o aplica╚Ťie, similar modului ├«n care sunt utilizate un nume de utilizator ╚Öi o parol─â. O cheie API este utilizat─â de un client API pentru a autentifica o aplica╚Ťie care apeleaz─â API-ul.┬á

De exemplu, dacă Academia Binance dorește să folosească API-ul CoinMarketCap, CoinMarketCap va genera o cheie API, care va fi folosită pentru a autentifica identitatea Academiei Binance (clientul API), care solicită acces API. Când Academia Binance accesează API-ul CoinMarketCap, această cheie API ar trebui trimisă la CoinMarketCap împreună cu solicitarea. 

Aceast─â cheie API ar trebui s─â fie folosit─â numai de Academia Binance ╚Öi nu ar trebui s─â fie partajat─â sau trimis─â altora. Partajarea acestei chei API va permite unei ter╚Ťe p─âr╚Ťi s─â acceseze CoinMarketCap ca ╚Öi cum ar fi Academia Binance, iar orice ac╚Ťiuni ale ter╚Ťei p─âr╚Ťi vor ap─ârea ca ╚Öi cum ar proveni de la Academia Binance.

Cheia API poate fi folosit─â ╚Öi de API-ul CoinMarketCap pentru a confirma dac─â aplica╚Ťia este autorizat─â s─â acceseze resursa solicitat─â. ├Än plus, proprietarii API folosesc chei API pentru a monitoriza activitatea API, cum ar fi tipurile, traficul ╚Öi volumul solicit─ârilor.┬á

Ce este o cheie API? 

O cheie API este utilizat─â pentru a controla ╚Öi urm─âri cine folose╚Öte un API ╚Öi cum ├«l utilizeaz─â. Termenul ÔÇ×cheie APIÔÇŁ poate ├«nsemna lucruri diferite pentru sisteme diferite. Unele sisteme au un singur cod, dar altele pot avea mai multe coduri pentru o singur─â ÔÇ×cheie APIÔÇŁ.┬á┬á┬á

Ca atare, o ÔÇ×cheie APIÔÇŁ este un cod unic sau un set de coduri unice utilizate de un API pentru a autentifica ╚Öi autoriza utilizatorul sau aplica╚Ťia care apeleaz─â. Unele coduri sunt folosite pentru autentificare, iar altele sunt folosite pentru crearea de semn─âturi criptografice pentru a dovedi legitimitatea unei cereri.┬á

Aceste coduri de autentificare sunt denumite colectiv ÔÇ×cheie APIÔÇŁ, ├«n timp ce codurile utilizate pentru semn─âturile criptografice poart─â diverse nume, cum ar fi ÔÇ×cheie secret─âÔÇŁ, ÔÇ×cheie public─âÔÇŁ sau ÔÇ×cheie privat─âÔÇŁ. Autentificarea presupune identificarea entit─â╚Ťilor implicate ╚Öi confirmarea c─â acestea sunt cine sus╚Ťin c─â sunt.

Autorizarea, pe de alt─â parte, specific─â serviciile API la care este permis accesul. Func╚Ťia unei chei API este similar─â cu cea a numelui de utilizator ╚Öi a parolei unui cont; poate fi, de asemenea, conectat─â la alte caracteristici de securitate pentru a ├«mbun─ât─â╚Ťi securitatea general─â.┬á

Fiecare cheie API este generată, de obicei, pentru o anumită entitate de către proprietarul API (mai multe detalii mai jos) și de fiecare dată când se efectuează un apel către un punct final API - care necesită autentificarea sau autorizarea utilizatorului sau ambele - se folosește cheia relevantă.

Semn─âturi criptografice

Unele chei API folosesc semnături criptografice ca un strat suplimentar de verificare. Când un utilizator dorește să trimită anumite date către un API, la cerere, poate fi adăugată o semnătură digitală generată de o altă cheie. Utilizând criptografia, proprietarul API-ului poate verifica dacă această semnătură digitală corespunde cu datele trimise.

Semnături simetrice și asimetrice 

Datele partajate printr-un API pot fi semnate prin chei criptografice, care se încadrează în următoarele categorii:

Chei simetrice

Acestea implic─â utilizarea unei chei secrete pentru a efectua at├ót semnarea datelor, c├ót ╚Öi verificarea unei semn─âturi. Cu cheile simetrice, cheia API ╚Öi cheia secret─â sunt, de obicei, generate de proprietarul API ╚Öi aceea╚Öi cheie secret─â trebuie utilizat─â de serviciul API pentru verificarea semn─âturii. Principalul avantaj al utiliz─ârii unei singure chei este c─â acest lucru este mai rapid ╚Öi necesit─â mai pu╚Ťin─â putere de calcul pentru generarea ╚Öi verificarea semn─âturilor. Un bun exemplu de cheie simetric─â este HMAC.

Chei asimetrice

Acestea implică utilizarea a două chei: o cheie privată și o cheie publică, care sunt diferite, dar asociate criptografic. Cheia privată este folosită pentru generarea semnăturii, iar cheia publică este folosită pentru verificarea semnăturii. Cheia API este generată de proprietarul API, dar cheia privată și perechea de chei publice sunt generate de utilizator. Doar cheia publică trebuie utilizată de proprietarul API-ului pentru verificarea semnăturii, deci cheia privată poate rămâne locală și secretă. 

Principalul avantaj al utilizării cheilor asimetrice este securitatea mai mare a separării cheilor de verificare și generare a semnăturii. Acest lucru permite sistemelor externe să verifice semnăturile fără a putea genera semnături. Un alt avantaj este că unele sisteme de criptare asimetrică acceptă adăugarea unei parole la cheile private. Un bun exemplu este o pereche de chei RSA. 

Sunt cheile API sigure? 

Responsabilitatea unei chei API revine utilizatorului. Cheile API sunt similare cu parolele și trebuie tratate cu aceeași grijă. Partajarea unei chei API este similară cu partajarea unei parole și, ca atare, ar trebui evitată, deoarece acest lucru ar pune în pericol contul utilizatorului. 

Cheile API sunt, de obicei, vizate ├«n atacurile cibernetice, deoarece pot fi folosite pentru a efectua opera╚Ťiuni puternice pe sisteme, cum ar fi solicitarea de informa╚Ťii personale sau executarea de tranzac╚Ťii financiare. De fapt, au existat cazuri de crawlere care au atacat cu succes bazele de date cu coduri online pentru a fura chei API.

Consecin╚Ťele furtului cheilor API pot fi drastice ╚Öi pot duce la pierderi financiare semnificative. ├Än plus, deoarece unele chei API nu expir─â, ele pot fi folosite pe termen nelimitat de c─âtre atacatori odat─â ce sunt furate, p├ón─â c├ónd cheile respective sunt revocate.

Cele mai bune practici la utilizarea cheilor API

Din cauza accesului lor la date sensibile ╚Öi a vulnerabilit─â╚Ťii lor generale, utilizarea ├«n siguran╚Ť─â a cheilor API este de o importan╚Ť─â capital─â. Pute╚Ťi urma aceste instruc╚Ťiuni de bune practici atunci c├ónd utiliza╚Ťi cheile API pentru a le ├«mbun─ât─â╚Ťi securitatea general─â:┬á

  1. Schimba╚Ťi cheile API des, dac─â este posibil. Aceasta ├«nseamn─â c─â ar trebui s─â ╚Öterge╚Ťi cheia API actual─â ╚Öi s─â crea╚Ťi una nou─â. Cu mai multe sisteme, este u╚Öor s─â genera╚Ťi ╚Öi s─â ╚Öterge╚Ťi cheile API. La fel cum unele sisteme v─â solicit─â s─â v─â schimba╚Ťi parola la fiecare 30 p├ón─â la 90 de zile, ar trebui s─â schimba╚Ťi cheile API cu o frecven╚Ť─â similar─â, dac─â este posibil.

  2. Utiliza╚Ťi lista de permisiuni pentru IP-uri: atunci c├ónd crea╚Ťi o cheie API, crea╚Ťi o list─â de IP-uri autorizate s─â utilizeze cheia (o list─â de permisiuni pentru IP-uri). De asemenea, pute╚Ťi specifica o list─â de IP-uri blocate (o list─â neagr─â de IP-uri). ├Än acest fel, chiar dac─â cheia dvs. API este furat─â, tot nu poate fi accesat─â de c─âtre un IP nerecunoscut.

  3. Utiliza╚Ťi mai multe chei API: dac─â ave╚Ťi mai multe chei ╚Öi ├«mp─âr╚Ťi╚Ťi responsabilit─â╚Ťile ├«ntre ele, acest lucru va reduce riscul de securitate, deoarece securitatea dvs. nu va depinde de o singur─â cheie cu permisiuni extinse. De asemenea, pute╚Ťi seta liste de permisiuni diferite pentru IP-uri pentru fiecare cheie, reduc├ónd ╚Öi mai mult riscul de securitate.┬á

  4. Stoca╚Ťi cheile API ├«n siguran╚Ť─â: nu stoca╚Ťi cheile ├«n locuri publice, pe computere publice sau ├«n formatul lor original de text simplu. ├Än schimb, stoca╚Ťi fiecare cheie folosind criptarea sau un secret manager pentru o securitate mai bun─â ╚Öi ave╚Ťi grij─â s─â nu le expune╚Ťi accidental.┬á

  5. Nu partaja╚Ťi cheile dvs. API. Partajarea cheii API este similar─â cu partajarea parolei. Proced├ónd astfel, acorda╚Ťi altei p─âr╚Ťi acelea╚Öi privilegii de autentificare ╚Öi autorizare pe care le ave╚Ťi dvs. Dac─â este compromis─â, cheia dvs. API poate fi furat─â ╚Öi utilizat─â pentru a v─â sparge contul. O cheie API ar trebui utilizat─â numai ├«ntre dvs. ╚Öi sistemul care o genereaz─â.

Dac─â cheia dvs. API este compromis─â, mai ├«nt├ói trebuie s─â o dezactiva╚Ťi pentru a preveni daunele ulterioare. Dac─â exist─â vreo pierdere financiar─â, face╚Ťi capturi de ecran ale informa╚Ťiilor cheie ale incidentului, contacta╚Ťi entit─â╚Ťile aferente ╚Öi trimite╚Ťi un raport c─âtre poli╚Ťie. Acesta este cel mai bun mod de a v─â cre╚Öte ╚Öansele de a rec├ó╚Ötiga orice fonduri pierdute.┬á

Gânduri de încheiere

Cheile API ofer─â func╚Ťii de baz─â de autentificare ╚Öi autorizare, iar utilizatorii trebuie s─â-╚Öi gestioneze ╚Öi s─â-╚Öi protejeze cheile cu aten╚Ťie. Exist─â multe straturi ╚Öi aspecte pentru a asigura utilizarea ├«n siguran╚Ť─â a cheilor API. ├Än general, o cheie API ar trebui tratat─â ca o parol─â pentru contul dvs.

Materiale suplimentare