DUKPT: ¿cómo verifica el receptor el contador de transacciones?

9

Tengo una pregunta con respecto a este documento:

ANSI X9.24, Administración de claves simétricas de servicios financieros minoristas Parte 1: Uso de técnicas simétricas

En el capítulo "Método: DUKPT (Clave única derivada por transacción)", página 41, se indica que el receptor debe verificar que el contador de transacciones del originador en el SMID haya aumentado.

Otras fuentes dicen que los HSM (el receptor) no almacenan ningún estado aparte de las claves de derivación de base: las claves de derivación de base se pueden consultar mediante el identificador de conjunto de claves (contenido en el SMID). Por lo tanto, el receptor (HSM) puede descifrar sin mantener ningún estado del originador. Lo entiendo muy bien.

Pero al verificar el contador de transacciones, no puedo imaginar otra forma que no sea rastrear el contador de transacciones por número de serie clave (KSN) del originador (una tabla o mapa), es decir, hay algún estado en el HSM guardado , pero no se debe mantener ningún estado.

Aunque el documento contiene un pseudo código que explica la implementación de los métodos descritos en el documento, no hay pistas sobre cómo se verifica el contador de transacciones.

¿Cómo se implementa esto realmente o cuál es la idea básica de cómo se logra esto sin hacer un seguimiento del estado?

(esta pregunta se publicó en stackoverflow, no se respondió allí, pero se recomienda hacerla aquí)

    
pregunta gerneGross 05.07.2011 - 16:04
fuente

3 respuestas

5

Probablemente llego un poco tarde con mi respuesta, pero tu pregunta inicial es muy clara para mí y sé exactamente lo que quieres decir.

El host receptor normalmente almacena el KSN para realizar un seguimiento del contador de transacciones. Por lo tanto, para cada transacción, el host verifica que el dispositivo de envío no esté utilizando una clave utilizada previamente al verificar que el contador de transacciones en el KSN sea mayor que cuando el host manejó la transacción anterior. Sin embargo, para algunos tipos de transacciones, el host puede tener la lógica de que acepta el mismo conjunto de claves DUKPT que se utilizarán para más de un par de solicitud / respuesta. P.ej. para inversiones técnicas.

Brg

Arne

    
respondido por el Arne 16.11.2012 - 13:03
fuente
4

No estoy seguro de si entiendo su pregunta correctamente, así que primero déjeme explicarle mi comprensión de la pregunta y luego la respuesta.

Básicamente, está preguntando cómo es posible que el cuadro HSM receptor no mantenga un estado, pero puede validar que el PED (dispositivo de entrada de pin) está utilizando la clave de secuencia correcta derivada del BDK.

Si esto es correcto, entonces la respuesta es la siguiente: El BDK se utiliza para generar claves únicas que son las claves reales utilizadas para el cifrado. El contador se envía como parte del KSN para que el HSM receptor pueda calcular la clave correcta utilizada en función del contador enviado por el PED y la primera clave (que se almacena en el HSM y se deriva del BDK). Puedes verlo como una cadena.

Considere la función s (clave) que le brinda la siguiente clave (sucesora) que se usará después de clave .

Ambas partes tienen conocimiento de la primera clave k1 Ahora el PED envía el contador de transacciones t al HSM. y el hsm puede calcular la clave utilizada aplicando la función s t repetidamente con k1 como entrada inicial. Dependiendo de la implementación, la clave se puede almacenar para evitar realizar cálculos superfluos.

    
respondido por el Henri 05.07.2011 - 19:35
fuente
1

Normalmente, un registro se mantiene en una tabla de datos en la base de datos del host de la aplicación para cada PED y en el registro se establece un campo para realizar un seguimiento del último contador recibido desde el PED, si el siguiente valor del contador es menor que el valor de último valor de contador en la base de datos, entonces se puede tomar la acción apropiada. El contador de transacciones de DUKPT está en claro, por lo que no es necesario que HSM verifique esto. Solo la aplicación del host requiere una lógica para verificar el contador de transacciones

    
respondido por el user27809 01.07.2013 - 09:03
fuente

Lea otras preguntas en las etiquetas