Una chiave API (Application Programming Interface) è un codice univoco utilizzato da un'API per identificare l'utente o l'applicazione chiamante. Le chiavi API vengono utilizzate per tracciare e controllare chi utilizza l'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ò presentarsi sotto forma di una chiave singola o di un set di più chiavi. Gli utenti dovrebbero utilizzare le chiavi API in modo corretto per migliorare la loro sicurezza generale contro il furto delle chiavi API ed evitare le conseguenze correlate della compromissione delle loro chiavi API.

Distinguere tra API e chiave API

Per capire cos'è una chiave API, devi prima capire cos'è un'API. Un'interfaccia di programmazione dell'applicazione o API (interfaccia di programmazione dell'applicazione) è un middleware 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 sulla criptovaluta, come prezzo, volume e capitalizzazione di mercato.

Una chiave API è disponibile in molte forme diverse: può essere una chiave singola o un set di chiavi. Sistemi diversi utilizzano queste chiavi per autenticare e autorizzare un'applicazione, in modo simile a come vengono utilizzati nomi utente e password. Una 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 da CoinMarketCap e utilizzata per autenticare l'identità di Binance Academy (applicazione API) che richiede l'accesso all'API. Quando Binance Academy accede all'API di CoinMarketCap, questa chiave API viene inviata a CoinMarketCap insieme alla 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 consentirà a terze parti di accedere a CoinMarketCap come Binance Academy e qualsiasi azione di terze parti apparirà come se provenisse 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, come tipo di richiesta, traffico e volume.

Cos'è una chiave API?

Le chiavi API vengono utilizzate per controllare e tenere traccia di chi utilizza l'API e di come la utilizza. Il termine “chiave API” può significare cose diverse a seconda dei 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 chiamante. Alcuni codici vengono utilizzati per l'autenticazione e altri vengono utilizzati per creare una firma crittografica per dimostrare la legittimità della richiesta.

Queste chiavi di autenticazione vengono spesso definite collettivamente "chiavi API", mentre i codici utilizzati per le firme crittografiche hanno una varietà di nomi, come "chiavi private", "chiavi pubbliche" o "chiavi private". L'autenticazione richiede l'identificazione delle entità coinvolte e la conferma che siano chi dicono di essere.

D'altro canto autorizza a specificare i servizi API ai quali è consentito accedere. La funzionalità di una chiave API è simile a quella del nome utente e della password di un account; può anche essere collegato ad altre funzionalità di sicurezza per migliorare la sicurezza generale.

Ogni chiave API viene in genere generata dal proprietario dell'API per un'entità specifica (maggiori dettagli di seguito) e ogni volta che viene effettuata una chiamata a un endpoint API (che richiede l'autenticazione o l'autorizzazione dell'utente, o entrambi) verrà utilizzata la chiave pertinente.

Firma crittografica

Alcune chiavi API utilizzano firme crittografiche come ulteriore livello di verifica. Quando un utente desidera inviare determinati dati all'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 l'API possono essere firmati con chiavi crittografiche, che rientrano nelle seguenti categorie:

Chiavi simmetriche

Implicano l'utilizzo 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 il servizio API deve utilizzare la stessa chiave segreta per verificare la firma. Il vantaggio principale dell’utilizzo di una chiave singola è che farlo è più veloce e richiede meno potenza di calcolo per generare e verificare la firma. Un buon esempio di chiave simmetrica è HMAC.

Tasti asimmetrici

Prevedono l'utilizzo di due chiavi: una chiave privata e una chiave pubblica, diverse ma legate 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, ma la coppia di chiavi pubblica e privata viene generata dall'utente. Il proprietario dell'API deve utilizzare solo la chiave pubblica per verificare la firma, quindi la chiave privata può rimanere locale e segreta.

Il vantaggio principale dell’utilizzo delle chiavi asimmetriche è la maggiore sicurezza data dalla separazione della chiave di generazione della firma e della chiave di verifica. Ciò consente ai sistemi esterni di verificare la firma senza essere in grado di generare la firma. Un altro vantaggio è che alcuni sistemi di crittografia asimmetrica supportano l'aggiunta di una password alla chiave privata. Un tipico esempio è una coppia di chiavi RSA.

Le chiavi API sono sicure?

La responsabilità di mantenere sicure le chiavi API spetta all'utente. Le chiavi API sono simili alle password e devono essere maneggiate con cura. La condivisione delle chiavi API è simile alla condivisione delle password e pertanto non dovrebbe essere eseguita poiché ciò mette a rischio l'account dell'utente.

Le chiavi API sono spesso prese di mira dagli attacchi informatici perché possono essere utilizzate per eseguire operazioni critiche sul sistema, come la richiesta di informazioni personali o l'esecuzione di transazioni finanziarie. In effetti, si sono verificati casi di crawler e attacchi a database 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 essere state rubate fino a quando le chiavi stesse non vengono revocate.

Come utilizzare correttamente le chiavi API

Poiché garantisce l'accesso a dati sensibili, l'utilizzo sicuro delle chiavi API è fondamentale. Puoi seguire queste linee guida sulle best practice per utilizzare le chiavi API per migliorare la sicurezza generale:

  1. Aggiorna le tue chiavi API il più spesso possibile. Ciò significa che dovresti eliminare la tua chiave API corrente e crearne una nuova. Con molti sistemi, è facile creare ed eliminare le chiavi API. Analogamente a come alcuni sistemi richiedono di modificare la password ogni 30-90 giorni, dovresti ruotare le chiavi API con una frequenza simile, se possibile.

  2. Utilizza una whitelist IP: quando crei una chiave API, crea un elenco di IP autorizzati a utilizzare la chiave (whitelist IP). Puoi anche specificare un elenco di IP bloccati (lista nera IP). In questo modo, anche se la tua chiave API viene rubata, non sarà possibile accedervi da un IP non riconosciuto.

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

  4. Archivia le chiavi API in modo sicuro: non archiviare le chiavi in ​​luoghi pubblici, su computer condivisi o nel formato di testo normale originale. Conserva invece ciascuno di essi con crittografia o un gestore segreto per una maggiore sicurezza e fai attenzione a non esporli accidentalmente.

  5. Non condividere le tue chiavi API. La condivisione delle chiavi API è simile alla condivisione della password. In tal modo concedi all'altra parte i tuoi stessi diritti di autenticazione e autorizzazione. Se vengono compromessi, la tua chiave API può essere rubata e utilizzata per accedere al tuo account. Una chiave API deve essere utilizzata solo tra te e il sistema che l'ha generata.

Se la tua chiave API è compromessa, devi prima disabilitarla per evitare ulteriori danni. In caso di perdite finanziarie, acquisire uno screenshot delle informazioni chiave relative all'incidente, contattare le unità competenti e inviare una denuncia alla polizia. Questo è il modo migliore per aumentare le tue possibilità di recuperare eventuali fondi persi.

Le chiavi API forniscono funzioni di autenticazione e autorizzazione fondamentali e gli utenti devono gestire e proteggere attentamente le proprie chiavi. Esistono molti passaggi e aspetti per garantire l'uso sicuro delle chiavi API. In generale, dovresti pensare alla tua chiave API come a una password per il tuo account.

Per saperne di più:

  • Principi generali di sicurezza

  • 5 truffe comuni sulle criptovalute e come evitarle