re: New version of TLS + IMAP/POP/ACAP draft
Chris Newman <[email protected]> Wed, 25 Nov 1998 10:22:05 -0800 (PST)
| Newsgroups | gmane.ietf.apps-tls |
|---|---|
| Message-ID | <[email protected]> |
On Wed, 25 Nov 1998, Randall S. Winchester wrote: > 1) I have a concern about the lack of clarification after a NO is returned > for a STARTTLS request. Here is an example of what I am concerned about: > > Example: C: a001 CAPABILITY > S: * CAPABILITY IMAP4rev1 STARTTLS > S: a001 OK CAPABILITY completed > C: a002 STARTTLS > S: a002 NO security layer already active [Man-in-the-middle] > C: a004 LOGIN joe password [Gotcha] > S: a004 OK LOGIN completed > > I do not see anything in the language preventing a NO from turning off TLS > negotiation. This to me is a primary concern with not sticking with the > dedicated SSL ports, which MUST use SSL/TLS. Of course the POP and ACAP > language is terse as well. Exactly the same attack as having an attacker generate a rejection for the SYN on the separate port. The attack can be mitigated by (1) the client having a "must use TLS" mode, and/or (2) the client remembers servers to which it has successfully negotiated TLS and complains if negotiation fails for any reason, and/or (3) make the fact that TLS is active visible in the UI. > 2) In section 3.1: > > Once TLS has been started, the client SHOULD discard cached > information about server capabilities and re-issue the CAPABILITY > command. This is necessary to protect against man-in-the-middle > attacks which alter the capabilities list prior to STARTTLS. The > server MAY advertise different capabilities after STARTTLS. > > If this is *necessary to protect* then why would you not have it read: > > Once TLS has been started, the client MUST discard cached > information about server capabilities and MUST re-issue the CAPABILITY > command. This is necessary to protect against man-in-the-middle > attacks which alter the capabilities list prior to STARTTLS. The > server MAY advertise different capabilities after STARTTLS. "SHOULD" is used instead of "MUST" when there is a legitimate reason not to take the action. In this case, the legitimate reason is that the client isn't using any protocol extensions or security mechanisms other than STARTTLS. I could change it to "MUST discard cached information about server capabilities (excluding the presence of the STARTTLS capability) and SHOULD re-issue the CAPABILITY command," but I prefer the simpler wording unless others feel this is important. > This implies to me that the "CAPABILITY" before and after STARTTLS will > always be different, unless you are allowed to advertise non "valid" > capabilities. You should never see a "STARTTLS" in a CAPABILITY list after a > sussesful TLS negotiation. True. I'll clarify the wording. - Chris