ws-secureconversation xiuduan fang. 2 agenda introduction security context token establishing...

32
WS- WS- SecureConversation SecureConversation Xiuduan Fang Xiuduan Fang

Upload: alejandra-botten

Post on 01-Apr-2015

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

WS-SecureConversation WS-SecureConversation

Xiuduan FangXiuduan Fang

Page 2: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

22

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 3: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

33

Introduction to WS-Introduction to WS-SecureConversationSecureConversation

• Why introduce WS-SecureConversation?

• Consider the functions of WS-Security– message integrity– message confidentiality– single message authentication

Page 4: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

44

Introduction to WS-Introduction to WS-SecureConversationSecureConversation

• What if senders and receivers need to exchange multiple messages?

Page 5: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

55

Introduction to WS-Introduction to WS-SecureConversationSecureConversation

• A Feasible Solution– Encrypt all messages with a security token issued by a token issuing service.

• Drawback: the size of each message can become a performance bottleneck.

Page 6: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

66

Introduction to WS-Introduction to WS-SecureConversationSecureConversation

• A Better Solution

– WS-SecureConvsation • Similar to SSL• Introduce a security context

• A SecurityContextToken is applied. Once created, the messages are smaller and can be processed faster by both ends.

Page 7: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

77

Introduction to WS-Introduction to WS-SecureConversationSecureConversation

• Goals

– Define how security contexts are established

– Specify how derived keys are computed and passed

• Non-Goals

– Define how trust is established or determined—that is done by WS-Trust

Page 8: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

88

IntroductionIntroduction

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureConversation in Action

• Conclusion

• References

Page 9: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

99

Security Context TokenSecurity Context Token

<SecurityContextToken> describes a security context.

Page 10: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1010

Syntax of Security Context TokenSyntax of Security Context Token<wsse:SecurityContextToken wsu:Id="...">

<wsu:Identifier>...</wsu:Identifier> <wsu:Created>...</wsu:Created> <wsu:Expires>...</wsu:Expires>

<wsse:Keys>

<xenc:EncryptedKey Id=“…”>…

</xenc:EncryptedKey> <wsse:SecurityTokenReference>...

</wsse:SecurityTokenReference>

...

</wsse:Keys>

</wsse:SecurityContextToken>

Page 11: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1111

Security Context Token ExampleSecurity Context Token Example

<wsse:SecurityContextToken wsu:Id="SecurityToken-

f3dfe69f-4bd6-41f9-b198-bb6247d14780"> <wsu:Identifier>uuid:f1971e12-f402-433d-bf7d-

29c78a0a81eb

</wsu:Identifier>

<wsu:Created>2003-07-08T02:52:55Z</wsu:Created> <wsu:Expires>2003-07-08T06:52:55Z</wsu:Expires>

</wsse:SecurityContextToken>

Page 12: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1212

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 13: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1313

Establishing Security ContextEstablishing Security Context

• A security context needs to be created and shared by the communicating parties before being used.

• How?1. created by a security token service (STS) 2. created by one of the communicating parties and propagated

with a message

3. created through negotiation

Page 14: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1414

Way 1: Created by STSWay 1: Created by STS

Page 15: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1515

<RequestSecurityToken> Example<RequestSecurityToken> Example

<S:Body wsu:Id="req"> <RequestSecurityToken>

<TokenType>wsse:SecurityContextToken</TokenType> <RequestType>wsse:ReqIssue</RequestType> </RequestSecurityToken>

</S:Body>

Page 16: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1616

<RequestSecurityTokenResponse> <RequestSecurityTokenResponse> ExampleExample

<S:Body> <RequestSecurityTokenResponse> <RequestedSecurityToken>

<wsse:SecurityContextToken> <wsu:Identifier>uuid:...</wsu:Identifier> </wsse:SecurityContextToken>

</RequestedSecurityToken> <RequestedProofToken>

<xenc:EncryptedKey Id="newProof"> ...

</xenc:EncryptedKey> </RequestedProofToken> </RequestSecurityTokenResponse>

</S:Body>

Page 17: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1717

Way 2: Way 2: Created by One of The Created by One of The Communicating PartiesCommunicating Parties

• Process– The initiator creates a security context token

and sends it to the other parties in a message– The recipient can then choose whether or not

to accept the security context token

• Application– This model works when the sender is trusted

to always create a new security context token.

Page 18: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1818

Way 3: Way 3: Created through Created through NegotiationNegotiation

• Process– The initiating party sends a <RequestSecurityToken>

request to the other party – A <RequestSecurityTokenResponse> is returned.– Repeat the above 2 steps until a final response

containing a <SecurityTokenReference> and a <ProofTokenReference> is received.

• Application– There is a need to negotiate among the participants

on the contents of the security context token, such as the shared secret

Page 19: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

1919

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 20: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2020

Deriving KeysDeriving Keys• Once the context and secret have been

established (authenticated), Derived Keys Mechanism can be used to compute derived keys for each key usage in the secure context.

• Example– Four keys may be derived so that two parties

can sign and encrypt using separate keys.

Page 21: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2121

Deriving KeysDeriving Keys

• Algorithms– Using a common secret, parties may define

different key derivations to use – Default: P_SHA-1 function (referred to as

wsse:PSHA1)

P_SHA1 (secret, label + seed)

Page 22: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2222

Deriving KeysDeriving Keys

• The <DerivedKeyToken> element is used to indicate that the key for a specific security token is generated from the function of P_SHA-1. 

• Example<DerivedKeyToken>

<SecurityTokenReference>

<Reference URI=".../ctx1"/> </SecurityTokenReference> <Generation>2</Generation>

</DerivedKeyToken>

Page 23: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2323

Subsequent Derivation ExampleSubsequent Derivation Example<DerivedKeyToken>

<Properties>

<Name>.../derivedKeySource</Name>

<Label>NewLabel</Label>

<Nonce>FHFE...</Nonce>

</Properties>

<Generation>3</Generation>

</DerivedKeyToken>

<DerivedKeyToken wsu:Id="newKey">

<SecurityTokenReference>

<Reference URI=".../derivedKeySource"/>

</SecurityTokenReference>

<Generation>0</Generation>

</DerivedKeyToken>

Page 24: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2424

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 25: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2525

SecureConversation In ActionSecureConversation In Action

• Web Service Enhancements (WSE) 2.0 for .NET 2.0 improves the implementation of secure conversations in Web services architecture.

• Demonstration

Page 26: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2626

Predefined Security Tokens in Predefined Security Tokens in WSE 2.0 WSE 2.0

Page 27: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2727

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 28: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2828

Conclusion of WS-Conclusion of WS-SecureConversationSecureConversation

• The WS-SecureConversation specification defines extensions to allow security context establishment and sharing, and session key derivation.

Page 29: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

2929

AgendaAgenda

• Introduction

• Security Context Token

• Establishing Security Context

• Deriving Keys

• SecureCoversation in Action

• Conclusion

• References

Page 30: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

3030

Primary ReferencesPrimary References

• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnglobspec/html/ws-secureconversation.asp

– Official specification describing WS-SecureConversation

• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwse/html/wssecdrill.asp

– A good reference that explains how to use Web Services Enhancements 2.0 to implement security, trust, and secure conversations in Web services architecture.

Page 31: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

3131

Secondary ReferencesSecondary References

• http://www.microsoft.com/downloads/details.aspx?FamilyId=21FB9B9A-C5F6-4C95-87B7-FC7AB49B3EDD&displaylang=en

– The WSE 2.0 technology preview provides early access to new advanced Web services capabilities.

• http://msdn.microsoft.com/webservices/building/wse/default.aspx– The latest advanced Web services capabilities to keep pace

with the evolving Web services protocol specifications.

Page 32: WS-SecureConversation Xiuduan Fang. 2 Agenda Introduction Security Context Token Establishing Security Context Deriving Keys SecureCoversation in Action

Questions?Questions?