<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>CLR and .NET Security</title><link>http://blogs.msdn.com/b/clrsecurity/</link><description>CAS, crypto, ClickOnce security, etc.</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Thank you Phoenix!</title><link>http://blogs.msdn.com/b/clrsecurity/archive/2005/06/02/424695.aspx</link><pubDate>Fri, 03 Jun 2005 00:37:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:424695</guid><dc:creator>mdownen</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/clrsecurity/rsscomments.aspx?WeblogPostID=424695</wfw:commentRss><comments>http://blogs.msdn.com/b/clrsecurity/archive/2005/06/02/424695.aspx#comments</comments><description>As Brad has mentioned in his blog, the &lt;a href="http://blogs.msdn.com/brada/archive/2005/04/30/413339.aspx"&gt;CLR PM team is doing a series of road trips&lt;/A&gt;. The week before last, I was in Phoenix along with two of my fellow CLR PMs for customer visits and the BetaDays event. I'd like to thank all the customers and partners we met and got great feedback from. I'd also like to thank the &lt;A href="http://www.azgroups.com/Page.Home.aspx"&gt;Arizona User Groups&lt;/A&gt; community for putting on a great BetaDays event, especially &lt;A href="http://scottcate.mykb.com/"&gt;Scott Cate&lt;/A&gt; (local group leader), all the volunteers, and &lt;A href="http://www.timheuer.com/blog/"&gt;Tim Heuer&lt;/A&gt; from the Microsoft Phoenix office. It's great to see so much excitement around VS2005 and .NET Framework 2.0. Look for the CLR PM team coming to a city near you! The &lt;a href="http://blogs.msdn.com/brada/archive/2005/05/27/422397.aspx"&gt;next visit&lt;/A&gt; is Vancouver/Calgary in a little over a week.&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=424695" width="1" height="1"&gt;</description></item><item><title>Who Am I?</title><link>http://blogs.msdn.com/b/clrsecurity/archive/2005/05/26/422436.aspx</link><pubDate>Fri, 27 May 2005 00:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:422436</guid><dc:creator>mdownen</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/clrsecurity/rsscomments.aspx?WeblogPostID=422436</wfw:commentRss><comments>http://blogs.msdn.com/b/clrsecurity/archive/2005/05/26/422436.aspx#comments</comments><description>&lt;P&gt;Hello and welcome to my blog. My name is Mike Downen and I'm&amp;nbsp;the&amp;nbsp;&lt;A href="http://members.microsoft.com/careers/careerpath/technical/programmanagement.mspx"&gt;program manager&lt;/A&gt; for security on the CLR team. This means I own the security features in the CLR, such as Code Access Security, the crypto-related classes, our integration with ClickOnce, and other stuff. I also drive much of the security process work for the CLR team (our security pushes and stuff like that).&lt;/P&gt;
&lt;P&gt;As you probably guessed from the title, this blog focuses on CLR and .NET security. It is meant to complement &lt;a href="http://blogs.msdn.com/shawnfa/"&gt;ShawnFa's excellent blog&lt;/A&gt;, not duplicate it. I will cover some different topics (along with many of the same ones) and try to provide a different angle on what we're doing, as well as get feedback from you on your hot security topics. Thanks for reading and enjoy!&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=422436" width="1" height="1"&gt;</description></item><item><title>Obfuscation</title><link>http://blogs.msdn.com/b/clrsecurity/archive/2005/05/26/422440.aspx</link><pubDate>Fri, 27 May 2005 00:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:422440</guid><dc:creator>mdownen</dc:creator><slash:comments>13</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/clrsecurity/rsscomments.aspx?WeblogPostID=422440</wfw:commentRss><comments>http://blogs.msdn.com/b/clrsecurity/archive/2005/05/26/422440.aspx#comments</comments><description>&lt;P&gt;One topic I'm often asked about is obfuscation of managed code. In the context of software, obfuscation is the process of scrambling the symbols, code, and data of a program to prevent reverse engineering.&lt;/P&gt;
&lt;P&gt;Optimizing C++ compilers for native code tend to produce obfuscated code by default. In the process of optimizing, the code is often rearranged quite a bit and symbols are stripped from retail builds. In contrast, managed code compilers (C#, VB.NET, etc) generate IL, not native assembly code. This IL tends to be consistently structured and fairly easy to reverse engineer. Most optimization happens when the IL is JIT-compiled into native code, not during compilation.&lt;/P&gt;
&lt;P&gt;This means it's pretty easy to take a compiled assembly and de-compile it into source code, using a tool such as &lt;A href="http://www.aisto.com/roeder/dotnet/"&gt;Reflector&lt;/A&gt;. While this is a non-issue for web scenarios where all the code resides on the server, it's a big issue for some client scenarios, especially ISV applications. These client applications may contain trade secrets or sensitive information in their algorithms, data structures, or data. This is where obfuscation tools come in.&lt;/P&gt;
&lt;P&gt;Obfuscation tools mangle symbols and rearrange code blocks to foil decompiling. They also may encrypt strings containing sensitive data. It's important to understand that obfuscators (as they exist today) can't completely protect your intellectual property. Because the code is on the client machine, a really determined hacker with lots of time can study the code and data structures enough to understand what's going on. Obfuscators do provide value in raising the bar, however, defeating most decompiler tools and preventing the casual hacker from stealing your intellectual property. They can make your code as difficult to reverse engineer as optimize native code.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;If you're interested in obfuscation for your code, I recommend taking a look at one of the third-party obfuscators that work on managed code. For example, &lt;A href="http://msdn.microsoft.com/howtobuy/vs2005/"&gt;Visual Studio&lt;/A&gt; ships with the community edition of &lt;A href="http://preemptive.com/products/dotfuscator/index.html"&gt;Dotfuscator&lt;/A&gt;, a popular obfuscation package. The community edition only mangles symbol names, so it's not doing everything the full-featured editions do, but it will at least give you an idea of how an obfuscator works. And there are other &lt;A href="http://search.msn.com/results.aspx?q=.NET+obfuscation+software"&gt;third-party obfuscators&lt;/A&gt; that work on managed code as well. Keep in mind that obfuscating your code may make debugging more difficult or impossible. Many of the third-party obfuscators have features that help with debugging, however, such as keeping a mapping file from obfuscated symbol names to original symbol names.&lt;/P&gt;
&lt;P&gt;I'm also asked what is Microsoft's stance on obfuscation? Do we obfuscate our own code? The answer for the .NET Framework is no. As a development platform, it makes more sense not to obfuscate, so we protect our intellectual property by other means. Some Microsoft products that use managed code have opted to obfuscate, however, so we do not have a one-size-fits-all approach within the company.&lt;/P&gt;
&lt;P&gt;I'd be interested to hear your opinions of or experience with obfuscation. Were you able to protect your code? What problems did you run into?&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=422440" width="1" height="1"&gt;</description></item></channel></rss>
