<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www2.sqlblog.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>Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx</link><description>Today I gave two talks at New England Code Camp 8 . A fun experience as always, and for those of you who were in my talks and are looking for decks/code, please see this post and this post from when I did slightly different versions of the same talks</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>re: Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx#2749</link><pubDate>Sat, 29 Sep 2007 22:22:35 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2749</guid><dc:creator>Tom Cooley</dc:creator><description>&lt;p&gt;Hi Adam,&lt;/p&gt;
&lt;p&gt;I was one of the relative few who attended your session today on Errors &amp;amp; Exception handling. Nicely done, btw. I consider myself more of a business tier developer than anything, but I've never developed a business application of any substance that did not rely upon a database. I agree with your observation. Interacting with a database is easy. Interacting with a database well is not as easy. I believe many developers take the subtleties of working properly with things like transactions and defensive coding in the database for granted. I wish I had an answer for how to change that, but all I can suggest is that we continue to try to put the word out. Thanks for doing your part.&lt;/p&gt;
</description></item><item><title>re: Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx#2805</link><pubDate>Mon, 01 Oct 2007 13:20:07 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2805</guid><dc:creator>James Trela</dc:creator><description>&lt;p&gt;Adam,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;I attended your presentations at Code Camp 8. I was impressed with the complexity and design of the &amp;quot;sa&amp;quot; password you showed. To further this topic, here are links to :&lt;/p&gt;
&lt;p&gt;Stored procedures (or functions) to find the sa password via brute-force or dictionary methods (note that the links to the code fail; perhaps the author can supply the stored procedures):&lt;/p&gt;
&lt;p&gt; &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://www.sqlservercentral.com/articles/Security/sqlserverpasswordauditing/869/"&gt;http://www.sqlservercentral.com/articles/Security/sqlserverpasswordauditing/869/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2002 paper on format of passwords in Microsoft SQL Server 2000, which are hashed and salted. The hash of the capitalized version of the password is stored, which simplifies a brute-force attack:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://www.nextgenss.com/papers/cracking-sql-passwords.pdf"&gt;http://www.nextgenss.com/papers/cracking-sql-passwords.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wikipedia page on salting password hashes:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Salt_%28cryptography%29"&gt;http://en.wikipedia.org/wiki/Salt_%28cryptography%29&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wikipedia page on precomputed rainbow tables for reverse lookup of hash to yield input password:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Rainbow_table"&gt;http://en.wikipedia.org/wiki/Rainbow_table&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;RC4, Rijndael encryption in a Stored Procedure via call to ActiveX:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.sqlservercentral.com/articles/Security/rc4encryptioninastoredprocedure/1254/"&gt;http://www.sqlservercentral.com/articles/Security/rc4encryptioninastoredprocedure/1254/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;jmtrela@yahoo.com&lt;/p&gt;
</description></item><item><title>re: Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx#2809</link><pubDate>Mon, 01 Oct 2007 18:36:40 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2809</guid><dc:creator>Adam Machanic</dc:creator><description>&lt;p&gt;Hi James,&lt;/p&gt;
&lt;p&gt;Thanks for the comment and the links, but I wonder if you're thinking of something else? &amp;nbsp;Neither of my talks at the code camp dealt with passwords or hashing.&lt;/p&gt;
</description></item><item><title>re: Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx#2815</link><pubDate>Mon, 01 Oct 2007 19:32:19 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2815</guid><dc:creator>James Trela</dc:creator><description>&lt;p&gt;Adam,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; You're absolutely correct, your talks at the code camp didn't deal with passwords or hashing. I was just impressed by the length and complexity of the password in your example - punctuation characters, 0 (zero) for letter o (if I recall correctly). Although you used mixed casing, this paper says it doesn't make a difference in at least SQL Server 2000:&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://www.nextgenss.com/papers/cracking-sql-passwords.pdf"&gt;http://www.nextgenss.com/papers/cracking-sql-passwords.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;One way to improve password security is to use Unicode characters beyond the lower 256 (if SQL Server allows that). This complicates the search space for a brute force attack. This tip was given to me by Phil Motta of Chronos.&lt;/p&gt;
</description></item></channel></rss>