This book is divided into five parts. Part I discusses fundamental software security concepts. Part II focuses on programming the security features of the .NET runtime. Part III covers the programmatic use of the cryptography classes contained in the .NET class library. Part IV discusses the use of security features more related to the platform on which your applications run. Finally, Part V contains an API reference covering the security classes we discuss in this book.
Part I: Fundamentals
- Chapter 1
Introduces some fundamental software security concepts that you should understand before continuing to later chapters. Explains why there is a need for security, discusses the goal of software security, and introduces some important topics that you should be aware of as you begin to develop your own security programming skills.
- Chapter 2
Provides an overview of the .NET assembly, which is a key component in .NET security. Describes the structure and contents of an assembly, demonstrates how to create the different types of assembly, and discusses protecting your assemblies from tampering and reverse engineering.
- Chapter 3
Explains the role of application domains and discusses the effect they have on application isolation, security, and configuration.
- Chapter 4
Discusses the way in which software security is integrated into the application lifetime, and provides practical advice that will help you understand the content contained in later chapters.
Part II: .NET Security
- Chapter 5
Introduces the key security features provided by the .NET runtime. Explains the purpose and function of these security features, how they interact with each other, and their relationship with the security provided by the underlying operating system.
- Chapter 6
Explains what evidence is and where it comes from, and describes the purpose and use of the different types of evidence, including the standard evidence classes provided with the. NET Framework. Demonstrates how to use evidence programmatically and how to extend the security capabilities of the .NET Framework by developing custom evidence classes.
- Chapter 7
Explains what permissions are and discusses their role in the implementation of code-access security. Describes the mechanisms that the runtime uses to enforce code-level security, and explains how you can use permissions to manipulate these mechanisms. Finally, this chapter shows you how to extend code-access security by implementing your own custom permissions.
- Chapter 8
Explains how the .NET runtime uses security policy to determine which permissions to grant to an assembly or application domain. Describes the structure of security policy and explains how the component elements interact at runtime. Explains how to manipulate security policy programmatically, and demonstrates the use of application domain policy.
- Chapter 9
Outlines the default security policy implemented by the .NET Framework, and discusses the use of the .NET security tools to manage security policy.
- Chapter 10
Explains what role-based security is and discusses the .NET Framework's implementation. Describes the classes used to access role-based security, and demonstrates how to use them in your programs.
- Chapter 11
Describes what isolated storage is and explains where it provides benefits over existing data storage options. Demonstrates how to use isolated storage in your own programs, as well as how to administer and control access to it.
Part III: .NET Cryptography
- Chapter 12
Provides an overview of the different aspects of cryptography and discusses some of the dangers and limitations of which you should be aware.
- Chapter 13
Examines hash codes in more depth and shows you how to create and validate hash codes using the .NET Framework classes. Extends the .NET Framework by adding a new hashing algorithm.
- Chapter 14
Discusses how to achieve confidentiality with symmetric data encryption, and how to encrypt and decrypt data using the .NET Framework. Shows you how to extend the .NET Framework by adding a new symmetric encryption algorithm.
- Chapter 15
Discusses asymmetric encryption, explaining what it is, how it works, and how it overcomes the problem of exchanging secret keys. Demonstrates how to extend the .NET Framework by adding a new asymmetric encryption algorithm.
- Chapter 16
Explains what digital signatures are, how they work, and how to use them within your .NET applications. Demonstrates how to extend the .NET Framework by adding support for a custom digital signatures algorithm.
- Chapter 17
Discusses the way in which the .NET Framework supports cryptographic keys. Explains the importance of keys, and the decisions you must make in deciding how you will create them.
Part IV: .NET Applications Frameworks
- Chapter 18
Introduces the features you can use to increase the security of your ASP.NET applications. Discusses the overall issue of ASP.NET application security, and the mechanisms the .NET Framework implements to provide authentication, authorization, and impersonation services to ASP.NET applications.
- Chapter 19
Discusses the COM+ security services, and explains how you can apply them to your COM+ components.
- Chapter 20
Describes how to use the Windows Event Logging Service from your .NET applications in order to audit Windows security events.
Part V: API Quick Reference
Part V contains a comprehensive API reference covering the following security-related namespaces of the .NET Framework base class library: