Re: [TLS] TLS extension
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [TLS] TLS extension



This is purely FYI, concerning mostly the client key id extension implications, in WTLS. I've been comparing alert signaling of DTLS with WTLS's analogous datagram mode, of 06 Avril 2001. The alerts that differ between the two seem to be well specified in the WTLS text, but the associated procedures change the semantics of several security critical functions.

time_required(11),
unknown_key_id(52),
disabled_key_id(53),
key_exchange_disabled(54),
session_not_ready(55),
unknown_parameter_index(56),
duplicate_finished_received(57),

Unlike DTLS which presumably really hinges on TLS (1.2) - which has counter modes and AEAP to allow for (wide-area) routing of the datagrams - I don't see any of this kind of key scheduling apparatus in WAP. At the same time, WAP is essentially about point to point record transfers & gatewaying. We do later see a key_refresh process - a function of seq_number handling (a scheme that presumably assumes small windows, appropriate to P2P links)

1. Clearly, the WTLS keyid are a shared secret regimes, much like WEP of the same era; we have the master_Secret KDF and we have 16 byte nonces in the this and final KDF, of which 14 are random. This 14 byte non-secret nonce is the IV, in some ciphersuites.

1a. Re that SuiteB I-D, in WTLS, there would be no problem with the resume session exchanging new (extended) nonces, for the opaque PRF case. In WAP, one just uses the classical SSLv3-era extended Client/ServerHellos for sharing (extended) nonces values; whereas in TLS doctrine, one must use handshake specific messages per TLS extension negotiation - which don't flow that well under the intended state machine of the session resume case.

2. We also have cleartext alerts (that presumably the network itself can introduce), that an implementation can choose to regard as fatal. One of the cleartext alerts may be time_required, which I'm not sure if it's the network or the wap gateway that produces this. Could we imagine a ICMP packet from a intermediate router influencing the sending DTLS in a similar way??

3. for key_exchange_disabled (for anonymous modes e.g. self-signed RSA certs), the alert seems to say: don't replace one anonymous grade authentication with another. At the same time, this reduces how much RSA operations one could be performing. Presumably, this is to stop time wasting on the formal rationale, and to perhaps limit RSA repurposing. Lots of anonymous 20 byte rsa exchanges can add up to a decent channel under RSA cryptostrength.

4. Now, All these seem to add up. The semantics of session closing change a little. One can now influence active, current (and duplicated) sessions, with alerts. I not entirely sure I understand what the equivalent regime is for DTLS, concerning fatal's semantics, during (1) active connection security state, versus (2) when pending=active=null

"A fatal alert only terminates the session to be created and leaves the existing session intact if the handshaking is conducted
on an existing secure session. However, there may be some cases that closing the existing session is desirable. A
session_close_notify MUST be sent to the peer if one of the parties decide to terminate the existing session immediately
after a fatal alert is sent or received during a handshake that intends to create a new session. Under any other
circumstances, a fatal alert is treated normally as described at the beginning of this section."


5. The notion of client key id leads to the PMS, at least for RSA. Thus pre-master secret handling is novel (to me, anyways, for RSA): "This random value is generated by the client. This value appended with the public key is used as the pre-master secret which is used to generate the master secret, as specified in Chapter 11." So, basically, only 20 byes are unknown (unlike 48 in TLS). Why? And the PMS is formally these 20 bytes plus the server's public key value, at the start of the PRF, with a public string, and public nonces. Any ideas what is happening here? Handling 20 bytes cleartext in RSA is the ~same decipherment time as 48 cleartext bytes, under PKCS#1 type 2. Unless there is a datagram explanation here, what's the rationale?

6. we see that the key_refresh function over seq_numbers causes the key_block to be refreshed, changing the symmetric key periodically. And the nonce is used as the IV, in export mode ciphers.

7. we have to remember that WTLS cannot do it own fragmentation, unlike DTLS. Upper layer stacks protocols get to control when keys are changed, therefore in WTLS.

by compare and contrast of connectionless TLSs, looking at SuiteB's GCM, the work in AEAP, I think I'm beginning to get a handle on TLS 1.2 era work.

Incidentally, I have been looking at WTLS 1.2, for my Bluetooth/voip project. There is a lot IETF could learn from that (monotonic seq_numbers for datagrams, not increasing; use of nullWithNull; multiplexed connections; extensions). The design art is all open (including all the debates about how to handle TCP in a wire/wireless environment). It is just so NOT DOGMATIC; it just takes SSLv3 and updates it for the different KDFs in the TLS-era and then tunes it for the different bearers and upper layer stack process. It just does several jobs, without any pretension. The state machines are excellent addition to the community art, as is the formal model of the protocol spec.


_______________________________________________ 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.