Una chiave API (Application Programming Interface) è un codice univoco utilizzato da un'API per identificare l'applicazione o l'utente che effettua la richiesta. Le chiavi API vengono utilizzate per tracciare e controllare chi utilizza un'API e come la utilizza, nonché per autenticare e autorizzare le applicazioni, in modo simile a come funzionano i nomi utente e le password. Una chiave API può avere la forma di una chiave singola o di un set di chiavi. Gli utenti dovrebbero seguire le migliori pratiche per migliorare la loro sicurezza complessiva contro il furto della chiave API ed evitare le conseguenze della compromissione della chiave API.
API e chiave API
Per capire cos'è una chiave API, devi prima capire cos'è un'API. Un'interfaccia di programmazione dell'applicazione o API è un intermediario software che consente a due o più applicazioni di condividere informazioni. Ad esempio, l'API di CoinMarketCap consente ad altre applicazioni di recuperare e utilizzare dati crittografici, come prezzo, volume e capitalizzazione.
Una chiave API è disponibile in diverse forme: può essere una chiave singola o un set di chiavi. Diversi sistemi utilizzano queste chiavi per autenticare e autorizzare un'applicazione, in modo simile a un nome utente e una password per un individuo. Una chiave API viene utilizzata da un client API per autenticare un'applicazione che richiede l'API.
Ad esempio, se Binance Academy desidera utilizzare l'API CoinMarketCap, una chiave API verrà generata da CoinMarketCap e utilizzata per autenticare l'identità di Binance Academy (il client API), che richiede l'accesso all'API. Quando Binance Academy accede all'API CoinMarketCap, questa chiave API deve essere inviata a CoinMarketCap con la richiesta.
Questa chiave API deve essere utilizzata solo da Binance Academy e non deve essere condivisa o inviata ad altri. La condivisione di questa chiave API consentirebbe a una terza parte di accedere a CoinMarketCap come Binance Academy e tutte le azioni di tale terza parte appariranno come se provenissero da Binance Academy.
La chiave API può essere utilizzata anche dall'API CoinMarketCap per confermare se l'applicazione è autorizzata ad accedere alla risorsa richiesta. Inoltre, i proprietari dell'API utilizzano le chiavi API per monitorare l'attività dell'API, ad esempio diversi tipi di richieste, traffico e volume di richieste.
Cos'è una chiave API?
Una chiave API viene utilizzata per controllare e tenere traccia di chi utilizza un'API e di come la utilizza. Il termine “chiave API” può avere significati diversi in diversi sistemi. Alcuni sistemi hanno un unico codice, ma altri possono avere più codici per una singola "chiave API".
Pertanto, una "chiave API" è un codice univoco o un insieme di codici univoci utilizzati da un'API per autenticare e autorizzare l'utente o l'applicazione che origina una richiesta. Alcuni codici vengono utilizzati per l'autenticazione e altri per creare firme crittografiche per dimostrare la legittimità di una richiesta.
Questi codici di autenticazione sono comunemente chiamati "chiave API", mentre i codici utilizzati per le firme crittografiche hanno nomi diversi, come "chiave segreta", "chiave pubblica" o "chiave privata". sono chi affermano di essere.
L'autorizzazione, invece, specifica a quali servizi API è consentito l'accesso. La funzione di una chiave API è simile a quella del nome utente e della password di un account. Può anche essere collegato ad altri dispositivi di sicurezza per migliorare la sicurezza generale.
Ogni chiave API viene in genere generata per un'entità specifica dal proprietario dell'API (maggiori dettagli di seguito) e ogni volta che viene effettuata una richiesta a un endpoint API, che richiede l'autenticazione o l'autorizzazione da parte dell'utente API, o entrambi, viene utilizzata la chiave corrispondente .
Firme crittografiche
Alcune chiavi API utilizzano firme crittografiche come ulteriore livello di verifica. Quando un utente desidera inviare determinati dati a un'API, è possibile aggiungere alla richiesta una firma digitale generata da un'altra chiave. Utilizzando la crittografia, il proprietario dell'API può verificare che questa firma digitale corrisponda ai dati inviati.
Firme simmetriche e asimmetriche
I dati condivisi tramite un'API possono essere firmati tramite chiavi crittografiche, che possono essere classificate nelle seguenti categorie:
Chiavi simmetriche
Implicano l'uso di una chiave segreta per eseguire sia la firma dei dati che la verifica della firma. Con le chiavi simmetriche, la chiave API e la chiave segreta vengono generalmente generate dal proprietario dell'API e la stessa chiave segreta deve essere utilizzata dal servizio API per la verifica della firma. Il vantaggio principale dell'utilizzo di un'unica chiave è che è più veloce da implementare e richiede meno potenza di calcolo per la generazione e la verifica della firma. HMAC è un buon esempio di chiave simmetrica.
Tasti asimmetrici
Implicano l'uso di due chiavi: una chiave privata e una chiave pubblica, diverse ma correlate crittograficamente. La chiave privata viene utilizzata per la generazione della firma e la chiave pubblica viene utilizzata per la verifica della firma. La chiave API viene generata dal proprietario dell'API, ma la coppia di chiavi pubblica e privata viene generata dall'utente. Solo la chiave pubblica dovrebbe essere utilizzata dal proprietario dell'API per la verifica della firma, quindi la chiave privata può rimanere locale e segreta.
Il vantaggio principale dell'utilizzo delle chiavi asimmetriche è la maggiore sicurezza derivante dalla separazione delle chiavi di generazione e verifica della firma. Ciò consente ai sistemi esterni di verificare le firme senza essere in grado di generarle. Un altro vantaggio è che alcuni sistemi di crittografia asimmetrica consentono di aggiungere una password alle chiavi private. Le coppie di chiavi RSA sono un buon esempio.
Le chiavi API sono sicure?
La responsabilità per una chiave API spetta all'utente. Le chiavi API sono simili alle password e devono essere trattate con la stessa cura. La condivisione di una chiave API è simile alla condivisione di una password e, come tale, non dovrebbe avvenire poiché metterebbe a rischio l'account dell'utente.
Le chiavi API sono comunemente prese di mira dagli attacchi informatici perché possono essere utilizzate per eseguire operazioni su larga scala sui sistemi, come la richiesta di informazioni personali o l'esecuzione di transazioni finanziarie. Ci sono stati infatti casi in cui i web crawler hanno scansionato con successo database di codici online per rubare chiavi API.
Le conseguenze del furto di una chiave API possono essere drammatiche e portare a perdite finanziarie significative. Inoltre, poiché alcune chiavi API non scadono, una volta rubate possono essere utilizzate indefinitamente dagli aggressori, fino a quando le chiavi stesse non vengono revocate.
Best practice per l'utilizzo delle chiavi API
A causa del loro accesso a dati sensibili e della vulnerabilità generale, l’uso sicuro delle chiavi API è di fondamentale importanza. Puoi seguire queste best practice quando utilizzi le chiavi API per migliorare la sicurezza complessiva:
Cambia spesso le tue chiavi API. Ciò significa che dovresti eliminare la tua chiave API corrente e crearne una nuova. Con più sistemi, in genere è facile generare ed eliminare le chiavi API. Proprio come alcuni sistemi richiedono di modificare la password ogni 30-90 giorni, dovresti modificare le chiavi API con una frequenza simile.
Utilizza la whitelist IP: quando crei una chiave API, stabilisci un elenco di IP autorizzati a utilizzare la chiave (una whitelist IP). Puoi anche specificare un elenco di IP bloccati (una lista nera di IP). In questo modo, anche se la tua chiave API viene rubata, non sarà possibile accedervi da un IP non riconosciuto.
Utilizza più chiavi API: avere più chiavi e dividere le responsabilità tra di loro ridurrà il rischio per la sicurezza perché la tua sicurezza non dipenderà da una singola chiave con ampie autorizzazioni. Puoi anche impostare diverse whitelist di indirizzi IP per ciascuna chiave, riducendo ulteriormente i rischi per la sicurezza.
Archivia le chiavi API in modo sicuro: non archiviare le chiavi in luoghi accessibili, su computer pubblici o nel formato di testo normale originale. Conservali invece utilizzando la crittografia o un gestore di password per una maggiore sicurezza e fai attenzione a non esporli accidentalmente.
Non condividere le tue chiavi API. Puoi confrontare la condivisione di una chiave API con la condivisione di una password. In questo modo si concedono a un'altra parte gli stessi privilegi di autenticazione e autorizzazione dei tuoi. Se compromessa, la tua chiave API può essere rubata e utilizzata per hackerare il tuo account. Una chiave API deve essere utilizzata solo tra te e il sistema che la genera.
Se la tua chiave API è compromessa, devi prima disattivarla per evitare ulteriori danni. In caso di perdita finanziaria, acquisire screenshot delle informazioni chiave relative all'incidente, contattare le entità competenti e presentare un reclamo. Questo è il modo migliore per aumentare le tue possibilità di recuperare i fondi persi.
Conclusione
Le chiavi API forniscono funzioni essenziali di autenticazione e autorizzazione e gli utenti dovrebbero gestire e proteggere attentamente le proprie chiavi. Esistono molti livelli e aspetti che possono garantire un utilizzo sicuro delle chiavi API. Nel complesso, una chiave API dovrebbe essere trattata come la password del tuo account.
Maggiori informazioni
Principi generali di sicurezza
5 truffe comuni sulle criptovalute e come evitarle.

