<?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, 06 Feb 2012 20:16:28 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Nate Lawson</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/comment-page-1/#comment-6142</link>
		<dc:creator><![CDATA[Nate Lawson]]></dc:creator>
		<pubDate>Mon, 29 Nov 2010 19:53:48 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6142</guid>
		<description><![CDATA[The post is now up, please direct comments there (after reading, of course).

http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/]]></description>
		<content:encoded><![CDATA[<p>The post is now up, please direct comments there (after reading, of course).</p>
<p><a href="http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/" rel="nofollow">http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ara.t.howard</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/comment-page-1/#comment-6134</link>
		<dc:creator><![CDATA[ara.t.howard]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 22:59:38 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6134</guid>
		<description><![CDATA[that is really great news nate.  i&#039;ll look forward to the post!

cheers.]]></description>
		<content:encoded><![CDATA[<p>that is really great news nate.  i&#8217;ll look forward to the post!</p>
<p>cheers.</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-page-1/#comment-6133</link>
		<dc:creator><![CDATA[Nate Lawson]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 21:28:24 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6133</guid>
		<description><![CDATA[I appreciate your long and thoughtful comment. However, since this post is really not about JS crypto, I&#039;m writing a new one that will go out next week specifically about JS crypto. Please post future comments there as it will address a lot of what you&#039;ve brought up.

I agree the current app deployment model, even for heavyweight client apps, is flawed. The &quot;best&quot; commonly-used approach we have today is verifying a PGP signature with a public key that was fetched directly from the same server as the signed code.

I also agree that a server-side app offers no auditability to the client, while JS crypto at least gives some possibility of that. Server-side apps do not offer a fundamentally better or different trust model than JS crypto -- both have significant drawbacks in common. But I think there are some additional drawbacks to JS crypto that make it a worse option, even though the trust model is largely the same.

Check out the post next week and see if it helps explain why. Thanks.]]></description>
		<content:encoded><![CDATA[<p>I appreciate your long and thoughtful comment. However, since this post is really not about JS crypto, I&#8217;m writing a new one that will go out next week specifically about JS crypto. Please post future comments there as it will address a lot of what you&#8217;ve brought up.</p>
<p>I agree the current app deployment model, even for heavyweight client apps, is flawed. The &#8220;best&#8221; commonly-used approach we have today is verifying a PGP signature with a public key that was fetched directly from the same server as the signed code.</p>
<p>I also agree that a server-side app offers no auditability to the client, while JS crypto at least gives some possibility of that. Server-side apps do not offer a fundamentally better or different trust model than JS crypto &#8212; both have significant drawbacks in common. But I think there are some additional drawbacks to JS crypto that make it a worse option, even though the trust model is largely the same.</p>
<p>Check out the post next week and see if it helps explain why. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ara.t.howard</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/comment-page-1/#comment-6132</link>
		<dc:creator><![CDATA[ara.t.howard]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 03:29:16 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6132</guid>
		<description><![CDATA[nate-

i *really* appreciate your thoughtful analysis, but know that i am a developer that has developed many durable and long running systems on the basis of someone saying &quot;that won&#039;t work&quot;

hopefully you&#039;ll appreciate that i&#039;m sincerely trying to get a deep understanding of the limitations of client vs server systems and not simply trolling...  to that end i offer my gratitude in engaging in such a discussion

i hope your readers will find value in discussion, even if the end result is that i end up looking like and idiot ;-)


my commentary on your recent points follows:



&gt; - Many different JS crypto libraries

i am personally aware of only a few credible js crypto libs, such as http://www-cs-students.stanford.edu/~tjw/jsbn/, and yet am also aware of dozens of c/fortran/misc crypto libs.  of course the quality/culture of js code is a real issue...  but some basic googling doesn&#039;t seem to point to a huge proliferation of js libs.  if i&#039;ve missed some plethora of usable js crypto code please advise with urls.


&gt; - Around &lt;4 years (some much less), written by web developers

maturity != quality or security.  $ms  - No access to system security features such as PRNG

https://random.org

personally i&#039;d trust this more than some random mobile phones prng...  in fact, i think many of your arguments are quite &#039;personal computer&#039; centric... it&#039;s quite worthwhile considering that access to secure data is going to become increasingly mobile based, and that the limitations of those platforms will undoubtedly become a game changer wrt determining best practices in data security.


&gt; same origin policy only security model

i think this is a red herring.  the browser is probably the *only* example of ubiquitous code/security sandbox in existence - despite the efforts of sun microsystems...  same orgin is better that *no* security model.  consider that most users have any number of application setup for &#039;auto update&#039; on their systems - with root access no less - and that the kernel (ignoring se-linux, etc) offers absolutely zero protected from executing abritrary *.so&#039;s.  it&#039;s actually very odd to me that people consider with great deliberation the merits of executing arbitrary javascript when almost no one understands nor cares how osx or ubuntu dlls are verified, signed, and trusted...

it brings to mind a scenario i was once in: a &#039;security&#039; guy refused to install a verison of my software on our .gov systems...  i pointed out that the mac he was running came out of the box with an older, flawed, version of the software and that i, the author, was suggesting he updated to a newer, more secure version of the software.  he ignored me, despite the fact that apple had never contacted me and had no idea if i&#039;d released improvements to the oss package they&#039;d included from my repos...  this is a conrete example of how the magical process if pulling down loads of software from the intertubes and running it generally goes through a very lax security audit.

summary: unless you can provide some *general* mechanism for how users should download, apply trust, and execute software from the internet, including system and arbitrary third party dlls - i dont&#039;s see why js code should be subject to some special treatment/consideration - it&#039;s the only programming language in the world with a standards based security sandbox!

&gt; - User audits crypto code every time they connect to the site (note: no users actually do this), no way to detect trojans

i&#039;m unclear how https and certs (trust chains) don&#039;t solve this.  if they do not it would seem that the &#039;server side encryption is better&#039; argument would immediately fall down.  right?  consider: what version of openssl is the server running?  where did they get it from? how do i know this?]]></description>
		<content:encoded><![CDATA[<p>nate-</p>
<p>i *really* appreciate your thoughtful analysis, but know that i am a developer that has developed many durable and long running systems on the basis of someone saying &#8220;that won&#8217;t work&#8221;</p>
<p>hopefully you&#8217;ll appreciate that i&#8217;m sincerely trying to get a deep understanding of the limitations of client vs server systems and not simply trolling&#8230;  to that end i offer my gratitude in engaging in such a discussion</p>
<p>i hope your readers will find value in discussion, even if the end result is that i end up looking like and idiot ;-)</p>
<p>my commentary on your recent points follows:</p>
<p>&gt; &#8211; Many different JS crypto libraries</p>
<p>i am personally aware of only a few credible js crypto libs, such as <a href="http://www-cs-students.stanford.edu/~tjw/jsbn/" rel="nofollow">http://www-cs-students.stanford.edu/~tjw/jsbn/</a>, and yet am also aware of dozens of c/fortran/misc crypto libs.  of course the quality/culture of js code is a real issue&#8230;  but some basic googling doesn&#8217;t seem to point to a huge proliferation of js libs.  if i&#8217;ve missed some plethora of usable js crypto code please advise with urls.</p>
<p>&gt; &#8211; Around &lt;4 years (some much less), written by web developers</p>
<p>maturity != quality or security.  $ms  &#8211; No access to system security features such as PRNG</p>
<p><a href="https://random.org" rel="nofollow">https://random.org</a></p>
<p>personally i&#8217;d trust this more than some random mobile phones prng&#8230;  in fact, i think many of your arguments are quite &#8216;personal computer&#8217; centric&#8230; it&#8217;s quite worthwhile considering that access to secure data is going to become increasingly mobile based, and that the limitations of those platforms will undoubtedly become a game changer wrt determining best practices in data security.</p>
<p>&gt; same origin policy only security model</p>
<p>i think this is a red herring.  the browser is probably the *only* example of ubiquitous code/security sandbox in existence &#8211; despite the efforts of sun microsystems&#8230;  same orgin is better that *no* security model.  consider that most users have any number of application setup for &#8216;auto update&#8217; on their systems &#8211; with root access no less &#8211; and that the kernel (ignoring se-linux, etc) offers absolutely zero protected from executing abritrary *.so&#8217;s.  it&#8217;s actually very odd to me that people consider with great deliberation the merits of executing arbitrary javascript when almost no one understands nor cares how osx or ubuntu dlls are verified, signed, and trusted&#8230;</p>
<p>it brings to mind a scenario i was once in: a &#8216;security&#8217; guy refused to install a verison of my software on our .gov systems&#8230;  i pointed out that the mac he was running came out of the box with an older, flawed, version of the software and that i, the author, was suggesting he updated to a newer, more secure version of the software.  he ignored me, despite the fact that apple had never contacted me and had no idea if i&#8217;d released improvements to the oss package they&#8217;d included from my repos&#8230;  this is a conrete example of how the magical process if pulling down loads of software from the intertubes and running it generally goes through a very lax security audit.</p>
<p>summary: unless you can provide some *general* mechanism for how users should download, apply trust, and execute software from the internet, including system and arbitrary third party dlls &#8211; i dont&#8217;s see why js code should be subject to some special treatment/consideration &#8211; it&#8217;s the only programming language in the world with a standards based security sandbox!</p>
<p>&gt; &#8211; User audits crypto code every time they connect to the site (note: no users actually do this), no way to detect trojans</p>
<p>i&#8217;m unclear how https and certs (trust chains) don&#8217;t solve this.  if they do not it would seem that the &#8216;server side encryption is better&#8217; argument would immediately fall down.  right?  consider: what version of openssl is the server running?  where did they get it from? how do i know this?</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-page-1/#comment-6131</link>
		<dc:creator><![CDATA[Nate Lawson]]></dc:creator>
		<pubDate>Tue, 23 Nov 2010 21:21:36 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6131</guid>
		<description><![CDATA[You advocate changing this:

- Small set of libraries (OpenSSL, pycrypto, ?)
- Has been in existence for 10+ years, usually at least one actual cryptographer as maintainer
- Access to proven platform security features (/dev/urandom, ACLs, UIDs)
- Audit library once and then use traditional modification detection (tripwire etc.)

To this:

- Many different JS crypto libraries
- Around &lt;4 years (some much less), written by web developers
- No access to system security features such as PRNG, same origin policy only security model
- User audits crypto code every time they connect to the site (note: no users actually do this), no way to detect trojans]]></description>
		<content:encoded><![CDATA[<p>You advocate changing this:</p>
<p>- Small set of libraries (OpenSSL, pycrypto, ?)<br />
- Has been in existence for 10+ years, usually at least one actual cryptographer as maintainer<br />
- Access to proven platform security features (/dev/urandom, ACLs, UIDs)<br />
- Audit library once and then use traditional modification detection (tripwire etc.)</p>
<p>To this:</p>
<p>- Many different JS crypto libraries<br />
- Around &lt;4 years (some much less), written by web developers<br />
- No access to system security features such as PRNG, same origin policy only security model<br />
- User audits crypto code every time they connect to the site (note: no users actually do this), no way to detect trojans</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ara.t.howard</title>
		<link>http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/comment-page-1/#comment-6129</link>
		<dc:creator><![CDATA[ara.t.howard]]></dc:creator>
		<pubDate>Mon, 22 Nov 2010 20:43:52 +0000</pubDate>
		<guid isPermaLink="false">http://rdist.root.org/?p=408#comment-6129</guid>
		<description><![CDATA[i think we&#039;re talking at cross purposes.  i&#039;m talking about doing BOTH server side and client side crypto.  most of the &#039;disadvantages&#039; you list surrounding having to use ssl/caching are just silly and trivial to deal with.  comparing versions too: any revision tool does this.  no one denies that server side crypto *MUST* be used to secure a system.  the point you seem to be making, that js crypto is valueless, denies the reality that some people want to keep data, stored on a server, secret from that server in addition to keeping it safe from random attackers.  and wrt this goal i think js crypto has a place/need.

i personally refuse to consider that it is either value-less or impossible.  mark my words: we&#039;ll see more of it as the clould, data everywhere, and js continue to be part of the technological landscape.

at a meta-level *all* crypto code is run from some random server.  in the case of a browser/js the server is know and the container designed to be a security sandbox.  the sandbox is watched by many eyes.  contrast this to

  sudo rpo install openssl

or

  sudo python setup.py install package.py

or, worse

 (double click something.exe)

or, very worse

 (automatically upgrade my system while i&#039;m at the coffee shop)


and i think one can begin to imagine how, one day, it might be considered crazy to install and execute crypto code from some random operating system repository. 

food for thought.]]></description>
		<content:encoded><![CDATA[<p>i think we&#8217;re talking at cross purposes.  i&#8217;m talking about doing BOTH server side and client side crypto.  most of the &#8216;disadvantages&#8217; you list surrounding having to use ssl/caching are just silly and trivial to deal with.  comparing versions too: any revision tool does this.  no one denies that server side crypto *MUST* be used to secure a system.  the point you seem to be making, that js crypto is valueless, denies the reality that some people want to keep data, stored on a server, secret from that server in addition to keeping it safe from random attackers.  and wrt this goal i think js crypto has a place/need.</p>
<p>i personally refuse to consider that it is either value-less or impossible.  mark my words: we&#8217;ll see more of it as the clould, data everywhere, and js continue to be part of the technological landscape.</p>
<p>at a meta-level *all* crypto code is run from some random server.  in the case of a browser/js the server is know and the container designed to be a security sandbox.  the sandbox is watched by many eyes.  contrast this to</p>
<p>  sudo rpo install openssl</p>
<p>or</p>
<p>  sudo python setup.py install package.py</p>
<p>or, worse</p>
<p> (double click something.exe)</p>
<p>or, very worse</p>
<p> (automatically upgrade my system while i&#8217;m at the coffee shop)</p>
<p>and i think one can begin to imagine how, one day, it might be considered crazy to install and execute crypto code from some random operating system repository. </p>
<p>food for thought.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

