Hi Rogan, great comments <div><br><div class="gmail_quote">On 14 October 2010 10:56, Rogan Dawes <span dir="ltr">&lt;<a href="mailto:rogan@dawes.za.net">rogan@dawes.za.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">&gt; My assumption is that: *&quot;as long as the PassPhrase is strong enough, it<br>
&gt; would be not practical to brute force it (even if the attacker knows the<br>
&gt; Private Key)&quot;*. In fact, should the question be: *&quot;How big does the<br>
</div>&gt; PassPhrase be in 2010/2011 time frame for it to be secure?&quot;*<br>
<br>
Well, what size PGP keys are you generating? The passphrase should be<br>
that big . . . :-)<br></blockquote><div><br></div><div>That is part of my thinking, surely in a PrivateKey + PassPhrase model aren&#39;t both elements important? For example would it be OK to keep the PrivateKey private but share the PassPhrase?</div>
<div><br></div><div>But actually, are they equally important (the Private Key vs PassPhrase)? in the SecuritTeam blog there was a comment that said that multiple PassPhrases could be used on the same PrivateKey (and maybe one could be discoverable via an Oracle Padding attack and the other not?).</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
Ok, non-flippant answer:<br>
<br>
It seems to me that the answer depends on exactly what you are trying to<br>
achieve. If you want to implement passphrase-based encryption, that uses<br>
a standards-based protocol for compatibility reasons (e.g. excluding<br>
encrypted ZIP archives), generating and distributing both private and<br>
public parts is reasonable.<br></blockquote><div><br></div><div>And that was one of my original use-cases (to replace encrypted zip). Basically I needed to send a bunch of O2 Scripts + Customer data to a client and it was too big to send by email, so I wanted to put it on Amazon S3 and send the link to the customer.</div>
<div><br></div><div>Now, I didn&#39;t want to use encrypted ZIP and since O2 already had the capabilities (via the BouncyCastle API) to easy handle PGP, I thought that it could be an interesting alternative.</div><div><br>
</div><div>So maybe the question should be <b>&quot;by exposing the public and private key (to somebody sniffing the Amazon S3 traffic when the client downloaded that data) but keeping the PassPhase private, is that solution AS GOOD as using Symmetric encryption?&quot;</b></div>
<div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Of course, the security is then only as good as the passphrase is (but<br>
that&#39;s still the same as if you were using passworded ZIP), so . . .<br></blockquote><div><br>Yes, and I was trying to figure out, how big it should be? For example as you <a href="http://www.o2platform.com/wiki/O2_Script/Tool_-_Using_OpenPgp_to_Encrypt_or_Decrypt.h2">can see on the O2 Script that powers this tool</a> I&#39;m using the 21 char (with UpperCase and 1 non-printed char)     This**Is**a**Password      passphrase. </div>
<div><br></div><div>Is that big enough? How long would it take to brute force that?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
If you want top level security, then you should not be distributing the<br>
private keys, unless the passphrase has a similar bitstrength/keylength<br>
as the keys themselves. The user could always change the password to<br>
something more usable once it has been received. I seem to recall<br>
estimates of 3 bits per English word, fwiw.<br></blockquote><div><br></div><div>The core idea here is to start using some type of encryption and gain the behaviour culture to do so. For example we can argue that the private key should be private, but how do I security give it to the client in a 1x way transaction? (i.e. not using normal PGP key exchange where the client gives me first his private key)</div>
<div><br></div><div>I guess what I&#39;m really after here is to simplify the use of encryption technologies like PGP, since at the moment its (PGP) adoption is very , very, very low. For example how many products today natively suport PGP? (lets say in storing its results and loading data). And how many security consultants/teams regularly use PGP to communicate with clients (or internally) and use it consistently across the board to protect all sensitive data that they have access to?</div>
<div><br></div><div><div>And before we get too precious on the need for the Private Key to be private, securely handling private keys is a MASSIVE challenge (if one wants to do it properly). Ironically, having the PassPhrase as the &#39;key-holder&#39; might turn out a better model since it will be easier to protect/distribute that PassPhrase than it would be to protect/distribute the private key :)</div>
</div><div><br></div><div>I&#39;ve been thinking about his issue, and I think I have found a couple scenarios where my original idea could be interesting :)  (I&#39;ll write it up next)</div><div><br></div><div> </div><div>
Dinis</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
Rogan<br>
</font></blockquote></div><br></div>