IETF-SSH archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gss userauth



Love <lha%stacken.kth.se@localhost> writes:

> I've pointed out this to the authors privatly, so I'll repeat this
> publicly. I consider gss userauth to be broken since it doesn't verify the
> session id (using either mic or a channel bindings (like in CCM)).

So I would like to propose adding the following text (marked with !) in 3.5
in draft-ietf-secsh-gsskeyex. I knowlingly break backward compability
because I think the problem is important enough to (possibly) break
backward compability.

I've had a long chat with Jeff Hutzelman, and the solution that he and Sam
Hartmans are talking about might be better then mine. I'm proposing this
for a simple alternative solution to the problem.

Love


3.4  GSSAPI session

[...]

!  The client MUST use the integ_avail in calls to
!  GSS_Init_sec_context() to request credential and verify the flag
!  is set then the negotiation is done.

[...]

3.5 Client acknowledgement

   It is possible for the server to successfully complete the GSSAPI
   method and the client to fail.  If the server simply assumed success
   on the part of the client and completed the authentication service,
   it is possible that the client would fail to complete the
   authentication method, but not be able to retry other methods
   because the server had already moved on.

   Therefore, the client MUST send the following message when it has
   successfully called GSS_Init_sec_context() and gotten GSS_S_COMPLETE:

           byte      SSH_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE
!          string    MIC

   This message MUST be sent if and only if GSS_Init_sec_context()
   returned GSS_S_COMPLETE.  If a token is returned then the
   SSH_MSG_USERAUTH_GSSAPI_TOKEN message MUST be sent before this one.

!  The MIC is the result of the gss_get_mic over the following data, in the
!  following order:
!
!    string    session identifier
!    byte      SSH_MSG_USERAUTH_REQUEST
!    string    user name (in ISO-10646 UTF-8 encoding)
!    string    service name (in US-ASCII)
!    string    "gssapi" (US-ASCII method name)
!    uint32    n, the number of mechanism OIDs client supports
!    string[n] mechanism OIDs

Attachment: pgpnhtKicf3jL.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index