È una cattiva idea chiedere l'e-mail utente e la password e-mail?

5

Lavoro come tester in un'azienda che produce dispositivi di sicurezza di rete, sto discutendo con uno sviluppatore di una funzionalità.

La funzione è che le e-mail di notifica inviate all'utente dall'appliance verranno inviate utilizzando le credenziali dell'utente (e-mail e password e-mail) utilizzando qualsiasi server di posta utilizzato dall'utente (gmail, server di posta locale, etc)

Queste credenziali sono all'interno della macchina in testo normale ed è disponibile con un gatto nel file giusto. Lo sviluppatore sostiene che non ha senso tentare di utilizzare alcuna crittografia perché sarà sempre necessario decrittografarla quando si inviano le credenziali al server di posta.

Ora non so cosa pensare, c'è un modo corretto per farlo? o la funzionalità è insicura e non esiste un modo sicuro per farlo?

    
posta Dodd 22.11.2017 - 19:05
fonte

4 risposte

2

Qual è il tuo modello di minaccia? Chi sta per provare a rubare la password e come?

Se si esegue l'applicazione come proprio utente, e solo quell'utente può accedere a quel file di password e si ritiene affidabile, allora va bene.

Idealmente, l'applicazione dovrebbe inviare dal proprio account di posta elettronica, quindi se c'è stato un compromesso, l'impatto è minimo (o il cliente può sempre creare un nuovo account di posta vocale solo per questa app)

Se non ti fidi di root (perché stai utilizzando AWS o qualcosa di simile), allora non stai bene.

Ma non possiamo sapere finché non ci dici il tuo modello di minaccia

    
risposta data 22.11.2017 - 20:59
fonte
-2

Il tuo sviluppatore deve essere seduto per discutere di buone pratiche di sicurezza.

Essenzialmente, lasciare i dati cifrati su disco significa che tutto ciò che un utente malintenzionato deve fare è ottenere l'accesso al corpo di quel file. Il tuo sviluppatore non può garantire che il suo software sia privo di vulnerabilità della sicurezza, l'altro software sul sistema è privo di vulnerabilità e il sistema operativo è privo di vulnerabilità. Inoltre, non può garantire che il sistema funzioni in modalità utente singolo o con una buona sicurezza a livello di file system applicata al sistema. Inoltre, non può garantire che il disco rigido non verrà mai montato su un sistema operativo diverso a cui non interessa nulla per la sicurezza a livello di sistema.

Essenzialmente, sta assicurando che stia condividendo i dati degli utenti con chiunque altro abbia accesso a quel sistema operativo (legittimo o meno). Lo sta facendo senza la conoscenza degli utenti finali.

Ma stai anche andando a metà strada con l'idea di crittografare i dati dell'utente. In realtà, non dovresti memorizzare affatto la password dell'utente - dovresti utilizzare l'API del client di posta elettronica in questione, come l'integrazione OAuth2 di Gmail link per connettersi all'account di posta elettronica. Questo è il modo giusto per farlo ed evita di avere credenziali in giro, criptate o meno. Lo stesso vale per quasi tutti i client di posta elettronica, che si integrano con la loro specifica API. Le probabilità sono che non richiede la conoscenza della password dell'utente se non quella del primo tremolio della mano.

    
risposta data 22.11.2017 - 19:22
fonte
-3

La memorizzazione di una password in testo semplice è ampiamente considerata non sicura, indipendentemente dall'uso o dalle misure di sicurezza. Come discusso nella sezione commenti, la tua domanda riguarda gli utenti che forniscono le credenziali di accesso, i dettagli del server e le informazioni sul proprio provider di posta da utilizzare per l'invio di notifiche allo stesso utente.

Per essere molto chiari su come memorizzare la password in testo semplice: Questo non è un modo sicuro di gestire le password. Per approfondire ulteriormente, qualcuno potrebbe hackerare il server, utilizzare un difetto o un bug nell'applicazione stessa o rubare eventuali backup effettuati. Ci sono tanti modi per filtrare i dettagli di accesso, sto cercando di trovare una ragione per cui si dovrebbero memorizzare le credenziali in testo semplice.

Come si può leggere in questo documento , ci sono stati molti incidenti di perdita di password importanti recentemente dove le password sono state memorizzate in testo normale. Il documento spiega anche molto sui concetti di password e li memorizza in modo sicuro, una lettura degna per lo sviluppatore che presumo.

Lo sviluppatore ha ragione quando dice che avrebbe bisogno di decodificare le password per inviarle al provider di posta, anche se l'applicazione dovrebbe utilizzare l'API dei provider di posta per inviare notifiche senza nemmeno aver bisogno della password in primo luogo.

    
risposta data 22.11.2017 - 19:50
fonte
-3

Questo è completamente sbagliato.

Per inviare una e-mail, tutto ciò che è necessario è un server smtp in esecuzione (non richiede necessariamente alcuna credenziale, men che meno da un utente finale) e un indirizzo "a". È responsabilità dell'appliance fornire o utilizzare un server smtp adatto.

Non è necessario utilizzare le credenziali dell'utente. In effetti, non darei mai a nessuno la mia password dell'account e-mail. È inutile tranne che per me.

Il tuo sviluppatore ha completamente sbagliato il processo di invio di e-mail.

    
risposta data 22.11.2017 - 23:54
fonte

Leggi altre domande sui tag