Quale tecnica di crittografia dovrebbe essere utilizzata per il trasferimento dei dati nel cloud computing?

1

Desidero configurare la mia applicazione per il cloud computing per Software as a Service. Ci sarà un sacco di trasferimento di dati tra il mio server e il mio cliente, avanti e indietro. La tecnica che ho immaginato è:

  1. Anche la più piccola comunicazione deve avvenire tramite trasferimento di file.
  2. Il file deve essere creato in binario all'origine il cui formato file è compreso solo dalla mia applicazione.
  3. Il file binario viene quindi crittografato dalla crittografia AES 256 che richiede un altro file per la decrittografia anziché una stringa.
  4. Il file generato viene trasmesso tramite SFTP.
  5. Le applicazioni client e server comunicheranno tra loro utilizzando alcune porte non standard come dire 7238 (random) anziché lo standard 80.

Non vedo l'ora di dare suggerimenti critici alla mia tecnica in quanto ho poca esperienza in applicazioni di networking e crittografia. Nota: il file chiave utilizzato per la crittografia è già presente sia sul server che sul client.

EDIT: come richiesto da Steffen ecco cosa voglio proteggere: 1. Proteggi il server dall'essere hackerato 2. Nel caso in cui il server venga violato i dati memorizzati sul server devono essere crittografati in modo tale che siano inutili per gli hacker 3. Trasferisci i dati da e verso il server e il client senza farli trapelare a un hacker intercettatore

    
posta Cool_Coder 30.08.2014 - 18:55
fonte

2 risposte

3

Il primo passo per assicurarsi tutto dovrebbe essere quello di valutare ciò che è necessario proteggere e dove qualcuno potrebbe attaccarti (superficie d'attacco). Non so cosa devi proteggere, ma dal momento che stai facendo il tuo computing nel cloud non dovresti solo chiederti come comunicare con la tua applicazione cloud, ma come è protetta l'applicazione stessa, ovvero come il server è protetto , chi lo possiede, quali leggi si applicano ....

Per quanto riguarda la tua idea di comunicazione: sembra che tu combini diverse tecniche di cui hai sentito parlare nella speranza che sarà un po 'sicuro, ma non capisci cosa stai facendo (altrimenti non lo chiedi). Per favore non provare a reinventare la sicurezza, di solito va male. Utilizza invece tecnologie consolidate come TLS o SSH e scopri come funzionano, cosa offrono e quali limiti hanno.

Come per le informazioni aggiuntive su ciò che vuoi proteggere:

Protect the server from getting hacked

Dovresti sapere che con la maggior parte delle soluzioni cloud non hai il tuo hardware dedicato, ma condividi l'hardware con gli altri e ottieni solo una sorta di contenitore o macchina virtuale sull'hardware per te. Se qualcuno attacca con successo l'host che esegue questi contenitori, puoi dimenticare la sicurezza all'interno dei contenitori.

Inoltre, la maggior parte dei sistemi è vulnerabile una volta che un utente malintenzionato ottiene l'accesso all'hardware. Quindi devi avere molta fiducia nelle persone che gestiscono l'infrastruttura.

In case the server is hacked the data stored on the server should be encrypted such that it is useless to the hackers.

Questo non funzionerà completamente. Poiché devi lavorare sui tuoi dati mentre non sono crittografati, devi disporre delle necessarie funzionalità di decrittografia all'interno dell'applicazione cloud. Un aggressore competente con accesso completo alla tua macchina ha accesso alla tua applicazione e può analizzarlo ed estrarre la parte di decrittografia e riutilizzarla.

Transfer data to and fro the server and client without leaking it to an eavesdropping hacker.

Raccomando di utilizzare tecnologie consolidate come TLS o SSH per questo, ma anche questi possono fallire se non vengono utilizzati nel modo corretto.

Alla fine si riduce il valore dei dati. Gli aggressori professionisti non metteranno troppi sforzi nell'hacking di un sistema che non ha nulla di valido da proteggere, ma si impegnerà molto quando saranno coinvolti dati davvero preziosi (che significa soldi).

Se si tratta solo di un progetto di gioco, non mi preoccuperei troppo della sicurezza, cioè proteggo solo il server in modo che non possa essere utilizzato in modo improprio. Ma, se i dati sono davvero preziosi, è meglio mantenere la superficie di attacco piccola e non fidarsi troppo delle persone. In questo caso non farei nulla nel cloud.

    
risposta data 30.08.2014 - 21:48
fonte
1
1. Protect the server from getting hacked 

Per questo puoi trovare più guide di hardening, che combina il blocco del tuo computer, tenerlo aggiornato con gli hotfix e così via.

2. the data stored on the server should be encrypted

Assicurati che i tuoi dati siano crittografati, puoi farlo usando la crittografia simmetrica (hai suggerito AES, con la chiave come file), ci sono molti modi per farlo.

3. Transfer data to and fro the server and client

Per questo, devi assicurarti di avere un canale sicuro, protetto con i like di SSL / TLS. Hai suggerito di utilizzare SFTP (la cui porta di default è 22, non 80), che è una buona cosa. Non vorrei preoccuparmi troppo delle porte casuali, avrete più problemi a farlo attraverso un firewall (se si parla di un'app utilizzata in ambienti aziendali) e la gente scoprirà che si tratta di un SSH / SFTP server comunque.

    
risposta data 31.08.2014 - 07:06
fonte

Leggi altre domande sui tag