¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¿Por qué la longitud máxima de la clave HMAC-SHA1 es de 81 caracteres en ABAP?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 21 Vistas
0
Cargando...

No estoy seguro si estoy en el foro correcto...

Para firmar un mensaje para una aplicación específica con un hash HMAC-SHA1 necesito una clave de 83 caracteres.

Mi problema: el módulo de función 'SET_HMAC_KEY' arroja la excepción "param_length_error". Después de probar con varias longitudes de clave, descubrí que la longitud máxima válida es 81. ¿Hay alguna razón para esto?

Con bibliotecas de terceros (por ejemplo, Python y JavaScript) funcionan claves más largas.

Código:

 
CALL FUNCTION 'SET_HMAC_KEY'
  EXPORTING
    generate_random_key         = ' '
    alg                         = 'SHA1'
    keycstr                     = 'cB1phTHISISATESTVuZMDmWCz1CEMy82iBC3HgFLpE&7857T...YFqV93gRJQ'
    client_independent          = ' '
  EXCEPTIONS
    unknown_alg                 = 1
    param_length_error          = 2
    internal_error              = 3
    param_missing               = 4
    malloc_error                = 5
    abap_caller_error           = 6
    base64_error                = 7
    calc_hmac_error             = 8
    rsec_record_access_denied   = 9
    rsec_secstore_access_denied = 10
    rsec_error                  = 11
    rng_error                   = 12
    record_number_error         = 13
    OTHERS                      = 14.

Saludos, Uwe

Editado por: Julius Bussche el 5 de agosto de 2010 a las 10:19 PM

Truncé aún más la clave porque en una etiqueta de codificación afecta el formato cuando es demasiado larga.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

No tengo ni idea sobre este tema, esperaremos a que algunos expertos respondan.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Franklin,

Descripción del foro:

...colaboración segura, como la seguridad de mensajes (cifrado) y gestión de confianza...

Saludos, Uwe

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

No sé si todos estarían de acuerdo en esto:

Parece ser una pregunta de desarrollo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola,

Ese número 81 me parece completamente aleatorio. 81 caracteres (bytes) son 648 bits. Aquí hay una cita de [RFC 2104 - HMAC: Keyed-Hashing for Message Authentication|http://www.faqs.org/rfcs/rfc2104.html].

La clave para HMAC puede ser de cualquier longitud (claves más largas que B bytes son primero hasheadas usando H). Sin embargo, menos de L bytes es fuertemente desaconsejado ya que disminuiría la fuerza de seguridad de la función. Claves más largas que L bytes son aceptables pero la longitud extra no aumentaría significativamente la fuerza de la función. (Una clave más larga puede ser aconsejable si se considera débil la aleatoriedad de la clave).

Por lo tanto, no hay límite para el tamaño de la clave, pero cualquier clave más larga que el tamaño de bloque (B bytes) de la función hash se comprimirá a B bytes. La clave debe ser más larga que el tamaño de salida de la función hash (L bytes), que para SHA-1 es de 160 bits = 20 bytes. El estado interno de SHA-1 es de 512 bits = 64 bytes.

Por lo tanto, sugiero usar la función SHA-1 para reducir cualquier clave más larga que 64 bytes a 64 bytes y luego pasar una nueva clave a SET_HMAC_KEY.

Saludos

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?