PKINIT support in MIT Kerberos : are enhancements planned ?

Matthieu Hautreux matthieu.hautreux at gmail.com
Tue Jan 3 08:37:35 EST 2012


Hi,

I discussed this topic on the krbdev mailing list last month but did
not get feedback from the main developpers of MIT kerberos. So, I try
again on the general mailing list in case it could be a better place
to put such a message.

I am currently working on a way to bind gsi-ssh and kerberos using
PKINIT in order to offer a seamless access to a kerberized remote
environment using the X509 material of the client.

I am facing two problems that prevent me from having something working
properly with MIT kerberos implementations :

  1/ GSI-SSH uses proxy-certificates to provide single sign-on on the
remote side. To get a kerberos token out of the x509 material on the
server, I need to have a kerberos implementation supporting
proxy-certificates.

  2/ We are using multiple PKIs that were defined prior to any
consideration of doing PKINIT stuff and can not be modified. We can
not rely on a simple DN<->principal mapping as this feature is not
supported in current MIT implementation.


The problem 1/ correspond to the support of RFC 3820 in PKINIT
implementation. It is lacking in current MIT implementations.

The problem 2/ correspond to the support of a simple mapping between
certificates and principals. In the PKINIT RFC (RFC 4556), the
sentence "If the KDC has its own binding between either the client's
signature-verification public key or the client's certificate and the
client's Kerberos principal name, it uses that binding." suggests that
such a basic mapping methodology should be proposed as the default
mechanism. Below, the part of the RFC about that point :

---
[...]

3.2.2.  Receipt of Client Request

[...]

1. If the KDC has its own binding between either the client's
   signature-verification public key or the client's certificate and
   the client's Kerberos principal name, it uses that binding.

2. Otherwise, if the client's X.509 certificate contains a Subject
   Alternative Name (SAN) extension carrying a KRB5PrincipalName
   (defined below) in the otherName field of the type GeneralName
   [RFC3280], it binds the client's X.509 certificate to that name.

[...]

The KDC MAY require the presence of an Extended Key Usage (EKU)
KeyPurposeId [RFC3280] id-pkinit-KPClientAuth in the extensions field
of the client's X.509 certificate:

      id-pkinit-KPClientAuth OBJECT IDENTIFIER ::=
        { iso(1) org(3) dod(6) internet(1) security(5) kerberosv5(2)
          pkinit(3) keyPurposeClientAuth(4) }
             -- PKINIT client authentication.
             -- Key usage bits that MUST be consistent:
             -- digitalSignature.

The digitalSignature key usage bit [RFC3280] MUST be asserted when
the intended purpose of the client's X.509 certificate is restricted
with the id-pkinit-KPClientAuth EKU.
---

I would like to know if these 2 features are planned in a future
version of MIT kerberos. If it is not the case, I would be pleased to
know how I could participate in such an addition and the person I must
contact for that purpose.
I have seen that it exists a "MIT kerberos consortium", perhaps I
should try to contact them to discuss such an evolution ?

Thanks in advance for your feedback.

Best regards,
Matthieu Hautreux


More information about the Kerberos mailing list