Autorizzazione IP per chiavi API

Ci sono molti modi per costruire l'autenticazione in un prodotto API-first come SparkPost, e quello che abbiamo scelto all'inizio è l'uso delle chiavi API. Iniettare la tua chiave API come intestazione di autorizzazione grezza o tramite l'autenticazione HTTP Basic standard rende molto facile utilizzare le nostre API. Le chiavi API come questa sono uno standard comune per i servizi web, ma quanto è sicuro questo sistema?

Autore

Uccello

Categoria

Email

Autorizzazione IP per chiavi API

Ci sono molti modi per costruire l'autenticazione in un prodotto API-first come SparkPost, e quello che abbiamo scelto all'inizio è l'uso delle chiavi API. Iniettare la tua chiave API come intestazione di autorizzazione grezza o tramite l'autenticazione HTTP Basic standard rende molto facile utilizzare le nostre API. Le chiavi API come questa sono uno standard comune per i servizi web, ma quanto è sicuro questo sistema?

Autore

Uccello

Categoria

Email

Autorizzazione IP per chiavi API

Ci sono molti modi per costruire l'autenticazione in un prodotto API-first come SparkPost, e quello che abbiamo scelto all'inizio è l'uso delle chiavi API. Iniettare la tua chiave API come intestazione di autorizzazione grezza o tramite l'autenticazione HTTP Basic standard rende molto facile utilizzare le nostre API. Le chiavi API come questa sono uno standard comune per i servizi web, ma quanto è sicuro questo sistema?

Autore

Uccello

Categoria

Email

Ci sono molti modi per costruire autenticazione in un prodotto API-first come SparkPost, e quello che abbiamo scelto fin dall'inizio è l'uso delle chiavi API. Iniettare la tua chiave API come un'intestazione di autorizzazione grezza o tramite l'autenticazione di base HTTP standard rende molto facile l'uso delle nostre API. Le chiavi API come queste sono uno standard comune per i servizi web, ma quanto è sicuro questo sistema?


I rischi

Quando si utilizza un qualsiasi servizio web, se un attaccante ottiene la tua chiave API, può agire per tuo conto e fare cose come (nel nostro caso):

  • inviare la propria email gratuitamente attraverso il tuo account

  • scaricare la tua lista di destinatari e darle ai spammer (se non sono spammer stessi)

  • modificare i tuoi modelli per iniettare link di phishing

  • inviare spam o phishing per tuo conto

Qualsiasi di questi risultati potrebbe essere molto dannoso per la tua reputazione e per la tua azienda, e nel caso del phishing potrebbe danneggiare direttamente i tuoi utenti finali.  Per questo motivo è estremamente importante assicurarsi che nessuno possa scoprire la tua chiave API.


Le probabilità

Ho sentito bruteforce? Le nostre chiavi API sono stringhe esadecimali generate casualmente di 40 caratteri. Questo porta a un totale di 1.4615e+48 chiavi API. Se tutti e 3 miliardi di computer e smartphone nel mondo provassero 100 chiavi API al secondo, assumendo che i nostri server lo permettano, passare attraverso tutte le possibili chiavi API richiederebbe più di 150.000.000.000.000.000.000.000.000.000 anni. Quindi, effettuare un attacco di brute force alla chiave API semplicemente non ha senso.

Quindi, come può qualcuno trovare la tua chiave API? Poiché la chiave viene passata come intestazione, può essere letta con attacchi man-in-the-middle, quindi dovresti sempre assicurarti che il tuo client stia controllando i certificati SSL quando si connette alle nostre API (questo è un motivo principale per cui richiediamo https per le connessioni API). Inoltre, se sei distratto nell'uso di repository di codice pubblico come github, la tua chiave API può facilmente finire esposta in giro. Non è un problema accademico: ci sono bot noti che eseguono la scansione di github per trovare chiavi API, e ci sono stati attacchi di successo attraverso quel vettore.


Whitelisting IP in aiuto

Quando crei una chiave API, ora puoi specificare un elenco di IP autorizzati a utilizzare questa chiave. Puoi specificare vari IP, così come blocchi IP, utilizzando la notazione CIDR, quindi non devi elencare i tuoi server singolarmente. Quando la chiave API viene utilizzata, per le API REST o SMTP, confronteremo l'IP di connessione con questo elenco per consentire o negare l'accesso.

Con questa funzione, anche se la tua chiave API viene trovata o rubata, solo i tuoi server saranno in grado di utilizzarla. Considerati i rischi e quanto è facile impostarlo, raccomandiamo vivamente a tutti i nostri clienti di utilizzare questa funzione.


Ultime parole

Alcuni consigli personali sulla sicurezza:

  • Non tenere le tue chiavi API nel codice. Ci sono molti vantaggi nel tenerle come variabili d'ambiente, come fa Heroku

  • Puoi creare un numero illimitato di chiavi API, ed è meglio per la sicurezza suddividere le responsabilità tra diverse chiavi API, invece di avere solo una chiave "tuttofare". Questo ti permetterebbe anche di avere whitelist IP diverse per chiave, per una separazione delle preoccupazioni ancora migliore

  • Se lavori con terze parti, non condividere la tua chiave API ma crea una nuova chiave per loro, con solo i permessi necessari, e collegata ai loro IP

  • Poiché le chiavi API possono essere create solo tramite l'interfaccia utente, attivare l'autenticazione a due fattori sul tuo account SparkPost è un must e richiede solo 2 minuti

Sign up

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's

Sign up

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's

Sign up

La piattaforma alimentata dall'IA per Marketing, Supporto e Finanza

Cliccando su "Richiedi una demo" accetti di Bird's

Channels

Grow

Engage

Automate

APIs

Resources

Company

Socials

Crescere

Gestire

Automatizzare

Crescere

Gestire

Automatizzare