Usando sal o secreto para Hmac

1

Estoy trabajando en una API web. Vamos a utilizar Hmac256 para el hashing de firmas. De lo que puedo recopilar, el secreto es una clave que se usa para inicializar el algoritmo hash (es decir, para generar un número aleatorio). La sal se añade al contenido, para que sea más difícil de descifrar.

Algunos clientes utilizarán la API y los datos no son muy confidenciales (por ahora). Haremos filtrado de IP en nuestro servidor.

¿Cuál es la mejor práctica, usar una sal, un secreto o ambos? Creo que es algo incómodo para el cliente tener ambos.

    
pregunta ThunderDev 24.11.2014 - 11:26
fuente

1 respuesta

0

Las sales y los secretos tienen diferentes propósitos cuando estás creando un MAC. El secreto (la clave) se usa para evitar falsificaciones existenciales, o en otras palabras, para evitar que un atacante cree un MAC igualmente válido en un mensaje manipulado. Sin la clave, no tiene integridad y esencialmente ha convertido el MAC en un hash. Entonces, necesitas la llave.

Una sal, por otro lado, solo es útil con una MAC si está creando firmas para mensajes idénticos y necesita evitar la fuga de información. Si creas firmas para el mismo mensaje dos veces, utilizando la misma clave, entonces las MAC serán idénticas por diseño. Si no quieres que el atacante pueda discernir si los mensajes que se están firmando son idénticos o no, entonces necesitas un salt. Si los mensajes no son idénticos, como sería el caso de cifrar-luego-MAC, por ejemplo, donde podría confiar en un vector de inicialización para hacer que el texto cifrado para el que está creando el MAC sea único, entonces no necesita una sal .

    
respondido por el Xander 24.11.2014 - 15:29
fuente

Lea otras preguntas en las etiquetas