payment - sumarle - multiplicaciones parciales de tercer grado
Almacenamiento de números parciales de tarjetas de crédito (7)
Posibles duplicados:
- Mejores prácticas para tomar y almacenar información de tarjetas de crédito con PHP
- Almacenar datos de la tarjeta de crédito
- Almacenamiento de información de tarjeta de crédito
Necesito almacenar números de tarjetas de crédito dentro de un sitio de comercio electrónico. No tengo la intención de almacenar el número completo de la tarjeta de crédito, ya que sería altamente riesgoso. Me gustaría almacenar al menos los primeros cinco dígitos para que luego pueda identificar la institución financiera que emitió la tarjeta. Idealmente, me gustaría almacenar todo el número de crédito que pueda, para ayudar en cualquier referencia cruzada futura, etc.
¿Cuántos dígitos, y qué dígitos en particular, puedo almacenar de manera segura?
Por ejemplo, imagino que esto no sería lo suficientemente seguro:
5555 5555 555* 4444
Porque podrías calcular el dígito faltante.
Del mismo modo, esto sería seguro, pero no tan útil:
5555 5*** **** ****
¿Existe un patrón bien aceptado para almacenar números de crédito parciales?
Aquí en Canadá, la forma habitual es almacenar los primeros 4 dígitos (para identificar la institución financiera) y los 4 últimos dígitos para identificar la tarjeta de crédito.
Pero asegúrate de no haber infringido ninguna ley.
El Estándar de seguridad de datos de tarjetas de pago establece que si está manejando datos de titulares de tarjetas, entonces está sujeto a las restricciones de las PCI DSS (que es muy completo y un desafío que debe cumplir). Si desea almacenar parte de un número de tarjeta y no quiere tener que lidiar con el Estándar, debe asegurarse de que a) no almacene MÁS DE LOS 6 primeros y los últimos 4 dígitos ; b) usted nunca almacena, procesa o transmite más que esto. Eso significa que el truncamiento debe realizarse antes de que los datos entren en su control.
Dado que estás hablando de un sitio de comercio electrónico, creo que tendrás que lidiar con el PCI DSS tarde o temprano (ya que si no estás tomando los PAN completos, no puedes procesar las transacciones). De manera realista, entonces, debe evitar almacenar más de los primeros 6 y los últimos 4 dígitos de un PAN; el Estándar entonces no le "importa" esta información, y puede almacenarla en la forma que considere más adecuada. Si almacena, digamos, los primeros 7 dígitos, entonces el Requisito 3 del Estándar se activa (y comienza a tener que entender realmente la administración de claves en el cifrado).
Espero que esto sea de utilidad.
El patrón aceptado es no almacenarlos en absoluto.
En ciertas jurisdicciones, puede estar infringiendo la ley almacenándolas o cualquier parte de ellas.
En su lugar, podría almacenar un hash unidireccional (y por lo tanto irrecuperable) del número de tarjeta de crédito.
Las compañías de tarjetas de crédito tienen un estándar para esto. Probablemente encontrará que está enterrado en algún lugar de los términos de servicio de su procesador de pagos y que obedecerá esta norma. Te responde a tus preguntas. Puedes encontrar el estándar here
Si no necesita almacenar el número completo de la tarjeta de crédito, ¿por qué necesita almacenarlo? Si desea guardar la institución financiera que emitió la tarjeta, ¿por qué no almacena la institución financiera que emitió la tarjeta?
Su pregunta específica se responde en la sección 3.3 del documento PCI / DSS. Los primeros seis y los últimos cuatro son máximos para mostrar. Los recibos del cliente (¿en papel?) Son más restrictivos. Aquellos con un conocimiento legítimo deben saber que pueden ver los datos completos de la tarjeta.
Mi recomendación es contactar a su proveedor comercial y ver qué opciones están disponibles para usted. Algunas de las pasarelas de transacciones modernas tienen funciones de "bóveda" en las que la información confidencial se almacena en el proveedor y usted simplemente hace referencia a los clientes con un número de token cuando quiere facturarlos o verificar la información de la cuenta.
En la misma línea, el uso de tokens específicos de transacción se puede usar para hacer referencia a los datos necesarios almacenados en el sistema de los proveedores.
Sin embargo, no puedo enfatizar lo suficiente la importancia de leer y comprender PCI DSS. ¡El simple hecho de utilizar el almacenamiento seguro no lo dejará mágicamente obsoleto al no estar sujeto a los requisitos de cumplimiento de PCI! Esto solo es posible cuando su sistema nunca toca datos completos de la tarjeta.
Marzo 2013 Editar :
Un recurso muy pertinente es el here , una organización fundada en 2006 por cinco de las principales marcas mundiales de tarjetas de crédito (AmEx, Visa, MasterCard, JCB International y Discovery) y que es la autoridad de facto en materia de seguridad para el pago. Industria de tarjetas (PCI).
Esta organización publica en particular el estándar de seguridad de datos PCI , actualmente en su versión 2.0 que cubre temas como la administración de números de tarjeta de crédito completos o parciales. Este documento está disponible gratuitamente pero requiere un registro simple y el reconocimiento de los términos de la licencia.
El siguiente es el original, c. Respuesta del 2009, mayoritariamente correcta pero apócrifa .
Una práctica común (ya sea legal o no, no sé) es almacenar los últimos 4 dígitos , ya que esto puede usarse para ayudar al cliente a confirmar cuál de sus tarjetas de crédito se usó para una transacción en particular.
Sin mejorar significativamente las probabilidades de que una persona maliciosa adivine el número completo, se pueden almacenar los primeros 4 dígitos que son representativos de la institución financiera que emitió la tarjeta, como se menciona en la pregunta.
NO, guarde muchos más dígitos que estos 8 dígitos porque, de lo contrario, dada la suma de control de LUHN-10 , puede proporcionar suficiente información para hacer que adivinar el número completo sea más plausible (si aún es relativamente difícil, incluso con el conocimiento de la serie utilizada por un determinado Emisor, en un período de tiempo dado, pero uno debe tener cuidado ...)
Para hacer que todo esto sea más seguro, técnica y legalmente, puede considerar solo almacenar dicha información si el cliente lo permite explícitamente . También debe considerar enmascarar esta información con un hash simple para almacenar en la base de datos .
Además, lo que puede / debe almacenar después de una transacción en particular, es la identificación de la transacción suministrada por el Procesador de la tarjeta de crédito, en el momento en que se envía la transacción. Esta identificación es la clave que permite ubicar la mayoría (¿todo?) De la información que incluso necesitaría, habría algún problema con una transacción en particular. Este tipo de información generalmente se puede consultar desde un sitio web seguro mantenido por la compañía de procesamiento, junto con algunos informes agregados que pueden incluir una agrupación por tipo de tarjeta (Amex, Visa ...) si es por eso que está pensando en almacenar los primeros cuatro