This book is aimed at practicing C# developers who are developing distributed applications or who need to store data in a secure manner. This book is aims to take C# developers with little or no knowledge of cryptography to the point where the can confidently implement their own secure applications.
This will cover the basics of using symmetric and asymmetric cryptography in .NET then we'll go on to examine how to make practical use of these technologies in the following areas:
Secure data exchange: securing online communications is vital to modern e-commerce applications, here we'll look at SSL, TLS, Secure remotoing and implementing cryptographic natively in your applications
Secure data storage: this is actually the more challenging, we'll examine how to store data securely in databases and on the NT file system using Widows secure storage API
Data Integrity: Here we examine the role of hash codes and signatures, either as an add-on to encryption, or in cases where data must be verified against changes
Authentication: Digital signatures still leaves a problem, you know that a person with a certain digital signature sent the message, but how do you know whom that person is
Public Key Infrastructure: managing keys is actually one of the most challenging tasks for any secure application, here we'll look at how to minimise this burden
Put simply "When implementing a cryptographic system do it well or don't bother" cryptography isn't some sort of magic that you that can make an application secure. You have to understand potential vunerablities for each technique if you are to be safe from attackers. While most of cryptographic algorythms implemented in the .NET Framework security namespaces are essentially unbreakable by any reasonable definition. The vast majority of flaws that lead to secret data being revealed to attackers are the results of mistakes in the implementation of applications. It is not enough just to show people how to use the .NET classes we also need to show them how to create solid implementations.