<div dir="ltr">I agree. In fact, that's my strategy. <div><br></div><div>The problem I've run into in the past, however, is essentially the same as dropbox's biggest problem above. That is, being able to do something automatically for the user without making them enter a password every single time. As soon as you cache a password(or token), you have a secret. You can't encrypt it securely, either, because the code must necessarily have the key at that point, and your attacker can see the code and the key. <div>
<br></div><div>I suppose the proper answer is simply never to do that, but people (users, not me!) want programs to remember them. </div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 28, 2013 at 2:12 PM, wes <span dir="ltr"><<a href="mailto:wes@the-wes.com" target="_blank">wes@the-wes.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">A smarter plan is to remove the need for secrets. Use strong encryption and authentication, which are essentially provided for you already in the shape of libraries. Leave the workings in the open. All that remains is for your users' keys to be compromised, and the attacker can then gain access to that user's data only. This is the power of open source: with many eyes on the system, the weaknesses will be brought to light quite rapidly.<span class="HOEnZb"><font color="#888888"><div>


<br></div><div>-wes</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 28, 2013 at 7:52 AM, Benjamin Stewart <span dir="ltr"><<a href="mailto:stewartbenjamin@gmail.com" target="_blank">stewartbenjamin@gmail.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Sadly, I don't have any projects that interesting going at the moment, but I will keep your offer in mind! Maybe we can talk about it when you do your pentesting class. <div>


<br></div><div>When I do write security-related code, though, I always feel a tension between having to somehow keep secrets secret, and feeling like there's an attacker looking over my shoulder at my code, already breaking my secrets as I write it. I'm sure I'm terrible at it, but I do my best. </div>



<div><br></div><div>Seeing this, and similar things I've seen, it seems that many people do almost as badly as I do or worse. That's terrifying! (Well, dropbox was way more obfuscated than anything I've done, but still!) </div>



</div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Aug 28, 2013 at 10:13 AM, Stephen Haywood <span dir="ltr"><<a href="mailto:stephen@averagesecurityguy.info" target="_blank">stephen@averagesecurityguy.info</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You have to think through the system from beginning to end and determine the threats to the system and the attack surface of the system. Then you have to implement compensating controls in the system to mitigate (not remove) those threats. The most cost effective method is to reduce the attack surface but sometimes you can't do that.<br>




<br>
Typically, you need someone with experience breaking and building security, to help you think through this stuff. If you have a system in mind, I would be glad to sit down over supper and help you think about the threats, attack surfaces, and compensating controls.<br>




<div><br>
--<br>
Stephen Haywood<br>
Owner, ASG Consulting<br>
CISSP, GSEC, OSCP<br>
<a href="tel:423.305.3700" value="+14233053700" target="_blank">423.305.3700</a><br>
<a href="mailto:stephen@averagesecurityguy.info" target="_blank">stephen@averagesecurityguy.info</a><br>
<br>
<br>
<br>
<br>
</div><div><div>On Aug 28, 2013, at 9:33 AM, Benjamin Stewart <<a href="mailto:stewartbenjamin@gmail.com" target="_blank">stewartbenjamin@gmail.com</a>> wrote:<br>
<br>
> That was my suspicion. So then, when you go on the defensive, what do you<br>
> do? How do you build a system that, even when you can see clearly into it,<br>
> provides reasonable security?<br>
><br>
><br>
> On Wed, Aug 28, 2013 at 9:09 AM, Dave Brockman <<a href="mailto:dave@brockmans.com" target="_blank">dave@brockmans.com</a>> wrote:<br>
><br>
>> -----BEGIN PGP SIGNED MESSAGE-----<br>
>> Hash: SHA1<br>
>><br>
>> On 8/28/2013 8:49 AM, Benjamin Stewart wrote:<br>
>>> Interesting read, thanks for posting!<br>
>>><br>
>>> Question for the security programmer folks: Are there code<br>
>>> obfuscation techniques, for Python or other languages, that<br>
>>> actually work against such a determined attacker, or is this<br>
>>> DropBox client pretty close to "state of the art?"<br>
>><br>
>> Short answer is no.  Given enough time, determination and debugger, at<br>
>> the very least, whatever assembly code your obfuscated code produces<br>
>> can be captured.<br>
>><br>
>>> You can't really just say "don't use Python," because C et al. can<br>
>>> be decompiled, too.<br>
>><br>
>> If it's software, it can be decompiled....<br>
>><br>
>> Regards,<br>
>><br>
>> dtb<br>
>> -----BEGIN PGP SIGNATURE-----<br>
>> Version: GnuPG v2.0.17 (MingW32)<br>
>> Comment: Using GnuPG with Thunderbird - <a href="http://www.enigmail.net/" target="_blank">http://www.enigmail.net/</a><br>
>><br>
>> iQEcBAEBAgAGBQJSHfZ1AAoJEMP+wtEOVbcdWeEH/1IzOSrCIkquTmYrwwz0R3Cx<br>
>> /Sr1EldScLl550JyK/tZrU1h1Teni6ITmBPCa1pTdfQdqRp061GiXYM5r3A6dwU7<br>
>> VO8n6LaLc96uLojSzYzKM943Uj8KQJdn3YxUrrQGa49/FTuiKL1yAJYT0wFnJE4L<br>
>> RBjs4k7wQe+yfnDVd9wPumDRQY0hbfAbDaVvebECsqHYXEfb+5FGDN2V1n7ennJv<br>
>> Su9wJFI0pUwnWz0utBDUINqOOIh9Fe9H3BIGjDwCpwgG3tO1h+dyDmN124meqMAF<br>
>> 6tDCF12PCjrmA12g6Dv2GEAzLQW98uwK0mWPeAYemSIBmtFYHnv1/D2zfwaeecE=<br>
>> =js+H<br>
>> -----END PGP SIGNATURE-----<br>
>> _______________________________________________<br>
>> Chugalug mailing list<br>
>> <a href="mailto:Chugalug@chugalug.org" target="_blank">Chugalug@chugalug.org</a><br>
>> <a href="http://chugalug.org/cgi-bin/mailman/listinfo/chugalug" target="_blank">http://chugalug.org/cgi-bin/mailman/listinfo/chugalug</a><br>
>><br>
><br>
><br>
><br>
> --<br>
><br>
><br>
><br>
>                              Benjamin Stewart<br>
><br>
>                               <o(((><<br>
>> <)))o><br>
> _______________________________________________<br>
> Chugalug mailing list<br>
> <a href="mailto:Chugalug@chugalug.org" target="_blank">Chugalug@chugalug.org</a><br>
> <a href="http://chugalug.org/cgi-bin/mailman/listinfo/chugalug" target="_blank">http://chugalug.org/cgi-bin/mailman/listinfo/chugalug</a><br>
<br>
</div></div><br>_______________________________________________<br>
Chugalug mailing list<br>
<a href="mailto:Chugalug@chugalug.org" target="_blank">Chugalug@chugalug.org</a><br>
<a href="http://chugalug.org/cgi-bin/mailman/listinfo/chugalug" target="_blank">http://chugalug.org/cgi-bin/mailman/listinfo/chugalug</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><br><br><br>                              Benjamin Stewart<br><br>                               <o(((><<br>                               ><)))o>
</div>
</div></div><br>_______________________________________________<br>
Chugalug mailing list<br>
<a href="mailto:Chugalug@chugalug.org" target="_blank">Chugalug@chugalug.org</a><br>
<a href="http://chugalug.org/cgi-bin/mailman/listinfo/chugalug" target="_blank">http://chugalug.org/cgi-bin/mailman/listinfo/chugalug</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Chugalug mailing list<br>
<a href="mailto:Chugalug@chugalug.org">Chugalug@chugalug.org</a><br>
<a href="http://chugalug.org/cgi-bin/mailman/listinfo/chugalug" target="_blank">http://chugalug.org/cgi-bin/mailman/listinfo/chugalug</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><br><br><br>                              Benjamin Stewart<br><br>                               <o(((><<br>                               ><)))o>
</div>