Nel corso degli anni mi sono imbattuto in questo scenario più di una volta. Hai un sacco di dati relativi all'utente che vuoi inviare da un'applicazione a un'altra. La seconda applicazione dovrebbe "fidarsi" di questo "token" e utilizzare i dati al suo interno. Un timestamp è incluso nel token per prevenire un attacco di furto/riutilizzo. Per qualsiasi motivo (non preoccupiamoci qui) è stata scelta una soluzione personalizzata piuttosto che uno standard del settore come SAML.è crittografato ma non firmato: debolezza?
Per me sembra che la firma digitale dei dati sia ciò che si desidera qui. Se i dati devono essere segreti, puoi anche crittografarli.
Ma quello che vedo molto è che gli sviluppatori useranno la crittografia simmetrica, ad es. AES. Stanno partendo dal presupposto che oltre a rendere "segreti" i dati, la crittografia fornisce anche 1) integrità del messaggio e 2) fiducia (autenticazione della fonte).
Ho ragione di sospettare che ci sia una debolezza intrinseca qui? Al valore nominale sembra funzionare, se la chiave simmetrica è gestita correttamente. Mancando quella chiave, certamente non saprei come modificare un token crittografato, o lanciare una specie di attacco crittografico dopo aver intercettato diversi token. Ma un attaccante più sofisticato sarebbe in grado di sfruttare qualcosa qui?
Ben fatto! Inoltre, il punto di utilizzo di un MAC invece di una firma digitale (protezione dell'integrità tramite crittografia simmetrica anziché criptografia a chiave pubblica) è eccellente: nessun punto su tutto ciò che riguarda l'RSA/DSA e simili, poiché il sistema è l'unico uno che ha bisogno di verificarlo. – AviD
Vale la pena leggere l'articolo a piedi. –