<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Google Tech Talk on common crypto flaws</title>
	<atom:link href="http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/feed/" rel="self" type="application/rss+xml" />
	<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/</link>
	<description>Embedded security, crypto, software protection</description>
	<lastBuildDate>Mon, 08 Mar 2010 21:19:29 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Nate Lawson</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5495</link>
		<dc:creator>Nate Lawson</dc:creator>
		<pubDate>Mon, 11 Jan 2010 21:24:42 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5495</guid>
		<description>I&#039;d rather have the crypto code on a locked-down server I control than pushing it to some unknown browser environment. Since no users actually are capable or even motivated to audit the JS crypto they receive anew each session, there is no advantage. Given the disadvantages listed before, I&#039;m still unconvinced.</description>
		<content:encoded><![CDATA[<p>I&#8217;d rather have the crypto code on a locked-down server I control than pushing it to some unknown browser environment. Since no users actually are capable or even motivated to audit the JS crypto they receive anew each session, there is no advantage. Given the disadvantages listed before, I&#8217;m still unconvinced.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco Sullo</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5493</link>
		<dc:creator>Francesco Sullo</dc:creator>
		<pubDate>Mon, 11 Jan 2010 21:10:08 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5493</guid>
		<description>You listed some interesting points. User has some difficult to verify the code and an hacker can discover holes in the code. You&#039;re right. But if the crypto is server side the user can verify nothing at all. So the assumption is that the server side programmers mantain a good system and we trust them.

If you assume that the provider of the JS crypto has the same care of the server-side crypto, something changes. The difference:

* a well programmed host-proof hosting app garantees the user privacy
* a good programmed server-side crypto app cannot garantee it

Mantain a HPH system is more critic that mantain a server-side crypto system, it requires more attention, I know it. But I think that the choice depends from your objective.</description>
		<content:encoded><![CDATA[<p>You listed some interesting points. User has some difficult to verify the code and an hacker can discover holes in the code. You&#8217;re right. But if the crypto is server side the user can verify nothing at all. So the assumption is that the server side programmers mantain a good system and we trust them.</p>
<p>If you assume that the provider of the JS crypto has the same care of the server-side crypto, something changes. The difference:</p>
<p>* a well programmed host-proof hosting app garantees the user privacy<br />
* a good programmed server-side crypto app cannot garantee it</p>
<p>Mantain a HPH system is more critic that mantain a server-side crypto system, it requires more attention, I know it. But I think that the choice depends from your objective.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Lawson</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5491</link>
		<dc:creator>Nate Lawson</dc:creator>
		<pubDate>Mon, 11 Jan 2010 19:12:54 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5491</guid>
		<description>I appreciate that you are getting down to the actual details, but it doesn&#039;t change the fact that JS crypto is being oversold to the public. Just because you haven&#039;t had known security issues in 3 years doesn&#039;t mean the system provides the type of security that users think they&#039;re getting.

The one thing JS crypto gets you that server-side crypto does not is client-side auditability. That&#039;s it. However, this benefit comes with tremendous caveats that I think far outweigh it.

* The user has to be a cryptographer and can detect subtle cryptographic flaws. Note: this ignores all the &lt;a href=&quot;http://www.cryptovirology.com/cryptovfiles/research.html&quot; rel=&quot;nofollow&quot;&gt;malicious crypto&lt;/a&gt; research by Yung et al and assumes this is actually doable in reasonable time.

* The user always does &quot;View Source&quot; each time she connects to be sure the code is identical. If it was changed for bugfixes or whatever, she has to re-review the entire thing.

* The user always loads everything over SSL to be sure she&#039;s getting untampered code and there is no MITM.

* The JS code does not have cache problems where users keep running old code after you&#039;ve fixed a flaw and tried to upgrade them.

* You periodically audit all your servers to be sure they aren&#039;t serving up malicious or outdated JS code. Note: this audit cannot be done via a client because an attacker can return different code to you than your users, based on src IP.

Since no one does all this and the disadvantages are so significant, JS crypto is worse than server-side crypto.</description>
		<content:encoded><![CDATA[<p>I appreciate that you are getting down to the actual details, but it doesn&#8217;t change the fact that JS crypto is being oversold to the public. Just because you haven&#8217;t had known security issues in 3 years doesn&#8217;t mean the system provides the type of security that users think they&#8217;re getting.</p>
<p>The one thing JS crypto gets you that server-side crypto does not is client-side auditability. That&#8217;s it. However, this benefit comes with tremendous caveats that I think far outweigh it.</p>
<p>* The user has to be a cryptographer and can detect subtle cryptographic flaws. Note: this ignores all the <a href="http://www.cryptovirology.com/cryptovfiles/research.html" rel="nofollow">malicious crypto</a> research by Yung et al and assumes this is actually doable in reasonable time.</p>
<p>* The user always does &#8220;View Source&#8221; each time she connects to be sure the code is identical. If it was changed for bugfixes or whatever, she has to re-review the entire thing.</p>
<p>* The user always loads everything over SSL to be sure she&#8217;s getting untampered code and there is no MITM.</p>
<p>* The JS code does not have cache problems where users keep running old code after you&#8217;ve fixed a flaw and tried to upgrade them.</p>
<p>* You periodically audit all your servers to be sure they aren&#8217;t serving up malicious or outdated JS code. Note: this audit cannot be done via a client because an attacker can return different code to you than your users, based on src IP.</p>
<p>Since no one does all this and the disadvantages are so significant, JS crypto is worse than server-side crypto.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco Sullo</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5490</link>
		<dc:creator>Francesco Sullo</dc:creator>
		<pubDate>Fri, 08 Jan 2010 10:49:08 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5490</guid>
		<description>Hi Nate, I agree that &quot;Both models have the same root of trust: the server&quot;.

I didn&#039;t point the attention on trust, but on the possibility of create a crypto system that properly uses Javascript. I am a founder of Passpack, an online password manager. We launched our tecnology in december 2006 and now we have about 70,000 users. During theese years, we haven&#039;t have security issues. This says something.

I know that we must trust a web system, always. But a well made Host-proof Hosting system offers same advantages for the user, because safe her privacy.

To grab your data, I need to create a back door in the code. Is is a clear violation of the contract with the user and you can notice the modification.

Instead, if the encryption is delegated to the server, during the job I can make a copy of you data and you can not know it.</description>
		<content:encoded><![CDATA[<p>Hi Nate, I agree that &#8220;Both models have the same root of trust: the server&#8221;.</p>
<p>I didn&#8217;t point the attention on trust, but on the possibility of create a crypto system that properly uses Javascript. I am a founder of Passpack, an online password manager. We launched our tecnology in december 2006 and now we have about 70,000 users. During theese years, we haven&#8217;t have security issues. This says something.</p>
<p>I know that we must trust a web system, always. But a well made Host-proof Hosting system offers same advantages for the user, because safe her privacy.</p>
<p>To grab your data, I need to create a back door in the code. Is is a clear violation of the contract with the user and you can notice the modification.</p>
<p>Instead, if the encryption is delegated to the server, during the job I can make a copy of you data and you can not know it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nate Lawson</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5489</link>
		<dc:creator>Nate Lawson</dc:creator>
		<pubDate>Fri, 08 Jan 2010 06:48:48 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5489</guid>
		<description>How can it be a &quot;Host-proof&quot; system when the user is generating the keys and then encrypting the data using Javascript code downloaded from the Host?

Javascript has no unique root of trust. Here is a &quot;secret keeper&quot; application that encrypts the user&#039;s data using a password they enter into the browser. All communications are over SSL to prevent MITM.

Design #1:
A. Client gets HTML form
B. Client posts data and password
C. Server runs code that encrypts data with password and stores it

Attack: compromise server and trojan the code

Design #2:
A. Client gets HTML form and Javascript code
B. Client runs JS code that encrypts data with password
C. Client posts encrypted data to the server

Attack: compromise server and trojan the JS code

Both models have the same root of trust: the server. Everything else is just handwaving.</description>
		<content:encoded><![CDATA[<p>How can it be a &#8220;Host-proof&#8221; system when the user is generating the keys and then encrypting the data using Javascript code downloaded from the Host?</p>
<p>Javascript has no unique root of trust. Here is a &#8220;secret keeper&#8221; application that encrypts the user&#8217;s data using a password they enter into the browser. All communications are over SSL to prevent MITM.</p>
<p>Design #1:<br />
A. Client gets HTML form<br />
B. Client posts data and password<br />
C. Server runs code that encrypts data with password and stores it</p>
<p>Attack: compromise server and trojan the code</p>
<p>Design #2:<br />
A. Client gets HTML form and Javascript code<br />
B. Client runs JS code that encrypts data with password<br />
C. Client posts encrypted data to the server</p>
<p>Attack: compromise server and trojan the JS code</p>
<p>Both models have the same root of trust: the server. Everything else is just handwaving.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco Sullo</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/#comment-5488</link>
		<dc:creator>Francesco Sullo</dc:creator>
		<pubDate>Fri, 08 Jan 2010 02:10:42 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-5488</guid>
		<description>A great talk. I have seen it just now.
Personally, I don&#039;t agree with your your slide #9. You assume that the keys to encrypt/decrypt the data via Javascript are on the server that provide the data itself. In a Host-proof Hosting system this isn&#039;t true. Only the user has their keys and all the data are sent to the server after that the data has been encrypted in the browser.
If you adopt standard algorythm (AES, SHA256, RSA...), avoid XSS problems, etc. you can create a good system that fully protect privacy of the users.</description>
		<content:encoded><![CDATA[<p>A great talk. I have seen it just now.<br />
Personally, I don&#8217;t agree with your your slide #9. You assume that the keys to encrypt/decrypt the data via Javascript are on the server that provide the data itself. In a Host-proof Hosting system this isn&#8217;t true. Only the user has their keys and all the data are sent to the server after that the data has been encrypted in the browser.<br />
If you adopt standard algorythm (AES, SHA256, RSA&#8230;), avoid XSS problems, etc. you can create a good system that fully protect privacy of the users.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
