<?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>Orzeszek Blog &#187; online banking</title>
	<atom:link href="http://www.orzeszek.org/blog/tag/online-banking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.orzeszek.org/blog</link>
	<description>An inchoate upside-down perspective</description>
	<lastBuildDate>Thu, 05 Jan 2012 16:42:39 +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>Force CommSec to Use HTTPS with NoScript</title>
		<link>http://www.orzeszek.org/blog/2009/04/02/force-commsec-to-use-https-with-noscript/</link>
		<comments>http://www.orzeszek.org/blog/2009/04/02/force-commsec-to-use-https-with-noscript/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 23:30:35 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[CommSec]]></category>
		<category><![CDATA[online banking]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.orzeszek.org/blog/?p=396</guid>
		<description><![CDATA[I previously wrote about how CommSec uses a non-SSL frameset to deliver sensitive financial data. It turns out that you can use the NoScript add-on for Firefox to force CommSec to use HTTPS.]]></description>
			<content:encoded><![CDATA[<p></p><p><span class="drop_cap">O</span>n 20 March 2008, I wrote about <a href="http://www.orzeszek.org/blog/2009/03/20/commonwealth-insecurity-banking-over-http/">CommSec’s use of non-SSL frames pages</a> for its online banking. Although the <a href="https://www.comsec.com.au/">CommSec homepage</a> is delivered using SSL with an <a href="http://en.wikipedia.org/wiki/Extended_Validation_Certificate">Extended Validation Certificate</a>, once you log in you’re presented with a non-SSL frames page:</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/commsec-without-ssl.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/commsec-without-ssl-cropped-500x123.png" alt="CommSec without SSL" title="CommSec without SSL" width="500" height="123" class="aligncenter size-large wp-image-398 orz-img-no-border" /></a></p>
<p><a href="http://www.ghacks.net/2009/03/31/force-ssl-https-connections-in-noscript/">gHacks posted</a> recently that you can use <a href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>, an add-on for <a href="http://www.firefox.com/">Firefox</a>, to force the browser to use HTTPS for specified domains. You can use it to force CommSec to use HTTPS too.</p>
<p>To do this, download NoScript from <a href="https://addons.mozilla.org/en-US/firefox/addon/722">here</a>. Open the options for NoScript and go to the HTTPS sub-tab on the Advanced tab. Under ‘Force the following sites to use secure (HTTPS) connections’, enter ‘*.comsec.com.au’:</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/noscript-https-options.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/noscript-https-options-500x418.png" alt="NoScript HTTPS options" title="NoScript HTTPS options" width="500" height="418" class="aligncenter size-large wp-image-399 orz-img-no-border" /></a></p>
<p>Now, the CommSec website should always use HTTPS:</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/commsec-with-ssl.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/commsec-with-ssl-cropped-500x123.png" alt="CommSec with SSL" title="CommSec with SSL" width="500" height="123" class="aligncenter size-large wp-image-401 orz-img-no-border" /></a></p>
<p>You can use this same method to force other websites to use HTTPS too, like <a href="https://www.facebook.com/">Facebook</a> or <a href="https://twitter.com/">Twitter</a>.</p>
<p>Remember, though, that NoScript’s primary function is to block scripts and other active content found on most websites. This is useful for security conscious users, but it’ll break most websites.</p>
<p>If you want to force certain websites to use HTTPS but don’t want to block scripts or other active content, you have to <a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/noscript-all-options.png">disable that blocking</a> in the NoScript options.</p>
<p><strong>Update:</strong> It turns out that forcing HTTPS connections for *.comsec.com.au breaks some functionality. Forcing HTTPS connections for only www.comsec.com.au achieves the same goal, but without breaking anything (that I know of):</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/updated-noscript-https-options.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/04/updated-noscript-https-options-500x418.png" alt="Updated NoScript HTTPS options" title="Updated NoScript HTTPS options" width="500" height="418" class="aligncenter size-large wp-image-416 orz-img-no-border" /></a></p>
<p>The reason why *.comsec.com.au doesn’t work is that CommSec doesn’t support HTTPS connections to prices.comsec.com.au. So when you try to get a stock quote, your browser will attempt an HTTPS connection, which will fail.</p>
<p>Now, quotes should work, but they will be delivered over HTTP. And your browser will give you a warning to that effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orzeszek.org/blog/2009/04/02/force-commsec-to-use-https-with-noscript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Commonwealth Insecurity: Banking over HTTP</title>
		<link>http://www.orzeszek.org/blog/2009/03/20/commonwealth-insecurity-banking-over-http/</link>
		<comments>http://www.orzeszek.org/blog/2009/03/20/commonwealth-insecurity-banking-over-http/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 08:09:03 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[CommSec]]></category>
		<category><![CDATA[online banking]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.orzeszek.org/blog/?p=245</guid>
		<description><![CDATA[CommSec uses a non-SSL frameset to deliver sensitive financial data. You never know (without some digging) whether the content frame is at the www.comsec.com.au domain and whether it’s using SSL, so you’ll never know whether it’s safe to enter your details there.]]></description>
			<content:encoded><![CDATA[<p></p><p><span class="drop_cap">I</span>n June 2008, <a href="http://www.commbank.com.au/about-us/news/media-releases/2008/050608-news-comsecCM.aspx">CommSec introduced</a> <a href="http://www.bettertogether.com.au/">an integrated banking and trading solution</a>. The idea is that you can do all of your securities trading and all of your banking using the one website. And you get a tastefully designed CommSec Debit MasterCard too. Why wouldn’t you sign up?</p>
<h3>Logging In</h3>
<p>You arrive at the <a href="https://www.comsec.com.au/">CommSec website</a>. You’re greeted by the CommSec homepage sitting comfortably underneath a green address bar.</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-homepage.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-homepage-cropped-500x123.png" alt="CommSec homepage" title="CommSec homepage" width="500" height="123" class="aligncenter size-large wp-image-252 orz-img-no-border" /></a></p>
<p>Protected by an <a href="http://en.wikipedia.org/wiki/Extended_Validation_Certificate">Extended Validation Certificate</a>, you enter your Client ID and password. You’re taken to the next page.</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-members-only.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-members-only-cropped-500x123.png" alt="CommSec members only page" title="CommSec members only page" width="500" height="123" class="aligncenter size-large wp-image-256 orz-img-no-border" /></a></p>
<p>Your browser prompts you to remember your password. That’s okay, though, because CommSec uses a second password, one that you can’t save, when you actually want to execute a financial transaction. But what else is missing?</p>
<p><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-corners.png" alt="CommSec page corners" title="CommSec page corners" width="500" height="100" class="aligncenter size-full wp-image-267 orz-img-no-border" /></p>
<p>Oops. We’ve lost the SSL. And this appears to be by design.</p>
<h3>By Broken Design</h3>
<p>CommSec uses <a href="http://en.wikipedia.org/wiki/Framing_(World_Wide_Web)">frames</a>. The navigation bar is in one frame and the content is in another. The content frame uses SSL only when the content is sensitive. For example, it uses SSL when displaying account balances, but not when displaying market prices.</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-frames.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-frames-cropped-500x260.png" alt="CommSec frames" title="CommSec frames" width="500" height="260" class="aligncenter size-large wp-image-283 orz-img-no-border" /></a></p>
<p>But the parent page and the navigation frame never use SSL. Since the link to, say, ‘Cash Management’ is itself on an unsecured page, a <a href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">man in the middle</a> can change the link to point anywhere.</p>
<p>That means you never know where you’ll go when you click ‘Cash Management’. And since you never know (without some serious digging) whether the content frame is at the <a href="https://www.comsec.com.au/">www.comsec.com.au</a> domain and whether it’s using SSL, you’ll never know whether it’s safe to enter your details there.</p>
<h3>Mitigating Factors</h3>
<p>CommSec’s site has some characteristics that make man-in-the-middle attacks more difficult. First, the authentication cookie is an SSL-only cookie.</p>
<p><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-auth-cookie.png" alt="CommSec authentication cookie" title="CommSec authentication cookie" width="481" height="416" class="aligncenter size-full wp-image-260 orz-img-no-border" /></p>
<p>A man in the middle cannot, therefore, acquire that cookie. He or she would need to use some social engineering to get your credentials. For example, the man in the middle could prompt you for your Client ID and password. You’re likely to trust such a prompt, since you came to the site independently and CommSec does itself prompt for such confirmation.</p>
<p><a href="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-trade-confirmation.png"><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-trade-confirmation-cropped.png" alt="CommSec trade confirmation" title="CommSec trade confirmation" width="370" height="310" class="aligncenter size-full wp-image-262 orz-img-border" /></a></p>
<p>The second mitigating factor is that CommSec uses (optional) SMS security. Whenever you make a payment to a third party (and in certain other circumstances), CommSec will send you a one-time code to your mobile phone.</p>
<p><img src="http://www.orzeszek.org/blog/wp-content/uploads/2009/03/commsec-sms-auth-code.png" alt="CommSec SMS authorisation code" title="CommSec SMS authorisation code" width="320" height="480" class="aligncenter size-full wp-image-280 orz-img-border" /></p>
<p>But, again, social engineering should work. The man in the middle can merely ask you for the code when you go to check your balances, or your details, or when you attempt to perform some transaction.</p>
<h3>Conclusion</h3>
<p>Delivering sensitive information over HTTPS within an HTTP frame is just bad design. It hides the nature of the connection from the user, who then has no way of telling whether the information is being sent securely or not.</p>
<p>From the perspective of the user, an attack might look like this: they type the CommSec URL, making sure to include ‘https://’. They see a green address bar. They login. They’re taken to an HTTP page (as they always have been). They click the ‘Cash Management’ link, but they’re prompted to confirm their identity first by entering their details and then an SMS code. Having no reason to suspect the site, having accessed it over HTTPS with a green bar, they enter their details. They’re taken to their cash management page. Only now there’s several thousand dollars missing.</p>
<p>I understand that there are performance considerations for delivering market data, charts, etc over SSL, but this kind of design is unacceptable. It confuses already confused users, making social engineering too easy.</p>
<p><a href="http://www.grc.com/">Steve Gibson</a> would roll over in his grave, if it weren’t for the fact that he’s still alive doing a <a href="http://www.twit.tv/sn">great security podcast</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orzeszek.org/blog/2009/03/20/commonwealth-insecurity-banking-over-http/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

