Question: how can we help more people use OpenPGP?

Posted by dkg on Fri 15 Jun 2007 at 11:01

I use gpg and other associated OpenPGP infrastructure a lot these days, but it's taken me a long time to get up to speed with it. The growing use of gpg across the debian project (including the introduction of OpenPGP-signed APT repositories) has helped me immensely. I have friends and colleagues who use OpenPGP systems to varying degrees (including some not at all). Some of the folks who use it rarely (or not at all) are interested in learning more. I'd like to help the system spread, as i think it's the best infrastructure we have for seeing real decentralized, end-to-end cryptographic communications.

What's a good way to help people learn the ins and outs of the system? Which ideas of the architecture are crucial to understand, and which ones can be glossed over in an introductory/bootstrapping session without starting bad (insecure) habits?

I have a selfish motive for this as well, of course: i want to be able to communicate securely with more people, and i want to be able to do it with free tools. The more people who adopt this reasonable, functional, free infrastructure (even if they're not using debian, or committed to free software principles), the more powerful our free tools will be.

I'm looking for advice that's tailored to different kinds of beginners. Some of us like knowing the full details of the relevant RFCs. Others would prefer a "click this button and your messages will be secure" kind of approach. But these angles are too extreme: the former takes time and energy that legitimately busy people don't have, and the latter isn't thoughtful enough to be terribly trustworthy.

Theory

Most non-technical beginners probably start pretty close to the "click this button" perspective, and need a bit of philosophical orientation to start using the tools well. For example: I'd love to find good sources of this kind of material that are engaging and concise. Do you have a favorite web page that made the ideas "click" for you, even if it didn't tell you technically how to proceed? What made it good?

Philosophical suggestions

Here's some resources i've found about the theoretical why and how of OpenPGP. If you have other good links, please share!

Practice

For some learners, good philosophical material alone is what they need to pick up the way the system works (though they'll need to learn the specifics of a tool if they want to use it). For others, the same theoretical material is best digested by comparing the ideas to a concrete tool as they work through it. For non-technical users, this probably means a software tool with a GUI. What good GUI frontends to the OpenPGP infrastructure are out there that would help interested users explore the new ideas? Which tools won't overwhelm them or encourage bad habits? Do you have a favorite tool, or one that highlights features that you think are crucial?

As for my own learning style, i like to experiment when i'm learning something new. OpenPGP can be a little intimidating in this regard, because making a key and certifying it as your identity is kind of a big deal: you don't want to change your identity too often, so it feels important that it be done right the first time. How can we encourage experimentation with these tools without encouraging an explosion of throwaway keypairs, cluttering public keyservers, or building a culture where people expect identities to change frequently or without review?

Tool suggestions

Some tools i've seen that are more or less useful: Did i miss your favorite tool? Please speak up!

Conclusion

We have a technically-capable toolset for decentralized, authenticated communication. It exists, it works, and it's been in debian for years! The problem is, as Harald Alvestrand put it:
Deciding who to trust is a complex problem. It is not solved, and will be a problem for years to come.
What can we do as supporters of free infrastructure to help others learn how to use these tools? What can we do to help people understand the tools well enough to make their own decisions about who to trust? And how can we encourage the spread of truly free infrastructure so that these decisions aren't compromised by the tools they depend on?

This article can be found online at the Debian Administration website at the following bookmarkable URL:

This article is copyright 2007 dkg - please ask for permission to republish or translate.