Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) [email protected] Fall 2005...

43
Core Web Service Security Core Web Service Security Patterns Patterns By: Hassan Fatemi ( 84702287 ) By: Hassan Fatemi ( 84702287 ) [email protected] [email protected] Fall 2005 Fall 2005 Sharif University of Sharif University of Technology( SUT ) Technology( SUT ) Department of Computer Engineering Department of Computer Engineering ( CE ) ( CE )
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    218
  • download

    1

Transcript of Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) [email protected] Fall 2005...

Page 1: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Core Web Service Security PatternsCore Web Service Security Patterns

By: Hassan Fatemi ( 84702287 )By: Hassan Fatemi ( 84702287 )[email protected]@ce.sharif.edu

Fall 2005Fall 2005

Sharif University of Technology( SUT )Sharif University of Technology( SUT )Department of Computer Engineering ( CE )Department of Computer Engineering ( CE )

Page 2: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

OutlineOutline

Authentication PatternsAuthentication Patterns Message Protection PatternsMessage Protection Patterns Implementing Transport and Message Layer Security Implementing Transport and Message Layer Security

Page 3: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Authentication PatternsAuthentication Patterns

Page 4: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Direct Authentication vs. Brokered AuthenticationDirect Authentication vs. Brokered Authentication

Page 5: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Important ConceptsImportant Concepts

Authentication Authentication the process of identifying an individualthe process of identifying an individual using the credentials of that individualusing the credentials of that individual

AuthorizationAuthorization the process of determining whether an authenticated clientthe process of determining whether an authenticated client is allowed to access a is allowed to access a resource or perform a task within a specific security domainresource or perform a task within a specific security domain

Credentials Credentials A set of claims used to prove the identity of a clientA set of claims used to prove the identity of a client

Identification Identification represents the use of an identifier that allows a system to recognize a particular represents the use of an identifier that allows a system to recognize a particular

subject and distinguish it from other users of the systemsubject and distinguish it from other users of the system

Page 6: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 7: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

AuthorizationAuthorization MethodsMethods Role-based AuthorizationRole-based Authorization

ImperativeImperative imperative role-based authorization is written into the application code to make imperative role-based authorization is written into the application code to make

authorization decisions at run time. authorization decisions at run time.

DeclarativeDeclarative Declarative role-based authorization can be added to application code at design time. Declarative role-based authorization can be added to application code at design time.

Required access for a particular method or class is declared as an attribute in Required access for a particular method or class is declared as an attribute in code code

Page 8: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Resource-based Authorization Resource-based Authorization Resource-based authorization is performed declaratively on a resource , Resource-based authorization is performed declaratively on a resource , depending on the type of the resource and the mechanism used to depending on the type of the resource and the mechanism used to

perform authorizationperform authorization

Access Control List ( ACL )Access Control List ( ACL )

URL AuthorizationURL Authorization

Policydeclaratively enforce security on SOAP request and response messages through policy assertions

Page 9: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Direct AuthenticationContextContext

A client needs to access a Web service. The Web service requires the client to present credentials for authentication so that additional controls such as authorization and auditing can be implemented.

Problem Problem How does the Web service verify the credentials that are presented by the client?

The credentials that the client presents to the Web service are based on shared

secrets, such as passwords The Web service can validate credentials from the client against an identity store. The Web service is relatively simple, and does not require support for capabilities such

as single-sign on (SSO) or support for non-repudiation. The client and the Web service trust one another to manage credentials securely.

Conditions and reasons that force using this solutionConditions and reasons that force using this solution

Page 10: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

ParticipantsParticipantsDirect authentication involves the following participants:Direct authentication involves the following participants: ClientClient ServiceService Identity storeIdentity store

ProcessProcess

SolutionSolution Use direct authentication where the Web service acts as an authentication

service to validate credentials from the client

Page 11: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

BenefitsBenefits It represents an uncomplicated model for authenticating clients without the need for

an authentication broker If the shared secret between a requester and service is compromised, only the relationship between those two parties is compromised and not the entire model.

LiabilitiesLiabilities Direct authentication Direct authentication

does not provide single does not provide single sign on capabilities.sign on capabilities.

The decentralized The decentralized nature of direct nature of direct authentication requires authentication requires that the trust that the trust relationship be relationship be managed between each managed between each point in the point in the communication.communication.

Page 12: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

If a client calls a Web service frequently, the use of direct authentication can

increase latency, because the Web service typically authenticates against a remote

identity store. Data ownership and synchronization issues can occur if each of several services

has its own identity store to authenticate the same client. This is because the

client’s credentials may need to be duplicated across multiple identity stores.

Liabilities contLiabilities cont . .

Page 13: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Brokered AuthenticationBrokered Authentication Context Context

A client needs to access a Web service. The Web service requires the application

to present credentials for authentication so that additional controls such as

authorization and auditing can be implemented.

Problem Problem How does the Web service verify the credentials that are presented by the client?

The client accesses additional services, which results in the need for a single

sign on (SSO) solution. The client and the Web service do not trust each other directly. The Web service and the identity store do not trust each other directly.

The client and Web service share a standard access control infrastructure.

Conditions and reasons that force using this solutionConditions and reasons that force using this solution

Page 14: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

SolutionSolution Use brokered authentication where the Web service validates

the credentials presented by the client, without the need for a direct relationship between the two parties. An authentication broker that both parties trust independently issues a security token to the client. The client can then present credentials, including the security token, to the Web service.

ParticipantsParticipantsBrokered authentication involves the following participants:Brokered authentication involves the following participants: ClientClient ServiceService Authentication brokerAuthentication broker Identity storeIdentity store

Page 15: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

ProcessProcess

Page 16: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

BenefitsBenefits The authentication broker manages trust centrally. This eliminate the need The authentication broker manages trust centrally. This eliminate the need

for each client and service to independently manage their own trust for each client and service to independently manage their own trust relationships.relationships.

Adding a new user is more easier than direct authentication because its Adding a new user is more easier than direct authentication because its credentials is maintained in one central point.credentials is maintained in one central point.

Two parties do Two parties do not require prior not require prior knowledge of knowledge of one another.one another.

Trust Trust relationships relationships can be can be established established between between different different authentication authentication brokers.brokers.

Page 17: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

LiabilitiesLiabilities Single point of failure.Single point of failure. Any compromise of an authentication broker results in the Any compromise of an authentication broker results in the

integrity of the trust that is provided by the broker also integrity of the trust that is provided by the broker also being compromised.being compromised.

Common types of authentication brokersCommon types of authentication brokers

X.509 PKIX.509 PKI Kerberos protocolKerberos protocol Web Service Security Token Service ( STS )Web Service Security Token Service ( STS )

Page 18: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Message Protection PatternsMessage Protection Patterns

Message protection can be divided into three main categories:Message protection can be divided into three main categories:

Data integrityData integrity Data origin authenticationData origin authentication Data confidentialityData confidentiality

Page 19: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 20: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Data ConfidentialityData Confidentiality

ContextContextThere is a risk that an attacker can gain access to sensitive There is a risk that an attacker can gain access to sensitive data , either by eavesdropping on the network or accessing data , either by eavesdropping on the network or accessing a repository.a repository.

ProblemProblemHow does you protect data within a message from being How does you protect data within a message from being disclosed to unintended parties?disclosed to unintended parties?

Page 21: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Disclosure of sensitive data can result in loss or damage , such as identity theft , Disclosure of sensitive data can result in loss or damage , such as identity theft , lawsuits , loss of business , or regulatory fines.lawsuits , loss of business , or regulatory fines.

Sensitive data may pass across the network.Sensitive data may pass across the network. Sensitive data may be persisted for short periods of time , such as in a message Sensitive data may be persisted for short periods of time , such as in a message

queue , or over longer periods of time in a database or file.queue , or over longer periods of time in a database or file.

Use encryption to protect sensitive data that is Use encryption to protect sensitive data that is contained in a message.contained in a message.

SolutionSolution

Conditions and reasons that force using this solutionConditions and reasons that force using this solution

Page 22: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

ParticipantsParticipantsDirect authentication involves the following participants:Direct authentication involves the following participants: SenderSender RecipientRecipient

ProcessProcess

You can apply data confidentiality in two steps:You can apply data confidentiality in two steps: Encryption the data.Encryption the data. Decryption the data.Decryption the data.

Page 23: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Two types of cryptographyTwo types of cryptography:: Symmetric cryptography. Symmetric cryptography.

Both the sender and recipient share a key to perform both Both the sender and recipient share a key to perform both encryption and decryption.encryption and decryption.

Page 24: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Two Two SymmetricSymmetric Algorithms: Algorithms:

1.1. Rijndael ( AES )Rijndael ( AES )

2.2. Triple DES ( 3DES )Triple DES ( 3DES )

Symmetric cryptography is completely simple in nature because the Symmetric cryptography is completely simple in nature because the secret key that is used for both encryption and decryption is shared secret key that is used for both encryption and decryption is shared between the sender and the recipient.between the sender and the recipient.

However , before communication can occur , the sender and the However , before communication can occur , the sender and the recipient must exchange a shared secret key.recipient must exchange a shared secret key.

In some cases ( such as SSL ) , asymmetric cryptography can e used to In some cases ( such as SSL ) , asymmetric cryptography can e used to ensure that the initial key exchange occurs over a secure channel.ensure that the initial key exchange occurs over a secure channel.

Page 25: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Asymmetric( public key ) cryptography. Asymmetric( public key ) cryptography. The sender encrypts data with one key , and the recipient The sender encrypts data with one key , and the recipient uses a different key to decrypt ciphertext.uses a different key to decrypt ciphertext.

Page 26: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

The most common asymmetric algorithm is:The most common asymmetric algorithm is: RSARSA

asymmetric algorithms provide:asymmetric algorithms provide: EncryptionEncryption Digital signatureDigital signature Nonrepudiation Nonrepudiation Key management process in symmetric algorithmsKey management process in symmetric algorithms

Asymmetric encryption requires more processing resources Asymmetric encryption requires more processing resources than symmetric encryption. For this reason it is usually used than symmetric encryption. For this reason it is usually used to asymmetrically encrypting the shared key in symmetric to asymmetrically encrypting the shared key in symmetric algorithms.algorithms.

Page 27: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Data Origin AuthenticationData Origin Authentication

ContextContextThere is a risk that an attacker may manipulate data , There is a risk that an attacker may manipulate data , modify or even substitute it , to change the apparent source modify or even substitute it , to change the apparent source of the request message.of the request message.

ProblemProblem

How does you prevent an attacker from manipulating How does you prevent an attacker from manipulating messages in transit between a client and a web service?messages in transit between a client and a web service?

Page 28: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

An altered message can cause the message recipient to behave in an unintended and An altered message can cause the message recipient to behave in an unintended and undesired way.undesired way.

An attacker could pose as a legitimate sender and send falsified messages.An attacker could pose as a legitimate sender and send falsified messages. The organization may need to trace particular actions to a specific client or service.The organization may need to trace particular actions to a specific client or service.

Conditions and reasons that force using this solutionConditions and reasons that force using this solution

Use data origin authentication , which enables the Use data origin authentication , which enables the recipient to verify that messages have not been recipient to verify that messages have not been tampered with in transit( data integrity ) and they tampered with in transit( data integrity ) and they originate from the expected sender( authenticity ).originate from the expected sender( authenticity ).

SolutionSolution

Page 29: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

SymmetricSymmetric signaturesignature

A symmetric signature is created by using a shared secret to A symmetric signature is created by using a shared secret to sign and verify the message. It is commonly known as a sign and verify the message. It is commonly known as a Message Authentication Code( MAC )Message Authentication Code( MAC )

The most common type of MAC is a The most common type of MAC is a

Hashed Message Authentication Code( HMAC ) protocol that Hashed Message Authentication Code( HMAC ) protocol that uses a shared secret and a hashing algorithm ( such as MD5 , uses a shared secret and a hashing algorithm ( such as MD5 , SHA-1 , or SHA-256 ) to create the signature.SHA-1 , or SHA-256 ) to create the signature.

Page 30: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 31: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

AsymmetricAsymmetric Signature( Digital Signature ) Signature( Digital Signature )

Page 32: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Implementing Transport and Implementing Transport and Message Layer SecurityMessage Layer Security

Page 33: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 34: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Transport Layer vs. Message Layer SecurityTransport Layer vs. Message Layer Security

Page 35: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Increase flexibility Increase flexibility encrypt part of the message instead of the entire messageencrypt part of the message instead of the entire message

Support for auditingSupport for auditing Support for multiple protocols( SMTP , FTP , TCP )Support for multiple protocols( SMTP , FTP , TCP )

Advantages of Message Layer Security over Advantages of Message Layer Security over Transport Layer SecurityTransport Layer Security

Page 36: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Implementing message layer security Implementing message layer security with X.509 certificates with X.509 certificates

ProcessProcess the service initializes and sends a message with X.509 the service initializes and sends a message with X.509

certificate informationcertificate information

1. the client retrieves the service’s X.509 certificate.1. the client retrieves the service’s X.509 certificate.

2. the client retrieves its own certificate and private key.2. the client retrieves its own certificate and private key.

3. the client attaches its X.509 certificate to a message.3. the client attaches its X.509 certificate to a message.

4. the client signs the message using its private key.4. the client signs the message using its private key.

5. the client encrypts the message using the services public key.5. the client encrypts the message using the services public key.

6. the client sends the message to the service.6. the client sends the message to the service.

Page 37: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 38: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

The service authenticates a client using the X.509 The service authenticates a client using the X.509

certificate and signaturecertificate and signature

1. The service validates the client’s certificate.1. The service validates the client’s certificate.

2. The service verifies the certificate trust chain.2. The service verifies the certificate trust chain.

3. The service checks the certificate revocation status.3. The service checks the certificate revocation status.

4. The service decrypts message.4. The service decrypts message.

5. The service verifies the signature.5. The service verifies the signature.

6. The service initializes and sends a response to the client.6. The service initializes and sends a response to the client.

Page 39: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.
Page 40: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

Implementing transport layer security Implementing transport layer security using X.509 certificates and HTTPSusing X.509 certificates and HTTPS

ProcessProcess Implement transport layer security using SSL.Implement transport layer security using SSL. Configure the web service virtual directory to use SSL and require Configure the web service virtual directory to use SSL and require

client certificates.client certificates.

BenefitsBenefits It provide brokered authentication, data confidentiality, and data It provide brokered authentication, data confidentiality, and data

origin authentication capabilities in one solution .origin authentication capabilities in one solution . It uses SSL , which is a well established protocol that is easy to It uses SSL , which is a well established protocol that is easy to

configure and implement on the windows platform.configure and implement on the windows platform. LiabilitiesLiabilities

Configure SSL between several points ,because it is a point to point Configure SSL between several points ,because it is a point to point security protocol, may cause unacceptable application response times.security protocol, may cause unacceptable application response times.

All points in the communication must be sufficiently trusted to All points in the communication must be sufficiently trusted to establish SSL.establish SSL.

Page 41: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

ReferencesReferences For more information about authorization on the .NET Framework, see “Authentication and Authorization” in Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication on MSDN: http://msdn.microsoft.com/practices/Topics/security/default.aspx?pull=/library/en-us /dnnetsec/html/SecNetch03.asp. For more information about Web services security, see OASIS Standards and Other Approved Work (including WS-Security) on the OASIS Web site: http://www.oasis-open.org/. For more information about the Kerberos protocol specifications, see RFC 1510: The Kerberos Network Authentication Service (V5): http://www.faqs.org/rfcs/rfc1510.html. For more information about Kerberos authentication in Windows Server 2003, see “Kerberos Authentication Technical Reference” on Microsoft TechNet: http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/TechRef /b748fb3f-dbf0-4b01-9b22-be14a8b4ae10.mspx. For a general overview of PKI technologies, see “PKI Technologies” on Microsoft TechNet: http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/TechRef /6d5d9ef3-75ca-46c1-acf6-57dc7e9a6adf.mspx. For more information about WS-Trust, see Web Services Trust Language (WS-Trust) on MSDN: http://msdn.microsoft.com/library/en-us/dnglobspec/html/WS-trust.pdf.

Page 42: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

For more information about ADFS, see “Introduction to ADFS” on Microsoft TechNet: http://technet2.microsoft.com/WindowsServer/en/Library/c67c9b41-1017-420d-a50e -092696f40c171033.mspx. For more information about Security Assertion Markup Language (SAML), go to the OASIS Web site: http://www.oasis-open.org/specs/index.php#samlv1.1. For more information about WS-SecureConversation, see Web Services Secure Conversation Language (WS-SecureConversation) on MSDN: http://msdn.microsoft.com/library/en-us/dnglobspec/html/WS-secureconversation.pdf . For more information about SAML token profile 1.0, see Web Security Services: SAML Token Profile on the Oasis Web site: http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.0.pdf.

For more information about threat modeling, see “Threat Modeling Web Applications” on MSDN: http://msdn.microsoft.com/practices/Topics/security /default.aspx?pull=/library/en-us/dnpag2/html/tmwa.asp. For more information about WS-Security version 1.0, see the OASIS Standards and Other Approved Work (including WS-Security) on the OASIS Web site: http://www.oasis-open.org/specs/index.php#wssv1.0. For more information about threats and countermeasures, see Chapter 2, “Threats and Countermeasures,” of Improving Web Application Security: Threats

and Countermeasures on MSDN:

http://msdn.microsoft.com/library/default.asp?url=/library /en-us/dnnetsec/html/THCMCh02.asp.

Page 43: Core Web Service Security Patterns By: Hassan Fatemi ( 84702287 ) Fatemi@ce.sharif.edu Fall 2005 Sharif University of Technology( SUT ) Department of Computer.

For more information about HMAC, see RFC 2104 — HMAC: Keyed Hashing for Message Authentication: http://www.ietf.org/rfc/rfc2104.txt?number=2104. For more information about WS-Security version 1.0, see the OASIS Standards and Other Approved Work (including WS-Security) on the OASIS Web site: http://www.oasis-open.org/specs/index.php#wssv1.0. For more information about threats and countermeasures, see the following: ● Security Challenges, Threats and Countermeasures Version 1.0 on the WS-I Web

site: http://www.ws-i.org/Profiles/BasicSecurity/SecurityChallenges-1.0.pdf. ● Chapter 2, “Threats and Countermeasures,” of Improving Web Application

Security: Threats and Countermeasures on MSDN: http://msdn.microsoft.com/library /default.asp?url=/library/en-us/dnnetsec/html/THCMCh02.asp.