italia/spid-django

Assertions not signed

peppelinux opened this issue · 4 comments

Nel seguente esempio di file di configurazione avanzata:
https://github.com/italia/spid-django/blob/master/example/saml/advanced_settings.json

Leggo di alcuni parametri che potrebbero animare un utile confronto in ambito della sicurezza SAML2, nello specifico:

        "authnRequestsSigned": true,
        "logoutRequestSigned": false,
        "logoutResponseSigned": false,
        "signMetadata": false,
        "wantMessagesSigned": false,
        "wantAssertionsSigned": false,
        "wantAssertionsEncrypted": false,

Di fatto authnRequestsSigned è l'unico a richiedere la firma, immagino passando l'authnrequest via HTTP-POST se non erro, mentre i restanti sono tutti in chiaro, specie

        "wantAssertionsSigned": false,
        "wantAssertionsEncrypted": false,

Qui la situazione potrebbe diventare delicata in caso di reply attack o altre tecniche evasive create ad hoc con SAML raider (Burp extension) o semplicemente con un custom browser programmato per fare SAML2 client.

Secondo le regole tecniche SPID, tutti i messaggi di protocollo SAML devono essere firmati (e non cifrati). In caso contrario verranno semplicemente rifiutati dagli Identity Provider. Se questa libreria non è conforme, non funzionerà e quindi va corretta. :)

@peppelinux Ciao,
sì, hai ragione, il progettino di esempio andrebbe fixato!
Tieni comunque presente che questo progetto è in standby perchè necessita di un po' di refactoring (vedi appunto l'altra issue)

Ciao @fmarco,
Al momento devo ancora federarmi su SPID, se sai consigliarmi una piattaforma di test, tipo testshib, posso fare e testare un esempio con pySAML2 e condividerlo. Sull'altra issue ho pubblicato il mio esempio con pySAML2, rimaniamo sul pezzo!

spid-testenv2