Tengo varias preguntas con respecto a los números de serie clave (KSN) en DUKPT :
- Los KSN tienen una longitud de 8 a 10 bytes. Las implementaciones más antiguas tienen 8 bytes, mientras que las más nuevas tienen 10 bytes. ¿Me arriesgo a ser incompatible con algún sistema antiguo si creo KSN de 10 bytes?
- Los KSN tienen 3 componentes: un contador de transacciones de 21 bits y los bits restantes son para la identificación del conjunto de claves y la identificación del Módulo de seguridad resistente a la manipulación (TRSM). Para un KSN de 8 bytes, la convención típica es de 24 bits para la ID de conjunto de claves y 19 bits para la ID de TRSM. Esto significa alrededor de 16M Claves de derivación base (BDK) y dispositivos de 500K. Para mí esta asignación tiene sus pros y sus contras. Las desventajas son que nunca tendré 16M BDK y si el negocio tiene éxito, es muy posible tener > 500K dispositivos. La ventaja es que nos obliga a no utilizar el mismo BDK en más de 500K dispositivos, lo que limita la exposición de un BDK comprometido. Leí que hay flexibilidad en la cantidad de bits que se asignan a la ID del conjunto de claves frente a la ID de TRSM. Así que estoy tentado a intercambiar la asignación de modo que podamos tener hasta 500K BDK y 16M dispositivos. Pero también veo muchas implementaciones de código abierto de DUKPT que suponen una división de 24-19-21 bits. Esas implementaciones se romperían si no cumpliera con la convención. ¿Recomendaría que me limite a cumplir con lo convencional?
- ¿Existe alguna forma estándar para establecer los ID de conjunto de claves o cada entidad que posee un BDK tiene su propia convención? ¿Puedo asignar ID de conjunto de claves = 1 a mi primer BDK y luego incrementarlo en 1 para cada nuevo BDK? ¿O es esa estrategia demasiado ingenua?
- ¿Hay alguna forma estándar de configurar la ID de TRSM? ¿Puedo asignar TRSM ID = 1 para el primer dispositivo inyectado con un nuevo BDK y luego incrementarlo en 1 por cada nuevo BDK?