Normalmente, las API de pago se dividen en 3 categorías:
- página de pago alojada en el lado del comerciante y enviada al comerciante
- página de pago alojada en el lado comercial y solo datos de la tarjeta enviados al proveedor de pago (generalmente a través de un SDK de JavaScript)
- página de pago alojada en el lado del proveedor de pagos y enviada al proveedor de pagos, el comerciante recibe una notificación sobre la autorización exitosa
Suponiendo que el proveedor de pagos no haya cometido un gran error, debería estar completamente fuera del alcance de las PCI DSS con las opciones 2 y amp; 3.
Con la opción 2 no está en el ámbito de PCI DSS, nunca usa datos de tarjetas de crédito, sino un token temporal o permanente asignado a la transacción (como e4baf901-252b-4818-b826-7f89cad884db
) por el SDK de JavaScript del procesador de pagos. Aparte de esto, el flujo de trabajo de 3ds es exactamente como la opción 1, es solo que sus solicitudes de API tienen un atributo pan_token
y no un atributo pan
. Vea la API de campos alojados en Braintree como ejemplo enlace
Con la opción 3 no está en el ámbito de PCI DSS, realmente no hace nada, simplemente redirige a su cliente al proveedor de pagos o abre la página del proveedor de pagos en un iframe o algo así, Aquí hay un ejemplo de este tipo de API: enlace
Con la opción 1
Esa es una historia diferente, sí, usted está en el alcance de PCI DSS, sí, necesita tener un certificado válido, dependiendo de la región en que se realicen las pruebas de PEN, tener una organización segura y todas las demás "cosas malas", políticas de contraseña, saltar host para conexión, red segura (y preferiblemente segmentada), asegúrese de que los registros no muestren nada, "denegar todas" las configuraciones de red, hacer auditorías anuales, etc., etc., etc.
Si sigue este camino (y realmente no entiendo por qué debería hacerlo, por favor, no lo haga) al menos puede evitar tener un HSM y preocuparse por las claves de cifrado, etc., lo que significa que no debe almacenar datos PCI DSS. a un disco duro.
Normalmente, la solución más sencilla para evitar esto es almacenar los datos de la tarjeta de crédito en memcache con una política de caducidad de 1 hora o menos (15 minutos funcionan para todas las implementaciones que hice hasta ahora). El truco es no escribirlo en el disco (es por eso que no se redisezca en la mayoría de las implementaciones, por ejemplo), pero un almacén de memoria como memcache es un juego justo. Solo asegúrate de que las claves de acceso sean algo grandes y seguras, como un uuid (es decir, e4baf901-252b-4818-b826-7f89cad884db
).
No siempre fue así en la práctica ...
Históricamente, las compañías de pago han sido muy laxas con respecto al cumplimiento con PCI DSS del comerciante, la única diferencia práctica entre "base de datos de PAN" y "ningún PAN que haya tocado el sistema" fue "cuántas preguntas tiene su cuestionario de autoevaluación" (PCI DSS SAQ para comerciantes).
Solo en casos muy especiales cuando se identificó a un comerciante como punto de venta común para tarjetas robadas, el comerciante se vio obligado a hacerlo, muy a regañadientes y con mucha "comprensión" por parte de las compañías de tarjetas de crédito de someterse al cumplimiento de PCI DSS lvl2 / lvl1 auditoría.
Sin embargo, esto está cambiando debido a una serie de infracciones, y al menos en algunas regiones (como SEE Europa), las compañías de pago ahora están insistiendo en una migración de la opción 1 a todos los comerciantes que no tienen un PCI DSS completo. Certificado de cumplimiento (no solo un ejercicio de marcado "X" en un cuestionario SAQ).