El certificado DAT es una especificación para controlar los permisos de emisión de DAT (Data Authentication Token) y gestionar la información de algoritmos de firma y cifrado, así como las claves (Key) del token.
Cada certificado tiene un ID único (CID) y gestiona de forma segura el ciclo de vida del token al imponer el período durante el cual se puede emitir el DAT y el período de validez predeterminado (TTL) de los tokens generados.
CID : Hex (uint64)
CID del DAT para determinar qué certificado se utilizará durante la verificación.Hora de inicio de emisión del DAT : uint64 (Unix Time)
Duración de emisión del DAT : uint64 (Seconds)
Hora de inicio de emisión del DAT, no se podrán emitir nuevos DAT con este certificado.DAT TTL (Tiempo de vida) : uint64 (Seconds)
expire se establece sumando dat-ttl al tiempo de emisión (tiempo actual).Algoritmo de firma : String / Enum
signature del DAT.Algoritmo de cifrado : String / Enum
secure del DAT.Clave de firma : Base64Url (Binary)
Clave de cifrado : Base64Url (Binary)
secure.Lista de algoritmos de firma para la prevención de falsificación o alteración del DAT.
Se admiten métodos de clave simétrica y clave asimétrica.
ECDSA-P256
ECDSA-P384
ECDSA-P521
HMAC-SHA256-MFS
HMAC-SHA384-MFS
HMAC-SHA512-MFS
MFS (Maximum Fixed Secret): Método que utiliza una clave secreta de tamaño fijo con el mismo número de bits que el tamaño de salida (Output) del algoritmo de hash.
Lista de algoritmos de cifrado autenticado (Authenticated Encryption) para proteger los datos confidenciales (secure campo) dentro del DAT.
El resultado del cifrado tiene una forma combinada de IV y datos cifrados para evitar el descifrado y los ataques de reutilización (Replay Attack).
IV-AES128-GCM
IV-AES256-GCM
Incorporación de IV (Initialization Vector): Para prevenir los ataques de reutilización (Replay Attack), un NONCE (IV) único de 96 bits generado en cada operación de cifrado se combina como prefijo (Prefix) al inicio de los datos resultantes del cifrado y queda incluido en el binario. Durante el descifrado, los primeros 96 bits se separan como IV para realizar el descifrado.