Javascript decrittazione immagine client lato, questo aggiunge sicurezza o è difettoso

4

Voglio memorizzare le copie dei passaporti in modo sicuro in un database, il database stesso è un normale database MySQL e su un server Web un po 'affidabile. L'utente che possiede la copia del passaporto dovrebbe solo essere in grado di caricare il proprio passaporto e non visualizzarlo. L'approccio che voglio prendere consiste nei seguenti passaggi.

Configurazione:

  1. L'amministratore di sistema apre la pagina tramite https
  2. L'amministratore invia una chiave pubblica generata al server e memorizza la chiave privata localmente (su smart card o qualcosa che non è permanentemente collegato al computer preferito)

Archiviazione passaporto:

  1. L'utente apre la pagina tramite https
  2. L'utente seleziona la copia del passaporto (immagine) nel browser e la invia al server
  3. Il server crittografa l'immagine con la chiave RSA pubblica e la memorizza nella colonna del database
  4. Il server sovrascrive qualsiasi copia non crittografata in memoria

Recupero passaporto:

  1. L'amministratore apre la pagina tramite https
  2. Il server carica la colonna crittografata e invia l'immagine crittografata tramite AJAX al browser di amministrazione
  3. Il browser dell'amministratore carica la chiave privata da un file o smarcard e decrittografa l'immagine utilizzando link libreria
  4. I dati dell'immagine non crittografati vengono iniettati nell'attributo src di un tag immagine.

(Non ho ancora trovato un buon modo per caricare la chiave privata nel browser)

Domande:

  • Se il server viene violato e il database scaricato dall'attaccante, le copie del passaporto sono quindi sicure?
  • Esiste un modo migliore per garantire che le copie siano sicure?
posta Harry 05.05.2014 - 11:38
fonte

1 risposta

4

esso aggiunge potenzialmente sicurezza in quanto la chiave privata non si trova sul server Web di fronte. Dal momento che quel server è rivolto a Internet 24x7 ha un potenziale di attacco MOLTO grande.

Presuppone tuttavia che il PC amministratore sia ben protetto e amp; questo potrebbe non essere la realtà. L'utilizzo di un archivio sicuro rimovibile come una smart card è potenzialmente migliore, come indicato da te - presupponendo che il negozio sia tenuto al sicuro;)

La copia sul server Web sarà sicura quanto il metodo utilizzato per crittografare i dati. Supponendo che le migliori pratiche, dovrebbero essere abbastanza buone anche se un utente malintenzionato ha l'intero database e se questo contiene molte migliaia di voci tutte crittografate con la stessa chiave, la sicurezza sarebbe indebolita. La crittografia salting e multi-pass potrebbe probabilmente aiutare con questo.

Tuttavia, esiste un modo di sicurezza dei dati ancora più strong e potenzialmente più semplice. Dipende comunque da come stai usando l'immagine. Potresti semplicemente non memorizzare l'immagine sul server web! In una tipica configurazione aziendale, si mantiene un server di dati sicuro all'interno della rete (mentre il server Web si trova nella DMZ). Il server dati sicuro preleva periodicamente i dati dal server Web ed elimina l'immagine sul server web. Combinato con un processo di crittografia sensibile simile a quello delineato ma in cui la chiave privata è stata mantenuta nella rete interna, possibilmente in una scheda di accelerazione di sicurezza per la massima sicurezza, questo eliminerebbe la necessità dell'intervento dell'amministratore e manterrebbe i dati sensibili fuori dalla vista.

    
risposta data 19.05.2014 - 17:45
fonte

Leggi altre domande sui tag