Come memorizzare e utilizzare i dati sensibili in Java

1

Ho diverse applicazioni Spring Boot che usano BCryptPasswordEncoder per crittografare i dati che non avrò mai bisogno di usare direttamente di nuovo - le password, per esempio. Tuttavia, ho un bel po 'di dati sensibili (SSN, carte di credito) che ho bisogno di immagazzinare in modo sicuro, ma dovrò anche usarli a un certo punto. Potrei usare qualcosa come Authorize.net (anche se questo sembra molto costoso per la nostra startup) per memorizzare le informazioni della carta di credito, ma ho ancora bisogno di SSN e altre informazioni personali.

Il mio post su Stack Overflow suggeriva l'utilizzo di chiavi simmetriche, ma speravo che qualcuno qui potesse conoscere una best practice, una soluzione open source per la protezione dei dati. Ho pensato di usare il db (PostgreSQL) ma ho sentito che ha anche problemi.

    
posta sonoerin 29.09.2015 - 05:37
fonte

3 risposte

1

Per conservare le carte di credito in modo specifico, è necessario valutare i costi dell'utilizzo di Stripe, PayPal o simili, o archiviare le carte personalmente e i costi, finanziari e legali, nel caso in cui tali dati vengano compromessi. I QSA sono diventati sempre più rigidi con tutte le violazioni che si sono verificate ultimamente. Questa è una decisione che dovrai prendere. Può essere con il numero di carte che hai e con la frequenza, troverai più economico salvarle da solo.

Tuttavia, ti incoraggio a trovare un QSA con cui parlare. PCI-DSS, così come Visa, Mastercard e altri operatori di rete, hanno i loro requisiti.

    
risposta data 29.09.2015 - 06:04
fonte
1

È possibile utilizzare Java Keystore per store la chiave simmetrica che è possibile utilizzare per crittografare o decrittografare i dati prima di memorizzarli nel database. A seconda del budget e dello scenario di distribuzione, potresti prendere in considerazione HSM che potrebbe essere un po 'costoso. Puoi anche consultare Hashicorp Vault .

Leggi OWASP per altre best practice che puoi seguire.

Può essere difficile ottenere questo processo corretto e in base al tuo verticale specifico (ad es. elaborazione dei pagamenti, medico) potresti voler bilanciare il rischio di immagazzinare e gestire le PII e altre informazioni di pagamento nella tua infrastruttura rispetto al costo di esternalizzarlo terze parti esterne più esperte che possono utilizzare migliori strumenti di sicurezza (come HSM) e processi per ridurre il rischio di compromissione dei dati.

    
risposta data 29.09.2015 - 09:26
fonte
0

Puoi provare Castello gonfiabile per proteggere i dati in Java.

    
risposta data 29.09.2015 - 06:05
fonte

Leggi altre domande sui tag