Re: Procmail feature security hole?
Brought to you by:
ftobin
|
From: Billy D. <bi...@da...> - 2000-10-03 07:18:32
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 3 Oct 2000, Frank Tobin wrote: > -----pgpenvelope processed message----- > > Billy Donahue, at 00:55 -0400 on Tue, 3 Oct 2000, wrote: > > > If I send this forged message to someone using the procmail script, > > They will have no indication that it wasn't really decrypted by pgpenvelope > > (other than the fact that it doesn't show up in the pgpenvelope-backup folder). > > The forged message will look like pgpenvelope verified it. > > I've thought about this issue, and haven't come with a good way to solve > it yet. I could escape the lines if they match > > -----pgpenvelope processed message----- > > But, what if it's: > > ----pgpenvelope procesed message----- > > (notice, processed is spelled wrong). Your ordinary user is not going to > notice this, and neither will the script. That's a good point, but even that would be better than nothing.. Maybe changing top-border, info-top-border, and info-bottom-border to something which you can't misspell without noticing would mitigate this effect. `pgpenvelope processed message' is three big words... A line starting with, and matching above some threshold (say 80%) of, a user's pgpenvelope border should be flagged with (or followed by) a "WARNING:" of some kind.. > One additional thing I could do > is to add a: > > pgpenvelope_decrypt: Message decrypted by <user> on <hostname> > > ...when the message is decrypted, so this could help if the message is > sent to multiple people; if this statement was inserted, then it would > hold true for only one user the attacker targeted. This might help a bit. Most of the signed messages I get are from usenet or mailing lists. Outside of a large anonymous mailing list, the recipient list could be forged, too. A separate forgery could be sent to each person known to be using pgpenvelope. > Actually, the best solution, which just came to mind, is for each user to > define their own: > > #top-border = -----stuff checked by pgpenvelope----- > #info-top-border = -----pgpenvelope says----- > #info-bottom-Border = -----pgpenvelope is done----- > > If the user defines this to something non-standard, and the attacker > doesn't know them, then the user will notice that the message doesn't have > his 'personalized' headers. Yes, this also protects mailing lists, but it requires user effort. Okay, I've done this.. Now I'm safe... :) But now I've got to guard all of my procmail-verified messages, and make sure I strip the pgpenvelope borders when I quote things or I risk disclosing my secret markers. It would be better to come up with a real solution to the problem. Maybe a serial number of some kind? Actually, that doesn't help, does it? It would be useful to have something which is only good once, and which can be easily checked by the user. the filter could write to a log. But that isn't any easier to check than checking the procmail log or the pgpenvelope-backup mailbox, so what's the point, right? The procmail pgpenvelope filter is convenient, but is it worth the risk of false positives on signatures? - -- "The Funk, the whole Funk, and nothing but the Funk." Linux barcode software mirror: http://dadadada.net/cuecat Billy Donahue <mailto:bi...@da...> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.3 (GNU/Linux) Comment: pgpenvelope 2.9.0 - http://pgpenvelope.sourceforge.net/ iD8DBQE52Yg/+2VvpwIZdF0RAl4GAKCHSDb43iiDYs6trZm9hauLoJYDTwCgoZst sr0zOGpGvc+TzYZiguf+YEc= =QhAs -----END PGP SIGNATURE----- |