Cifra un corpo invece di firmarlo (con JWT per esempio)

1

Quale sarebbe il problema se criptassi "claims / body / data" e lo invio all'utente, quindi quando l'utente mi invia questo token crittografato, lo decrypt lo considero attendibile e agisco sui dati in (Se è decifrabile usando una chiave segreta). Quindi fondamentalmente la stessa idea di JWT solo non invierò l'intestazione e la firma, e il corpo sarebbe crittografato.

C'è una vulnerabilità nota / implicita con questo?

    
posta Mehdi 24.04.2018 - 17:22
fonte

1 risposta

3

TL; DR : non è raccomandato. Se non si desidera utilizzare la crittografia a chiave pubblica, è possibile utilizzare HMAC.

L'uso della crittografia potrebbe funzionare in una certa misura, ma avresti davvero bisogno di sapere cosa stai facendo o spero di essere fortunato.

Firma / MAC protegge l'intero messaggio dalla modifica. La crittografia non impedisce il cambiamento, l'unica cosa che può impedire è che l'hacker sappia, cosa sta cambiando.

Ora, se il formato è noto, ad esempio sa dove si trova l'ID utente (ed è fortunato), può cambiarlo su un ID diverso (casuale) alla cieca. Ora questo può o non può essere utile per l'attaccante ma porta molti problemi.

Inoltre, a seconda dell'algoritmo di crittografia, del padding (se presente) e di altri fattori, potresti dover affrontare ulteriori problemi.

Ad esempio, se non ci sono IV nello schema, un attaccante può prendere parte di un messaggio e parte di un altro e mescolarli insieme. Diciamo che intercetto due messaggi. Uno ti rende amministratore e uno mi fa utente. Potrei essere in grado di prendere il nome dal mio messaggio e il grado (amministratore) dal tuo massaggio e diventare amministratore.

Inoltre, come sottolineato da AndrolGenhald, con la modalità CTR (AES o qualsiasi altro codice a blocchi), l'attaccante può cambiare completamente il messaggio crittografato finché è lungo, poiché ha la stessa lunghezza. Ciò potrebbe anche essere possibile con modalità e / o cifrari meno conosciuti.

PS: AES in modalità GCM può essere utilizzato sia per crittografare che per autenticare i dati, quindi utilizzarlo previene tutti i problemi sopra menzionati ed è preferibile, se è richiesta la riservatezza dei dati. Tuttavia, è ancora necessario inviare la IV e il MAC con il corpo.

    
risposta data 24.04.2018 - 17:42
fonte

Leggi altre domande sui tag