Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security Vuln-Dev
[Top] [All Lists]

Re: On the Recent PGP and Truecrypt Posting

Subject: Re: On the Recent PGP and Truecrypt Posting
Date: Sat, 27 May 2006 17:04:09 -0700
On 27 May 2006, at 12:01 PM, John Pettitt wrote:


I think the underlying point is that many users, not understanding the
difference between the bulk key used to encrypt the data and the
passphrase used to protect that bulk key would assume, incorrectly that
changing the passphrase would lock out prior users.


Clearly a users with a backup copy of an encrypted disk for which they
know the passphrase can use the technique described to decode a more
recent image of the same encrypted disk even though the owner of the
disk may think it safe because the passphrase was changed. In this
situation the old user gain access to newer data that they were not
supposed to be able to access. This is different from the described
restored backup situation in that the user is using a partial restore to
circumvent a security mechanism.


The re-encyrpt button obviously defeats this attack however it's not
clear that real world users actually understand the need to re-encrypt
to make pass phrase changes meaningful when backup copies exist. I
think this is mostly a documentation issue and perhaps a user interface
design issue in that users should be strongly advised to re-encrypt when
they change the passphrase.


You bring up an excellent point. As I said in my previous post, we are considering a change to the way we're doing things. Unfortunately, there's no one thing that's clear the the right thing to do. Let me examine some of them.

We could make a documentation change. I don't like documentation changes like this because it's a cover-your-ass solution. Let's face it, no one reads the documentation. If we put in something there, we can answer any further objection with saying "this is a documented situation," but it doesn't *solve* anything. It is in my opinion, a cop out. We're better off doing nothing or making a code change.

Now then, we could make a code change. But what code change?

Security is a strange business, because you quickly go from things that a absolute dos and don'ts into things upon which gentlepersons can disagree. Part of this is because doing the right thing for the user is a good design principle, but so is less is more. Simplicity makes for better security, and that means doing less.

We could put a dialog box up warning the user. This is a reasonable thing to do. The Truecrypt folks do that. One can argue on the other side that is is just one step forward from a documentation change, that it is a CYA move that doesn't really solve the problem, it just allows you to wash your hands of the situation. I have to think about it for a while. I can see both sides of it. I lean towards less is more, particularly because there are lots of moving parts here. My main PGP disk is not passphase-based, it is public-key-based. If I change the passphrase on my key, does that mean that the PGP program should grovel over my disk looking for virtual disk volumes that are encrypted to that public key? If not, why not? Extend this to virtual volumes that are managed by a smart card or security token, and you can see it gets very hard very quickly.

Automatically re-encrypting the disk has much peril to it. Any time you re-encrypt the disk, you expose the user to the chance of the complete loss of their data. If you want to make it safer, you make it slower. If you want to make it faster, you chew up more resources on the user's computer It's a relatively easy task when it's a megabyte. What happens when it's a hundred gigabytes?

Right now, we not only do virtual disks, but also whole disk encryption. The core of what we do is the same across the board (if not exactly the same code). We have to make tradeoffs. You will also also see the architecture extend to some *very* cool storage encryption very soon. The re-encryption problem is something we take very seriously, and we have seriously discussed whether we should have a re-encryption daemon that runs in the background and works like a garbage collector, re-encrypting objects that need re- encrypting, based on some security policy describing when things will need to be re-encrypted. It is a garbage collector, but one that is tied to a two-phase-commit, zero loss database update system. Is that cool, or is it frightening? Or both? The CYA answer of putting a note in the manual can start looking attractive when you seriously start designing one of these.

I'm open to discussion about the larger issues. But let us not forget that this started out with a bug report that itself says to first get a brain. It was high-handed and insulting. You're right, there is in the core of this, there is a very complex issue. We're discussing if we should do something in response to the real issue here. But the base issue, that there is some flaw in PGP and Truecrypt and other software that only an idiot could have let out is flat out false.

        Jon


-- Jon Callas CTO, CSO PGP Corporation Tel: +1 (650) 319-9016 3460 West Bayshore Fax: +1 (650) 319-9001 Palo Alto, CA 94303 PGP: ed15 5bdf cd41 adfc 00f3 USA 28b6 52bf 5a46 bc98 e63d


Attachment: PGP.sig
Description: PGP signature

<Prev in Thread] Current Thread [Next in Thread>