> The client generates the Symmetric Key and then encrypts it with the public 
> key of the STS. The request is signed + encrypted with the Symmetric Key. The
> STS decrypts the received symmetric key, and uses it to decrypt + verify the 
> signature on the request. So, you are correct in stating that the symmetric 
> key
> is not itself signed.

Thanks Colm. I appreciate your time. I plan on writing a detailed blog post 
covering the flow and logic behind what is happening between the WSC, WSP, and 
STS. Something others will hopefully find useful.

I see the soap message sent from client to sts contains an xenc:EncryptedKey 
element which I assume is the client generated symmetric key encrypted using 
the sts public key. Below this element there are two wsc:DerivedKeyToken 
elements, these are derived from the symmetric key (once the sts decrypts it) 
correct?

Following these derived key tokens there are two xenc:EncryptedData elements 
remaining in the header. I assume one of them is the 
SignedEncryptedSupportingTokens UsernameToken. What would the other be? The 
message signature encrypted (the sp:EncryptSignature element perhaps)?

Josh

From: Colm O hEigeartaigh [mailto:[email protected]]
Sent: Tuesday, 7 May 2013 1:30 a.m.
To: Josh Hill
Cc: [email protected]
Subject: Re: SymmetricBinding key exchange and signing

> Is there not some exchange of the generated key between the client and STS? 
> If the client signs (and encrypts) the request how does
> the STS have the generated key to verify signature and decrypt? My original 
> question suggested that it is exchanged by encrypting it
> with the STS public key but not sure how it is signed in this exchange. 
> Perhaps the exchange of the generated key isn't signed?
The client generates the Symmetric Key and then encrypts it with the public key 
of the STS. The request is signed + encrypted with the Symmetric Key. The STS 
decrypts the received symmetric key, and uses it to decrypt + verify the 
signature on the request. So, you are correct in stating that the symmetric key 
is not itself signed.
Colm.

On Sun, May 5, 2013 at 8:56 PM, Josh Hill <[email protected]> wrote:
Andrei,

Yes I have the IssuedToken policy on the WSP (not shown). The below policies 
are on my STS service. The question was in regards to connecting to the STS 
service to have a token issued (or renewed, or validated). I authenticate using 
the SignedEncryptedSupportingTokens UsernameToken. What I'm trying to figure 
out is how the key generated by the client for symmetric binding is exchanged 
with the STS service so that it can sign/verify encrypt/decrypt messages with 
the client.


Colm,

Is there not some exchange of the generated key between the client and STS? If 
the client signs (and encrypts) the request how does the STS have the generated 
key to verify signature and decrypt? My original question suggested that it is 
exchanged by encrypting it with the STS public key but not sure how it is 
signed in this exchange. Perhaps the exchange of the generated key isn't signed?

I appreciate your time.

Josh

>

Josh Hill
Senior Java Developer


sovereign finance and banking software

A Level 1, Building C, Millennium Centre, 602 Great South Road, Greenlane, 
Auckland, New Zealand
D 64 9 571 6812     P 64 9 571 6800   F 64 9 571 6899
E [email protected]   W http://www.finzsoft.com

Please note: This email contains information that is confidential and may be 
privileged. If you are not the intended recipient, you must not peruse, use, 
disseminate, distribute or copy this email or attachments. If you have received 
this in error, please notify Finzsoft Solutions (New Zealand) Ltd immediately 
by return email and delete this email. Thank you.


Josh Hill
Senior Java Developer


sovereign finance and banking software

A Level 1, Building C, Millennium Centre, 602 Great South Road, Greenlane, 
Auckland, New Zealand
D 64 9 571 6812     P 64 9 571 6800   F 64 9 571 6899
E [email protected]   W http://www.finzsoft.com

Please note: This email contains information that is confidential and may be 
privileged. If you are not the intended recipient, you must not peruse, use, 
disseminate, distribute or copy this email or attachments. If you have received 
this in error, please notify Finzsoft Solutions (New Zealand) Ltd immediately 
by return email and delete this email. Thank you.
-----Original Message-----


> From: Colm O hEigeartaigh [mailto:[email protected]]
> Sent: Saturday, 4 May 2013 12:36 a.m.
> To: [email protected]
> Subject: Re: SymmetricBinding key exchange and signing
>
> The Symmetric key that the client generates signs (and encrypts) the request
> (SOAP Body). There is no need for a signing certificate as you are using the
> Symmetric binding. Authentication is enforced via the UsernameToken
> SupportingToken.
>
> Colm.
>
>
> On Fri, May 3, 2013 at 4:25 AM, Josh Hill <[email protected]> wrote:
>
> >  My understanding is that the client generates the symmetric key (as
> > defined by the sp:ProtectionToken i.e. a sp:X509Token) and encrypts it
> > using the STS's public key (configured on client using
> > "ws-security.encryption.properties\username"). When sending this
> > encrypted key to the STS what is it signed with? I haven't set the
> > "ws-security.signature.properties\username" on my client but the input
> > policy on the STS requires the sp:Body be signed. ****
> >
> > ** **
> >
> > ...****
> >
> > <entry key="ws-security.sts.client">****
> >
> >                 <bean
> > class="org.apache.cxf.ws.security.trust.STSClient">*
> > ***
> >
> >                                 <constructor-arg ref="cxf" />****
> >
> >                                 <property name="wsdlLocation" value="
> > http://localhost:8080/STS?wsdl"; />****
> >
> >                                 <property name="serviceName" value="{
> > http://docs.oasis-open.org/ws-sx/ws-trust/200512/}SecurityTokenService
> > " />
> > ****
> >
> >                                 <property name="endpointName" value="{
> > http://docs.oasis-open.org/ws-sx/ws-trust/200512/}STS_Port"; />****
> >
> >                                 <property name="properties">****
> >
> >                                                 <map>****
> >
> >                                                                 <entry
> > key="ws-security.username" value="bob" />****
> >
> >                                                                 <entry
> > key="ws-security.callback-handler" value="ClientCallbackHandler"
> > />****
> >
> >                                                                 <entry
> > key="ws-security.encryption.properties"
> > value="clientKeystore.properties" />
> > ****
> >
> >                                                                 <entry
> > key="ws-security.encryption.username" value="stskey" />****
> >
> >                                                 </map>****
> >
> >                                 </property>****
> >
> >                 </bean>****
> >
> > </entry>****
> >
> > .****
> >
> > ** **
> >
> > <wsp:Policy wsu:Id="STS-UT-Policy">****
> >
> >                 <wsp:ExactlyOne>****
> >
> >                                 <wsp:All>****
> >
> >
> > <sp:SymmetricBinding>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:ProtectionToken>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:X509Token sp:IncludeToken="
> > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken
> > /Never
> > ">****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:RequireDerivedKeys/>****
> >
> >
> > <sp:RequireThumbprintReference/>****
> >
> >
> > <sp:WssX509V3Token10/>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:X509Token>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:ProtectionToken>****
> >
> >
> > <sp:AlgorithmSuite>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:Basic256/>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:AlgorithmSuite>****
> >
> >
> > <sp:Layout>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:Lax/>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:Layout>****
> >
> >
> > <sp:IncludeTimestamp/>****
> >
> >
> > <sp:EncryptSignature/>****
> >
> >
> > <sp:OnlySignEntireHeadersAndBody/>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:SymmetricBinding>****
> >
> >
> > <sp:SignedEncryptedSupportingTokens>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:UsernameToken sp:IncludeToken="
> > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken
> > /AlwaysToRecipient
> > ">****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:HashPassword/>****
> >
> >
> > <sp:WssUsernameToken10/>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:UsernameToken>****
> >
> >
> > </wsp:Policy>****
> >
> >
> > </sp:SignedEncryptedSupportingTokens>****
> >
> >                                                 <sp:Wss11>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:MustSupportRefKeyIdentifier/>****
> >
> >
> > <sp:MustSupportRefIssuerSerial/>****
> >
> >
> > <sp:MustSupportRefThumbprint/>****
> >
> >
> > <sp:MustSupportRefEncryptedKey/>****
> >
> >
> > </wsp:Policy>****
> >
> >                                                 </sp:Wss11>****
> >
> >                                                 <sp:Trust13>****
> >
> >
> > <wsp:Policy>****
> >
> >
> > <sp:MustSupportIssuedTokens/>****
> >
> >
> > <sp:RequireClientEntropy/>****
> >
> >
> > <sp:RequireServerEntropy/>****
> >
> >
> > </wsp:Policy>****
> >
> >                                                 </sp:Trust13>****
> >
> >                                 </wsp:All>****
> >
> >                 </wsp:ExactlyOne>****
> >
> > </wsp:Policy>****
> >
> > ** **
> >
> > <wsp:Policy wsu:Id="STS-Input-Policy">****
> >
> >                 <wsp:ExactlyOne>****
> >
> >                                 <wsp:All>****
> >
> >                                                 <sp:SignedParts>****
> >
> >
> > <sp:Body/>
> > ****
> >
> >                                                 </sp:SignedParts>****
> >
> >
> > <sp:EncryptedParts>****
> >
> >
> > <sp:Body/>
> > ****
> >
> >
> > </sp:EncryptedParts>****
> >
> >                                 </wsp:All>****
> >
> >                 </wsp:ExactlyOne>****
> >
> > </wsp:Policy>****
> >
> > ** **
> >
> > <wsp:Policy wsu:Id="STS-Output-Policy">****
> >
> >                 <wsp:ExactlyOne>****
> >
> >                                 <wsp:All>****
> >
> >                                                 <sp:SignedParts>****
> >
> >
> > <sp:Body/>
> > ****
> >
> >                                                 </sp:SignedParts>****
> >
> >
> > <sp:EncryptedParts>****
> >
> >
> > <sp:Body/>
> > ****
> >
> >
> > </sp:EncryptedParts>****
> >
> >                                 </wsp:All>****
> >
> >                 </wsp:ExactlyOne>****
> >
> > </wsp:Policy>****
> >
> >
> >
> > *Josh Hill*
> > Senior Java Developer
> >
> >
> >
> > [image: Finzsoft - Your Vision + Our Innovations]
> >
> >
> >
> > sovereign finance and banking software
> >
> >
> >
> > *A* Level 1, Building C, Millennium Centre, 602 Great South Road,
> > Greenlane, Auckland, New Zealand
> > *D* 64 9 571 6812       *P* 64 9 571 6800    *F* 64 9 571 6899
> > *E* [email protected]    *W* www.finzsoft.com
> >
> >
> >       *Please note*: This email contains information that is
> > confidential and may be privileged. If you are not the intended
> > recipient, you must not peruse, use, disseminate, distribute or copy this
> email or attachments.
> > If you have received this in error, please notify Finzsoft Solutions
> > (New
> > Zealand) Ltd immediately by return email and delete this email. Thank you.
> >
> >
> >
> __________________________________________________________
> ____________
> > This email has been scanned by the Symantec Email Security.cloud service.
> >
> __________________________________________________________
> ____________
> >
>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>
> __________________________________________________________
> ____________
> This email has been scanned by the Symantec Email Security.cloud service.
> __________________________________________________________
> ____________

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
______________________________________________________________________



--
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
______________________________________________________________________

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
______________________________________________________________________

Reply via email to