<?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>Mozilla Security Blog &#187; Firefox</title>
	<atom:link href="http://blog.mozilla.com/security/tag/firefox/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mozilla.com/security</link>
	<description></description>
	<lastBuildDate>Fri, 04 Nov 2011 21:13:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Cooling Down the Firesheep</title>
		<link>http://blog.mozilla.com/security/2010/10/27/cooling-down-the-firesheep/</link>
		<comments>http://blog.mozilla.com/security/2010/10/27/cooling-down-the-firesheep/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 17:30:20 +0000</pubDate>
		<dc:creator>Sid Stamm</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[HSTS]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[strict-transport-security]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/security/?p=410</guid>
		<description><![CDATA[There have been a number of reports about a new Firesheep tool that exposes a weakness in website security, letting attackers snoop on people using public networks, steal their cookies, access their accounts and pose as them on sites such as Facebook and Twitter. While the developers chose to use the Firefox add-on API, the [...]]]></description>
			<content:encoded><![CDATA[<p>There have been a number of reports about a new Firesheep tool that exposes a weakness in website security, letting attackers snoop on people using public networks, steal their cookies, access their accounts and pose as them on sites such as Facebook and Twitter. While the developers chose to use the Firefox add-on API, the tool could have just as easily been written and distributed as a stand-alone program.</p>
<p>The introduction of this tool reinforces the importance of websites configuring themselves to require secure connections.</p>
<p>Not too long ago we announced <a href="http://blog.mozilla.com/security/2010/08/27/http-strict-transport-security/">HTTP Strict-Transport-Security</a> that can be used to &#8212; among other things &#8212; ensure your Facebook or Twitter cookies can&#8217;t be sniffed by someone using a tool like Firesheep.  In fact, it&#8217;s built into Firefox 4.  To protect their users from the this attack, a site simply needs to set <a href="http://blog.sidstamm.com/2010/08/http-strict-transport-security-has.html">the Strict-Transport-Security HTTP header</a> when they serve you a secure log-in page, and make the rest of their site available over HTTPS.  Firefox will take care of the rest: automatically fetching that site over a secure connection and blocking any third parties from seeing the unencrypted traffic.</p>
<p>We recommend that website authors make use of this header in order to protect their users.</p>
<p>But this technology is new to Firefox 4.  To get HTTP Strict-Transport-Security support in Firefox 3.6, you will need to install an add-on that implements it such as <a href="https://addons.mozilla.org/en-US/firefox/addon/12714/">ForceTLS</a>.  ForceTLS also gives you a way to opt-in to this extra security for sites who haven&#8217;t yet started sending that helpful HTTP header; it provides a user interface to add and remove sites that should never be contacted insecurely.  Both HSTS and the manual opt-in are also available as part of NoScript.  However, manually opting-in to HSTS on a site which does not yet make itself fully available securely may break the site; not all sites are ready for secure access.</p>
<p>If you are already using Firefox 4 beta or nightly versions, you can enable the additional controls with <a href="https://addons.mozilla.org/en-US/firefox/addon/246797/">the STS-UI add-on</a>.  While the core Strict-Transport-Security features are already built into Firefox 4, this UI gives advanced users the ability to further ensure the security of their connections.  </p>
<p>Sid Stamm<br />
Conspiracy Theorist</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/security/2010/10/27/cooling-down-the-firesheep/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>X-Frame-Options</title>
		<link>http://blog.mozilla.com/security/2010/09/08/x-frame-options/</link>
		<comments>http://blog.mozilla.com/security/2010/09/08/x-frame-options/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 21:56:31 +0000</pubDate>
		<dc:creator>Sid Stamm</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[clickjacking]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/security/?p=380</guid>
		<description><![CDATA[One of the security enhancements included with Firefox 3.6.9 is support for the x-frame-options header. This optional header can be included within the HTTP response to instruct the client's browser on whether the returned content is allowed to be framed by other pages. ]]></description>
			<content:encoded><![CDATA[<p>One of the security enhancements included with Firefox 3.6.9 is support for the x-frame-options header. This optional header can be included within the HTTP response to instruct the client&#8217;s browser on whether the returned content is allowed to be framed by other pages. </p>
<p>A website can choose to include the x-frame-options header to protect against malicious framing of web content by third parties.  For example a malicious site might frame a website from another domain and surround the framed site with advertisements. Alternatively, a malicious site could use a CSS layer attack called <a href="http://www.owasp.org/index.php/Clickjacking">ClickJacking</a> to trick users into performing unintended actions within the framed website that is obscured by overlaid CSS layers.</p>
<p>The x-frame-options header supports the following values:<br />
SAMEORIGIN &#8211; allows only sites from the same domain to frame the page<br />
DENY &#8211; prevents any site from framing the page</p>
<p>Additional Reading:<br />
<a href="https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header">Mozilla Developer Network article</a><br />
<a href="http://blogs.msdn.com/b/ie/archive/2009/01/27/ie8-security-part-vii-clickjacking-defenses.aspx">Microsoft Developer Network article</a><br />
<a href="http://www.owasp.org/index.php/Clickjacking#Defending_with_response_headers">OWASP Clickjacking Article</a></p>
<p>Michael Coates<br />
Web Security</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/security/2010/09/08/x-frame-options/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Plugging the CSS History Leak</title>
		<link>http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/</link>
		<comments>http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 13:41:50 +0000</pubDate>
		<dc:creator>Sid Stamm</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[history]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/security/?p=263</guid>
		<description><![CDATA[Privacy isn&#8217;t always easy. We&#8217;re close to landing some changes in the Firefox development tree that will fix a privacy leak that browsers have been struggling with for some time. We&#8217;re really excited about this fix, we hope other browsers will follow suit. It&#8217;s a tough problem to fix, though, so I&#8217;d like to describe [...]]]></description>
			<content:encoded><![CDATA[<h3>Privacy isn&#8217;t always easy.</h3>
<p>We&#8217;re close to landing some changes in the Firefox development tree that will fix a privacy leak that browsers have been struggling with for some time. We&#8217;re really excited about this fix, we hope other browsers will follow suit. It&#8217;s a tough problem to fix, though, so I&#8217;d like to describe how we ended up with this approach.</p>
<h4>History Sniffing</h4>
<p><img src="http://blog.mozilla.com/security/files/2010/03/visitedunvisited.png" alt="Visited and Unvisited Links" title="visitedunvisited" width="73" height="39" class="alignright size-full wp-image-302" style="margin:10px;" />Links can look different on web sites based on whether or not you&#8217;ve visited the page they reference.  You&#8217;ve probably seen this before: in some cases, visited links are purple instead of blue.  This is just one of the many features web designers use to make the web the best it can be, and for the most part that&#8217;s a good thing.</p>
<p>The problem is that appearance can be detected by the page showing you links, cluing the page into which of the presented pages you&#8217;ve been to.  The result: not only can you see where you&#8217;ve been, but so can the web site!</p>
<p>Originally specified as a useful feature for the Web, visited link styling has been part of the web for&#8230;  well, forever.  So this is a pretty old problem, and resurfaces every once in a while to generate <a href="http://startpanic.com/">more</a> <a href="http://www.haveyourfriendsbeenthere.com/">paranoid</a> <a href="http://caughtyouwatching.com/">netizens</a>.</p>
<p>The most obvious fix is to disable different styles for visited versus unvisted links, but this would be employed at the expense of utility:  while sites can no longer figure out which links you&#8217;ve clicked, neither can you. David Baron has implemented <a href=" http://dbaron.org/mozilla/visited-privacy">a way to help keep users&#8217; data private while minimizing the effect on the web</a>, and we are deploying it to protect our users.  We think this represents the best solution to the problem, and we&#8217;ll be delighted if other browsers approach this the same way.</p>
<h3>Technical Details.</h3>
<p>The biggest threats here are the high-bandwidth techniques, or those that extract lots of information from users&#8217; browsers quickly.  These are particularly worrisome since they enable not only very focused attacks, but also the widespread brute-force attacks that are, in general, more useful to a variety of attackers (potentially including <a href="http://panopticlick.eff.org">fingerprinting</a>).</p>
<p>The JavaScript function <tt>getComputedStyle()</tt> and its related functions are <em>fast</em> and can be used to guess visitedness at <a href="http://cssfingerprint.com/results">hundreds of thousands of links per minute</a>.   To make it harder for web sites to figure out where you&#8217;ve been without radically changing the web, we&#8217;re approaching the way we style links in three fairly subtle ways:</p>
<p><strong>Change 1: Layout-Based Attacks</strong><br />
First of all, we&#8217;re limiting what types of styling can be done to visited links to differentiate them from unvisited links.  Visited links can only be different in color: foreground, background, outline, border, SVG stroke and fill colors.  All other style changes either leak the visitedness of the link by loading a resource or changing position or size of the styled content in the document, which can be detected and used to identify visited links.</p>
<p>While we are changing what is allowed in CSS, the CSS 2.1 specification takes into consideration how visited links can be abused:</p>
<blockquote style="margin-left: 40px; "><p>
&#8220;UAs may therefore treat all links as unvisited links, or implement other measures to preserve the user&#8217;s privacy while rendering visited and unvisited links differently.&#8221; [<a href="http://www.w3.org/TR/CSS2/">CSS 2 Specification</a>]</p></blockquote>
<p><strong>Change 2: Some Timing Attacks</strong><br />
Next, we are changing some of the guts of our layout engine to provide a fairly uniform flow of execution to minimize differences in layout time for visited and unvisited links.  The changes cause all styles to be resolved on all links for both visited and unvisited states, and it is stored; then, when the link is styled, the appropriate set of styles is chosen making the code paths for visited and unvisited links essentially the same length.  This should eliminate some of the easy-to-mount timing attacks.</p>
<p><strong>Change 3: Computed Style Attacks</strong><br />
JavaScript is not going to have access to the same style data it used to. When a web page tries to get the computed style of a link (or any of its sub-elements), Firefox will give it unvisited style values.</p>
<h3>What does this mean for users?</h3>
<p>For the most part, users shouldn&#8217;t notice a change in how the web works.  A few web sites may look a little different, but visited links will still show up differently colored.   A few sites that use more than color to differentiate visited links may look slightly broken at first while they adjust to these changes, but we think it&#8217;s the right trade-off to be sure we protect our users&#8217; privacy.  This is a troubling and well-understood attack; as much as we hate to break any portion of the web, we need to shut the attack down to the extent we can.</p>
<p>We have to be realistic, though: there are many ways all browsers leak information about you, and fixing CSS history sniffing <a href="http://dbaron.org/mozilla/visited-privacy#limits">will not block all of these leaks</a>.  But we believe it&#8217;s important to stop the scariest, most effective history attacks any way we can since it will be a big win for users&#8217; privacy.</p>
<p>If the remaining attacks worry you, or you can&#8217;t wait for us to ship this fix, version 3.5 and newer versions of Firefox already allow you to disable all visited styling (immediately stops this attack) by setting the <a href="http://support.mozilla.com/tiki-view_forum_thread.php?locale=hu&amp;comments_parentId=438422&amp;forumId=1#threadId438464"><tt>layout.css.visited_links_enabled</tt> option in <tt>about:config</tt> to <tt>false</tt></a>.  While this will plug the history leak, you&#8217;ll no longer see any visited styling anywhere.</p>
<h3>Enhancing Privacy on the Web.</h3>
<p>We want to bridge the gap between our users&#8217; expectations of privacy and what actually happens on the web.  Sometimes users have an expectation that we preserve their privacy a certain way, and if we can, we want to live up to it. Privacy isn&#8217;t a feature that can simply be added to a browser, though; it often comes at the expense of utility.  We think we&#8217;ve found a fix that will balance flexibility for web developers while providing a safer experience for our users on the web.</p>
<p>Sid Stamm, Mozilla Security</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/security/2010/03/31/plugging-the-css-history-leak/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Locking up the valuables: Opt-in security with ForceTLS</title>
		<link>http://blog.mozilla.com/security/2009/07/27/locking-up-the-valuables-opt-in-security-with-forcetls/</link>
		<comments>http://blog.mozilla.com/security/2009/07/27/locking-up-the-valuables-opt-in-security-with-forcetls/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 00:17:54 +0000</pubDate>
		<dc:creator>Sid Stamm</dc:creator>
				<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[forcetls]]></category>
		<category><![CDATA[https]]></category>

		<guid isPermaLink="false">http://blog.mozilla.com/security/?p=143</guid>
		<description><![CDATA[Computers are increasingly mobile and, to serve them, more and more public spaces (cafes, airports, libraries, etc.) offer their customers WiFi access. When a web browser on such a network requests a resource, it is implicitly trusting the hotspot not to interfere with the communication.  A malicious computer hooked up to the network could alter [...]]]></description>
			<content:encoded><![CDATA[<p>Computers are increasingly mobile and, to serve them, more and more public spaces (cafes, airports, libraries, etc.) offer their customers WiFi access. When a web browser on such a network requests a resource, it is implicitly trusting the hotspot not to interfere with the communication.  A malicious computer hooked up to the network could alter the traffic, however, and this can have some unpleasant consequences.</p>
<h3><strong>HTTP Man-In-The-Middle (MITM) attacks</strong></h3>
<p>Consider your typical online banking session:  you type &#8220;www.mybank.com&#8221; into the address bar, hit enter, and wait for the site to load.  When it shows up, you enter your password, do your banking, then log out.  This process is more-or-less automatic for many people, and the subtleties of the process disappear in the background.  More specifically, these are the steps for logging into the bank&#8217;s site:</p>
<ol>
<li>  You type &#8220;www.mybank.com&#8221; into the address bar and hit enter.
<li>  The browser assumes &#8220;www.mybank.com&#8221; should be requested over HTTP by default, so the initial request is unencrypted.
<li>  The server at &#8220;http://www.mybank.com&#8221; responds with an HTTP redirect to &#8220;https://www.mybank.com&#8221;
<li>  The secure connection is established, and a login page is served via HTTPS.
<li>  You enter your password and do your banking.
</ol>
<p>It is only after the first few swift (and often unnoticed) steps that the user is presented with a secure connection.  In a rogue hotspot, &#8220;www.mybank.com&#8221; might resolve to an attacker&#8217;s server (instead of the real thing) and the HTTPS connection may never happen.  Many users might not notice this and end up logging into an attacker&#8217;s website.</p>
<p>HTTPS is intended for both channel encryption, to thwart eavesdroppers, and for server authentication.  In the hotspot banking MITM situation, you may simply assume that no errors indicates a safe connection but in all reality the server has not been authenticated!   After all, you&#8217;re not presented with any warnings or UI indicators saying the site is an attack site.  If you&#8217;re a diligent user, you can always click Firefox&#8217;s site identity button to find out whether or not the site has authenticated itself and whether it&#8217;s encrypting to prevent eavesdropping, of course.  It&#8217;s hard to remember (and time consuming) to do that every time, especially when you&#8217;re used to logging into certain trustworthy sites automatically.  And in fact, a fake bank&#8217;s site may even have a little lock icon next to the login box that assures the user he is logging into a secure site &#8211;  many legitimate banking sites unfortunately do the same thing.</p>
<h3><strong>Asking the Browser to use HTTPS Only</strong></h3>
<p>To stop this kind of man-in-the-middle attack, where an HTTPS site is mimicked over HTTP, Collin Jackson and Adam Barth proposed <a href="https://crypto.stanford.edu/forcehttps/">something called ForceHTTPS</a> in 2008.  This is a browser feature that allows web sites to tell a browser to always request it via HTTPS, and never unencrypted HTTP.  It was intended to help eliminate the redirect from HTTP to HTTPS and minimize the chance of an insecure attack as described above.</p>
<p>We like the idea of ForceHTTPS and are working on implementing it as &#8220;ForceTLS&#8221; in Firefox with hopes it will reduce occurrences of MITM attacks and generally improve user security.  We built an add-on as a first step prototype of the feature that works in a similar fashion to the original design by Jackson and Barth.  Instead of using cookies, however, we&#8217;re asking sites to send an HTTP header &#8220;X-Force-TLS&#8221; with any securely-transmitted response.  The name of this header <em>will change in the future,</em> but for now we&#8217;re using &#8220;X-Force-TLS&#8221; as the experimental header that, when present, means:</p>
<ol>
<li> The browser should <em>only</em> attempt to access that domain via HTTPS
<li> How long this requirement should last. For example, a server can ask the HTTPS-only request to expire after three days.  This expiration timer can be reset or changed every time data is served to the client by providing a new HTTP header.
<li> Whether or not subdomains of the requested site (images.mybank.com, or login.mybank.com for example) should also be forced into HTTPS
</ol>
<p>ForceTLS can be used for more than just protection against evil hotspots; it can also be used to harden web applications against accidental unencrypted requests.  Many popular web apps can be used over both secure HTTPS and insecure HTTP connections; while you&#8217;re given the choice to pick HTTPS instead of HTTP, it&#8217;s possible that a large web app might have a HTTP URI referenced from some subtle corner of its code (by accident of course), and with Force TLS employed, this would quietly get upgraded to HTTPS and prevent exposing any unencrypted data on the network.</p>
<p>Check out our prototype, and tell us what you think!  The browser extension and source code are available on AMO (<a href="https://addons.mozilla.org/en-US/firefox/addon/12714">https://addons.mozilla.org/en-US/firefox/addon/12714</a>).</p>
<p>Sid Stamm<br />
Securinator</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mozilla.com/security/2009/07/27/locking-up-the-valuables-opt-in-security-with-forcetls/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

