666b83170eb4058984014d476909b8416c50b668
[monkeysphere.git] / man / man7 / monkeysphere.7
1 .TH MONKEYSPHERE "7" "March 2009" "monkeysphere" "System Frameworks"
2
3 .SH NAME
4
5 monkeysphere - ssh authentication framework using OpenPGP Web of
6 Trust
7
8 .SH DESCRIPTION
9
10 \fBMonkeysphere\fP is a framework to leverage the OpenPGP web of trust
11 for OpenSSH and TLS key-based authentication.  OpenPGP keys are
12 tracked via GnuPG, and added to the authorized_keys and known_hosts
13 files used by OpenSSH for connection authentication.  Monkeysphere can
14 also be used by a validation agent to validate TLS connections
15 (e.g. https).
16
17 .SH IDENTITY CERTIFIERS
18
19 Each host that uses the \fBMonkeysphere\fP to authenticate its remote
20 users needs some way to determine that those users are who they claim
21 to be.  SSH permits key-based authentication, but we want instead to
22 bind authenticators to human-comprehensible user identities.  This
23 switch from raw keys to User IDs makes it possible for administrators
24 to see intuitively who has access to an account, and it also enables
25 end users to transition keys (and revoke compromised ones)
26 automatically across all \fBMonkeysphere\fP-enabled hosts.  The User
27 IDs and certifications that the \fBMonkeysphere\fP relies on are found
28 in the OpenPGP Web of Trust.
29
30 However, in order to establish this binding, each host must know whose
31 cerifications to trust.  Someone who a host trusts to certify User
32 Identities is called an Identity Certifier.  A host must have at least
33 one Identity Certifier in order to bind User IDs to keys.  Commonly,
34 every ID Certifier would be trusted by the host to fully identify any
35 User ID, but more nuanced approaches are possible as well.  For
36 example, a given host could specify a dozen ID certifiers, but assign
37 them all "marginal" trust.  Then any given User ID would need to be
38 certified in the OpenPGP Web of Trust by at least three of those
39 certifiers. 
40
41 It is also possible to limit the scope of trust for a given ID
42 Certifier to a particular domain.  That is, a host can be configured
43 to fully (or marginally) trust a particular ID Certifier only when
44 they certify identities within, say, example.org (based on the e-mail
45 address in the User ID).
46
47 .SH KEY ACCEPTABILITY
48
49 The monkeysphere commands work from a set of user IDs to determine
50 acceptable keys for ssh and TLS authentication.  OpenPGP keys are
51 considered acceptable if the following criteria are met:
52 .TP
53 .B capability
54 The key must have the `authentication' (`a') usage flag set.
55 .TP
56 .B validity
57 The key itself must be valid, i.e. it must be well-formed, not
58 expired, and not revoked.
59 .TP
60 .B certification
61 The relevant user ID must be signed by a trusted identity certifier.
62
63 .SH HOST IDENTIFICATION
64
65 The OpenPGP keys for hosts have associated `service names` (OpenPGP
66 user IDs) that are based on URI specifications for the service.  Some
67 examples:
68 .TP
69 .B ssh:
70 ssh://host.example.com[:port]
71 .TP
72 .B https:
73 https://host.example.com[:port]
74
75 .SH AUTHOR
76
77 Written by:
78 Jameson Rollins <jrollins@finestructure.net>,
79 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
80
81 .SH SEE ALSO
82
83 .BR monkeysphere (1),
84 .BR monkeysphere\-host (8),
85 .BR monkeysphere\-authentication (8),
86 .BR openpgp2ssh (1),
87 .BR pem2openpgp (1),
88 .BR gpg (1),
89 .BR http://tools.ietf.org/html/rfc4880,
90 .BR ssh (1),
91 .BR http://tools.ietf.org/wg/secsh/draft\-ietf\-secsh\-scp\-sftp\-ssh\-uri/