¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Por que o comprimento máximo da chave HMAC-SHA1 é de 81 caracteres em ABAP?

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

Não tenho certeza se estou no fórum correto...

Para assinar uma mensagem para um aplicativo específico com um hash HMAC-SHA1, eu preciso de uma chave de 83 caracteres.

Meu problema: o módulo de função 'SET_HMAC_KEY' lança a exceção "param_length_error". Depois de testar com várias comprimentos de chave, descobri que o comprimento máximo válido é 81. Existe alguma razão para isso?

Com bibliotecas de terceiros (por exemplo, Python e JavaScript), chaves mais longas funcionam.

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.

Saudações, Uwe

Editado por: Julius Bussche em 5 de agosto de 2010 às 22:19

Eu cortei ainda mais a chave porque em uma tag de codificação afeta o formato quando é muito longa.

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

4 Respuestas

0
Cargando...

Não tenho ideia sobre este assunto, vamos aguardar que alguns especialistas respondam.

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

Olá Franklin,

Descrição do fórum:

...colaboração segura, como a segurança de mensagens (cifrado) e gestão de confiança...

Saudações, Uwe

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

Não sei se todos concordariam com isso:

Parece ser uma questão de desenvolvimento.

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

Olá,

Esse número 81 me parece completamente aleatório. 81 caracteres (bytes) são 648 bits. Aqui está uma cita de [RFC 2104 - HMAC: Keyed-Hashing for Message Authentication|http://www.faqs.org/rfcs/rfc2104.html].

A chave para HMAC pode ter qualquer comprimento (chaves mais longas que B bytes são primeiramente hasheadas usando H). No entanto, menos que L bytes são fortemente desencorajados, pois diminuiriam a força de segurança da função. Chaves mais longas que L bytes são aceitáveis, mas o comprimento extra não aumentaria significativamente a força da função. (Uma chave mais longa pode ser aconselhável se a aleatoriedade da chave for considerada fraca).

Portanto, não há limite para o tamanho da chave, mas qualquer chave mais longa que o tamanho de bloco (B bytes) da função hash será comprimida para B bytes. A chave deve ser mais longa que o tamanho de saída da função hash (L bytes), que para SHA-1 é de 160 bits = 20 bytes. O estado interno do SHA-1 é de 512 bits = 64 bytes.

Portanto, sugiro usar a função SHA-1 para reduzir qualquer chave mais longa que 64 bytes para 64 bytes e então passar uma nova chave para SET_HMAC_KEY.

Saudações

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?