fleshed out the "Similar Projects" section
[monkeysphere.git] / website / doc.mdwn
1 [[!template id="nav"]]
2
3 # Monkeysphere Documentation #
4
5
6 ## Dependencies ##
7
8  * Monkeysphere relies on [GnuTLS](http://gnutls.org/) version 2.4.0 or later.
9
10 ## References ##
11
12  * [Initial specifications at CMRG](http://cmrg.fifthhorseman.net/wiki/OpenPGPandSSH)
13  * [OpenPGP (RFC 4880)](http://tools.ietf.org/html/rfc4880)
14  * [Secure Shell Authentication Protocol (RFC 4252)](http://tools.ietf.org/html/rfc4252)
15    * [URI scheme for SSH, RFC draft](http://tools.ietf.org/wg/secsh/draft-ietf-secsh-scp-sftp-ssh-uri/)
16
17 ## Similar Projects ##
18
19 The monkeysphere isn't the only project intending to implement a PKI
20 for OpenSSH.  We provide links to these other projects because they're
21 interesting, though we have concerns with their approaches.
22
23 All of the other projects we've found so far require a patched version
24 of OpenSSH, which makes adoption more difficult.  Most people don't
25 build their own software, and simply overlaying a patched binary is
26 associated with significant maintenance (and therefore security)
27 problems.  A PKI becomes more useful the more people participate in
28 it, so widespread adoption is important.
29
30 ### `openssh-gpg` ###
31
32 [openssh-gpg](http://www.red-bean.com/~nemo/openssh-gpg/) is a patch
33 against OpenSSH to support OpenPGP certificates.  According to its
34 documentation, it is intended to support [`pgp-sign-rsa` and
35 `pgp-sign-dss` public key algorithms, as specified by the
36 IETF](http://tools.ietf.org/html/rfc4253#section-6.6).
37
38 Some concerns with `openssh-gpg`:
39
40  * This patch is significantly old; it doesn't appear to have been
41    maintained beyond OpenSSH 3.6p1.  As of this writing, OpenSSH is on
42    version 5.1p1.
43
44  * It requires patching OpenSSH.
45
46 ### Perspectives OpenSSH client ###
47
48 [The Perspectives project](http://www.cs.cmu.edu/~perspectives/) at
49 CMU has released an [openssh client that uses network
50 notaries](http://www.cs.cmu.edu/~perspectives/openssh.html) to bolster
51 your confidence in new keys.  This offers a defense against a narrow
52 MITM attack (e.g. by someone who controls your local gateway) by
53 simply verifying that other machines from around the network see the
54 same keys for the remote host that you're seeing.
55
56 This is quite useful, but doesn't take the system as far as it could
57 go, and doesn't tie into the existing web of trust.
58
59 Some concerns with the Perspectives OpenSSH client:
60
61  * This client won't help if you are connecting to machines behind
62    firewalls, on NAT'ed LANs, with source IP filtering, or otherwise
63    in a restricted network state.
64
65  * There is still a question of why you should trust these particular
66    notaries during your verification.  Who are the notaries?  How
67    could they be compromised?
68
69  * It requires patching OpenSSH
70
71 ### OpenSSH with X.509v3 certificates ###
72
73 Roumen Petrov [maintains a patch to OpenSSH that works with the X.509
74 PKI model](http://www.roumenpetrov.info/openssh/).  This is the
75 certificate hierarchy commonly used by TLS (and SSL before that).
76
77 Some concerns about OpenSSH with X.509v3:
78
79  * the X.509 certificate specification itself [encourages corporate
80    consolidation and centralized global "trust" because of its
81    single-issuer architectural
82    limitation](http://lair.fifthhorseman.net/~dkg/tls-centralization/).
83    This results in an expensive and cumbersome system for smaller
84    players, and it also doesn't correspond to the true distributed
85    nature of human-to-human trust.  Furthermore, centralized global
86    "trusted authorities" create a tempting target for attack, and a
87    single-point-of-failure if an attack is successful.
88
89    Depending on how you declare your trust relationships, OpenPGP is
90    capable of providing the same hierarchical structure as X.509, but
91    it is not limited to it.  The Web of Trust model is more flexible
92    and more adaptable than X.509.
93
94  * It requires patching OpenSSH.