¿Cómo es seguro generar Tokens de pago en el desarrollo móvil?

1

Estoy usando Stripe para pagos de aplicaciones en mi proyecto de aplicación móvil y no entiendo bien cómo es segura ninguna aplicación si el usuario ingresa la información de la tarjeta (con o sin banda) si no pasa por HTTPS todo el tiempo .

A mi entender, si quiere hacer cualquier forma (pun intencionada) de pagos en un dispositivo móvil, debe crear un token y enviarlo a un servidor. servidor que utiliza HTTPS (y tiene la clave privada) para procesar dicho pago (con franja, no estoy lo suficientemente familiarizado con los demás).

Según lo indicado por la banda:

  

Vale la pena señalar que Checkout no crea realmente cargos, solo crea tokens. Puede usar esos tokens para crear el cargo real en su servidor.

Cuando el token se convierte en un cargo cuando está en el lado del servidor que está sobre SSL

  

Todas las presentaciones de información de pago mediante Checkout se realizan a través de una conexión HTTPS segura. Sin embargo, para protegerse contra ciertas formas de ataques de intermediarios, le sugerimos que también sirva la página que contiene el formulario de pago con HTTPS. Esto significa que cualquier página en la que pueda existir un formulario de Checkout debe comenzar con https: // en lugar de solo http: //.

Mi pregunta / preocupación (TL; DR):

Por lo tanto, puede crear un token sin tener que estar sobre HTTPS, donde es solo el pago que debe ser sobre HTTPS. Sin embargo, ¿este proceso de creación de token es seguro (mi primera pregunta)? No puedo dejar de pensar que cualquiera que ingrese la información de su tarjeta donde se envía la información a través del cable para formar una banda y crear un token no es seguro y es propenso a los ataques humanos en el centro.

  1. ¿Es seguro que el token se cree a través de HTTP y no HTTPS? ¿Es seguro enviar ese token creado a través del cable usando HTTP?
  2. Si es así, ¿no podría ponerse en peligro la información de la tarjeta del usuario (por ejemplo, recopilarla o rasparla) en este proceso? A medida que se ingresa la información de la tarjeta, se envía a la banda, se envía de vuelta y luego se envía al servidor, todo sin HTTPS ?
  3. ¿Cuáles son las mejores prácticas cuando se trata de dispositivos móviles? ¿Este caso difiere en el desarrollo nativo o híbrido? ¿Qué hay de usar en el navegador de la aplicación para pagos?
pregunta garrettmac 10.11.2015 - 21:10
fuente

2 respuestas

2

Parece que tienes un malentendido sobre la creación de token, cuando dices puedes crear un token sin tener que pasar por HTTPS . La creación de tokens es la siguiente:

  1. El titular de la tarjeta envía la tarjeta a través de HTTPS a Stripe
  2. Stripe almacena el número de tarjeta y lo asocia con un token que generan
  3. Stripe entrega el token al comerciante (usted).
  4. A partir de ese momento, puede cargar la tarjeta de crédito subyacente diciéndole a Stripe que cargue ese token.

Paso 1, donde el número de tarjeta se transmite a través de la red, debe estar protegido por HTTPS . El token, aunque no es tan sensible como el número de la tarjeta, generalmente también se transmite a través de HTTPS.

Cuando Stripe dice

  

le sugerimos que también sirva la página que contiene el formulario de pago   con HTTPS

Significan que tu página que contiene el formulario (o iframe, o enlace, o javascript) que lleva a Stripe. No están hablando de transmisiones de token posteriores cuando dicen esto (aunque, nuevamente, la práctica estándar es proteger el token también).

Para responder a sus preguntas:

  
  1. ¿Es seguro que el token se cree a través de HTTP y no HTTPS?
  2.   

No. La creación de token requiere que los datos de la tarjeta sean transmitidos, lo que requiere HTTPS según PCI. Recuerde, no crea el token, Stripe lo hace, y están en el otro extremo de Internet, tanto de usted como de su cliente.

  
  1. Si es así, ¿no podría ponerse en peligro la información de la tarjeta del usuario (por ejemplo, recopilarla o rasparla) en este proceso?
  2.   

Dado que # 1 es "no", la cláusula "si es así" no se aplica. (Sí, si no usó HTTPS, la información de la tarjeta del usuario podría estar en peligro, por lo que debe ser HTTPS).

  
  1. ¿Cuáles son las mejores prácticas cuando se trata de dispositivos móviles?
  2.   

La mejor práctica es cifrar todo, dentro o fuera del dispositivo móvil.

    
respondido por el gowenfawr 10.11.2015 - 23:02
fuente
1

Los PAN de la tarjeta de crédito deben NUNCA enviarse en texto sin formato o almacenar sin cifrar.

Esto significa que debe recuperar la información de la tarjeta de pago del usuario a través de un canal seguro como HTTPS y debe obtener un token de pago para esta desde Stripe sobre HTTPS.

Una variante interesante en esto que omite su aplicación web de PCI es enviar una clave pública al cliente, hacer que JavaScript cifre el PAN y luego su servidor envíe ese PAN cifrado a un servicio de tokenización en su back-end que tiene el servicio privado. Tecla y habla con Stripe.

    
respondido por el Alain O'Dea 10.11.2015 - 22:18
fuente

Lea otras preguntas en las etiquetas