Authenticating a Server with Digital Signatures

Posted by TomS on Stack Overflow See other posts from Stack Overflow or by TomS
Published on 2011-01-12T23:46:06Z Indexed on 2011/01/12 23:53 UTC
Read the original article Hit count: 301

I understand how Non-repudiation and Integrity are achieved with Digital Signatures, but it's the Authentication that I don't grasp yet.

I'm developing a Client-Server application in C#, that should be capable of Authentication with Digital Certificates and Digital Signatures. I know how to check the validity and integrity of a Signature (with SignedCms.CheckSignature()), but how does this authenticates any of the parts involved?

For example:

  1. The client asks the Server for a Digital Signature,
  2. The client receives the signature and validates it,
  3. If the validation succeeds, continue.

The client could be a victim of a man-in-the middle attack and receive a valid signature in step 2. The validation would succeed, but the client wouldn't be talking to the right server.

What am I missing?

© Stack Overflow or respective owner

Related posts about c#

Related posts about authentication