¿Cuál es el propósito de la clave secreta en ViewState ASP.net de MAC?

3

De acuerdo con lo que entiendo del método ViewState en ASP.net , cuando el servidor genera el ViewState con MAC habilitado, lo enviará al cliente con el MAC calculado a partir del% co_de Mensaje de% al final del ViewState . Luego, el cliente devolverá este ViewState con el ViewState . El servidor verificará el MAC que ha recibido con el MAC que ha almacenado cuando lo envió por primera vez. Si coincide, entonces la integridad es conforme.

Sin embargo, leí este artículo: enlace

Explica que también se agrega una clave secreta al mensaje y que MAC se calcula a partir del mensaje y la clave secreta

No veo ninguna razón para tener una clave secreta. ¿Puedes explicarme entonces por qué se usa?

    
pregunta Duke Nukem 29.09.2016 - 13:38
fuente

1 respuesta

1

Como dijo, el propósito del MAC es garantizar la integridad de los datos del estado de visualización ... La garantía de que no ha sido manipulada por el cliente. Si no hubiera una clave secreta, esto no sería posible. Si, por ejemplo, una función de hash sin clave (por ejemplo, el SHA-256, cualquiera), cualquiera podría calcular el hash. Esto es muy valioso cuando desea que cualquiera pueda calcular el hash, por ejemplo, para verificar la integridad de un archivo descargado, pero es mortal si desea identificar si un cliente ha modificado algunos datos desde " cualquiera "incluye" el cliente "y, por lo tanto, un cliente podría simplemente modificar el estado de visualización, calcular el nuevo hash, enviarlos de nuevo al servidor y el servidor obtendrá un estado de vista modificado con un hash que coincida perfectamente.

La clave secreta evita esto. La clave garantiza que solo el servidor, el titular de la clave secreta, podrá calcular correctamente el MAC para cualquier estado de visualización dado. Por lo tanto, incluso si el atacante modifica el estado de visualización, no podrá computar correctamente un nuevo MAC, y la validación fallará, informando al servidor que algo está mal y la solicitud debe ser rechazada.

    
respondido por el Xander 29.09.2016 - 15:34
fuente

Lea otras preguntas en las etiquetas