Qual è lo scopo della chiave segreta in ViewState ASP.net di MAC?

3

In base a quanto ho capito dal metodo ViewState in ASP.net , quando il server genera ViewState con MAC attivato, lo invierà al client con MAC calcolato da ViewState messaggio alla fine di ViewState . Quindi, il client effettuerà il postback di questo ViewState con MAC . Il server controllerà il MAC che ha ricevuto con MAC che ha memorizzato quando lo ha inviato per la prima volta. Se corrisponde, quindi l'integrità è conforme.

Tuttavia, ho letto questo articolo: link

Spiega che al messaggio viene aggiunta anche una chiave segreta e che il MAC viene calcolato dal messaggio e dalla chiave segreta

Non vedo alcuna ragione per avere una chiave segreta. Puoi quindi spiegarmi perché è usato?

    
posta Duke Nukem 29.09.2016 - 13:38
fonte

1 risposta

1

Come hai affermato, lo scopo del MAC è garantire l'integrità dei dati del viewstate ... Assicurarsi che non sia stato manipolato dal client. Se non ci fossero chiavi segrete, questo non sarebbe possibile. Se, per esempio, una funzione di hash senza chiave (prendi per esempio SHA-256, per esempio) chiunque sarebbe in grado di calcolare l'hash. Questo è molto utile quando vuoi qualcuno per essere in grado di calcolare l'hash, per esempio, per verificare l'integrità di un file scaricato, ma mortale se vuoi identificare se un client ha modificato alcuni dati da " chiunque "include" il client "e quindi un client potrebbe semplicemente modificare il viewstate, calcolare il nuovo hash, inviarli entrambi al server e il server otterrà un viewstate modificato con un hash che corrisponde perfettamente.

La chiave segreta impedisce questo. La chiave garantisce che solo il server, il detentore della chiave segreta, sarà in grado di calcolare correttamente il MAC per ogni dato stato di visualizzazione. Quindi, anche se l'attaccante modifica lo stato di visualizzazione, non sarà in grado di calcolare correttamente un nuovo MAC e la convalida fallirà, lasciando che il server sappia che qualcosa è sbagliato e la richiesta dovrebbe essere rifiutata.

    
risposta data 29.09.2016 - 15:34
fonte

Leggi altre domande sui tag