Re: I-D ACTION:draft-ietf-tls-https-03.txt
[email protected] (Bodo Moeller) Thu, 23 Sep 1999 23:03:32 +0200 (CEST)
| Newsgroups | gmane.ietf.apps-tls |
|---|---|
| Message-ID | <m11UG1c-000QdtC@epsilon> |
Stefan Kelm <[email protected]>: >> <draft-ietf-tls-https-03.txt> September 1999 (Expires March-00) >> 2.2.2. Server Behavior >> >> RFC2068 permits an HTTP client to close the connection at any time, > RFC2068 is missing in the References section. Because it's been obsoleted by RFC 2616. draft-ietf-tls-https-02.txt always referenced 2068, this has now been changed; some occurences of that number obviously have been missed. >> and requires servers to recover gracefully. In particular, servers >> SHOULD be prepared to receive an incomplete close from the client, >> since the client can often determine when the end of server data is. > ...is reached? Shouldn't we include a short example of how the client is > able to determine the end of data? I'm not even sure if that sentence makes sense -- the client often can see where the server data ends, sure, but what does that have to do with the client's closing the connection to the server (i.e. the reverse direction)? The language of properly formatted HTTP requests is prefix-free, so the server never has to worry even when the client aborts a connection without cleanly closing it; so why worry about incomplete closure by the client, i.e. the client sending a closure_alert without waiting for the one from the server? The server won't even notice if the client ignores its closure_alert, except when the client RSTs the connection; and even then the difference between RST and proper FIN does not matter to the server because it is not cryptographically secured. There's been some discussion on section 2.2.1 (Client Behavior), which possibly also needs clarification: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2.2.1. Client Behavior Because HTTP uses connection closure to signal end of server data, client implementations MUST treat any premature closes as errors and the data received as potentially truncated. Two cases in particular deserve special note: A HTTP response without a Content-Length header. Since data length in this situation is signalled by connection close a premature close generated by the server cannot be distinguished from a spurious close generated by an attacker. A HTTP response with a valid Content-Length header closed before all data has been read. Because TLS does not provide document oriented protection, it is impossible to determine whether the server has miscomputed the Content-Length or an attacker has truncated the connection. [...] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Here it was not clear to everyone what that "special note" really is to say. A rough proposal for how to change the text: 2.2.1. Client Behavior Because HTTP uses connection closure to signal end of server data, client implementations MUST treat any premature closes as errors and the data received as potentially truncated. While in some cases the HTTP protocol allows the client to find out whether truncation took place so that, if it received the complete reply, it may tolerate such errors following the principle to "[be] strict when sending and tolerant when receiving" [RFC 1958], often truncation does not show in the HTTP protocol data; two cases in particular deserve special note: [...] >> References >> [RFC-2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., > This should read "RFC2616" (no "-"). Even better, "RFC 2616". > References to RFC2026 and RFC2068 are missing. None is needed for RFC 2026 (no Internet Draft I know of references RFC 2026), and 2068 was just mentioned by accident, so again no reference is needed. Bodo M"oller <[email protected]>