Cómo almacenar y usar datos confidenciales en Java

1

Tengo varias aplicaciones Spring Boot que usan BCryptPasswordEncoder para encriptar datos que nunca más necesitaré usar directamente, por ejemplo, contraseñas. Sin embargo, tengo un poco de información confidencial (SSN, tarjetas de crédito) que necesito almacenar de forma segura, pero que también necesitaré usar en algún momento. Podría usar algo como Authorize.net (aunque esto parece muy costoso para nuestro inicio) para almacenar la información de la tarjeta de crédito, pero todavía necesito el SSN y otra información personal.

Mi publicación en Desbordamiento de pila sugirió el uso de claves simétricas, pero esperaba que alguien aquí conociera las mejores prácticas, una solución de código abierto para proteger los datos. Pensé en usar la base de datos (PostgreSQL) pero escuché que también tiene problemas.

    
pregunta sonoerin 29.09.2015 - 05:37
fuente

3 respuestas

1

Para almacenar tarjetas de crédito específicamente, debe sopesar los costos de usar Stripe, PayPal o similar, o almacenar las tarjetas usted mismo y los costos, financieros y legales, en caso de que la información se vea comprometida. Los QSA se han vuelto cada vez más estrictos con todas las brechas que han estado ocurriendo últimamente. Esa es una decisión que tendrás que tomar. Puede ser con la cantidad de tarjetas que tiene y la frecuencia, por lo que le resultará más económico almacenarlas.

Sin embargo, te animo a que encuentres un QSA con quien hablar. PCI-DSS, así como Visa, Mastercard y otros operadores de red, tienen sus propios requisitos.

    
respondido por el user79537 29.09.2015 - 06:04
fuente
1

Puede usar Java Keystore para store la clave simétrica que puede usar para cifrar o descifrar los datos antes de almacenarlos en la base de datos. Dependiendo de su presupuesto y el escenario de implementación, es posible que desee considerar HSM, que puede ser un poco costoso. También puede consultar Hashicorp Vault .

Lea OWASP para conocer otras mejores prácticas que puede seguir.

Puede ser difícil hacer que estos procesos sean correctos y, dependiendo de su vertical específica (por ejemplo, procesamiento de pagos, médico) es posible que desee equilibrar el riesgo de almacenamiento y gestión de la PII y otra información de pago en su infraestructura, en comparación con el costo de la subcontratación. tercero externo con más experiencia que puede utilizar mejores herramientas de seguridad (como HSM) y procesos para reducir el riesgo de compromiso de datos.

    
respondido por el jhash 29.09.2015 - 09:26
fuente
0

Puede probar Bouncy Castle para proteger los datos en Java.

    
respondido por el mystery 29.09.2015 - 06:05
fuente

Lea otras preguntas en las etiquetas