<?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/"
		>
<channel>
	<title>Comments on: Passpack is not LastPass. We Have a Big Friend</title>
	<atom:link href="http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/</link>
	<description>Passpack keeps your logins safe, organized and available 24/7. You can share passwords with your team in 100% privacy.</description>
	<lastBuildDate>Fri, 14 Jun 2013 15:59:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4</generator>
	<item>
		<title>By: Francesco</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4794</link>
		<dc:creator>Francesco</dc:creator>
		<pubDate>Fri, 08 Jul 2011 21:45:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4794</guid>
		<description>@Jon :)</description>
		<content:encoded><![CDATA[<p>@Jon :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4793</link>
		<dc:creator>Jon</dc:creator>
		<pubDate>Fri, 08 Jul 2011 21:15:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4793</guid>
		<description>I love this post.  I&#039;ve read it several times and it has really helped me to understand Passpack.  I think a good packing key would be &quot;francesco taught me about hashes and distribution&quot;

Now that&#039;s strong!</description>
		<content:encoded><![CDATA[<p>I love this post.  I&#8217;ve read it several times and it has really helped me to understand Passpack.  I think a good packing key would be &#8220;francesco taught me about hashes and distribution&#8221;</p>
<p>Now that&#8217;s strong!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4785</link>
		<dc:creator>Francesco</dc:creator>
		<pubDate>Sun, 26 Jun 2011 21:33:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4785</guid>
		<description>@Shawn, no.

1. The maskerkey is generated randomly in the browser
2. The masterkey is encrypted using a 256-bit derivation of the Packing Key
3. The encrypted masterkey is sent to the server
4. The server send it to the remote service that encrypts it again
5. The final double-encrypted masterkey is finally saved.

So all depends on the Packing Key. Since the Packing Key is hashed in the browser and only the hash is sent to the server, the process is Host-proof Hosting.
Obviously, as Ivan says, we can performe a brute force attack to our system. But... why we should do it?

@Ivan, I think that the best solution is always to put your data not in only one place. In 2008 we introduced &lt;a href=&quot;http://www.passpack.com/en/passpack-desktop&quot; rel=&quot;nofollow&quot;&gt;Passpack Desktop&lt;/a&gt; in order to offer a desktop application that can be used stand-alone or like a full local backup of the online account. It is a must, in my opinion. But, unfortunately, only a small percentage of the users seems to use it.</description>
		<content:encoded><![CDATA[<p>@Shawn, no.</p>
<p>1. The maskerkey is generated randomly in the browser<br />
2. The masterkey is encrypted using a 256-bit derivation of the Packing Key<br />
3. The encrypted masterkey is sent to the server<br />
4. The server send it to the remote service that encrypts it again<br />
5. The final double-encrypted masterkey is finally saved.</p>
<p>So all depends on the Packing Key. Since the Packing Key is hashed in the browser and only the hash is sent to the server, the process is Host-proof Hosting.<br />
Obviously, as Ivan says, we can performe a brute force attack to our system. But&#8230; why we should do it?</p>
<p>@Ivan, I think that the best solution is always to put your data not in only one place. In 2008 we introduced <a href="http://www.passpack.com/en/passpack-desktop" rel="nofollow">Passpack Desktop</a> in order to offer a desktop application that can be used stand-alone or like a full local backup of the online account. It is a must, in my opinion. But, unfortunately, only a small percentage of the users seems to use it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shawn Willden</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4784</link>
		<dc:creator>Shawn Willden</dc:creator>
		<pubDate>Sun, 26 Jun 2011 20:17:33 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4784</guid>
		<description>So... if the master key is derived by this call to the Spino service, and it is then used to encrypt the bundle of keys used to encrypt the contents of the pack, that means that the master key passes through Passpack&#039;s servers.  That, in turn, means that Passpack has the key needed to decrypt the keys needed to decrypt my pack.

It seems like you&#039;ve eliminated the Host-proof Hosting.</description>
		<content:encoded><![CDATA[<p>So&#8230; if the master key is derived by this call to the Spino service, and it is then used to encrypt the bundle of keys used to encrypt the contents of the pack, that means that the master key passes through Passpack&#8217;s servers.  That, in turn, means that Passpack has the key needed to decrypt the keys needed to decrypt my pack.</p>
<p>It seems like you&#8217;ve eliminated the Host-proof Hosting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Skip Franklin</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4768</link>
		<dc:creator>Skip Franklin</dc:creator>
		<pubDate>Fri, 17 Jun 2011 17:15:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4768</guid>
		<description>Outstanding writeup! Thanks for sharing a bit of your philosophy and implementation in this critical area of web security.</description>
		<content:encoded><![CDATA[<p>Outstanding writeup! Thanks for sharing a bit of your philosophy and implementation in this critical area of web security.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivan Naitana</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4758</link>
		<dc:creator>Ivan Naitana</dc:creator>
		<pubDate>Wed, 08 Jun 2011 18:34:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4758</guid>
		<description>@Francesco:

Well, I actually thought that the Packing Key couldn&#039;t still be changed at all (I tried to some years ago, and didn&#039;t check back lately).

Anyway you&#039;re right, I overrated the security of having the Pack encrypted with a key which is never known in any of its derivations by the server. After all, running a brute force attack against the Pack (or the Master Key) to discover the &quot;private&quot; encryption key wouldn&#039;t be harder than running an attack against the hashed Packing Key (actually, I guess that thanks to Spino the latter could be even harder).

But still I thought that you could use such an option for &quot;political&quot; reasons.

You could say that it makes your system verifiably host-proof (everybody could verify the javascript and audition what&#039;s being sent), and that even if you were an evil organisation which is able to somehow mystically reverse all its hashes (don&#039;t take me wrong, I know you can&#039;t), there would still be something that you had no way to know.
Of course, if you were so evil you could run a brute force attack against the encrypted pack, but if the password was strong enough the pack would be safe from your wicked hands.

Also, it could have been a good answer in cases like this, to all the superficial &quot;don&#039;t trust the cloud&quot; criticism from LifeHacker and other media.
You could have said that even if the cloud collapses, your whole system gets compromised, all the databases lost to attackers, and all hashes reversed, there would still be something that has never been in the cloud... and their passwords pack would be left encrypted in just the same status as it would have been if they used the desktop password managers which they love so much.</description>
		<content:encoded><![CDATA[<p>@Francesco:</p>
<p>Well, I actually thought that the Packing Key couldn&#8217;t still be changed at all (I tried to some years ago, and didn&#8217;t check back lately).</p>
<p>Anyway you&#8217;re right, I overrated the security of having the Pack encrypted with a key which is never known in any of its derivations by the server. After all, running a brute force attack against the Pack (or the Master Key) to discover the &#8220;private&#8221; encryption key wouldn&#8217;t be harder than running an attack against the hashed Packing Key (actually, I guess that thanks to Spino the latter could be even harder).</p>
<p>But still I thought that you could use such an option for &#8220;political&#8221; reasons.</p>
<p>You could say that it makes your system verifiably host-proof (everybody could verify the javascript and audition what&#8217;s being sent), and that even if you were an evil organisation which is able to somehow mystically reverse all its hashes (don&#8217;t take me wrong, I know you can&#8217;t), there would still be something that you had no way to know.<br />
Of course, if you were so evil you could run a brute force attack against the encrypted pack, but if the password was strong enough the pack would be safe from your wicked hands.</p>
<p>Also, it could have been a good answer in cases like this, to all the superficial &#8220;don&#8217;t trust the cloud&#8221; criticism from LifeHacker and other media.<br />
You could have said that even if the cloud collapses, your whole system gets compromised, all the databases lost to attackers, and all hashes reversed, there would still be something that has never been in the cloud&#8230; and their passwords pack would be left encrypted in just the same status as it would have been if they used the desktop password managers which they love so much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4755</link>
		<dc:creator>Francesco</dc:creator>
		<pubDate>Mon, 06 Jun 2011 23:22:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4755</guid>
		<description>@Justin, my grandfather taught me to use my brain to find creative solutions when the standard solution are not good. The &quot;big friend&quot; is mostly a metaphor. Passpack doesn&#039;t live in shadow of Google, Passpack uses Google in order to help itself. That&#039;s different.</description>
		<content:encoded><![CDATA[<p>@Justin, my grandfather taught me to use my brain to find creative solutions when the standard solution are not good. The &#8220;big friend&#8221; is mostly a metaphor. Passpack doesn&#8217;t live in shadow of Google, Passpack uses Google in order to help itself. That&#8217;s different.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: justin time</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4754</link>
		<dc:creator>justin time</dc:creator>
		<pubDate>Mon, 06 Jun 2011 22:48:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4754</guid>
		<description>I love this app and philosophy of the company. PERIOD.

BUT, your gramps gave you some terrible advice. He should have thought you about self defense and self reliance because when the &#039;big friend&#039; is gone you are now again exposed all over again.
All it does is postpones the inevitable and gives the opposing side more time to even more carefully plan an attack. Don&#039;t pass this advice to your kids and don&#039;t let them hide in shadows of others...teach about better passwords :o</description>
		<content:encoded><![CDATA[<p>I love this app and philosophy of the company. PERIOD.</p>
<p>BUT, your gramps gave you some terrible advice. He should have thought you about self defense and self reliance because when the &#8216;big friend&#8217; is gone you are now again exposed all over again.<br />
All it does is postpones the inevitable and gives the opposing side more time to even more carefully plan an attack. Don&#8217;t pass this advice to your kids and don&#8217;t let them hide in shadows of others&#8230;teach about better passwords :o</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4750</link>
		<dc:creator>Francesco</dc:creator>
		<pubDate>Fri, 03 Jun 2011 18:04:09 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4750</guid>
		<description>@Loughlin, @Philippe thank you :)

@Ivan, you write:

&lt;blockquote&gt;But wouldn’t it be possible to have a Packing Key (maybe a third one?) which is never sent to or known by the server, but only validated client-side by checking if it can decrypt the Pack?&lt;/blockquote&gt;

It was so until the version 4 of Passpack. But this was not so secure how you can imagine. Because your security is a concept that has many shades.

For example, people often forget their Packing Key after having changed it. In this case we can roll back the keys set of the user and he is safe. With the old approach your pack would have been definitely lost.

Instead, now we can recover it because all the entries (and the other data in your pack) aren&#039;t encrypted directly with the Packing Key, but with a set of several keys, depending on a lot of factors. This basic keys set is encrypted using a Master Key. In turn, this Master Key is encrypted using a derivation of the Packing Key.

So when you change your Packing Key, a new Master Key record is created in the database. This allows to recover the old record, and it is able to recover the basic keys set if you have the old Packing Key.

Anyway, imagine that we would validate the Packing Key trying to decrypt the Master Key on the client-side, also an attacker that raise access to the database can try to discover the Packing Key with a brute force dictionary attack to the encrypted Master Key. This would be harder, but it would be possible. 

How to avoid this? The solution -- as you can guess -- is a Spino&#039;s brother that receives the Master Key encrypted by the browser, encrypts it again with a secret key and returns the double-encrypted Master Key so that it can be saved in the database.</description>
		<content:encoded><![CDATA[<p>@Loughlin, @Philippe thank you :)</p>
<p>@Ivan, you write:</p>
<blockquote><p>But wouldn’t it be possible to have a Packing Key (maybe a third one?) which is never sent to or known by the server, but only validated client-side by checking if it can decrypt the Pack?</p></blockquote>
<p>It was so until the version 4 of Passpack. But this was not so secure how you can imagine. Because your security is a concept that has many shades.</p>
<p>For example, people often forget their Packing Key after having changed it. In this case we can roll back the keys set of the user and he is safe. With the old approach your pack would have been definitely lost.</p>
<p>Instead, now we can recover it because all the entries (and the other data in your pack) aren&#8217;t encrypted directly with the Packing Key, but with a set of several keys, depending on a lot of factors. This basic keys set is encrypted using a Master Key. In turn, this Master Key is encrypted using a derivation of the Packing Key.</p>
<p>So when you change your Packing Key, a new Master Key record is created in the database. This allows to recover the old record, and it is able to recover the basic keys set if you have the old Packing Key.</p>
<p>Anyway, imagine that we would validate the Packing Key trying to decrypt the Master Key on the client-side, also an attacker that raise access to the database can try to discover the Packing Key with a brute force dictionary attack to the encrypted Master Key. This would be harder, but it would be possible. </p>
<p>How to avoid this? The solution &#8212; as you can guess &#8212; is a Spino&#8217;s brother that receives the Master Key encrypted by the browser, encrypts it again with a secret key and returns the double-encrypted Master Key so that it can be saved in the database.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ivan Naitana</title>
		<link>http://blog.passpack.com/2011/05/passpack-is-not-lastpass-we-have-a-big-friend/comment-page-1/#comment-4749</link>
		<dc:creator>Ivan Naitana</dc:creator>
		<pubDate>Fri, 03 Jun 2011 12:52:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.passpack.com/?p=4030#comment-4749</guid>
		<description>Using Google App Engine resources for Spino is such a simple but good idea, since it both gives you cheap and affordable processing resources (until Google begins charging for CPU time!) and provide extra security through distribution, which is such a simple but overlooked strategy. It is great to know that you employ it to the max through the whole structure.

Using a customised hashing iteration function could sound a bit of security-through-obscurity, but I can see that by iterating for an odd amount of times and adding some odd value to the salt (and maybe something which is variable in some way) in line 21 would build up a whole hashing function which would be so hard to reconstruct for an attacker, even by knowing existing plaintext/hash couples.

What I wonder about is why you&#039;d need to store an hash of the Packing Key at all.

Actually I thought you used a totally different approach from LastPass, since from the &quot;Data Privacy&quot; page it looks like the Packing Key is never sent to the server but used only locally to decrypt the Pack.

Now by analysing the traffic it looks like the Pack is sent to the client only after verifying the Packing Key server-side, which is anyway a good move for not giving away too easily Packs, even if they are encrypted.

But wouldn&#039;t it be possible to have a Packing Key (maybe a third one?) which is never sent to or known by the server, but only validated client-side by checking if it can decrypt the Pack? Wouldn&#039;t it add an ultimate layer of security?</description>
		<content:encoded><![CDATA[<p>Using Google App Engine resources for Spino is such a simple but good idea, since it both gives you cheap and affordable processing resources (until Google begins charging for CPU time!) and provide extra security through distribution, which is such a simple but overlooked strategy. It is great to know that you employ it to the max through the whole structure.</p>
<p>Using a customised hashing iteration function could sound a bit of security-through-obscurity, but I can see that by iterating for an odd amount of times and adding some odd value to the salt (and maybe something which is variable in some way) in line 21 would build up a whole hashing function which would be so hard to reconstruct for an attacker, even by knowing existing plaintext/hash couples.</p>
<p>What I wonder about is why you&#8217;d need to store an hash of the Packing Key at all.</p>
<p>Actually I thought you used a totally different approach from LastPass, since from the &#8220;Data Privacy&#8221; page it looks like the Packing Key is never sent to the server but used only locally to decrypt the Pack.</p>
<p>Now by analysing the traffic it looks like the Pack is sent to the client only after verifying the Packing Key server-side, which is anyway a good move for not giving away too easily Packs, even if they are encrypted.</p>
<p>But wouldn&#8217;t it be possible to have a Packing Key (maybe a third one?) which is never sent to or known by the server, but only validated client-side by checking if it can decrypt the Pack? Wouldn&#8217;t it add an ultimate layer of security?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
