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ă:
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.
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.
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.
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.
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.