¿Alguien ha obtenido experiencia práctica o una referencia para un esquema que implementa un esquema de gestión de claves que cumpliría con el estándar de seguridad PCI DSS?Cómo hacer correctamente la gestión de claves privadas
Existen obviamente bastantes implementaciones dado el número de empresas que cumplen con PCI DSS, pero tratar de encontrar detalles de ellas es difícil. Cuando se trata de almacenar datos privados, la discusión normalmente se detiene en qué algoritmo de encriptación usar. Después de eso, normalmente hay una declaración sobre el almacenamiento apropiado de la clave privada, pero no hay discusión sobre formas prácticas de hacerlo o cosas como cambiar periódicamente la clave o proporcionar la clave para las aplicaciones, etc.
Specificly Me interesan los requisitos de las secciones 3.5 y 3.6 de la norma PCI DSS.
3.5.2 Almacene las claves criptográficas de forma segura en la menor cantidad posible de ubicaciones y formularios.
3.6.a Verifique la existencia de procedimientos de administración de claves para las claves utilizadas para el cifrado de los datos del titular de la tarjeta. Nota: Numerosos estándares de la industria para la gestión de claves están disponibles en varios recursos, incluido NIST, que se puede encontrar en http://csrc.nist.gov.
3.6.4 Verifique que los procedimientos de administración de claves estén implementados para requerir cambios periódicos de claves al menos una vez al año.
que he tenido un vistazo a la NIST Cryptographic publications como el documento de requisitos de PCI DSS sugiere, pero aparte de notas recientes de un Cryptographic Key Management Workshop no parece ser mucho que hay en el camino de esquemas ejecutables reales o normas.
En cuanto a lo que estoy tratando de hacer no es:
- Almacenar contraseñas + sales como una forma hashes para la autenticación,
- Elija un algoritmo fuerte symmteric para el cifrado de datos,
- evitar la necesidad para almacenar datos privados en primer lugar.
- evitar la necesidad de gestión de claves con otros mecanismos: seguridad física, seguridad de bases de datos, dragones y magos etc.
todas las cuales son preocupaciones válidas, pero en este caso no son la respuesta. Las tuercas y los pernos de mis requisitos están en una pregunta SO .Net Design pattern for storing and retrieving sensitive per user data diferente, pero todo se reduce a la administración de claves, de ahí esta pregunta más refinada.
¿Curioso saber qué terminaste haciendo? He estado buscando esto pero no puedo encontrar una clave válida o código de muestra para NIST SP 800-22. Mi aplicación web está en php e incluso una implementación comercial me ayudaría. – 3zzy
No terminé necesitando almacenar datos del titular de la tarjeta, pero aún necesitaba un nivel de encriptación de la aplicación. Para Windows he utilizado un certificado y una clave RSA almacenados en el almacén de certificados de Windows como la clave maestra para una clave de aplicación cifrada almacenada en un archivo de configuración. Para algunas bases de datos Linux MySQL he usado un LUKS donde el sistema de archivos solo se puede montar después de que la frase de contraseña se ingrese manualmente. – sipwiz