logo_kerberos.gif

Difference between revisions of "Anonymous kerberos"

From K5Wiki
Jump to: navigation, search
m (fix formatting)
(add pointers to pkinit configuration)
 
(One intermediate revision by the same user not shown)
Line 11: Line 11:
 
In completely anonymous Kerberos, a principal can authenticate to a realm with no Kerberos identity in that realm. Diffie-Hellman key exchange is used to establish a shared secret.. To use completely anonymous Kerberos:
 
In completely anonymous Kerberos, a principal can authenticate to a realm with no Kerberos identity in that realm. Diffie-Hellman key exchange is used to establish a shared secret.. To use completely anonymous Kerberos:
   
# Configure the KDC to support pkinit, setting at least <tt>pkinit_identity</tt> on the KDC.
+
# Configure the KDC to support [[Pkinit configuration |Pkinit]]
# Set <tt>pkinit_anchors</tt> so that the client can verify the KDC certificate
+
# Create the <tt>WELLKNOWN/ANONYMOUS</tt> principal in the realm to signal that fully anonymous Kerberos is enabled. Use the command <pre> addprinc -randkey WELLKNOWN/ANONYMOUS</pre> in <b>kadmin</b> to accomplish this.
# Create the <tt>WELLKNOWN/ANONYMOUS</tt> principal in the realm to signal that fully anonymous Kerberos is enabled.
 
   
 
On the client use <tt> kinit -n @<i>REALM</i></tt> or <tt> kadmin -n
 
On the client use <tt> kinit -n @<i>REALM</i></tt> or <tt> kadmin -n
Line 25: Line 25:
 
On the client, use <tt>kinit -n <i>principal</i></tt> to authenticate. A password or other credential will be required just as if the <tt>-n</tt> flag is not included. However, the resulting principal will be <tt>WELLKNOWN/ANONYMOUS@<i>REALM</i></tt>.
 
On the client, use <tt>kinit -n <i>principal</i></tt> to authenticate. A password or other credential will be required just as if the <tt>-n</tt> flag is not included. However, the resulting principal will be <tt>WELLKNOWN/ANONYMOUS@<i>REALM</i></tt>.
   
== Implementation Status ==
 
  +
== Host registration ==
  +
  +
One common use case for anonymous Kerberos is to permit any user to register a host in a realm even if they don't have a Kerberos identity. That way, these automated installation systems can register a host for Kerberos so that Kerberos services can be established. To permit this use case, configure fully anonymous Kerberos as described above. Then, add the following entry to <tt>kadm5.acl</tt>
  +
<pre>
  +
WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS a host/*@YOUR_REALm
  +
</pre>
  +
 
== Implementation status ==
   
 
See [[Projects/Anonymous pkinit]] for implementation status.
 
See [[Projects/Anonymous pkinit]] for implementation status.

Latest revision as of 11:46, 11 January 2010

Anonymous kerberos provides a mechanism for principals to authenticate to a remote service without disclosing their identity.There are two primary use cases:

  1. Principals with no Kerberos identity at all authenticating to create an identity or to protect some communication
  2. Principals authenticating to some external service, disclosing that they are affiliated with a particular realm but not disclosing their full identity.

There are two modes of anonymous Kerberos to meet these objectives: completely anonymous and realm-exposed.

Completely anonymous

In completely anonymous Kerberos, a principal can authenticate to a realm with no Kerberos identity in that realm. Diffie-Hellman key exchange is used to establish a shared secret.. To use completely anonymous Kerberos:

  1. Configure the KDC to support Pkinit
  2. Create the WELLKNOWN/ANONYMOUS principal in the realm to signal that fully anonymous Kerberos is enabled. Use the command
     addprinc -randkey WELLKNOWN/ANONYMOUS
    in kadmin to accomplish this.

On the client use kinit -n @REALM or kadmin -n @REALM to request anonymous tickets. In klist and in service ACLs the resulting authentication will use the WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS well known principal.

Realm Exposed Anonymous

Alternatively, clients can authenticate normally to the KDC but request that the KDC return a credential that only exposes the client's realm. The MIT Kerberos client is believed to support this mode as of Kerberos 1.8, although the KDC currently does not support this mode.

On the client, use kinit -n principal to authenticate. A password or other credential will be required just as if the -n flag is not included. However, the resulting principal will be WELLKNOWN/ANONYMOUS@REALM.

Host registration

One common use case for anonymous Kerberos is to permit any user to register a host in a realm even if they don't have a Kerberos identity. That way, these automated installation systems can register a host for Kerberos so that Kerberos services can be established. To permit this use case, configure fully anonymous Kerberos as described above. Then, add the following entry to kadm5.acl

WELLKNOWN/ANONYMOUS@WELLKNOWN:ANONYMOUS a host/*@YOUR_REALm

Implementation status

See Projects/Anonymous pkinit for implementation status.