EICS proposal

Adrian 'Dagurashibanipal' von Bidder avbidder@fortytwo.ch
Mon Feb 3 21:09:02 2003


--=-Ba1NMCFaYRs+QDBJjOnG
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Mon, 2003-02-03 at 17:25, greg@turnstep.com wrote:

> I've been wrestling around with the problem of representing external=20
> information inside of a signed email message, and would like=20
> feedback on a possible solution.

I've been thinking along the same lines, and I would solve it like this:

Use PGP/MIME, and repeat email headers in the signed part of the
message.

Example message:
    From: Alice Nice <alice@example.com>
    To: lover@example.com
    Subject: I love you
    Message-Id: <1234@example.com>
    Mime-Version: 1.0
    Content-Type: multipart/signed;
        micalg=3Dpgp-sha1;
        protocol=3D"application/pgp-signature";
        boundary=3D"-----boundary-----";
        extension=3Dheader-protection

    -------boundary-----
    Content-Type: text/plain
    Content-Transfer-Encoding: 7bit
    Protected-Headers: To, From, Subject
    P-To: lover@example.com
    P-From: Alice Nice <alice@example.com>
    P-Subject: I love you
   =20
    I really do.
   =20
    -------boundary-----
    Content-Type: application/pgp-signature

    -----BEGIN PGP SIGNATURE-----
    ...
    -----END PGP SIGNATURE-----

    -------boundary-------

Sample message, with encryption:

    From: Alice Nice <alice@example.com>
    To: lover@example.com
    Subject: I love you
    Message-Id: <1234@example.com>
    Mime-Version: 1.0
    Content-Type: multipart/encrypted;=20
        protocol=3D"application/pgp-encrypted";
        boundary=3D"-----boundary-----";
        extension=3Dheader-protection

    -------boundary-----
    Content-Type: application/pgp-encrypted

    Version: 1

    -------boundary-----
    Content-Type: application/octet-stream

    -----BEGIN PGP MESSAGE-----
    ...
    -----END PGP MESSAGE-----

    -------boundary-------

with the encrypted message being:=20

    Content-Type: multipart/signed;
        micalg=3Dpgp-sha1;
        protocol=3D"application/pgp-signature";
        boundary=3D"-----boundary2-----"

    -------boundary2-----
    Content-Type: text/plain
    Content-Transfer-Encoding: 7bit
    Protected-Headers: To, From, Subject
    P-To: lover@example.com
    P-From: Alice Nice <alice@example.com>
    P-Subject: I love you

    I really do.

    -------boundary2-----
    Content-Type: application/pgp-signature

    -----BEGIN PGP SIGNATURE-----
    ...
    -----END PGP SIGNATURE-----

(of course, the header values are not encrypted. There might be some
hacks to protect optional headers like Subject or Reply-To, but since my
proposal is designed to allow clients without header protection support
to continue working, I don't recommend doing that).

PGP/MIME [1] nicely deals with attachments, so there's no need to worry
about that. Including the full headers instead of just a checksum allows
to completely ignore the unprotected headers and just replace them by
the protected ones (I'd recommend this because header mangling
(different linebreaks, ...) seems to happen occasionally.)

I started writing this up in a nice RFC-style document and intended to
cross-post (or at least multi-post) it to the
mutt/sylpheed/kmail/evolution/name-your-own-mailer and openpgp mailing
list to get it going, but I don't have time to do that right now. (btw,
the rfc document actually is based on rfc1847 and so should also work
with S/MIME - but that's a world I absolutely don't know).

If anybody wants to take this up, I can post the draft I've created so
far.

cheers
-- vbi

[1]
Insert standard rant about why PGP/MIME is superior to inline PGP. It
really is, I won't discuss this here. Yes, it's not without issues, such
as lacking support in some mailers.

--=20
featured product: GNU Privacy Guard - http://gnupg.org

--=-Ba1NMCFaYRs+QDBJjOnG
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: get my key from http://fortytwo.ch/gpg/92082481

iKcEABECAGcFAj4+zIRgGmh0dHA6Ly9mb3J0eXR3by5jaC9sZWdhbC9ncGcvZW1h
aWwuMjAwMjA4MjI/dmVyc2lvbj0xLjMmbWQ1c3VtPTE0Y2E2MTZmMTQ2ODJhODJj
YjljYzI1YzliMzRhMTBkAAoJEIukMYvlp/fW1tIAnj08n0Hkd6S13S7tTaHKpD6O
8CjlAJ4/qjy0ARSCHuxeePpPoOJONpx4FQ==
=pwaa
-----END PGP SIGNATURE-----
Signature policy: http://fortytwo.ch/legal/gpg/email.20020822?version=1.3&md5sum=14ca616f14682a82cb9cc25c9b34a10d

--=-Ba1NMCFaYRs+QDBJjOnG--