Come crittografare i dati nel corpo dell'email inviati dall'app (offline) e decrittografati sul server

1

Ho creato un'app (offline) (HTML / JS). L'app consente all'utente di scrivere un report (evento quando è offline). I dati del rapporto vengono inviati tramite il corpo di un'e-mail all'indirizzo di posta elettronica speciale delle società. Nella società raccolgo le e-mail tramite un database di accesso che contiene la posta in arrivo delle e-mail. Quindi i dati vengono letti da un'app di analisi python. I dati (raccolti tramite un modulo nell'app) sono in un formato leggibile dall'uomo (JSON).

L'email potrebbe essere intercettata quando viene utilizzata una connessione non sicura (ad esempio in un hotel). Quando ciò accade, non voglio che l'intercettore possa leggere i dati, quindi voglio averlo crittografato.

Questa configurazione di form-data-web è temporaneamente, per un test. Non riesco a inviare i dati del modulo al server tramite ssl. Mi rendo conto che questo non è impermeabile e molto sicuro. Posso creare una connessione SSL quando gli utenti scaricano il modulo.

Le mie domande:

  1. Come posso crittografare i dati inviati nel corpo di una mail?

  2. Come posso decifrare i dati quando leggo le e-mail nel mio lettore di e-mail python automatizzato?

posta ArtDijk 23.11.2015 - 19:42
fonte

2 risposte

1

Risposta breve:

Usa GNUPG per crittografare e decodificare i messaggi.

Risposta lunga:

Fondamentalmente, si desidera crittografare i dati per evitare di essere rubati se un flusso di sicurezza, come ho capito, vieni. Al giorno d'oggi, la migliore crittografia per tali scopi è l'uso della crittografia PGP (GNUGP come implementazione gratuita). Può essere usato in Python. (trova python lib qui , qui ) Se lavori su un sistema di base Ubuntu probabilmente lo hai preinstallato, altrimenti controlla il sito GNU per maggiori informazioni

La filosofia alla base di queste crittografie è che utilizza la crittografia RSA.

Creerai due account. Uno per la tua macchina e uno per il server. Il messaggio può essere crittografato con la chiave pubblica dell'account della tua azienda e decrittografato con la stessa chiave privata.

Quindi creerai un messsage, lo cripterai con la chiave pubblica del tuo account server, lo invierai e lo decritterai con la chiave privata dell'account del server.

In questo modo se ti trovi in una situazione, come un attacco man-in-the-middle, l'attaccante non può decrittografare i tuoi dati. Ma solo per sottolineare, se vuoi un controllo di sicurezza migliore, hai la possibilità di verificare i messaggi ogni volta che arrivi al server nel caso qualcuno cambi il tuo messaggio.

Per riassumere, non ti dirò di più, perché la criptoografia è una classe buca nelle università e nell'IT e ci vorrebbe pagine e tempo per capirlo. Ti consiglio di provare su google, cercando informazioni sulla crittografia PGP e chiedi a qualcuno che conosce la crittografia.

    
risposta data 23.11.2015 - 20:58
fonte
0

Se i tuoi server di posta elettronica sono configurati correttamente per utilizzare SSL / TLS, non devi preoccuparti di crittografare nulla. L'email verrà inviata crittografata, nessuno nel percorso sarà in grado di decrittografarlo. Assicurati di non accettare certificati non riusciti, scaduti o non validi.

Ora, le tue domande:

How can I encrypt the data that is sent in the body of a mail? How can I decrypt the data when I read the emails in my automated python email reader?

Utilizza la crittografia a chiave pubblica. Crea una coppia di chiavi pubblica / privata e impacchetta la chiave pubblica nella tua app. Criptare i dati prima dell'invio. Nel server, utilizzare la chiave privata per decodificare e archiviare. Ci sono un paio di librerie in Python e Javascript per prendersi cura di questo.

    
risposta data 23.11.2015 - 19:59
fonte

Leggi altre domande sui tag