did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780672321849

.NET Framework Security

by ; ; ; ;
  • ISBN13:

    9780672321849

  • ISBN10:

    067232184X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2002-04-24
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $57.99

Summary

Welcome! The book you hold in your hands is a comprehensive guide androadmap to the security infrastructure of the Microsoft .NET Framework. The .NET Framework is Microsoft's new cross-language development environment for building rich client applications and XML Web Services. One of the key features of the .NET Framework is a robust security infrastructure that provides developers, administrators, and users with new levels of control over code that executes on their systems.

Whether you are a developer, administrator, or end user, this book will help you make the most of the .NET Framework security system and create, control, deploy, and use secure .NET applications.

Demystifying .NET Framework Security

Our primary goal in writing this book is to explain the .NET Framework securitysystem in detail and make it easy to understand. As a group, the authors have over 10 years of combined experience as members of the .NET Framework securityproduct team at Microsoft. We have gathered together in this book our combinedadvice, experience, and wisdom to help you make the .NET Framework securitysystem best serve your needs. We hope that you will find this book useful not only as an introduction to the fundamental security features of the .NET Framework but also as a frequent desktop reference as you author or administer applications.

This book is designed to serve the security needs of .NET developers, administrators, and end users. Developers who are currently writing code in one or more .NET languages (or planning to start a coding project) will find detailed instructions on how to perform security checks, how to write code conforming to the "principle of least privilege," and how to include security in your software architectures from the outset. For example, we will teach you how to use cryptographic strong names to protect your programs from outside modification and guarantee that they run with the same shared libraries with which you intended for them to run. We will also demonstrate how to create "semipublic" application programming interfaces (APIs) that can only be called by identities you specify. Debugging security exceptions and interpreting the data returned by the Common Language Runtime when your code is denied access to some protected operation are also covered in this book. Everything you need to know to develop secure components and applications iscontained herein.

If you are an administrator, you will find in the following chapters detailed examples showing how to modify security policy to tighten or loosen it as needed for your particular environment. We will walk you through all the common policy modification scenarios and show you how you can configure an entire enterprise from one location through the use of the .NET Framework's security configuration tool and the Windows Active Directory. We will also explain ASP.NET configuration for deploying secure Web Services with authentication and authorization customized to fit your needs.

For end users, our primary task in this book is to demonstrate how you can control the security behavior of .NET Framework applications running on your machine. Depending on your particular situation, you may need to administer portions of your security configuration to allow or refuse rights to particular applications. You may have encountered a security exception while executing an application and want to know why that exception occurred. You might also be trying to use a Web Service and need to understand its security requirements. All of these topics are covered in this book.

What Do You Need to Know Prior to Reading This Book?

We assume that if you are reading .NET Framework Security that you are already familiar with the .NET Framework, the Common Language Runtime, and one or more.NET programming languages (C++, C#, Visual Basic .NET, and so on). Nearly all of the examples in this book are written in the C# programming language, so some basic familiarity with C# will help you learn the most from the sample code. Every sample in this book could just as easily been written in Visual Basic .NET, or any of the other languages that compile to MSIL and run on top of the Common Language Runtime, so what you learn from the samples will be immediately applicable in your particular programming environment.

Some specific chapters in this book assume additional topic-specific knowledge. For example, the two chapters that discuss the cryptography classes in the .NETFramework (Chapter 30, "Using Cryptography with the .NET Framework: The Basicsand Chapter 31, "Using Cryptography with the .NET Framework: Advanced Topics")assume that you already have a basic understanding of cryptography. The chapters describing the security features of ASP.NET (Chapters 13 through 16) assume that the reader has previous exposure to the core features of ASP and/or ASP.NET. Chapter 18 ("Administering Security Policy Using the .NET Framework Configuration Tool") assumes basic familiarity with the Microsoft Management Console (MMC), because the .NET Framework Configuration tool is an MMC "snap-in" that works alongside other MMC-based configuration tools, such as the Device Manager.

What Software Will You Need to Complete the Examples Provided with This Book?

At a minimum, you will need to have the .NET Framework Software DevelopmentKit (SDK) installed on your computer to compile and run the samples shownthroughout this book. The .NET Framework SDK includes the Common LanguageRuntime, the .NET Framework class libraries, command-line compilers, and administration tools. You can install the .NET Framework SDK on any of the following versions of the Windows operating system: Windows NT 4.0 (with Service Pack 6a), Windows 2000 (at least Service Pack 2 recommended) or Windows XP Professional. The .NET Framework SDK can be downloaded for free from the Microsoft Developer Network Web site at http://msdn.microsoft.com/net/.Some of the examples in this book demonstrate solutions using Visual Studio .NET. Visual Studio .NET is Microsoft's premier integrated development environment (IDE) for writing programs on top of the .NET Framework. Visual Studio .NET includes the Visual Basic .NET, Visual C# .NET, and Visual C++ .NET compilers, an integrated editor, graphical debugger, design-time wizards, and other supporting tools. Visual Studio .NET is available in three product flavors--Professional, Enterprise Developer, and Enterprise Architect. (Note that if you are a member of the Microsoft Developer Network (MSDN), your subscription may already include Visual Studio .NET.) Complete product information for Visual Studio .NET may be found on the Web at http://msdn.microsoft.com/vstudio/.

NOTE

Although the .NET Framework SDK is only available for Windows NT 4.0, Windows 2000, and Windows XP Professional, the .NET Framework Redistributable is available for Windows 98, Windows Millennium Edition, and Windows XP Home Edition in addition to the platforms supported by the SDK. Programs written on top of the .NET Framework require only that the Redistributable be present to run. Thus, while you need to run Windows NT 4.0, Windows 2000, or Windows XP Professional to develop .NET Framework programs, those programs can run on any of the platforms supported by the Redistributable.

Visual Studio .NET is currently available on the same platforms as the .NET Framework SDK--Windows NT 4.0 (Workstation and Server), Windows 2000 (Professional and Server), and Windows XP Professional.

How This Book Is Organized

We have arranged the content of this book into five broad sections. Each section is aimed at answering questions and providing examples for one or more of our core constituencies--developers, administrators, and end users. Because this book is intend

Author Biography

Brian A. LaMacchia is the Development Lead for .NET Framework Security at Microsoft Corporation in Redmond, WA, a position he has held since April 1999. Previously, Dr. LaMacchia was the Program Manager for core cryptography in Windows 2000 and, prior to joining Microsoft in 1997, he was a Senior Member of Technical Staff in the Public Policy Research Group at AT&T LabsÑResearch in Florham Park, NJ. He received S.B., S.M., and Ph.D. degrees in Electrical Engineering and Computer Science from MIT in 1990, 1991, and 1996, respectively.

Sebastian Lange has been working at Microsoft as Program Manager on the .NET Framework Common Language Runtime security team for over two years. He focuses on security configuration, administration, type safety verification, and secure hosting of the CLR. Prior to his work on security, Sebastian has done research and design in artificial intelligence, both in industry as well as in university. He holds a B.A. in Computer Science and a B.A. in Philosophy from Macalester College. In his spare time, Sebastian practices a variety of musical instruments, and can be seen playing the electric viola for his band Elysian up and down the west coast.

Matthew Lyons is the QA lead for security features of the Common Language Runtime at Microsoft Corporation. He has been testing and developing against the internal workings of .NET Framework security for over two years. Before that, he spent two years testing public key cryptography and the certificate services in Windows 2000. Matt received a B.S. in Applied Physics from Purdue University in 1997 and is currently working on an M.S. in Computer Science at the University of Washington.

Rudi Martin graduated from Glasgow University (Scotland, U.K.) in 1991 with a B.S.C. in Computing Science. He spent seven years working for Digital Equipment Corporation in the operating systems group, covering areas such as file systems, interprocess communications, and transaction processing. Rudi joined the NDP group at Microsoft in 1999, where he worked in the core execution engine and the security subsystem. He worked on the OpenVMS platform, transitioned to Windows NT, and has been very busy with the Common Language Runtime security group.

Kevin T. Price has been a software architect for over seven years specializing in Web-based applications. He is presently a Senior Software Architect for CMS Information Services in Vienna, VA. Kevin has edited books on .NET as well as authored chapters in BizTalk Unleashed. The material and code samples found in his chapters reflect real-world experience. Focusing on the securing of information and platform scalability. Mr. Price has both architecture and hands-on experience using technologies including ASP, Crypto API, JSP, Java, COM/DCOM, VB, C++, .NET, and numerous other technologies related to the Internet and/or the Microsoft-based toolset.

Table of Contents

Introduction 1(6)
Part I Introduction to the .NET Developer Platform Security 7(36)
Common Security Problems on the Internet
9(14)
Introduction to the Microsoft .NET Developer Platform
23(10)
.NET Developer Platform Security Solutions
33(10)
Part II Code Access Security Fundamentals 43(136)
User- and Code-Identity-Based Security: Two Complementary Security Paradigms
45(12)
Evidence: Knowing Where Code Comes From
57(12)
Permissions: The Workhorse of Code Access Security
69(12)
Walking the Stack
81(18)
Membership Conditions, Code Groups, and Policy Levels: The Brick and Mortar of Security Policy
99(22)
Understanding the Concepts of Strong Naming Assemblies
121(14)
Hosting Managed Code
135(14)
Verification and Validation: The Backbone of .NET Framework Security
149(16)
Security Through the Lifetime of a Managed Process: Fitting It All Together
165(14)
Part III ASP NET and Web Services Security Fundamentals 179(62)
Introduction to ASP NET Security
181(16)
Authentication: Know Who Is Accessing Your Site
197(24)
Authorization: Control Who Is Accessing Your Site
221(8)
Data Transport Integrity: Keeping Data Uncorrupted
229(12)
Part IV .NET Framework Security Administration 241(196)
Introduction: .Net Framework Security and Operating System Security
243(22)
Administering Security Policy Using the .NET Framework Configuration Tool
265(66)
Administering .NET Framework Security Policy Using Scripts and Security APIs
331(42)
Administering an IIS Machine Using ASP.NET
373(32)
Administering Clients for .NET Framework Mobile Code
405(8)
Administering Isolated Storage and Cryptography Settings in the .NET Framework
413(24)
Part V .NET Framework Security for Developers 437(330)
Creating Secure Code: What All .NET Framework Developers Need to Know
439(10)
Architecting a Secure Assembly
449(14)
Implementing a Secure Assembly
463(66)
Testing a Secured Assembly
529(24)
Writing a Secure Web Site Using ASP.NET
553(18)
Writing a Secure Web Application in the .NET Development Platform
571(20)
Writing a Semi-Trusted Application
591(18)
Using Cryptography with the .NET Framework: The Basics
609(60)
Using Cryptography with the .NET Framework: Advanced Topics
669(30)
Using Cryptography with the .NET Framework: Creating and Verifying XML Digital Signatures
699(68)
Index 767

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program