creazione di un'API crittografata TLS

1

Ho un endpoint dell'API HTTP sul mio server che è crittografato (TLS). Non è un'API pubblica; gli utenti devono accedere e convalidare il proprio account / identità per accedere all'API.

Quando mi collego con il mio client di test (utilizzando una coppia di tastiere appena generata ogni volta), ottengo questa risposta:

{[] [] [Domain Control Validated COMODO SSL Wildcard] [] [] [] []  *.blah.com [{Domain Control Validated} {COMODO SSL Wildcard} {*.blah.com}]}
2015/05/26 10:53:34 client: handshake:  true
2015/05/26 10:53:34 client: mutual:  true

Tutto sembra a posto.

Ora, ogni utente della mia API deve avere una coppia di chiavi pubblica / privata mantenuta lato client da utilizzare per connettersi all'API per conformarsi al protocollo TLS. Questo è tutto buono e bene come lo capisco.

Gli utenti invieranno dati sensibili e file attraverso il cavo per essere archiviati sul mio server.

Il mio prossimo passo è quello di autenticare gli utenti e assicurare che i loro dati siano al sicuro durante il trasporto. Quale dovrei usare?

  • Autenticazione di base HTTP
  • OAuth
  • OAuth2

Ho letto il link ma si tratta principalmente di proteggere un'API pubblica dagli attacchi. La parte relativa alla protezione dei dati è di per sé una nota a piè di pagina.

    
posta bvpx 26.05.2015 - 17:25
fonte

1 risposta

2

Per quanto riguarda il titolo della tua domanda: il tuo canale di comunicazione è crittografato da TLS. Quella parte è OK.

Il corpo della domanda riguarda in realtà l'autenticazione. Hai alcune opzioni, le principali sono:

  • riutilizzare i certificati client già esistenti per gli utenti (a causa del modo in cui si configura la crittografia richiedendo i certificati client e server). A seconda del caso specifico, puoi essere sufficiente per l'autenticazione (o meno: hai un'autenticazione basata su un fattore basata esclusivamente sul possesso dei certificati).
  • utilizza un sistema basato su password, HTTP Basic Auth è un esempio
  • usa oAuth, che ti consente di scaricare l'autenticazione su un'altra parte (Google, Twitter, LinekedIn, ...). Il valore aggiunto è che non è necessario preoccuparsi della gestione del ciclo di vita dell'autenticazione (creazione di account, gestione delle password), l'altra parte può anche avere un sistema robusto (multifattore) sul posto. Il problema è che non possiedi l'autenticazione, devi fidarti di qualcun altro per fare un buon lavoro.
  • implementa l'autenticazione a più fattori ( HOTP ) implementata per esempio tramite Open OTP (il meccanismo utilizzato da Google Authenticator, Authy, ...)
risposta data 29.05.2015 - 09:05
fonte

Leggi altre domande sui tag