TL; DR: siempre algo de Triple DES y un poco de RSA a veces.
El PIN generalmente tiene 4 dígitos de largo, pero algunos estándares permiten usar los más largos, hasta 6 u 8 dígitos, además, el hardware criptográfico admite PIN de hasta 12 dígitos, pero nadie usa PIN tan largos en la práctica como los humanos. son demasiado débiles para recordar eso de todos modos.
Cuando paga con una tarjeta en un terminal POS en una tienda o retira dinero en un cajero automático, la verificación del código PIN se realiza de la siguiente manera:
- Si su tarjeta es solo una banda magnética, los sistemas del emisor (banco que le emitió la tarjeta) verifican el PIN o, si están fuera de línea y el banco ha comprado dicho servicio, mediante el esquema de pago (Visa , MasterCard, AmEx, UPI, …) en nombre del banco. Es posible que el banco también haya subcontratado toda la tarea de procesamiento de tarjetas a otra compañía, luego dicha compañía se encargará de la mayoría de las actividades técnicas asociadas con el procesamiento de tarjetas y puede ser llamado emisor o procesador para ese emisor.
- Si su tarjeta está basada en un chip (estándar EMV), entonces la tarjeta tiene un chip seguro que almacena su PIN en el interior y puede verificarlo cuando lo ingresa en la terminal, y proporciona una firma criptográfica que verifica que alguien ingresó un PIN correcto para una transacción de una cantidad solicitada. Además, en algunos casos, el PIN aún será verificado por el emisor, aunque el chip puede hacerlo por sí mismo.
Entonces, o bien el emisor verifica el PIN o el chip. Ahora más detalles:
- ¿Cómo se probaría [matemáticas] (2 ^ 1 – 1) + (2 ^ 2 – 1) +… + (2 ^ n – 1) = 2 ^ {n + 1} – n – 2 [/ matemáticas] por inducción ?
- ¿Cuál es la intuición que explica por qué [matemáticas] \ frac {a} {b} \ cdot \ frac {c} {d} = \ frac {a \ cdot c} {b \ cdot d} [/ matemáticas] para todos los racionales?
- ¿Cuál es el procedimiento para publicar un artículo sobre teoría de números en una revista matemática internacional?
- ¿Cómo podemos estar seguros de que 2 + 2 es igual a 4?
- Cómo mostrar que las unidades dígitos de un cuadrado perfecto nunca pueden pertenecer [matemáticas] {2,3,7,8} [/ matemáticas]
- El terminal (ya sea un cajero automático o un terminal POS) encripta el bloque de PIN, una combinación de un PIN y un número de tarjeta, bajo la clave del terminal y lo envía junto con otros datos de transacción no cifrados al banco adquirente (o una empresa de procesamiento) que posee esta terminal. Luego, el adquiriente descifra el bloque PIN y lo cifra en una clave compartida entre el esquema de pago y este banco, y lo envía al esquema de pago. El esquema de pago hace lo mismo para enviarlo al banco emisor. El banco emisor puede descifrar el bloqueo del PIN y verificar si el PIN ingresado es correcto. Puede hacerlo utilizando una variedad de métodos, pero de todos modos la verificación real se realiza en un acelerador criptográfico protegido: HSM (Host Security Module), que es básicamente un dispositivo certificado basado en FPGA en una caja de seguridad.
- El algoritmo de cifrado utilizado es 3DES (Triple DES en modo ABA, principalmente con dos claves DES de longitud única, cifrar bajo una tecla A, descifrar bajo otra tecla B y cifrar nuevamente bajo la primera tecla A).
- También puede haber un hash truncado basado en DES llamado PVV (valor de verificación de PIN) de un bloque de PIN codificado en una tarjeta, que es utilizado por el emisor para verificar el PIN sin almacenar el PIN en su base de datos (ya que la pista magnética es enviar al emisor). Pero usar solo un PVV para verificar el PIN significa que el titular de la tarjeta no puede cambiar el PIN, por lo que la mayoría de los bancos tienen alguna función cifrada o truncada de un PIN almacenado en sus bases de datos para permitirles verificarlo.
- La tarjeta con chip tiene una memoria segura en el chip que es muy difícil y costosa para ser leída por cualquier atacante, y el chip en sí mismo puede almacenar de manera segura el PIN original dentro de la memoria segura, junto con las propias claves secretas de la tarjeta programadas allí de forma segura por el emisor durante la personalización de la tarjeta. Más tarde, durante la transacción, el chip puede verificar si el PIN que el terminal ha transferido desde el teclado donde lo escribió al chip, fue correcto o no, y proporcionar una firma criptográfica del resultado que se envía al emisor. El emisor puede entonces estar seguro de si su tarjeta ha aprobado una transacción o no.
- El terminal y la tarjeta con chip pueden hablar (y enviar el PIN ingresado a la tarjeta) a través de un canal encriptado, en caso de que un atacante intente espiarlo. La tarjeta tiene un par de claves RSA firmadas por la clave del emisor de la tarjeta, que a su vez está firmada por el esquema de pago. Lo mismo ocurre con el terminal: el par de claves del terminal está firmado por la clave del adquiriente, que está firmado por el esquema de pago.
- El certificado de una transacción, llamado criptograma, es un MAC basado en 3DES de los datos de la transacción (incluido el resultado de la verificación del PIN realizada por el chip), la tarjeta tiene su clave en la memoria y el emisor tiene esa clave (de hecho una clave maestra de la cual se deriva la clave de la tarjeta) encriptada en su base de datos para verificar el criptograma más adelante.
- El chip también puede firmar un hash SHA-1 de los datos de la transacción utilizando su clave RSA para generar un TC (certificado de transacción) en algunos casos, pero eso está menos relacionado con la pregunta original.
Toda la criptografía es manejada por los cuadros HSM que tienen el emisor, el adquiriente y los esquemas de pago, por lo que el antiguo y roto algoritmo DES definitivamente no es el eslabón más débil de la cadena.