Pergunta

Gostaria de saber se também posso usar uma chave secreta compartilhada estabelecida entre dois clientes como a chave HMAC.

Vi que há um problema quando é usado como um CBC-MAC, mas não encontrei nenhuma evidência de que seja uma prática ruim para o HMACS.

Obrigado, Vladimir

Foi útil?

Solução

Eu acredito que está atualmente na categoria de "parece provavelmente ok, mas por que correr o risco?".

A melhor prática é fazer com que cada lado gere duas novas chaves a partir da chave secreta compartilhada:

encryption-key := HMAC(shared-key, "Encryption Nonce")
hmac-key := HMAC(shared-key, "Authenticity Nonce")

Outras dicas

Como a CAF iludiu. Uma das maneiras corretas de fazer isso é hash a tecla de secreção compartilhada com alguns dados extras.

Por exemplo:

enc-key = HASH(shared-key || 1)
hmac-key = HASH(share-key || 2)

Isso tem o benefício de não precisar transferir 2 inconces extras, além de ser fácil de implementar.

Eu não usaria a mesma chave em diferentes funções (ENC + HMAC). Isso está pedindo problemas e uma má ideia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top