OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wss message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [wss] New Issue: Encrypted Response Public Key


Another thing to keep in mind is that this usage of the Usage attribute
is message-specific semantics that will need to be repeated in the
message body.  Depending on how much is repeated in the message body and
how the reference is made, signing the message body may be sufficient.

Perhaps the key for encryption should even be put in the message body
*instead of* the security header.  The reason for this is that the key
for encryption has nothing to do with the security-specific processing
of the message and everything to do with the message semantics of what
the application will do once it receives such a message.  When the
response is generated, *then* the encryption key will be in the security
header of the response.

Or, do we wish to require that the application has no knowledge of the
encryption of the response and that the response automatically gets
encrypted by some security layer?  In this case, perhaps this is not
wsse but some other header or something to do with policy as Tim points
out.  (Though, I don't agree with him that including the token in the
security header is "consistent" with handling this in the policy domain.
It seems to me it should be in only one place: either the message, if it
is application-specific, or the policy, if it is an
application-independent automatic function.  In any event, it does not
belong in the security header.)

&Thomas.


-----Original Message-----
From: Hal Lockhart [mailto:hlockhar@bea.com] 
Sent: Thursday, June 05, 2003 3:23 PM
To: wss@lists.oasis-open.org
Subject: [wss] New Issue: Encrypted Response Public Key

Because Interop Scenario #3 uses two key pairs instead of four key
pairs, it
avoids a security threat in a way that was not apparent to me until a
recent
internal review. The basic issue is: when the responder encrypts the
response, how does it determine that the public key it uses is that of
the
proper party and not some attacker.

Suppose each party has two key pairs, one for signatures and one for
encryption. Let us assume the requester provides a certificate
containing
the public key to be used for encrypting the response. Checking to see
if
the certificate is valid is insufficient (and probably unnecessary).
That
would not prevent an attacker from substituting his or her own
(perfectly
valid) certificate.

Interop scenario #3 does not have this problem, because the same key is
used
to sign the request, thus demonstrating that the requester knows the
corresponding private key.

There is more than one way to solve this problem. One possible way would
be
to require that the SubjectName in the encryption certificate is the
same as
the one in the signature certificate. I do not think this is a good
approach. For one thing there are a least a dozen reasons that even if
both
certs were issued to the same system entity (person), the SubjectNames
won't
match. Second it doesn't support the case where the requester and
recipient
are distinct.

A better solution would be to require that the encryption certificate
(or at
least the public key) fall under the signature of the request. This
proves
that the key came from the requester, which is what we are really trying
to
determine. This might be a good time to use /Usage={receiver}.

Finally, note that one implication of this is without a signature, we
don't
get much in the way of security guarantees, even if we use encryption.
But I
guess we knew that.

Hal


You may leave a Technical Committee at any time by visiting
http://www.oasis-open.org/apps/org/workgroup/wss/members/leave_workgroup
.php



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]