Una chiave API (Application Programming Interface) è un codice univoco utilizzato in un'API per identificare l'applicazione o l'utente chiamante. Le chiavi API vengono utilizzate per tracciare e controllare chi utilizza l'API e come, nonché per autenticare e autorizzare le applicazioni, in modo simile a come funzionano i nomi utente e le password. Una chiave API può essere una chiave singola o un insieme di più chiavi. Gli utenti dovrebbero seguire le migliori pratiche per migliorare la loro protezione complessiva contro il furto di chiavi API ed evitare le conseguenze correlate della compromissione delle loro chiavi 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ù programmi di scambiare informazioni. Ad esempio, l'API CoinMarketCap consente ad altre applicazioni di recuperare e utilizzare dati sulla criptovaluta come prezzo, volume e capitalizzazione di mercato.

La chiave API può avere forme diverse. Può trattarsi di una chiave singola o di un set di più chiavi. In vari sistemi, queste chiavi vengono utilizzate per l'autenticazione e l'autorizzazione dell'applicazione nello stesso modo in cui vengono utilizzati un nome utente e una password. La chiave API viene utilizzata dal client API per autenticare l'applicazione che chiama l'API. 

Ad esempio, se Binance Academy desidera utilizzare l'API CoinMarketCap, una chiave API verrà generata in CoinMarketCap e utilizzata per autenticare Binance Academy (client API) richiedendo 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 tramite Binance Academy e non può essere condivisa o inviata ad altri. La condivisione di questa chiave API consentirà a una terza parte di accedere a CoinMarketCap come Binance Academy e qualsiasi azione della terza parte apparirà come se provenisse da Binance Academy.

La chiave API può anche utilizzare l'API CoinMarketCap per confermare che all'applicazione è consentito accedere alla risorsa richiesta. Inoltre, i proprietari dell'API utilizzano le chiavi API per monitorare l'attività dell'API, come tipi di richieste, traffico e volume. 

Cos'è una chiave API? 

La chiave API viene utilizzata per controllare e tenere traccia di chi utilizza l'API e di come viene utilizzata. Il termine "chiave API" può significare cose diverse a seconda dei sistemi. Alcuni sistemi hanno un codice, altri possono avere più codici per una singola "chiave API".   

Pertanto, una "chiave API" è un codice univoco o un insieme di codici univoci utilizzati in un'API per autenticare e autorizzare l'utente o l'applicazione chiamante. Alcuni codici vengono utilizzati per l'autenticazione, mentre altri vengono utilizzati per creare firme crittografiche che confermano la legittimità della richiesta. 

Questi codici di autenticazione vengono comunemente definiti "chiave API", mentre i codici utilizzati per le firme crittografiche hanno nomi diversi come "chiave segreta", "chiave pubblica" o "chiave privata". L'autenticazione implica l'identificazione delle persone coinvolte e la conferma che sono chi dicono di essere.

L'autorizzazione, invece, specifica a quali servizi API è consentito accedere. La funzione della chiave API è simile alla funzione del nome utente e della password dell'account; può anche essere collegato ad altre funzionalità di sicurezza per aumentare la sicurezza generale. 

Ogni chiave API viene in genere generata per un oggetto specifico dal proprietario dell'API (vedi sotto per i dettagli) e ogni volta che viene effettuata una chiamata all'endpoint API che richiede l'autenticazione o l'autorizzazione dell'utente, o entrambe, 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 all'API, è possibile allegare 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 inviati tramite l'API possono essere firmati con chiavi crittografiche che rientrano nelle seguenti categorie:

Chiavi simmetriche

Si tratta dell'uso di un'unica chiave segreta per firmare i dati e verificare la firma. Quando si utilizzano 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 verificare la firma. Il vantaggio principale dell’utilizzo di un’unica chiave è che tutto avviene più velocemente e richiede meno potenza di calcolo per generare e verificare la firma. Un buon esempio di chiave simmetrica è HMAC.

Tasti asimmetrici

Si tratta dell'uso di due chiavi: una chiave privata e una chiave pubblica, diverse ma correlate crittograficamente. La chiave privata viene utilizzata per creare la firma e la chiave pubblica viene utilizzata per verificare la firma. La chiave API viene generata dal proprietario dell'API e la coppia di chiavi pubblica e privata viene generata dall'utente. Il proprietario dell'API dovrebbe utilizzare solo la chiave pubblica per verificare la firma, in modo che la chiave privata rimanga locale e segreta. 

Il vantaggio principale dell'utilizzo di chiavi asimmetriche è la maggiore sicurezza della separazione tra generazione della firma e verifica della chiave. Ciò consente ai sistemi esterni di verificare le firme senza essere in grado di generarle. Un altro vantaggio è che alcuni sistemi di crittografia asimmetrica supportano l'aggiunta di una password alle chiavi private. Un buon esempio è una coppia di chiavi RSA. 

Le chiavi API sono sicure? 

La chiave API è responsabilità dell'utente. Le chiavi API sono simili alle password e devono essere gestite con la stessa cura. La condivisione di una chiave API è simile alla condivisione di una password e pertanto non dovrebbe essere condivisa con altri poiché ciò 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 potenti sui sistemi, come la richiesta di informazioni personali o transazioni finanziarie. In effetti, si sono verificati casi in cui i crawler hanno attaccato con successo database di codici online per rubare chiavi API.

Le conseguenze del furto della chiave API possono essere gravi e portare a perdite finanziarie significative. Inoltre, poiché alcune chiavi API non scadono, gli aggressori possono utilizzarle indefinitamente dopo il furto fino a quando le chiavi stesse non vengono revocate.

Linee guida per l'utilizzo delle chiavi API

A causa del loro accesso a dati sensibili e della loro 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: 

  1. Cambia frequentemente le tue chiavi API. Ciò significa che devi eliminare la chiave API corrente e generarne una nuova. Generare ed eliminare le chiavi API è abbastanza semplice con la maggior parte dei sistemi. Proprio come alcuni sistemi richiedono di modificare la password ogni 30-90 giorni, dovresti modificare le chiavi API con la stessa frequenza, se possibile.

  2. Utilizza una whitelist IP: quando crei una chiave API, crea un elenco di indirizzi IP che possono utilizzare la chiave (whitelist IP). È inoltre possibile specificare un elenco di indirizzi IP bloccati (lista nera IP). In questo modo, anche se la tua chiave API viene rubata, non sarà comunque possibile accedervi da un indirizzo IP sconosciuto.

  3. Utilizza più chiavi API: avere più chiavi e dividere le responsabilità tra di esse ridurrà i rischi per la sicurezza perché la tua sicurezza non dipenderà da una singola chiave con autorizzazioni estese. Puoi anche impostare diverse whitelist IP per ciascuna chiave, riducendo ulteriormente il rischio per la sicurezza. 

  4. Archivia le chiavi API in modo sicuro: non archiviare le chiavi in ​​luoghi pubblici, su computer pubblici o in formato testo normale. Conserva invece ciascuna chiave con crittografia o un gestore di password per una maggiore sicurezza e fai attenzione a non rivelarle accidentalmente. 

  5. Non condividere le tue chiavi API con nessuno. La condivisione di una chiave API è simile alla condivisione della password. In tal modo concedi all'altra parte i tuoi privilegi di autenticazione e autorizzazione. Se vengono compromessi, 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 disabilitarla per evitare ulteriori danni. Se si verificano perdite finanziarie, acquisire screenshot delle informazioni chiave relative all'incidente, contattare le organizzazioni competenti e presentare una denuncia alla polizia. Questo è il modo migliore per aumentare le tue possibilità di recuperare i fondi persi. 

Risultati

Le chiavi API forniscono funzioni di autenticazione e autorizzazione di base e gli utenti devono gestire e proteggere attentamente le proprie chiavi. Esistono molti livelli e aspetti per garantire l'uso sicuro delle chiavi API. In generale, la chiave API dovrebbe essere trattata come la password del tuo account.

Articoli correlati

  • Principi generali di sicurezza

  • 5 truffe comuni sulle criptovalute e come evitarle