<?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>Michael Entin's notebook : Rant</title><link>http://blogs.msdn.com/michen/archive/tags/Rant/default.aspx</link><description>Tags: Rant</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>The way NOT to write HTTPS server</title><link>http://blogs.msdn.com/michen/archive/2008/12/04/the-way-not-to-write-https-server.aspx</link><pubDate>Fri, 05 Dec 2008 10:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9179082</guid><dc:creator>michen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/michen/comments/9179082.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michen/commentrss.aspx?PostID=9179082</wfw:commentRss><wfw:comment>http://blogs.msdn.com/michen/rsscomments.aspx?PostID=9179082</wfw:comment><description>&lt;P&gt;Note: posted under &lt;STRONG&gt;rant&lt;/STRONG&gt; tag, so you are warned ;)&lt;/P&gt;
&lt;P&gt;I've just got a new wi-fi router, DIR-655 from DLink. Seems like a nice router, but at least one feature is just plain horrible broken. And it is security feature, which makes me wonder how secure the rest of the code is.&lt;/P&gt;
&lt;P&gt;The router can be accessed and managed using HTTP server, like most any other one. It also has an option to enable HTTPS server, which was probably supposed to make management more secure. This is not very important if you connect from local network, but very important if you do remote management from the internet.&lt;/P&gt;
&lt;P&gt;So I decided to enable it and connect using HTTPS. Internet explorer immediately complained that there are problems with certificate and advised me against proceeding :). IE&amp;nbsp;warned me that (1) the certificate cannot be validated, (2) the certificate has expired, and (3) the certificate was issued to incorrect site. I proceeded nevertheless, checked the certificate, and indeed - it is self-signed, expired in&amp;nbsp;September 2008, and issued to site &lt;A href="http://www.dlink.com/" mce_href="http://www.dlink.com/"&gt;www.dlink.com&lt;/A&gt;, which is obviously different from 192.168.0.1 :). Worse, I asked other guys with same router to compare certificate hash - it turned out all the routers are shipped with the same certificate!&lt;/P&gt;
&lt;P&gt;I can understand the self-signing nature of the certificate - obviously DLink cannot put real certificate to the router. But why has it expired, shared by all routers, and most bizzar - why it indicates &lt;A href="http://www.dlink.com/" mce_href="http://www.dlink.com/"&gt;www.dlink.com&lt;/A&gt; as site name?&lt;/P&gt;
&lt;P&gt;They could have&amp;nbsp;easily generated an individual certificate for each router, issued to correct internal IP address&amp;nbsp;for internal-facing server and to DynDNS name for internet-facing server. It does not add any hardware cost; the software could just generate a random self-signed certificate the very first time the router boots with a new configuration. User could then configure his browser to trust this particular certificate, and know he connects to his own router, not any of the thousands other routers with same certificate.&lt;/P&gt;
&lt;P&gt;The way they did this feature, it is totally broken and makes no sense at all.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9179082" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michen/archive/tags/Rant/default.aspx">Rant</category><category domain="http://blogs.msdn.com/michen/archive/tags/non-secure/default.aspx">non-secure</category></item><item><title>VALVe/Steam horrors</title><link>http://blogs.msdn.com/michen/archive/2007/11/23/Steam.aspx</link><pubDate>Sat, 24 Nov 2007 02:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6492442</guid><dc:creator>michen</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/michen/comments/6492442.aspx</comments><wfw:commentRss>http://blogs.msdn.com/michen/commentrss.aspx?PostID=6492442</wfw:commentRss><wfw:comment>http://blogs.msdn.com/michen/rsscomments.aspx?PostID=6492442</wfw:comment><description>&lt;P&gt;(Update: VALVe has removed the worst recommendations that I described below.&amp;nbsp;I don't know if my article&amp;nbsp;had any influence on this. They still want to run the Steam as a service though).&lt;/P&gt;
&lt;P&gt;I originally planned to use this blog for work-related stuff only, but the VALVe drove me mad, so I decided to write this.&lt;/P&gt;
&lt;P&gt;I run Vista on my home PC (and at work too, actually), and all of us run as non-admins (not Vista's protected admin, but real non-admin). My son plays Counter Strike, and thus has to run&amp;nbsp;&lt;A class="" title=Evil href="http://www.steampowered.com/" target=_blank mce_href="http://www.steampowered.com"&gt;Steam&lt;/A&gt;. It worked mostly fine, until recently it started to ask to install Steam as a service. Well, a service for internet-facing software seems not good. Before installing, I decided to find out more about it, and the finding are much worse than I've ever expected. Here is an official FAQ from VALVe that I've found:&lt;/P&gt;
&lt;P&gt;&lt;A class="" title="Evil FAQ" href="http://support.steampowered.com/cgi-bin/steampowered.cfg/php/enduser/std_adp.php?p_faqid=460" target=_blank mce_href="http://support.steampowered.com/cgi-bin/steampowered.cfg/php/enduser/std_adp.php?p_faqid=460"&gt;http://support.steampowered.com/cgi-bin/steampowered.cfg/php/enduser/std_adp.php?p_faqid=460&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Here are some of the recommendations from this FAQ:&lt;/P&gt;
&lt;BLOCKQUOTE class=QR&gt;
&lt;UL&gt;
&lt;LI&gt;Go to: Start &amp;gt; Run and type in: cmd &lt;/LI&gt;
&lt;LI&gt;Type in the following:&lt;BR&gt;net localgroup Administrators /add Local service &lt;/LI&gt;
&lt;LI&gt;Restart your computer. &lt;/LI&gt;&lt;/UL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To put it simply, they ask to add Local service account to Administrators group! Apparently, they did not bother to find out the list of specific permissions they need, but simply figured out that administrator permissions "fix" the problem. That alone would be pretty bad, but&amp;nbsp;they did even worse.&amp;nbsp;Instead of creating special account for Steam or using some account that already has administrative permissions,&amp;nbsp;they want to add account &lt;STRONG&gt;shared&lt;/STRONG&gt; by multiple services to Administrators group, thus making not only their service, but &lt;STRONG&gt;all the services&lt;/STRONG&gt; running on the machine much more dangerous and less secure.&lt;/P&gt;
&lt;P&gt;Then VALVe gives even stranger recommendation:&lt;/P&gt;
&lt;BLOCKQUOTE class=QR&gt;
&lt;P&gt;If during this process you receive the error: &lt;SPAN class=bold&gt;System error 5 has occurred. Access is denied&lt;/SPAN&gt; Please follow these instructions and then try the above steps again:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Go to &lt;SPAN class=bold&gt;Start &amp;gt; Control Panel &amp;gt; System &amp;amp; Maintenance &amp;gt; Administrative Tools &amp;gt; Local Security Policy&lt;/SPAN&gt;. &lt;/LI&gt;
&lt;LI&gt;In the left pane, expand &lt;SPAN class=bold&gt;Local Policies &amp;gt; Security Options&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;LI&gt;Double-click &lt;SPAN class=bold&gt;Network Security LAN Manager Authentication Level&lt;/SPAN&gt;.&lt;/LI&gt;
&lt;LI&gt;In the drop down list, change the default setting (NTLMv2 only) to &lt;SPAN class=bold&gt;Send LM &amp;amp; NTLM - use NTLMv2 session if negotiated&lt;/SPAN&gt;.&lt;/LI&gt;&lt;/OL&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Changing LanMan level for Vista Home users to completely unsecure level? Maybe I'm missing something, but I can't see any reason to do this. This setting affects authentication to remove computers (mostly affects NT &lt;STRONG&gt;domain&lt;/STRONG&gt;, should be of no concern to internet game), it would not help&amp;nbsp;one to&amp;nbsp;avoid &lt;STRONG&gt;local &lt;/STRONG&gt;Access Denied&amp;nbsp;while performing the steps above. It is not only completely unsecure, but IMO it also does not make any sense at all.&lt;/P&gt;
&lt;P&gt;So these guys &lt;BR&gt;1) don't understand anything about security, &lt;BR&gt;2) can't write software that does not require administrative privileges,&lt;BR&gt;3) don't even try to use the specific minimum list of permissions,&lt;BR&gt;4) ask user to make completely unreasonable and unsecure configuration changes to OS configuration, that affect not just Steam service, but the whole machine,&lt;BR&gt;5) want to run network-facing service with admin rights.&lt;/P&gt;
&lt;P&gt;Now would you trust the guys who are clueless about security, obviously can't write secure code, and apparently don't care about YOUR machine security at all, to run network-facing service with admin rights on your machine? I don't. I think I'll try stay away from them from now on.&lt;/P&gt;
&lt;P&gt;P.S. As with everything else in this blog, this post represents my personal opinion, and does not represent the view of my employer.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6492442" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/michen/archive/tags/Rant/default.aspx">Rant</category><category domain="http://blogs.msdn.com/michen/archive/tags/non-secure/default.aspx">non-secure</category></item></channel></rss>