Esiste una differenza tra il trasferimento della chiave di crittografia e dei dati crittografati dal server in termini di sicurezza

2

Supponiamo di avere server Web e applicazioni e di provare a crittografare le informazioni della carta di credito per la nostra applicazione web finanziaria. Le comunicazioni tra i server Web e le app sono protette tramite SSL / TLS. Supponiamo che i dati crittografati siano necessari nel server Web che verrà inviato al server delle applicazioni per essere protetti. C'è una differenza tra questi due approcci:

  • Ottenere la chiave di crittografia dal server delle applicazioni (che ottiene la chiave da HSM) e crittografare i dati nel server Web.
  • Invio di dati non crittografati al server applicazioni che crittografa i dati utilizzando la chiave ottenuta da HSM e la restituisce al server Web.

Dettagli sull'ambiente

Stiamo cercando di ottenere il certificato PCI-DSS per la nostra applicazione POS virtuale. Il server Web è aperto a Internet al di fuori della comunicazione è anche sicuro (SSL). Il server delle applicazioni contiene la logica aziendale e è accessibile solo dal server web. Si può presumere che tutti gli altri criteri di sicurezza per PCI-DSS siano garantiti.

    
posta berkersonmez 18.05.2016 - 09:29
fonte

2 risposte

2

Esiste un motivo per crittografare i dati in cui sono archiviati, ovvero che l'archiviazione potrebbe essere compromessa (direttamente o da una copia di backup). Se siamo d'accordo che il mantenimento dei dati in forma crittografata è una buona idea, l'accesso alla chiave decrittazione deve essere limitato.

Non hai specificato se la crittografia fosse simmetrica o asimmetrica. Nel caso del primo, la chiave di decrittografia è la chiave di crittografia.

Considerando il caso della chiave asimmetrica, c'è il rischio che qualcuno con accesso ai dati, possa usare la tua infrastruttura come mezzo per trovare collisioni e quindi forzare brutalmente i dati, ma questo sarebbe molto piccolo.

Allo stesso modo, fare la crittografia sul client significa che stai esponendo l'algoritmo - lasciando da parte gli argomenti sul principio di Kerchoff rispetto alla sicurezza per oscurità, questo estende la superficie di attacco al client. Di nuovo il rischio è molto piccolo.

Se l'applicazione (lato server) non ha visibilità dei dati non crittografati né della chiave di decrittografia, la compromissione dell'applicazione non compromette i dati, ma è difficile immaginare perché si possano acquisire e archiviare dati che è possibile " fare qualcosa di utile con.

    
risposta data 18.05.2016 - 14:27
fonte
1

Poiché la comunicazione tra server Web e app è protetta tramite SSL / TLS, i dati vengono già crittografati in transito dalla chiave di sessione, quindi penso che le tue due opzioni siano molto simili.

Potrebbe esserci un leggero vantaggio per la crittografia della chiave HSM del server delle applicazioni subito dopo il pipistrello, in modo che il testo in chiaro dei dati non si trovi mai sul server delle applicazioni, ma se si è preoccupati per il compromesso del server delle applicazioni, si avrà una maggiore problemi.

Infine, non so nulla di PCI-DSS, ma da Wikipedia :

  1. Protect stored cardholder data
  2. Encrypt transmission of cardholder data across open, public networks

Entrambe le varianti del tuo schema sembrerebbero soddisfare entrambe.

    
risposta data 18.05.2016 - 13:29
fonte

Leggi altre domande sui tag