Guía de seguridad de la integración
Garantiza el cumplimiento de la normativa PCI y protege las comunicaciones entre el cliente y el servidor.
Cualquier persona involucrada en el procesamiento, transmisión o almacenamiento de datos de la tarjeta debe cumplir con las Normas de seguridad de datos del sector de tarjetas de pago (PCI DSS). Un evaluador de seguridad certificado (QSA) independiente conforme a la normativa PCI auditó y certificó a Stripe con la certificación de proveedor de servicios de nivel 1 de PCI. Este es el nivel de certificación más estricto que existe en el sector de los pagos.
El cumplimiento de la normativa PCI es una responsabilidad compartida y se aplica a Stripe y a tu empresa. Al aceptar pagos, debes hacerlo de una manera compatible con PCI. La forma más sencilla de cumplir con PCI es nunca ver (o tener acceso a) los datos de la tarjeta. Stripe te lo pone fácil, ya que podemos hacer el trabajo pesado para proteger la información de las tarjetas de tus clientes. Puedes simplificar tu cumplimiento de PCI siempre y cuando:
- Usa una de nuestras integraciones de pago recomendadas para recopilar la información de pago, que se transmite de forma segura directamente a Stripe sin pasar por tus servidores.
- Opera tus páginas de pago de forma segura usando el protocolo de seguridad de la capa de transporte (TLS) para poder utilizar HTTPS.
- Revisa y valida anualmente el cumplimiento de la normativa PCI de tu cuenta.
Cómo validar el cumplimiento de la normativa PCI
Todos los usuarios de Stripe deben validar el cumplimiento de la normativa PCI una vez al año. La mayoría de los usuarios puede hacerlo con un Cuestionario de autoevaluación (SAQ) suministrado por el Consejo de Normas de Seguridad de la PCI. El tipo de formulario SAQ depende de cómo realizaste la integración con Stripe y de cuáles de los siguientes métodos utilizas para recopilar los datos de tarjeta. Algunos métodos pueden exigir que nos envíes documentación adicional relacionada con la PCI. De ser necesario, puedes cargarla directamente en el Dashboard. Si estás usando más de uno de los siguientes métodos, no es necesario que cargues varios SAQ.
Si no estás seguro de cómo demostrar que tu empresa cumple con PCI (por ejemplo, un tercero construyó tu integración), te sugerimos que hables con un QSA de PCI para determinar cómo validar mejor tu cumplimiento de acuerdo con la guía actual del Consejo de PCI.
Requisito de cumplimiento de la normativa PCI por integración
Integración | Requisito | Recomendación |
---|---|---|
API directa | SAQ D | Cuando pasas la información de las tarjetas directamente a la API de Stripe, tu integración se encarga directamente de esos datos y debes demostrar anualmente el cumplimiento de la normativa PCI mediante el SAQ D, el más exigente de los SAQ. Para reducir esta carga:
Además, nuestra herramienta de prevención de fraude, Radar, que incluye evaluación de riesgos y reglas, solo está disponible cuando se utiliza cualquiera de nuestros métodos de tokenización del lado del cliente. |
Checkout o Elements | SAQ A | Checkout y Stripe.js y Elements alojan todas las entradas de recopilación de datos de la tarjeta dentro de un iframe servido desde el dominio de Stripe (no el tuyo) para que la información de la tarjeta de tus clientes nunca toque tus servidores. Debido a esto, tiene la carga de cumplimiento PCI más ligera. |
Connect (conectar) | SAQ A | Si recopilas datos de tarjetas exclusivamente a través de una plataforma Connect (por ejemplo, Squarespace), podemos determinar si la plataforma proporciona la documentación PCI necesaria. |
Dashboard | SAQ C-VT | Los pagos manuales con tarjeta a través del Dashboard solo son posibles en circunstancias excepcionales, no en el procesamiento habitual de pagos. Proporciona un formulario de pago o una aplicación móvil adecuados para que tus clientes introduzcan los datos de su tarjeta. No podemos verificar que los datos de tarjetas introducidos manualmente estén seguros fuera de Stripe, por lo que debes protegerlos de acuerdo con los requisitos de cumplimiento de la normativa PCI y completar el SAQ C-VT anualmente para demostrar que tu empresa cumple con la normativa PCI. |
SDK móvil | SAQ A | El desarrollo y control de cambios del SDK móvil de Stripe cumple con PCI DSS (requisitos 6.3-6.5) y se implementa a través de nuestros sistemas validados por PCI. Cuando solo usas componentes de interfaz de usuario de nuestros SDK oficiales para iOS o Android o creas un formulario de pago con Elements en un WebView, los números de tarjeta pasan directamente de tus clientes a Stripe, por lo que tiene la menor carga de cumplimiento de PCI. Si lo haces de otra manera y, por ejemplo, redactas tu propio código para gestionar los datos de tarjeta, es posible que seas responsable de cumplir con requisitos adicionales de la PCI DSS (6.3 a 6.5) y que no tengas acceso al formulario SAQ A. Habla con un QSA de PCI para determinar la mejor manera de validar tu cumplimiento de conformidad con las actuales directrices del Consejo de la PCI. Si tu aplicación requiere que tus clientes ingresen su información en sus propios dispositivos, entonces cumples los requisitos para SAQ A. Si tu aplicación acepta información de tarjetas para varios clientes en tu dispositivo (por ejemplo, una aplicación de punto de venta), consulta a un QSA de PCI para obtener información sobre la mejor manera de validar tu cumplimiento de PCI. |
Stripe.js v2 | SAQ A-EP | El uso de Stripe.js v2 para pasar los datos de la tarjeta introducidos en un formulario alojado en tu propio sitio web requiere que completes el SAQ A-EP anualmente para demostrar que tu empresa cumple la normativa PCI. Alternativamente, tanto Checkout como Elements te permiten la flexibilidad y personalización de un formulario autoalojado, al tiempo que cumplen con los requisitos de PCI para el SAQ A. |
Terminal | SAQ C | Si recopilas datos de tarjetas exclusivamente a través de Stripe Terminal, puedes validar usando SAQ C. Si realizas la integración con Stripe con los métodos adicionales enumerados en esta tabla, deberás demostrar que cumplen con la normativa por separado, tal y como se describe. |
Advertencia
Si estás procesando más de 6 millones de transacciones al año con Visa o MasterCard o más de 2,5 millones de transacciones con American Express, o si cualquiera de las redes de tarjeta considera que es un proveedor de nivel 1, no reúne los requisitos para usar un SAQ con el fin de probar el cumplimiento de PCI. Las marcas de pago requieren que completes un Informe sobre cumplimiento (RoC) para validar tu cumplimiento de PCI anualmente.
Cómo usar TLS y HTTPS
TLS es el proceso de transmisión segura de datos entre el cliente (la aplicación o el navegador que usa tu cliente) y tu servidor. Al principio, de esto se ocupaba el protocolo Secure Sockets Layer (SSL), pero está obsoleto y ya no es seguro. TLS reemplazó a SSL, pero el término SSL sigue utilizándose coloquialmente cuando se refiere a TLS y su función para proteger los datos transmitidos.
Las páginas de pagos deben usar una versión reciente (TLS 1.2 o superior) porque reduce significativamente el riesgo de ataques de intermediarios tanto para ti como para tus clientes. TLS intenta lograr lo siguiente:
- Cifrar y verificar la integridad del tráfico entre el cliente y tu servidor.
- Comprueba que el cliente se comunique con el servidor correcto. En la práctica, esto implica verificar que el propietario del dominio y el propietario del servidor son la misma persona. De esta manera, se evitan los ataques de intermediario. Sin esta verificación, no hay garantía de que estés cifrando el tráfico al destinatario correcto.
Además, el hecho de que esté a la vista que la página web utiliza HTTPS, hará que los clientes se sientan más cómodos a la hora de compartir información confidencial, lo que puede ayudar a aumentar la tasa de conversión.
Puedes probar tu integración sin usar HTTPS si es necesario y habilitarlo cuando todo esté listo para aceptar cargos reales. No obstante, todas las interacciones entre tu servidor y Stripe deben usar HTTPS (es decir, al usar nuestras bibliotecas).
Configurar TLS
El uso de TLS requiere un certificado digital, un archivo emitido por una autoridad de certificación (AC). La instalación de este certificado asegura al cliente que realmente se está comunicando con el servidor con el que espera estar hablando, y no con un impostor. Obtén un certificado digital de un proveedor de certificados de buena reputación, como:
El coste de los certificados varía según el tipo de certificado y el proveedor. Let 's Encrypt es una autoridad de certificación que proporciona certificados de forma gratuita.
Para configurar TLS:
- Compra un certificado de un proveedor adecuado.
- Configura tu servidor para usar el certificado. Este paso puede ser complejo, así que sigue las instrucciones de la guía de instalación del proveedor que uses.
Como se trata de un conjunto complejo de herramientas de cifrado, es fácil pasar por alto algunos detalles. Te recomendamos usar la prueba de servidor SSL de Qualys SSL Labs para asegurarte de haber configurado todo de manera segura.
Consideraciones de seguridad
Incluir JavaScript desde otros sitios web hace que tu seguridad dependa de la de estos sitios y supone un riesgo de seguridad. Si son víctimas de un ataque alguna vez, un atacante podría ejecutar código arbitrario en tu página. En la práctica, muchos sitios utilizan JavaScript para servicios como Google Analytics, incluso en páginas seguras. Sin embargo, recomendamos intentar minimizarlo.
Si usas webhooks, utiliza TLS en el punto de conexión para evitar que se intercepte el tráfico y se modifiquen las notificaciones (nunca se incluye información confidencial en un evento de webhook).
Aunque es importante cumplir con las normas de seguridad de los datos, las cuestiones sobre seguridad no terminan ahí. A continuación encontrarás recursos interesantes para saber más sobre seguridad en la web:
Datos de tarjetas fuera del ámbito de aplicación que puedes almacenar de forma segura
Stripe devuelve datos de tarjeta no confidenciales en la respuesta a una solicitud de cargo. Esto incluye el tipo de tarjeta, los últimos cuatro dígitos de la tarjeta y la fecha de caducidad. Esta información no está sujeta al cumplimiento de la normativa PCI, de manera que puedes almacenar cualquiera de estas propiedades en tu base de datos. Además, puedes almacenar todo lo que recibas de nuestra API.
Política de seguridad de contenidos
Si implementaste una Política de seguridad de contenido, este es el conjunto completo de directivas requerido por Checkout, componentes integrados de Connect y Stripe.js: