Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6533059
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T10:04:45+00:00 2026-05-25T10:04:45+00:00

Mostly, my confusion seems to be eminating from my attempts to understand security within

  • 0

Mostly, my confusion seems to be eminating from my attempts to understand security within the context of WCF. In WCF, it looks like certificates can be used for the purpose of authentication, as well as encryption. Basically, I am trying to understand:

  1. How can an X509 certificate be used as an authentication token? Aren’t ssl certificates usually made to be publically available? Wouldn’t this make it impossible for them to be used for authentication purposes? If not, are there some protocols which are commonly used for this purpose?
  2. When encrypting messages with WCF, are certificates used which have been issued only to the client, only to the server, or to both? If certificates from the client and server are both used, I’m a little unclear as to why. This mostly stems from my understanding of https, in which case only a certificate issued to the server (and chained to some certificate issued by a root CA) would be necessary to establish an encrypted connection and authenticate the server.

I’m not entirely sure this is the correct forum. My questions stemmed from trying to understand WCF, but I guess I would like to understand the theory behind this in general. If it’s a good idea, please suggest the correct forum for me. I’d be happy to try to get this question migrated, if necessary.

Thanks in advance!

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T10:04:45+00:00Added an answer on May 25, 2026 at 10:04 am

    Well this is pretty complex question. I will try to explain some parts but avoiding as much detail as possible (even after that it will be pretty long).

    How does authentication with certificate work?

    If a holder of the private key signs some data, other participants can use the public key of the signer to validate the signature. This mechanism can be used for authentication. Private and public keys are stored in certificate where private key is kept safe on the holder machine whereas certificate with public key can be publicly available.

    How does it relate to HTTPS?

    WCF offers transport and message security. The difference between them is described here. The transport security in case of HTTP is HTTPS where only server needs issued certificate and client must to trust this certificate. This certificate is used both for authenticating server to the client and for establishing secure channel (which uses symmetric encryption).

    HTTPS also offers variant called Mutual HTTPS where client must have also issued certificate and client uses the certificate to authenticate to the server.

    How does message security work and what is a purpose of two certificates in that scenario?

    In case of message security each message is signed, encrypted and authenticated separately = all these security informations are part of the message. In case of SOAP this is described by many specifications but generally you are interested in security bindings and X.509 Token profile.

    Security binding is part of WS-SecurityPolicy assertions and it is describes how the message is secured. We have three bindings:

    • Symmetric security binding – symmetric encryption
    • Asymmetric security binding – asymmetric encryption
    • Transport security binding – assertion that message must be send over HTTPS or other secured transport

    X.509 Token profile specifies how to transport certificates (public keys) in messages and how to use them.

    Now if you have symmetric security binding you need only server certificate because

    • When client wants to send message to the server it will first generate random key.
    • It will use this key to encrypt and sign request
    • It will use service certificate to encrypt derived key and pass it to the request as well.
    • When the server receives the message it will first use its private key to decrypt that key.
    • It will use decrypted key to decrypt the rest of the message.
    • It will also use the key to encrypt the response because client knows that key.
    • Client will use the same key generated for request to decrypt the response

    This is symmetric encryption which is much more faster then asymmetric encryption but key derivation should not be available in WS-Security 1.0. It is available in WS-Security 1.1. HTTPS internally works in similar way but the key is the same for the whole connection lifetime.

    If you have asymmetric security binding you need two certificates:

    • Initiator must have its own certificate used to sign requests and decrypt responses
    • Recipient must have its own certificate used to decrypt requests and sign responses

    That means following algorithm

    • Initiator encrypts request with recipient’s public key
    • Initiator signs request with its private key
    • Recipient uses initiator’s public key to validate request signature
    • Recipient uses its private key to decrypt request
    • Recipient uses initiator’s public key to encrypt response
    • Recipient uses its private key to sign response
    • Initiator uses recipient’s public key to validate response signature
    • Initiator uses its private key to decrypt response

    The order of signing and encrypting can be changed – there is another WS-SecurityPolicy assertion which says what should be done first.

    These were basics. It can be much more complex because message security actually allow you as many certificates as you want – you can for example use endorsing token to sign primary signature with another certificate etc.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I hope you can help me. First, I'd like to tell you I am
Mostly for my amusement, I created a makefile in my $HOME/bin directory called rebuild.mk
I mostly switched to python but sometimes I still have to work with old
I mostly use Java and generics are relatively new. I keep reading that Java
I mostly use lambda functions but sometimes use nested functions that seem to provide
We mostly tend to following the above best practice. Have a look at String
I mostly use SlickEdit and eclipse while working on embedded systems. Once in a
Having mostly worked with C#, I tend to think in terms of C# features
I mostly use Eclipse but have mentionned Netbeans on my cv. Are there any
I mostly develop using C#, but I think this question might be suitable for

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.