2012-02-06 15 views
5

Tengo una aplicación WPF a la que hemos integrado el procesamiento de tarjetas de crédito. Actualmente, la información de crédito se ha modificado mediante swip/typing en una página web en un navegador web de WPF para satisfacer el cumplimiento de PCI. Aparentemente, esto está bien porque el componente del navegador web cumple con PCI y nuestro código nunca trata con la información de la tarjeta de crédito.¿Qué se necesita para escribir un ensamblaje compatible con PCI?

Odio mucho este diseño y me encantaría escribir un control/ensamblaje autónomo compatible con PCI WPF que podamos enchufar en lugar del componente del navegador web. Si el código de nuestra aplicación puede usar el navegador sin que esté certificado por PCI, entonces podría usar nuestro propio ensamble certificado PCI sin tener la certificación PCI, ¿verdad? Todo el nuevo control/ensamblaje que haría sería recopilar la información de la tarjeta y enviarla de forma segura a un servidor seguro remoto a través de un servicio WCF. No sería almacenar la tarjeta de crédito ni procesarla localmente. Me han dicho que hacer esto requiere un proceso de revisión de 9 meses, por lo que optamos por el navegador.

¿Alguien me puede dar una idea general de lo que implicaría hacer esto?

  • ¿Se puede escribir en C#/WPF?
  • ¿El código debe tener medidas de seguridad especiales implementadas (como CAS)?
  • ¿El ensamblaje debe ofuscarse?
  • Y una vez que está escrito, ¿qué tienes que hacer?
+1

Hay múltiples niveles de cumplimiento PCI, tan pronto como toque los datos CC que aumentan el nivel. No hay una forma real de evitar esto si inserta la captura de información CC en su aplicación. La razón por la que funcionaría un control de navegador web es porque la información de CC nunca está en la memoria de su aplicación, sino que se envía directamente a un tercero. Todo este cumplimiento de PCI es un dolor en el trasero, pero en general estoy feliz de que mis datos, al menos, tengan la apariencia de ser seguros. – Travis

Respuesta

2

Aunque hay una gran cantidad de superposición con PCI-DSS, el nombre formal que está buscando es PA-DSS (Estándares de seguridad de datos de aplicaciones de pago).

Una estrategia sobre la mejor manera de abordar su problema sería separar las partes de la tarjeta de entrada/procesamiento de tarjetas en una solución completamente independiente. Esta solución por separado sería finalmente la 'aplicación' que pasa por la certificación PA-DSS. Una vez certificado, lo integrará en su proyecto más grande (que no alteraría el cumplimiento de PCI del proyecto más grande)

La ventaja de separarlo será evidente a medida que examina los PA-DSS. Uno de los criterios es que cualquier cambio que requiera la recompilación de la aplicación necesitaría entonces que la aplicación sea recertificada. ¡Eso no es algo que quieras hacer con frecuencia!

Otra estrategia para facilitar el proceso es considerar que las aplicaciones 'internas' (que no se distribuyen a los clientes) no necesitan ser certificadas por PA-DSS (aunque siguen estando incluidas en PCI-DSS si se manejan datos de la tarjeta obviamente). Por lo tanto, usar un servicio web dentro de su dominio podría facilitar las cosas. Podría, por ejemplo, alojar una página web de 'detalles de entrada de pago', luego usar un navegador web estándar en su aplicación principal que apunta a su página de entrada de pago. Esto potencialmente le permitiría eludir la certificación PA-DSS (aunque aún requiere la certificación PCI para la página web que ahora aloja)

Cualquiera que sea su decisión, el mejor consejo sería involucrar a un QSA tan pronto como tenga una comprensión razonable de su diseño previsto. El QSA ofrecerá asesoramiento sobre qué áreas pueden causar problemas de cumplimiento, y en última instancia es el QSA que firmará su conformidad.

+0

Gracias!La parte difícil fue descubrir dónde mirar. – xr280xr

Cuestiones relacionadas