Lettura dei dati crittografati prima di inviarli al server remoto

3

Sto sviluppando un'app mobile (solo Android per ora) per fornire agli utenti un servizio di posta elettronica usa e getta. Agli utenti verranno assegnati indirizzi e-mail temporanei in modo che possano ricevere e leggere le e-mail per un certo periodo di tempo, quindi gli account verranno completamente distrutti.

In questa architettura, non sono interessato agli utenti che conoscono le password dei loro account di posta elettronica, perché possono accedere tramite un client comune e inviare mail o persino spam (attualmente desidero consentire solo le e-mail in entrata mail, non in uscita).

La mia idea è di generare una password pseudo-casuale all'interno dell'app ogni volta che l'utente vuole creare una e-mail usa e getta, inviarla attraverso una richiesta di HTTPS POST al server remoto in modo che l'account possa essere creato, e quindi consentire all'utente di accedere all'account utilizzando un piccolo client tramite IMAPS .

So che sia HTTPS che IMAPS dovrebbero fornire sufficiente sicurezza per quanto riguarda il client < - > i dati del server vanno, ma sono preoccupato per la possibilità che gli utenti possano violare il codice (o introdurre un dispositivo prima del loro router in modo che la richiesta di creazione della casella di posta di HTTPS possa essere letta prima di essere inviata, o allo stesso modo) e in qualche modo ottenere la password per il temporaneo account mentre l'account esiste ancora.

Quanto è reale questa situazione? Se gli utenti possono ottenere le password con lo schema di cui sopra, c'è un modo per raggiungere il mio scopo in modo sicuro?

Grazie.

    
posta nKn 11.04.2015 - 18:55
fonte

3 risposte

1

Penso che stai facendo la cosa sbagliata sin dall'inizio. Dici di voler impedire agli utenti di Imparare la password per impedire loro di inviare spam.

Naturalmente, il server SMTP deve essere configurato per non consentire l'inoltro, nemmeno per gli utenti locali, dovrebbe solo accettare e-mail per il servizio usa e getta. Quindi puoi facilmente distribuire password casuali alla tua app, completamente non criptate e puoi anche permettere loro di leggere la posta senza SSL. Non importa se i tuoi utenti finali riescono a trovarli, tutto ciò che possono fare è leggere l'e-mail per il loro account e-mail usa e getta nella casella IMAP. Non otterranno alcun vantaggio conoscendo la password.

Per impedire agli utenti di utilizzare un altro client di posta elettronica e un altro server SMTP (come un server ISP) per inviare spam utilizzando gli indirizzi email di servizio usa e getta come mittente falsificato (non è necessario conoscere la password per questo tipo di abuso), configurare il servizio usa e getta per avere un record SPF di "v = spf1 -all". Ciò garantirà che tutte le e-mail in uscita dal servizio usa e getta vengano scartate come fraudolente / contraffatte dai ricevitori che aderiscono allo standard SPF.

    
risposta data 08.11.2015 - 01:36
fonte
0

È possibile utilizzare un algoritmo di crittografia come RC4 o AES. Puoi crittografare la password generata automaticamente nella tua app con una chiave e decifrare la stessa sul server prima della creazione dell'account. Se un utente prende il trasferimento, vedrà solo una sequenza casuale di lettere. Se i tuoi utenti hanno un account sul tuo server, puoi anche generare una chiave di crittografia univoca per ogni utente.

    
risposta data 11.04.2015 - 20:00
fonte
0

Non dovresti MAI usare l'autenticazione basata sullo stato (nome utente e password) per un'applicazione basata sullo stato. Utilizza sempre l'autenticazione stateless.

l'autenticazione stateless è un ottimo modo per farlo poiché puoi rendere ogni richiesta una nuova richiesta con un nuovo stato che alla fine muore. Controlla anche che, se arriva un'altra richiesta con il vecchio token, uccidi immediatamente la casella (crea una modalità panico). Ciò farebbe in modo che per ottenere queste informazioni e abusare del tuo servizio, un utente dovrebbe decodificare la tua applicazione.

    
risposta data 09.10.2015 - 01:02
fonte

Leggi altre domande sui tag