Here is a scenario:
- Desktop application
- Installed from the web
- Needs to call a WCF webservice
- Transferred data needs to be encrypted from Client to Server and Server to Client
Is there a well understood solution for this that is:
- Secure
- Easy to manage and deploy
I guess what this comes down to firstly is whether https encryption happens in both directions… Does it? Or do you need mutual authentication for that?
HTTPS is what you’re after – it does provide end-to-end encryption (client-to-server and server-to-client).
So long as you can generate and install a server certificate, and be sure that your clients ‘trust’ the issuing authority of your certificate, then you’re good to go. Note that this is not mutual authentication – your clients know that they have contacted the correct server, but the server does not know who has contacted it.
It can offer mutual authentication through the use of client-side certificates, but I would argue that does not fall under the ‘easy to deploy’ requirement.