PGP-signed posts for weblog comments

A few weeks ago I posted about the problem with identities in open weblog comments systems. Since then I've been playing with different solutions, and I think PGP-signed comments are a good way to verify identities. It's extremely simple for the authors of comments systems to implement. (I added it to my comments system last night in about an hour.) It allows weblog authors to keep the barrier to conversation very low by not having a registration process. And it allows those comment-posters who are concerned about their online identity to take a few extra steps to digitally sign their comments.

It's also very easy on the comment-posting end. PGP has a function called "Sign" that matches the words of the comments with your public key. It includes a bit of garbled text based on those words, so the post can be verified. If anyone alters the words, the verification fails. I'm using PGP 8.0, and it has a great feature that signs the text in the current window with one click. I would simply type my comments into someone's site as normal, then click this button. It's instantly signed. I'll try to post more explanation with screenshots if I have some time later today.

Here's how I implemented it for my comments system. A standard post is plain text:

This is a standard comment.
A PGP-signed post is also plain text with some extra junk around it:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This is a PGP-signed comment.

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0 (Build 349) Beta

iQA/AwUBPdvNQq9S5muEtqHZEQKIgACfTjtzfc101lkfWXEHQLgcHux99S8AoN/p
GDxRz2sbpl1MIXFm5Bbb6JxF
=qlO3
-----END PGP SIGNATURE-----
Ok, it's not junk, it's important information. But for the purposes of reading comments, it's junk. So if the junk is there when someone posts, my system saves the entire PGP comment as-is, then strips away the junk and stores the good stuff as a regular comment. Then, next to the information about who posted that particular comment is a link: [PGP]. Clicking on PGP will give anyone the original, unaltered, PGP-signed post that they can then use to verify the commenter's identity. My system doesn't do anything with decryption/encryption, handle any keys, or do any of the verification—it simply does a bit of extra text parsing. I didn't need to add any extra form fields or ask for any extra info. It doesn't break up the flow of conversation. The functionality is mostly hidden.

It puts the burden of identity management on the comment-poster instead of the comments systems. The poster would have to make sure their public PGP key is available somewhere, so people could verify their posts. It doesn't break up the flow of conversation, and it adds a bit of security for people who aren't posting anonymously. I'd feel much better about posting comments on weblogs if they had something like this available. For those who don't care, nothing changes.

I've tested this feature here with signatures from both PGP 8 for windows and gnupg for windows. It's bound to have some parsing problems with other platforms that need to be worked out, but I'll fix them as they come in. Check the comments on this post for an example. And let me know what you think. Will this work? Do you think people would sign their posts if it was an option?

Comments

This is an example of a PGP-signed comment. Click the [PGP] link to
see the original formating.
And this is an example of a standard (non-signed) comment. It's exactly the same, just without the [PGP] link option.
ok - i suppose the interface leaves a fair amount to be desired (it's not readily apparent to me what you've got going on here for the signature mechanism on the comments - doesn't look all that different to me - oooh you expect me to sign my message and cut and paste the whole thing?).

there's really not much to be gained by this unless there's a web of verification that's built up (people signing that persons key in order to validate identity). otherwise, there's nothing to be gained, except another hoop to jump through in order to post a comment.

here's a non-verified PGP key - big deal. interesting idea - needs hooks to a keyserver which can display some information regarding the # of 3rd parties which have signed the key.
What it will verify is that the person posting at least has the
passphrase to a public key residing on another server. For example,
if you post your PGP key on your site, I could follow the URL and
verify that you (the controller of that domain) posted the comment.
In many cases it could verify who is posting...right now there's no
way to verify who is talking. If you use PGP 8, there isn't even any
cutting and pasting involved. Just click "sign" and enter your
passphrase. Not much harder than signing into a site.
Also, the method I'm proposing here doesn't add any extra hurdles to
posting for people who don't care about PGP-signing their comments.
Everything will be the same for them. No hoops to jump
through...that's what I'm trying to avoid with this. However, for
those few who want to PGP-sign their comments and link it with their
public key, it would be valuable. re: signing/verifying keys...PGP
already has systems to do this for public keys. This merely hooks
into the PGP system in a limited way. There's no need to reinvent the
wheel with a centralized service, imho.


don't get me wrong - i like the idea. i just think that it needs a
hook to extract the identity from the signature and link to the key
w/i the keyserver. from there the casual user can determine the
degree of trust that they want to place within the signature.

code to demonstrate would likely be a better demonstration of what
i'm referring to. i like the idea.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org

iD8DBQE93rhQT9QHyRM7+vwRAmOfAKC8XQjdqpBLLp+lJ9FXlVnRifyzzACdEh+n
kULkk/ifhq/NhsTE8R302Pg=
=LAOA
-----END PGP SIGNATURE-----
oops. there are those parsing problems I was talking about. But your signature verifies. You're right, I don't know if you're the *real* Steve Ulrich, but I think this is a start.
A brilliant idea. I have been using PGP for years... since "Crypto
Rebels" first appeared in Wired magazine [URL:
http://www.wired.com/wired/archive/1.02/crypto.rebels_pr.html ]

I would definetly use it to sign my posts.

As blogging expands, identity theft will grow. And with our normally
close relationships with one another -- and with the speed that our
coversations develop -- one "crank" comment can really screw things
up.
note: non-signed message to follow ;-)

returning to this thread for a moment. i think that a better way to handle the message posting would be to have the person compose the message externally and sign it. like you're doing here and like i did from inside vim and running it through gpg. and have the person PUT the file into the posting system.

this is a lot of extra headache and will obviate much of the interactive nature of these comment "featurettes". in order to preserve the low technology entrance criteria and impulsive nature of the media a verification system for these comments might be more straightforward. this seems like a logical bolt on to the current crop of comment systems that are embedded in every other web log.

-- steve ulrich
I like this idea, as pb said it's a start. I hope others adapt it. Would it be possible to allow this at Blogroots?
Darn I forgot to sign the message, so I'll sign this one
That's a good idea, Mihir. A few more working examples would help illustrate how this all works. It's technically possible to implement this at Blogroots. I just haven't discussed it with my co-Blogrooters yet.

And I agree, steve. command line gpg isn't as user-friendly as pgp, so a bit of coding for alternative methods of posting to make it easier for gpg users would help.

I had this idea before, but of course did nothing, glad to see someone doing something.

Perhaps beside name and url, you should have 'url of public key' that is, until we add link rel="publickey" into our pages, then you could automagically grab the key based off the supplied url.

Just testing....

Seems to work with Mac OS X, GnuPG 1.0.6, and Mozilla 1.3a

Public key is at: http://zymm.com/raster/pgpkey.txt
The "URL of public key" field would be a nice addition for PGP posters. But it could be confusing/intimidating for people who don't care and don't want to know anything about PGP. You're right, posting your public key at your domain is integral to making this work. I think more documentation could help explain this. Those who care about the online identity in anonymous spaces will do the extra work, I think.
just downloaded PGP 8, getting my blog organized, and wanted to see
this work!
Neat idea. I'm glad some weblogs are doing neat things with PGP. If as many of us are as hot-to-trot on privacy as we say we are, more of us should be using tools like this.
Regarding the use of URLs to display public keys... www.biglumber.com
is the most friendly way of sharing public keys these days, and is
growing in usage every day.

The comment field is already used in most cases by either PGP (the
software) or other OpenPGP (the proposed standard) applications.

Verification could be done locally with a GPG install that would only
have a public key ring with posters' public key previously imported.

I had such installation with PHP code a while ago, I'll see if I can
find it...



Dette er en PGP signert kommentar.