BIN Como Encontrar una CVV de una tarjeta de credito

El algoritmo de Luhn y su importancia en la validación de tarjetas de pago
Tal y como se explicó hace algunos años en el artículo «¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary Account Number)«, el PAN de una tarjeta está conformado por una serie de dígitos (por lo general 16) con una estructura definida



Este artículo describirá la importancia del último dígito del PAN, conocido como «dígito de verificación» («check digit»), valor que permite identificar si un número de tarjeta de pago es válido o no. Antes de proceder, es importante tener en cuenta que el algoritmo de Luhn permite comprobar si una secuencia de dígitos corresponde a un número de tarjeta (PAN) válido, sin que ello implique que dicha tarjeta sea operativa o que pueda ser usada en transacciones comerciales, labor que corresponde al centro autorizador.

Historia
Con el fin de validar posibles errores a la hora de la transcripción de una secuencia de números (cambiar un número por otro o identificar posibles intercambios de dígitos), el ingeniero informático Hans Peter Luhn, que trabajaba para IBM,  diseñó en 1954 un algoritmo basado en el principio del módulo aritmético (suma matemática mod-10) que permitía la identificación de posibles errores durante la digitación o transmisión de una una cantidad considerable de números entre una fuente y otra (por ejemplo, durante la digitación de un número de tarjeta por una persona en un formulario web o en su escritura en un papel). Su algoritmo se conoce como «algoritmo o fórmula de Luhn» o «algoritmo de módulo 10».

Hans Peter Luhn

Obviamente, una de las aplicaciones principales de este algoritmo se encuentra en la identificación de errores de digitación del PAN de las tarjetas de pago (definido en el estándar ISO/IEC 7812-1:2006 Identification cards — Identification of issuers — Part 1: Numbering system).

A pesar de su facilidad de implementación, el algoritmo no ofrece confiabilidad total en el caso de intercambio de dos cifras contiguas (por ejemplo 12 con 21), razón por la cual la fórmula ha sido optimizada en algoritmos más recientes como es el caso del algoritmo de Verhoeff y el algoritmo de Damm.
Generación del dígito de verificación a través del algoritmo de Luhn
Para generar el dígito de verificación empleando el algoritmo de Luhn se deben seguir estos pasos:
  1. En una secuencia de dígitos dada, el dígito de verificación será el último valor, que en principio se desconoce
  2. Partiendo de esa última posición, se multiplica cada dígito de posición par (contando desde la derecha) por dos. Si el resultado es un número de dos dígitos, entonces se suman estos dos valores
  3. Posteriormente, se suman todos los dígitos obtenidos
  4. El dígito de verificación es el número que se obtiene como residuo después de dividir ese resultado entre 10 (que es lo que en matemáticas se denomina mod-10). En otras palabras, el dígito de verificación es el número que debe agregarse a este resultado para hacer el siguiente múltiplo de 10.

Generación del dígito de verificación empleando el algoritmo de Luhn

Validación de un número de tarjeta empleando el algoritmo de Luhn
Cuando se cuenta con una secuencia de dígitos y se quiere saber si esos números corresponden o no a un posible número de tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo resultado debe ser 0 (cero) si esa secuencia es válida. En este caso, los pasos a seguir son los mismos que en la generación, sólo que esta vez se tiene en cuenta el último dígito de la secuencia dentro de las operaciones aditivas. Para este ejemplo se usará la secuencia con el dígito de verificación generado anteriormente:

Validación de un número de tarjeta empleando el algoritmo de Luhn
Como se puede observar, la secuencia es considerada válida ya que el resultado de la operación mod-10 es igual a cero.
El siguiente caso analiza otra secuencia de 16 dígitos para identificar si es un número de tarjeta válido o no:

Validación de un número de tarjeta empleando el algoritmo de Luhn
En este caso, el resultado de mod-10 es igual a 1, por lo que la secuencia corresponde a un número de tarjeta inválido.
Escenarios de aplicación del algoritmo de Luhn en entornos PCI DSS
El algoritmo de Luhn puede ser empleado para la validación del código IMEI de teléfonos móviles, números de identificación personal, números de seguridad social, etc. No obstante, su principal uso se encuentra en la identificación de la validez de datos del PAN de una tarjeta de pago. En entornos PCI DSS esta labor es de vital importancia en el cumplimiento de los siguientes controles:
  • Validar que en entornos de pruebas y/o de desarrollo no se usan datos de PAN reales (req. 6.4.3)  mediante el análisis de los datos de tarjetas empleados por los desarrolladores y su validación con el algoritmo de Luhn.
  • Validar que no existen datos de PAN reales almacenados en texto claro (req. 3.4) en logs, ficheros de depuración, bases de datos, etc. Esto se puede llevar a cabo analizando los resultados de herramientas de búsqueda de datos de PAN y validándolos con el algoritmo de Luhn.
  • Implementar alertas en sistemas de detección de intrusos (IDS) si se identifican secuencias de números en el tráfico de red analizado (req. 11.5). Validar que no se emplean canales de mensajería instantánea para el envío de datos de PAN, como por ejemplo a través del correo electrónico (Req. 4.2).
  • Implementar una metodología de descubrimiento de datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y mecanismos para la detección y prevención de exfiltración del PAN en canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS para entidades designadas (DES))
Otros posibles usos del algoritmo de Luhn son:
  • Si el entorno emplea tokenización basada en Format Preserving Tokenization (FPT) en la cual el token tiene el mismo formato del PAN (16 dígitos) pero se quiere distinguir si una secuencia de dígitos en particular es un PAN real o un token, se puede emplear el algoritmo de Luhn
  • En un formulario web de ingreso de datos de tarjeta, para validar si el PAN digitado por el cliente final es un PAN correcto o no, se puede emplear el algoritmo de Luhn a través de componentes JavaScript, evitando de esta manera que se envíen datos inválidos al centro autorizador
  • Si se emplean soluciones de DLP (Data Loss Prevention), se pueden configurar reglas específicas para identificar su una secuencia de dígitos corresponde o no a un dato de PAN empleando el algoritmo de Luhn.
  • El algoritmo de Luhn y su importancia en la validación de tarjetas de pago
  • Tal y como se explicó hace algunos años en el artículo «¿Cómo funcionan las tarjetas de pago? Parte I: PAN (Primary Account Number)«, el PAN de una tarjeta está conformado por una serie de dígitos (por lo general 16) con una estructura definida:
  •  
  • Este artículo describirá la importancia del último dígito del PAN, conocido como «dígito de verificación» («check digit»), valor que permite identificar si un número de tarjeta de pago es válido o no. Antes de proceder, es importante tener en cuenta que el algoritmo de Luhn permite comprobar si una secuencia de dígitos corresponde a un número de tarjeta (PAN) válido, sin que ello implique que dicha tarjeta sea operativa o que pueda ser usada en transacciones comerciales, labor que corresponde al centro autorizador.
  • Historia
  • Con el fin de validar posibles errores a la hora de la transcripción de una secuencia de números (cambiar un número por otro o identificar posibles intercambios de dígitos), el ingeniero informático Hans Peter Luhn, que trabajaba para IBM,  diseñó en 1954 un algoritmo basado en el principio del módulo aritmético (suma matemática mod-10) que permitía la identificación de posibles errores durante la digitación o transmisión de una una cantidad considerable de números entre una fuente y otra (por ejemplo, durante la digitación de un número de tarjeta por una persona en un formulario web o en su escritura en un papel). Su algoritmo se conoce como «algoritmo o fórmula de Luhn» o «algoritmo de módulo 10».

  • Hans Peter Luhn
  • Obviamente, una de las aplicaciones principales de este algoritmo se encuentra en la identificación de errores de digitación del PAN de las tarjetas de pago (definido en el estándar ISO/IEC 7812-1:2006 Identification cards — Identification of issuers — Part 1: Numbering system).
  • A pesar de su facilidad de implementación, el algoritmo no ofrece confiabilidad total en el caso de intercambio de dos cifras contiguas (por ejemplo 12 con 21), razón por la cual la fórmula ha sido optimizada en algoritmos más recientes como es el caso del algoritmo de Verhoeff y el algoritmo de Damm.
  • Generación del dígito de verificación a través del algoritmo de Luhn
  • Para generar el dígito de verificación empleando el algoritmo de Luhn se deben seguir estos pasos:
  • En una secuencia de dígitos dada, el dígito de verificación será el último valor, que en principio se desconoce
  • Partiendo de esa última posición, se multiplica cada dígito de posición par (contando desde la derecha) por dos. Si el resultado es un número de dos dígitos, entonces se suman estos dos valores
  • Posteriormente, se suman todos los dígitos obtenidos
  • El dígito de verificación es el número que se obtiene como residuo después de dividir ese resultado entre 10 (que es lo que en matemáticas se denomina mod-10). En otras palabras, el dígito de verificación es el número que debe agregarse a este resultado para hacer el siguiente múltiplo de 10.

  • Generación del dígito de verificación empleando el algoritmo de Luhn
  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • Cuando se cuenta con una secuencia de dígitos y se quiere saber si esos números corresponden o no a un posible número de tarjeta de pago (PAN), se aplica el algoritmo de Luhn cuyo resultado debe ser 0 (cero) si esa secuencia es válida. En este caso, los pasos a seguir son los mismos que en la generación, sólo que esta vez se tiene en cuenta el último dígito de la secuencia dentro de las operaciones aditivas. Para este ejemplo se usará la secuencia con el dígito de verificación generado anteriormente:

  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • Como se puede observar, la secuencia es considerada válida ya que el resultado de la operación mod-10 es igual a cero.
  • El siguiente caso analiza otra secuencia de 16 dígitos para identificar si es un número de tarjeta válido o no:
  • Validación de un número de tarjeta empleando el algoritmo de Luhn
  • En este caso, el resultado de mod-10 es igual a 1, por lo que la secuencia corresponde a un número de tarjeta inválido.
  • Escenarios de aplicación del algoritmo de Luhn en entornos PCI DSS
  • El algoritmo de Luhn puede ser empleado para la validación del código IMEI de teléfonos móviles, números de identificación personal, números de seguridad social, etc. No obstante, su principal uso se encuentra en la identificación de la validez de datos del PAN de una tarjeta de pago. En entornos PCI DSS esta labor es de vital importancia en el cumplimiento de los siguientes controles:
  • Validar que en entornos de pruebas y/o de desarrollo no se usan datos de PAN reales (req. 6.4.3)  mediante el análisis de los datos de tarjetas empleados por los desarrolladores y su validación con el algoritmo de Luhn.
  • Validar que no existen datos de PAN reales almacenados en texto claro (req. 3.4) en logs, ficheros de depuración, bases de datos, etc. Esto se puede llevar a cabo analizando los resultados de herramientas de búsqueda de datos de PAN y validándolos con el algoritmo de Luhn.
  • Implementar alertas en sistemas de detección de intrusos (IDS) si se identifican secuencias de números en el tráfico de red analizado (req. 11.5). Un ejemplo con SNORT se puede encontrar aquí.
  • Validar que no se emplean canales de mensajería instantánea para el envío de datos de PAN, como por ejemplo a través del correo electrónico (Req. 4.2). Un ejemplo con Office 365 se puede encontrar aquí.
  • Implementar una metodología de descubrimiento de datos para confirmar el alcance de PCI DSS, respuesta ante incidentes y mecanismos para la detección y prevención de exfiltración del PAN en canales no autorizados (Req. A3.2.5.x y A3.2.6.x del Anexo 3 de PCI DSS para entidades designadas (DES))
  • Otros posibles usos del algoritmo de Luhn son:
  • Si el entorno emplea tokenización basada en Format Preserving Tokenization (FPT) en la cual el token tiene el mismo formato del PAN (16 dígitos) pero se quiere distinguir si una secuencia de dígitos en particular es un PAN real o un token, se puede emplear el algoritmo de Luhn
  • En un formulario web de ingreso de datos de tarjeta, para validar si el PAN digitado por el cliente final es un PAN correcto o no, se puede emplear el algoritmo de Luhn a través de componentes JavaScript, evitando de esta manera que se envíen datos inválidos al centro autorizador
  • Si se emplean soluciones de DLP (Data Loss Prevention), se pueden configurar reglas específicas para identificar su una secuencia de dígitos corresponde o no a un dato de PAN empleando el algoritmo de Luhn.
Dado que Microsoft Outlook admite la automatización, puede controlar Outlook desde cualquier programa que esté escrito con Microsoft Visual Basic. La automatización proporciona un método estándar de una aplicación para obtener acceso a los objetos, métodos, propiedades y eventos de otras aplicaciones que admiten la automatización.
El modelo de objetos de Outlook proporciona todas las funcionalidades necesarias para manipular los datos almacenados en carpetas de Outlook, y
Para iniciar una sesión de automatización de cualquier página web, puede utilizar el enlace anticipado o en tiempo de ejecución. El enlace en tiempo de ejecución usa la función de Visual Basic GetObject o CreateObject para inicializar la pagina web. Por ejemplo, el siguiente código establece una variable de objeto para el objeto Application de Outlook, que es el objeto de nivel superior en el modelo de objetos de Outlook. Todo el código de automatización debe definir un objeto de Outlook Application para tener acceso a otros objetos de Outlook.

VBCopiar
Dim objOL as Object
Set objOL = CreateObject("Sitioweb.Application")

Para usar el enlace anticipado, primero debe establecer una referencia a la biblioteca de objetos de la pagina web. Use el comando de referencia en el menú de herramientas de Visual Basic para aplicaciones (VBA) para establecer una referencia a Biblioteca de objetos de WebBrowser1 xx.x, donde xx.x representa la versión de Outlook en la que se está trabajando. Luego, puede usar la siguiente sintaxis para iniciar una sesión de Outlook.

VBCopiar
Dim objOL as WebBrowser1.Application
Set objOL = New WebBrowser1.Application


Vídeo Tutorial



3 comentarios:

  1. hola amigo me interesan tus conocimientos me indicas como contactarte porfa
    https://www.facebook.com/profile.php?id=1240916017

    ResponderEliminar
  2. Me puedes enviar un TDC virtual que sirva para verificar mi cuenta de PayPal? Si no es mucho pedir claro jaja.

    ResponderEliminar