italia / spid-dotnet-sdk

SPID authentication library for .NET
BSD 3-Clause "New" or "Revised" License
28 stars 15 forks source link

VerifySignature non corretto per Response in XmlSigningHelper.cs #29

Open MatizMazzoni opened 4 years ago

MatizMazzoni commented 4 years ago

Al momento la funzione VerifySignature() in XmlSigningHelper.cs verifica che ci sia almeno un elemento "ds:Signature" (oppure ns2:Signature oppure Signature).

Come indicato nelle regole tecniche (1.4.2 Response), e confermato dalla schermata di https://idptest.spid.gov.it/login fra le Opzioni avanzate, la firma dell'Assertion è obbligatoria, mentre la firma della Response è facoltativa. Nella Response ci possono quindi essere 2 "ds:Signature" e se si genera una Response con la firma solo sulla Response e non sull'Assertion il controllo di VerifySignature() (averne almeno una) viene superato, nonostante il vincolo di presenza della firma sull'Assertion non sia rispettato.

p.s. Sempre in base a queste regole tecniche trovo sbagliato che nel https://www.spid.gov.it/assets/download/SPID_QAD.pdf (noto ora che hanno rilasciato giusto ieri una nuova versione) il test numero 3.2 preveda un errore in caso di "Response non firmata".