Quali sono i rischi di proteggere un'API con una sola chiave (senza segreto)?

2

Comprendo che molte API sono protette utilizzando un API Key (possibilmente pubblico) per identificare chi sta effettuando la richiesta e un secret per hmac i parametri e determinare se il client è effettivamente chi sostiene di essere .

Il fatto è che, se sono sicuro che API Key è privato e utilizzo https :

  1. Quali sono i rischi di non usare un segreto per "firmare" la richiesta?
  2. L'unico che mi viene in mente è un MiTM che modifica i parametri, ma non dovrebbe essere un problema se utilizzo HTTPS, giusto?
  3. È un altro livello di sicurezza, per sicurezza?
posta Sergio Aristizábal 08.10.2014 - 02:30
fonte

1 risposta

1

Primo: non puoi essere sicuro che la chiave API sia privata e rimarrà privata.

Non appena il dispositivo / prodotto / applicazione è nel mondo reale, può essere rotto. Non fare affidamento su di esso.

E non appena la chiave perde, niente impedirà a nessuno di iniziare semplicemente a inviare richieste e non puoi dire chi sta inviando o come filtrare o bloccare le richieste fraudolente.

Creare un segreto non è difficile, e devi farlo. Lungo la strada ti risparmierà un sacco di problemi.

Se un hacker rompe l'applicazione e ottiene la chiave e il segreto, revochi l'accesso a quel segreto e lui perde l'accesso all'API. Tutti gli altri usi continuano a utilizzare l'API senza problemi. Senza il segreto, devi creare un'altra chiave e tutti i tuoi clienti non potranno più accedervi.

    
risposta data 08.10.2014 - 21:10
fonte

Leggi altre domande sui tag