[TLS] GSS based PSK-TLS
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[TLS] GSS based PSK-TLS
We would like to request for comments for the GSS based PSK-TLS ID:
http://www.ietf.org/internet-drafts/draft-santesson-tls-gssapi-02.txt
We have few comments that came after the draft submission that we felt
it is important to bring up some of them to the list here.
Jeff Altman will make -03 available before ITTF69 that would merge the
changes
so far.
1) Why the GSS handshake does not come before the hello message?
Having the GSS handshake before the hello is not backward compatible
with the TLS protocols.
2) Why the GSS handshake does not come after the key exchange message?
We do not want to pay for the cost of the DHE or RSA in this case.
The main motivation for us is to enable Kerberos to secure TLS
connections.
Kerberos is a lot faster, and we intend to keep it that way.
3) why it is not an issue to have arbitrary number of GSS round trips?
This has been raised previously.
The arguments that EKR made starting on 3/8/2007 on the old thread may
not
apply given that we are doing the Kerberos AP-REQ and AP-REP in the
hello
messages using TLS extensions, and the Kerberos shared key is them
imported to PSK-TLS.
We (Jeff, Stefan and I) would like to have folks to review the
new ID and see if your opinions have changed.
We believe the revised ID has minimal impact to the TLS state machine.
Also there are the handshake loop could be a stretch for mobile
devices that have limited computing capabilities or in situations
where the network latency is large such as satellite links.
To address that concern, we introduce a policy that limit the # of
GSS hand shake messages.
In addition, the TLS client does not choose a GSS mechanism that can
potentially have a large number of round-trips in the above
circumstances.
The TLS client chooses which set of cipher suites to support as it does
today,
and it can choose which GSS mechanism set is supported according to
RFC4178.
4) client authentication
The client and server authentication as defined in -02 need clarity.
The following text describes the mechanism.
The client MUST NOT include a gss_api TLS extension if there is no
PSK ciphersuite [RFC4279] included in the cipher_suites field of the
client hello message.
Initially the client computes the gss_api TLS extention data by
calling GSS_Init_sec_context() [RFC2743] to establish a security
context. The TLS client MUST set the mutual_req_flag and identify
the server by targ_name so that mutual authentication is performed in
the course of context establishment.
If the mutual authentication is not available on the established GSS-
API context, the PSK key exchange described in Section 2 of [RFC4279]
MUST NOT be selected, and the DHE_PSK or RSA_PSK key exchange MUST be
negotiated instead in order to authenticate the server.
If the GSS-API mechanism in the gss_api TLS extension provides client
authentication [RFC2743], the CertificateRequest, the client
Certificate and the CertificateVerify handshake messages MUST NOT be
present. This is illustrated in Appendix A.
Client Server
ClientHello(with AP-REQ) -------->
ServerHello(with AP-REP)
<-------- ServerHelloDone
ClientKeyExchange
[ChangeCipherSpec]
Finished -------->
[ChangeCipherSpec]
<-------- Finished
Application Data <--------> Application Data
Fig. 2. Kerberos FKA-TLS example message flow
5) what are the parameters to GSS PRF?
The input parameters to GSS_Pseudo_random() to compute the shared
scret value MUST be provided as follows:
o The context is the handle to the GSS-API context established in
the given session.
o The prf_key is GSS_C_PRF_KEY_FULL.
o The prf_in contains the UTF8 encoding of the string "GSS-API TLS
PSK".
o The desired_output_len is 64. In other words, the output keying
mastering size is 64 in bytes.
6) how are the GSS mechanisms negotiated?
This logic is encapsulated in GSS. SPNEGO as defined in RFC4178 can do
it.
The concern is that such negotiation can be suboptimal when there are
two
layers of negotiation, one in the TLS hello message, and the other in
the
GSS layer. We believe such concern can be addressed by allowing
additional
input to GSS negotiation to share the negotiation hint. That can be
accomplished, for example, by extending RFC4178.
As long as the cipher suite decision is made in one round-trip that the
fact that the GSS OID options are carried in a GSS token instead of the
TLS cipher list does not result in a two-layer negotiation.
-- Larry Zhu on behalf of Larry, Jeff and Stefan.
_______________________________________________
TLS mailing list
TLS at lists.ietf.org
https://www1.ietf.org/mailman/listinfo/tls
Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.