The IE blog had a very interesting post yesterday about
security tweaks.
If a website requests Basic HTTP authentication over a non-SSL connection, text is added to the Username/Password box to the effect that "this username and password will be transmitted insecurely."
Which is all very well and good. Except that IE doesn't
1 support Digest HTTP Authentication, which was designed to cover this shortfall in Basic Authentication.
... unless it's connecting to an IIS server. Then Digest HTTP Authentication works just fine.
So we have the following situation:
IE6 <-Basic-> IIS: works fine
IE6 <-Digest-> IIS: works fine
IE6 <-NTLM-> IIS: works fine
IE6 <-Basic-> Apache: works fine
IE6 <-Digest-> Apache:
DOES NOT WORK2 works fine (Apache accepts IE6's incorrect headers)
IE6 <-NTLM-> Apache: works fine
Firefox <-Basic-> IIS: works fine
Firefox <-Digest-> IIS: DOES NOT WORK (IIS does not accept Firefox's correct headers)
Firefox <-NTLM-> IIS: works fine
... and now...
IE7 <-Basic-> IIS: UGLY WARNING
IE7 <-Digest-> IIS: works fine
IE7 <-NTLM-> IIS: works fine
IE7 <-Basic-> Apache: UGLY WARNING
IE7 <-Digest-> Apache:
DOES NOT WORK works fine
IE7 <-NTLM-> Apache: works fine
So as I read this, if you want to use IIS, you're stuck with either:
* Sticking your IE7 consumers with a big ugly warning
* Shutting out your Firefox consumers
* Using NTLM
I'm in favor of adding the warning. I agree that plaintext not-over-SSL is a bad way to transport passwords.
But... and this is my point... I think Digest Authentication should be fixed FIRST
3. Otherwise this is just a way to push NTLM, no?
Thoughts?
1Microsoft
claims it does. But see my comments on the blog post. (I believed them at first, and mistakenly thought what I was seeing was a Firefox bug. But then I read the RFC.)
2See
http://www.eweek.com/article2/0%2C1895%2C1500432%2C00.asp3Note that fixing IE7's Digest Authentication will probably entail fixing IIS's Digest Authentication first.
So the critical path is:
1) Fix IIS Digest Authentication (release patches for downlevel IIS servers...)
2) Fix IE Digest Authentication (release patches for downlevel IE clients...)
3) Add the Basic Authentication warning.
EDIT:
According to David Wang this bug is fixed in IIS 6.