Metadata requireSignedMetadata=false Behavior

Rod Widdowson rdw at steadingsoftware.com
Sun Jun 7 12:22:33 EDT 2015


The first thing to say is that this is exactly the same as the V2 setup, just exbedded from the RelyingParty.xml file.  There is just a bunch of semantic sugar to make things easier by bringing the key information closer to the filter (whereas in V2 you put it into a TrustEngine which was remote in the file)

> A) What happens if there's a public key but signed metadata is not required

Then it will do the signature test and fail if it's wrong.  This is a chocolate teapot configuration option, but it was here in V2 so it's there in V3.

> B) What the value is in specifying a signing key that is optional, since accepting
> unsigned metadata despite having a validation key seems to defeat the purpose
> of signing

Yup.  Chocolate teapot.  I think that that was even the default for one V2 release.

> C) Why you wouldn't make requireSignedMetadata=true implicit behavior if
> there's a key, and requireSignedMetadata=false implicit behavior if there is no
> key, which would seem to obviate the need for requireSignedMetadata as a
> flag.

My view is that the option should *never* be used.  However I also took the view that in V3 we would document *ALL* configuration options rather than saying that the wiki was just outline docs and the definitive statement was to be found in the schema which were hidden in a jar file (in the basement behind a sign saying beware of the leopard).

The counter to this is that the documentation is now a statement of fact with some words to help deployers.  The aim is (and always has been) to find someone to turn this into useful documentation but despite a large number of attempts over the last 3 years it has come to naught (so far)

> I also wonder why the note implies that secure interoperation 
> is impossible without metadata signature.  I would think that TLS 
> has been used in some environments, for instance.  Is that 
> intended as a warning to people who are new to the technology?

Yes.  If you know enough to see through the statement then you stand a reasonably good chance of deploying TLS in a secure manner - the configuration for which is far more complex involved separate Spring Bean files and custom HTTP Clients.   I know that one federation has documentation to allow this to be done and I'm sure that they target their documentation as superseding ours.

I think that it's fair to say that there is significant concern amongst the developers at the "TLS is magic-secure-pixie-dust" mindset which is inferred by trusting the CA bundle distributed in the JVM.  

HTH - and please keep up the feedback, it is our best chance to improve things. 

/R



More information about the users mailing list