memorizza in modo sicuro le credenziali per un'API non protetta

1

Sto scrivendo un bot lento che interfaccia gli utenti finali con un'API. Quel solo metodo di identificazione dell'API è il raw "login: password" codificato in base64 (non risponde a un token) ...

Attualmente in modalità test, sto solo chiedendo agli utenti di inviare le loro credenziali al bot e quindi il server può effettuare richieste all'API con le proprie credenziali.

Non posso cambiare la richiesta http all'API, ma cosa posso fare al mio fianco per memorizzare le credenziali in modo che l'utente non debba reinserire la password per ogni richiesta?

È necessaria una crittografia reversibile?

aggiornamento: la mia ultima idea è di memorizzare la password solo per un breve periodo di tempo

    
posta Eagle1 14.03.2018 - 03:41
fonte

2 risposte

1

Sì, se devi presentare la password dell'utente a un servizio esterno (invece di verificare che lo sappiano ), allora devi memorizza la password in modo recuperabile.

È sicuramente una buona pratica crittografare il valore quando lo si archivia, ma non aggiunge molta sicurezza - la password viene esposta ogni volta che viene inviata su Internet, dove qualcuno e il fratello potrebbero essere in ascolto e qualsiasi attaccante Chi ottiene il tuo database probabilmente ottiene anche il tuo codice di programma, che indica loro come decrittografare il database. In questo scenario, la crittografia fondamentalmente protegge solo dagli spettatori occasionali o dagli avversari di bassa abilità (ovvero gli attaccanti che non sanno come decompilare il codice).

    
risposta data 14.03.2018 - 08:19
fonte
1

Tutta questa architettura è intrinsecamente insicura. C'è un motivo per cui la maggior parte delle API utilizza OAuth per autorizzare un'app a comportarsi per conto dell'utente. Riduce il rischio che l'app possa aumentare i privilegi oltre l'obiettivo dell'utente e fornisce all'utente un mezzo per annullare l'interazione dal lato o . Ancora più importante, la password dell'utente rimane solo la password dell'utente.

Il problema con la crittografia reversibile è che tutto ciò che un hacker deve fare è ottenere una copia del tuo database e sono liberi di forzare il tuo sito web. Dato che molti strumenti di hacker utilizzano le GPU, possono eseguire il controllo forzato delle chiavi a un ritmo allarmante.

Una volta che la password e l'identità dell'utente sono note, l'hacker può impersonarle direttamente.

Considerando che molti framework forniscono il supporto di OAuth per te, c'è poco motivo non per usarlo.

    
risposta data 14.03.2018 - 14:57
fonte

Leggi altre domande sui tag