getting rid of nav template, relying on sidebar instead.
[monkeysphere.git] / website / index.mdwn
1 [[toc ]]
2
3 The Monkeysphere project's goal is to extend OpenPGP's web of trust to
4 new areas of the Internet to help us securely identify each other
5 while we work online.
6
7 Specifically, monkeysphere currently offers a framework to leverage
8 the OpenPGP web of trust for OpenSSH authentication.
9
10 In other words, it allows you to use secure shell as you normally do,
11 but to identify yourself and the servers you administer or connect to
12 with your OpenPGP keys.  OpenPGP keys are tracked via GnuPG, and
13 monkeysphere manages the `known_hosts` and `authorized_keys` files
14 used by OpenSSH for authentication, checking them for cryptographic
15 validity.
16
17 ## Conceptual overview ##
18
19 Everyone who has used secure shell is familiar with the prompt given
20 the first time you log in to a new server, asking if you want to trust
21 the server's key by verifying the key fingerprint.  Unfortunately,
22 unless you have access to the server's key fingerprint through a
23 secure out-of-band channel, there is no way to verify that the
24 fingerprint you are presented with is in fact that of the server your
25 really trying to connect to.
26
27 Many users also take advantage of OpenSSH's ability to use RSA or DSA
28 keys for authenticating to a server (known as
29 "`PubkeyAuthentication`"), rather than relying on a password exchange.
30 But again, the public part of the key needs to be transmitted to the
31 server through a secure out-of-band channel (usually via a separate
32 password-based SSH connection or a (hopefully signed) e-mail to the
33 system administrator) in order for this type of authentication to
34 work.
35
36 [OpenSSH](http://openssh.com/) currently provides a functional way to
37 manage the RSA and DSA keys required for these interactions through
38 the `known_hosts` and `authorized_keys` files.  However, it lacks any
39 type of [Public Key Infrastructure
40 (PKI)](http://en.wikipedia.org/wiki/Public_Key_Infrastructure) that
41 can verify that the keys being used really are the one required or
42 expected.
43
44 The basic idea of the Monkeysphere is to create a framework that uses
45 [GnuPG](http://www.gnupg.org/)'s keyring manipulation capabilities and
46 public keyserver communication to manage the keys that OpenSSH uses
47 for connection authentication.  
48
49 The Monkeysphere therefore provides an effective PKI for OpenSSH,
50 including the possibility for key transitions, transitive
51 identifications, revocations, and expirations.  It also actively
52 invites broader participation in the
53 [OpenPGP](http://en.wikipedia.org/wiki/Openpgp) [web of
54 trust](http://en.wikipedia.org/wiki/Web_of_trust).
55
56 ## Technical details ##
57
58 Under the Monkeysphere, both parties to an OpenSSH connection (client
59 and server) explicitly designate who they trust to certify the
60 identity of the other party.  These trust designations are explicitly
61 indicated with traditional GPG keyring trust models.  Monkeysphere
62 then manages the keys in the `known_hosts` and `authorized_keys`
63 files directly, in such a way that is completely transparent to SSH.
64 No modification is made to the SSH protocol on the wire (it continues
65 to use raw RSA public keys), and no modification is needed to the
66 OpenSSH software.
67
68 To emphasize: *no modifications to SSH are required to use the
69 Monkeysphere*.  OpenSSH can be used as is; completely unpatched and
70 "out of the box".
71
72 ## Philosophy ##
73
74 Humans (and
75 [monkeys](http://www.scottmccloud.com/comics/mi/mi-17/mi-17.html))
76 have the innate capacity to keep track of the identities of only a
77 finite number of people. After our social sphere exceeds several dozen
78 or several hundred (depending on the individual), our ability to
79 remember and distinguish people begins to break down. In other words,
80 at a certain point, we can't know for sure that the person we ran into
81 in the produce aisle really is the same person who we met at the party
82 last week.
83
84 For most of us, this limitation has not posed much of a problem in our
85 daily, off-line lives.  With the Internet, however, we have an ability
86 to interact with vastly larger numbers of people than we had
87 before. In addition, on the Internet we lose many of our tricks for
88 remembering and identifying people (physical characteristics, sound of
89 the voice, etc.).
90
91 Fortunately, with online communications we have easy access to tools
92 that can help us navigate these problems.
93 [OpenPGP](http://en.wikipedia.org/wiki/Openpgp) (a cryptographic
94 protocol commonly used for sending signed and encrypted email
95 messages) is one such tool. In its simplest form, it allows us to
96 sign our communication in such a way that the recipient can verify the
97 sender.
98
99 OpenPGP goes beyond this simple use to implement a feature known as
100 the [web of trust](http://en.wikipedia.org/wiki/Web_of_trust). The web
101 of trust allows people who have never met in person to communicate
102 with a reasonable degree of certainty that they are who they say they
103 are. It works like this: Person A trusts Person B. Person B verifies
104 Person C's identity.  Then, Person A can verify Person C's identity
105 because of their trust of Person B.
106
107 The Monkeyshpere's broader goals are to extend the use of OpenPGP from
108 email communications to other activities, such as:
109
110  * conclusively identifying the remote server in a remote login session
111  * granting access to servers to people we've never directly met
112
113 ## Links ##
114
115 * [OpenSSH](http://openssh.com/)
116 * [GnuPG](http://www.gnupg.org/)
117 * [Secure Shell Authentication Protocol RFC 4252](http://tools.ietf.org/html/rfc4252)
118 * [OpenPGP RFC 4880](http://tools.ietf.org/html/rfc4880)
119
120 ----
121
122 This wiki is powered by [ikiwiki](http://ikiwiki.info).