First
note that the Request, Response and Assertion may all be strongly Authenticated
and Integrity Protected with a signature. In fact Integrity protection is
crucial for the SSO Profiles, otherwise anyone could present any Assertion they
wanted.
If you
look at the contents of the Request and Response, aside from the Assertion, the
other fields are generally known or can easily be guessed from simply observing
the message flows, the timer of day, etc. Further the "intermediary agent" is in
fact the user agent, i.e. Browser. It is hard to see how there could be a threat
of the user knowing that he will shortly be asked to Authenticate or
the request was successful or unsuccessful.
No XML
level encryption was provided in SAML 1.0 or 1.1. (Wrapped keys could be
transmitted, but that simply referenced other specs.) In most cases, all the
information including attribute names and values was well known to everyone. The
key security issue was whether they were being asserted by a trusted
authority.
For
SAML 2.0 three usecases for encryption were identified: 1) encrypt the
entire Assertion, 2) encrypt the NameID and 3) encrypt Attributes. The primary
motive was privacy protection. One goal was to include the encrypted data in the
schema, so that Assertions with encrypted components would be Schema
valid.
Of
course you can always encrypt any XML document as specified by XML Encryption,
if you don't care about Schema validity.
Hal
-----Original Message-----
From: Yang, Gang USA CTR (US)
[mailto:]
Sent: Friday, October 28, 2011 12:54
PM
To: Hal Lockhart
Subject: RE: [saml-dev] encrypting
saml protocol messages
Thanks to all replies. I don't have a special use case, except trying to
implement the Web SSO profile. I understand that WS-Security can be used to
protect SAML messages in SOAP bindings. But if HTTP-Redirect or HTTP-POST
bindings are used, then SAML messages are in the clear to the intermediary
agent even if TLS is used for hub-to-hub protection. But as you pointed out,
what need to be protected is in the Assertion and does have encryption define.
Isn't there any thing that is worth protecting in the rest of the SAML
messages besides the Assertion?
Any way, just curious why encryption is singled out for SAML messages.
Thanks,
Gang
From: Hal Lockhart []
Sent:
Thursday, October 27, 2011 9:57 AM
To: Yang, Gang USA CTR (US);
Subject: RE: [saml-dev] encrypting
saml protocol messages
The
SAML request/response protocol is carried over SOAP which means you can use
either WS-Security or TLS to encrypt the message in transit (and in the case
of WS-Security, keep the encrypted message around if you wish.) When
Assertions are returned over HTTP, TLS may be used. The SAML TC did not see a
need to difine yet another way to do the same thing. The assumption was that
if you wish to persist data which needs to be confidential, that data will be
contained in the Assertion.
What
is your use case?
Hal
-----Original Message-----
From: Yang, Gang USA CTR (US)
[mailto:]
Sent: Monday, October 24, 2011
3:09 PM
To:
Subject:
[saml-dev] encrypting saml protocol messages
Hi,
I'm trying to implement Web
SSO profile and wondering why SAML 2.0 did not define the encryption
of SAML procotol messages (request/response), but only encryption of the
SAML assertion and some sub elements. Can any one shed some light on
this?
Thanks,
Gang