<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Allicient &#187; cookies</title>
	<atom:link href="http://www.allicient.co.uk/tag/cookies/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.allicient.co.uk</link>
	<description>Peter Maxwell's Information Security Site</description>
	<lastBuildDate>Fri, 04 Mar 2011 07:03:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>HTTPS Stupidity. [Security failures of mixed http/https services]</title>
		<link>http://www.allicient.co.uk/2008/09/15/https-stupidity/</link>
		<comments>http://www.allicient.co.uk/2008/09/15/https-stupidity/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 02:58:21 +0000</pubDate>
		<dc:creator>peter</dc:creator>
				<category><![CDATA[Web Security]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[hotmail]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[https-only]]></category>
		<category><![CDATA[secure sockets layer]]></category>
		<category><![CDATA[session handling]]></category>
		<category><![CDATA[session id]]></category>
		<category><![CDATA[side jacking]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[tls]]></category>
		<category><![CDATA[transport layer security]]></category>
		<category><![CDATA[web mail]]></category>
		<category><![CDATA[yahoo mail]]></category>

		<guid isPermaLink="false">http://www.allicient.co.uk/?p=13</guid>
		<description><![CDATA[I recently wrote about keeping things simple .  Well, here&#8217;s an excellent illustration of what can happen when things get complicated&#8230;. The security, or more appropriately the lack of it, in online services is generally very badly understood (even by many IT professionals) and implemented even more so.  This is no more true than when [...]]]></description>
			<content:encoded><![CDATA[<p>I recently wrote about <a href="http://www.allicient.co.uk/2008/09/14/simple-is-best/" rel='nofollow'>keeping things simple </a>.  Well, here&#8217;s an excellent illustration of what can happen when things get complicated&#8230;.</p>
<p>The security, or more appropriately the lack of it, in online services is generally very badly understood (even by many IT professionals) and implemented even more so.  This is no more true than when it comes to session handling and the use of <a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer" rel='nofollow'>SSL or TLS</a>.</p>
<p>For example, most webmail systems DO NOT provide any real sort of security when your local network is open (e.g. in most corporate LANs, on unsecured wireless like at the airport or your local cafe).  The reason, you may ask?  Well, at best most webmail systems only secure the login stage when your password is being sent (using the encryption and authentication provided by SSL/TLS protocols, aka HTTPS when talking about web sessions), it then reverts back to plaintext HTTP transfers for the rest of the session, i.e. when you&#8217;re reading or sending your emails (the only main-stream exception I know of is Google&#8217;s GMail which allows SSL/TLS sessions for everything, but is still weak for other reasons).  This situation is dismal on so many levels, but principally:</p>
<ul>
<li>the initial login page was sent over plaintext, so an attacker can modify it before your browser receives it and insert modified code to send (HTTP POST for example) your login details to their own servers first before redirecting you to the official login &#8211; SSL/TLS certificate verification probably wont help here as this stage is usually processed very quickly and the attacker can get a cert for their fake domain and servers quite easily &#8211; so most users will never notice;</li>
<li>when you have passed the initial login, then a unique session id is created and is used to identify your browser to the webserver for each further page load (usually via <a href="http://en.wikipedia.org/wiki/HTTP_cookie" rel='nofollow'>&#8220;cookies&#8221;</a> which are sent in the HTTP header by your browser) &#8211; unfortunately any attacker can also use this unique id in exactly the same manner as your browser (remember it is transmitted in plain text, only the initial login was HTTPS);</li>
<li>all data you transmit and receive is readable as its in plaintext, so all the mail you read and send is counted here &#8211; this is perfect for those attackers who are a bit more lazy or non-intrusive;</li>
<li>most webmail sites are also vulnerable to a more &#8220;classic&#8221; attack &#8211; when there&#8217;s a secure method of doing something and an insecure method implemented, at the same time, in the same system &#8211; an attacker is just going to force things back to the insecure method which in our scenario equates to being able to login to your webmail using either HTTP or HTTPS (which is often the case), if port 443, where https is usually served, is blocked by an attacker then most users will just use HTTP logins, see <a href="http://www.schneier.com/blog/archives/2006/05/shell_suspends.html" rel='nofollow'>this article on a chip and pin attack</a> for an elegant example of how this idea has been exploited in the past.</li>
</ul>
<p>Most of these problems can be mitigated by doing the obvious (you would have thought); forcing all transactions with the web server for the secure services to be done via SSL/TLS, set the https-only flag on the cookies, have the secure service on a different domain (or subdomains) and don&#8217;t even open port 80 for that domain.  This means your browser will never send your session id in a cookie unencrypted, or it is at least several orders of magnitude more difficult for an attacker to force your browser to do so.  If you want to build in some ancillary assurance, an additional session id in the HTTP URLs and/or permutating the session id doesn&#8217;t hurt.  Disregarding the last two addition suggestions, an HTTPS only setup is much easier to confirgure and maintain than a mixed HTTP and HTTPS setup (anyone who has touched virtual host configs in Apache should understand why).  Unfortunately since HTTPS requires a lot more CPU effort (or a dedicated crypto processor), providers usually run a mixed setup to improve performance; which means in practice, usually either all further page loads are done over HTTP which renders the session completely open, or HTTP and HTTPS are mixed which is totally futile.  On a positive note, GMail is generally better than others but still has serious issues, see <a href="http://fscked.org/blog/why-gmail-fix-isnt" rel='nofollow' rel='nofollow'>here</a> and <a href="http://www.theregister.co.uk/2008/02/01/google_ssl_sidejacking/" rel='nofollow' rel='nofollow'>here</a> for details.</p>
<p>These problems are not confined only to webmail systems, its not uncommon for major sites to be vulnerable in a similar manner despite using SSL/TLS (again the problems stem from basic design flaws), see <a href="http://www.theregister.co.uk/2008/09/11/cookiemonstor_rampage/" rel='nofollow'>this article at The Register</a> for more information (Bank of America is in there).   For further technical discussion, and from what I can understand also soon to be available software, see some of the posts on <a href="http://fscked.org/blog/3" rel='nofollow'>fscked.org</a>.</p>
<p>So, when using supposedly secure web applications, caveat emptor.</p>
<p><script type="text/javascript">// <![CDATA[
google_ad_client = "pub-9745928985945774";
/* 468x60, created 16/09/08 */
google_ad_slot = "8359496086";
google_ad_width = 468;
google_ad_height = 60;
// ]]&gt;</script>UPDATED 12th April 2010: Added [] extra meaning in title.<br />
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.allicient.co.uk/2008/09/15/https-stupidity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

