<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Hardened stateless session cookies</title>
	<atom:link href="http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/</link>
	<description>Security Research, Computer Laboratory, University of Cambridge</description>
	<lastBuildDate>Fri, 10 Feb 2012 17:31:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Manuel Simoni</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-50478</link>
		<dc:creator>Manuel Simoni</dc:creator>
		<pubDate>Wed, 03 Mar 2010 23:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-50478</guid>
		<description>Aw, sorry for misspelling your name, Steven ;)</description>
		<content:encoded><![CDATA[<p>Aw, sorry for misspelling your name, Steven <img src='http://www.lightbluetouchpaper.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Manuel Simoni</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-50477</link>
		<dc:creator>Manuel Simoni</dc:creator>
		<pubDate>Wed, 03 Mar 2010 23:17:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-50477</guid>
		<description>Hello Stephen!

One thing I don&#039;t understand is why you don&#039;t use a HMAC internally?

Does the iteration of the functions a^n...a^0 protect against attacks, such as appending bytes to a known message?</description>
		<content:encoded><![CDATA[<p>Hello Stephen!</p>
<p>One thing I don&#8217;t understand is why you don&#8217;t use a HMAC internally?</p>
<p>Does the iteration of the functions a^n&#8230;a^0 protect against attacks, such as appending bytes to a known message?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrei</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-30278</link>
		<dc:creator>Andrei</dc:creator>
		<pubDate>Tue, 16 Dec 2008 19:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-30278</guid>
		<description>Excellent article! It&#039;s a lot easier to scale using cookies for identity tracking because you can use as many application servers you wish without the need for shared storage.</description>
		<content:encoded><![CDATA[<p>Excellent article! It&#8217;s a lot easier to scale using cookies for identity tracking because you can use as many application servers you wish without the need for shared storage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven J. Murdoch</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-30115</link>
		<dc:creator>Steven J. Murdoch</dc:creator>
		<pubDate>Thu, 06 Nov 2008 11:40:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-30115</guid>
		<description>@Erik

That would give better resistance, but would only allow one user session to be active at any time. I wanted to permit a user to be logged in from both home and work. If the MAC key was rotated, logging out of one would invalidate the cookie for the other session.</description>
		<content:encoded><![CDATA[<p>@Erik</p>
<p>That would give better resistance, but would only allow one user session to be active at any time. I wanted to permit a user to be logged in from both home and work. If the MAC key was rotated, logging out of one would invalidate the cookie for the other session.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29769</link>
		<dc:creator>Erik</dc:creator>
		<pubDate>Fri, 29 Aug 2008 02:00:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29769</guid>
		<description>Great read! I&#039;m working on exactly this problem right now and really enjoyed your paper.

The MAC key seems like the weakest link in the system. Given the MAC key, any intercepted cookie can extended to work forever, and the only way to revoke it is to change the MAC key (which revokes all cookies), or for the user to change their password.

What if, instead of a global MAC key, there was a user specific MAC key (stored in the DB) that was rotated every time the user did a manual logout. That would invalidate all old cookies, and would allow for user at a time key rotation.

I think it would be sort of like the &quot;token&quot; part of this system: http://jaspan.com/improved_persistent_login_cookie_best_practice

(I know that&#039;s about auto-login cookies, not stateless session cookies, but it&#039;s similar)</description>
		<content:encoded><![CDATA[<p>Great read! I&#8217;m working on exactly this problem right now and really enjoyed your paper.</p>
<p>The MAC key seems like the weakest link in the system. Given the MAC key, any intercepted cookie can extended to work forever, and the only way to revoke it is to change the MAC key (which revokes all cookies), or for the user to change their password.</p>
<p>What if, instead of a global MAC key, there was a user specific MAC key (stored in the DB) that was rotated every time the user did a manual logout. That would invalidate all old cookies, and would allow for user at a time key rotation.</p>
<p>I think it would be sort of like the &#8220;token&#8221; part of this system: <a href="http://jaspan.com/improved_persistent_login_cookie_best_practice" rel="nofollow">http://jaspan.com/improved_persistent_login_cookie_best_practice</a></p>
<p>(I know that&#8217;s about auto-login cookies, not stateless session cookies, but it&#8217;s similar)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vlad SATtva Miller</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29349</link>
		<dc:creator>Vlad SATtva Miller</dc:creator>
		<pubDate>Sat, 21 Jun 2008 13:41:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29349</guid>
		<description>Steven, thank you for your answer. My bad, I&#039;ve just skimmed the paper before posting my question; more thorough reading showed that attacker obtaining accounts database for offline brute-force attacks is included in your threat model.</description>
		<content:encoded><![CDATA[<p>Steven, thank you for your answer. My bad, I&#8217;ve just skimmed the paper before posting my question; more thorough reading showed that attacker obtaining accounts database for offline brute-force attacks is included in your threat model.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven J. Murdoch</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29330</link>
		<dc:creator>Steven J. Murdoch</dc:creator>
		<pubDate>Wed, 18 Jun 2008 20:49:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29330</guid>
		<description>@Vlad

The iterated hashing is to increase the cost of a brute-force password discovery attack by someone who has obtained a copy of the password database. It is a standard component of password hashing schemes, for example &lt;a href=&quot;http://www.usenix.org/events/usenix99/provos/provos_html/node4.html#SECTION00040000000000000000&quot; rel=&quot;nofollow&quot;&gt;Bcrypt&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p>@Vlad</p>
<p>The iterated hashing is to increase the cost of a brute-force password discovery attack by someone who has obtained a copy of the password database. It is a standard component of password hashing schemes, for example <a href="http://www.usenix.org/events/usenix99/provos/provos_html/node4.html#SECTION00040000000000000000" rel="nofollow">Bcrypt</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vlad SATtva Miller</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29328</link>
		<dc:creator>Vlad SATtva Miller</dc:creator>
		<pubDate>Wed, 18 Jun 2008 18:18:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29328</guid>
		<description>Steven, could you please explain the purpose of iterated hashing of passwords in the proposed scheme? Maybe I&#039;m missing something, but I see it only as a mean for DoS-attacking a server. If you&#039;re worried of a possibility of brute-force attacks, they could be easily mitigated with programmed delays between login attempts (similar to unix login).</description>
		<content:encoded><![CDATA[<p>Steven, could you please explain the purpose of iterated hashing of passwords in the proposed scheme? Maybe I&#8217;m missing something, but I see it only as a mean for DoS-attacking a server. If you&#8217;re worried of a possibility of brute-force attacks, they could be easily mitigated with programmed delays between login attempts (similar to unix login).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven J. Murdoch</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29223</link>
		<dc:creator>Steven J. Murdoch</dc:creator>
		<pubDate>Tue, 27 May 2008 07:30:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29223</guid>
		<description>@Jérémie

HTTP Digest Auth requires that the server either store the cleartext password or H(A1) = MD5(username . &#039;:&#039; . realm . &#039;:&#039; . password). Including the username and realm in the hash is better than nothing, but it&#039;s not as secure as including a salt.

For example, it&#039;s apparent when a user has changed their password back to an old value. Things may also go wrong if fields contain the &quot;:&quot; character.

Also, MD5 is applied only one time. This makes it easier to brute-force the password when compared to standard password hashing schemes built around an iterated hash.

It also suffers from the same problem as the Fu et al. paper, which my proposal tries to fix. Namely, if you get access to the authentication database, containing H(A1), you can spoof a HTTP Digest authentication response. 

It at least used to be the case that Microsoft products (IIS and Internet Explorer) implemented a different and incompatible version of the HTTP Digest standard to Apache and Firefox. I don&#039;t know if this has been fixed, but if not that effectively eliminates the usefulness.

From a usability perspective, there&#039;s also the problem that the dialog box offered by browsers for Digest and Basic authentication is not customizable. This also reduces the attractiveness of these options when compared to HTML form password boxes.</description>
		<content:encoded><![CDATA[<p>@Jérémie</p>
<p>HTTP Digest Auth requires that the server either store the cleartext password or H(A1) = MD5(username . &#8216;:&#8217; . realm . &#8216;:&#8217; . password). Including the username and realm in the hash is better than nothing, but it&#8217;s not as secure as including a salt.</p>
<p>For example, it&#8217;s apparent when a user has changed their password back to an old value. Things may also go wrong if fields contain the &#8220;:&#8221; character.</p>
<p>Also, MD5 is applied only one time. This makes it easier to brute-force the password when compared to standard password hashing schemes built around an iterated hash.</p>
<p>It also suffers from the same problem as the Fu et al. paper, which my proposal tries to fix. Namely, if you get access to the authentication database, containing H(A1), you can spoof a HTTP Digest authentication response. </p>
<p>It at least used to be the case that Microsoft products (IIS and Internet Explorer) implemented a different and incompatible version of the HTTP Digest standard to Apache and Firefox. I don&#8217;t know if this has been fixed, but if not that effectively eliminates the usefulness.</p>
<p>From a usability perspective, there&#8217;s also the problem that the dialog box offered by browsers for Digest and Basic authentication is not customizable. This also reduces the attractiveness of these options when compared to HTML form password boxes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jérémie P.</title>
		<link>http://www.lightbluetouchpaper.org/2008/05/16/hardened-stateless-session-cookies/comment-page-1/#comment-29222</link>
		<dc:creator>Jérémie P.</dc:creator>
		<pubDate>Tue, 27 May 2008 02:24:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.lightbluetouchpaper.org/?p=323#comment-29222</guid>
		<description>How does your solution compares with HTTP digest auth?

Both retransmit full auth info with each requests (instead of just an ID in the case of session cookies). But with digest auth, passwords are never sent in clear text...

As far as I know, digest auth is implemented in all major browsers (baring some microsoftism in IE). Why not use that instead of cookies?</description>
		<content:encoded><![CDATA[<p>How does your solution compares with HTTP digest auth?</p>
<p>Both retransmit full auth info with each requests (instead of just an ID in the case of session cookies). But with digest auth, passwords are never sent in clear text&#8230;</p>
<p>As far as I know, digest auth is implemented in all major browsers (baring some microsoftism in IE). Why not use that instead of cookies?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

