Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Securing .Net


Securing .Net

A conversation with Microsoft's John Montgomery

May 2002

New Architect: There's been talk recently about a .Net virus, though the consensus seems to be that this threat was misrepresented. Is the .Net framework really any more impervious to viral code than traditional Windows?

John Montgomery: The whole ".Net virus" issue isn't what it appears to be. As you point out, it's not really a .Net virus—that is, it's not written in managed code running on the .Net Framework. In fact, it's not even a new virus. The antivirus software on my computer immediately caught it when I was playing around with .Net. Heck, on my Windows XP system, the virus couldn't even load properly thanks to some of the security enhancements in XP.

The .Net Framework's Common Language Runtime (CLR) can protect Windows computers from lots of common attacks. It's capable of limiting the resources that a piece of code can access on the local machine based on the "evidence" that code bears—things like who wrote the application and where it came from.

NA: How does the CLR's security model compare to that of Java?

JM: The security system of the .Net Framework applies not only to C#, but to each of the more than 20 languages supported by the .Net Framework, including APL, C#, C++, Cobol, Fortran, Java, Perl, Python, and VB.Net. For the 90 percent of programmers not using the Java language, this is a pretty cool thing. Getting more granular, both Java and the .Net Framework provide execution environments for what you can call semi-trusted code. The .Net Framework provides a more granular and more extensible security system that gives systems administrators and developers greater control over which resources can and cannot be accessed by their code.

NA: Isn't transmitting remote procedure calls as human-readable XML data inherently less secure than using binary formats?

JM: You're right; SOAP doesn't address all of the issues that face Web services developers. SOAP and WSDL are just the baseline specifications that provide the foundation for XML Web services. There are a variety of ways to address Web services security, and many of the methods we use for Web sites today—Authentication, SSL, ipSec, VPNs—are directly applicable to Web services. These methods don't address all needs that Web services developers have. The WS-Security specification (msdn.microsoft.com/ws/2002/01/Security/) allows for much richer Web services security scenarios to be implemented where SOAP messages can be signed, encrypted, and can carry credential information in them.

NA: One of SOAP's features is the ability to skirt firewalls by sending traffic over HTTP at Port 80, but doesn't this lead to a security nightmare?

JM: SOAP is a pretty flexible protocol, and it doesn't actually require a specific transport protocol or messaging pattern. It can be bound to a variety of transports including TCP, SMTP, and HTTP. And again, the RPC model is just one of the messaging patterns in which SOAP/Web services can be and are used.

That said, a firewall could distinguish Web traffic from Web services traffic—even if they were both going to the same box—using HTTP on port 80. A Web service implemented inside of a company to provide EAI integration is most likely not exposed to the outside world thanks to a firewall, and it's thus protected from external malicious activity. Web services implemented for partner integration will implement one of the many security methods already used to transact in a protected manner.

NA: Bill Gates has made security job number one at Microsoft. What does this mean for the .Net Framework?

JM: The Gates memo on trustworthy computing is serious stuff. We've been thinking about what we need to do to make our products more secure for quite a while, and this memo is the kick-off for a full-fledged focus on security. Even before the memo became public, lots of teams were engaging in the process that the memo codified. In the case of the .Net Framework, it goes back a few years to the design of our evidence-based security model. More recently, in the spring of 2000, we brought in two leading security assessment firms, Foundstone and CORE Security Technologies, to act as a fresh set of eyes on our architecture.

No software vendor can guarantee a 100 percent bug-free product. Humans make mistakes. We've done everything we can to ship a programming model that is locked down by default. The burden is shared—between us, the administrators, and the developers, who must (as always) follow good security practices in developing their code. (We've created a good deal of documentation on this subject at msdn.microsoft.com/net/security.)


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.