My favorites | Sign in
Project Home Downloads Wiki Issues
New issue   Search
for
  Advanced search   Search tips
Issue 5894: Bank of America Military Bank Login Page Inaccessible on Vista with the new HTTP stack
4 people starred this issue and may be notified of changes. Back to list
 
Reported by ACiDxCHR...@gmail.com, Dec 28, 2008
Chrome Version       : 1.0.156.0 (7480)
URLs (if applicable) : https://militarybankonline.bankofamerica.com/efs/servlet/military/login.jsp
Other browsers tested: IE 7 & Firefox 3
Add OK or FAIL after other browsers where you have tested this issue:
     Safari 3: Not Tested
    Firefox 3: OK
         IE 7: OK

What steps will reproduce the problem?
1. goto https://www.bankofamerica.com/military/index.cfm?
template=transition_overview
2. select a State to store cookie
3. again goto https://www.bankofamerica.com/military/index.cfm?
template=transition_overview 
4. Click on Sign In button under "Military Bank Online" (right half of page 
over half way down)

What is the expected result?
A page with username and password text entry boxes, and sign in button (see 
attached screenshot)

What happens instead?
This webpage is not available.

The webpage at 
https://militarybankonline.bankofamerica.com/efs/servlet/military/login.jsp 
might be temporarily down or it may have moved permanently to a new web 
address.

  More information on this error
Below is the original error message

Error 2 (net::ERR_FAILED): Unknown error.

Please provide any additional information below. Attach a screenshot if 
possible.

expected result.png
146 KB   View   Download
Comment 1 by suna...@chromium.org, Dec 29, 2008
It opens fine without any error for me. Can you please add the parameter --new-http 
to one of your shortcuts and see if it works?
Cc: anan...@chromium.org
Comment 2 by ACiDxCHR...@gmail.com, Dec 29, 2008
I tried it, still doesn't work.

try going directly to this link:
https://militarybankonline.bankofamerica.com/efs/servlet/military/login.jsp

when i goto that page i get the message i posted under "What happens instead?" with 
or without the --new-http

however when i use IE7 or Firefox 3 it works just fine
Comment 3 by ACiDxCHR...@gmail.com, Dec 29, 2008
see the attached picture to make sure you are seeing that exact page

also i updated to 1.0.156.0 (7485) and it still doesn't work.
Comment 4 by ACiDxCHR...@gmail.com, Dec 29, 2008
I just tried this again in Windows XP Pro SP3 and it worked just fine.

So the problem has something to do with Vista and Chromium
Comment 5 by suna...@chromium.org, Dec 29, 2008
The above URL works with 154.42 but not with latest Chromium builds

Request using 154.42
---------------------
CONNECT militarybankonline.bankofamerica.com:443 HTTP/1.0
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 
(KHTML, like Gecko) Chrome/1.0.154.42 Safari/525.19
Host: militarybankonline.bankofamerica.com:443
Content-Length: 0
Proxy-Connection: Keep-Alive

The data sent represents a SSLv3-compatible ClientHello handshake.  For your 
convenience, the data is extracted below.

Major Version: 3
Minor Version: 1
Random: 49 59 94 FA A7 33 0A B6 23 C8 C5 36 9E 7A 0D 44 9A E3 D2 BB B5 4E 14 A5 34 19 
D7 25 6B 7E 1B 7F 
SessionID: empty
Ciphers: 
	[002F] TLS_RSA_AES_128_SHA
	[0035] TLS_RSA_AES_256_SHA
	[0005] SSL_RSA_WITH_RC4_128_SHA
	[000A] SSL_RSA_WITH_3DES_EDE_SHA
	[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
	[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
	[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
	[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
	[0032] TLS_DHE_DSS_WITH_AES_128_SHA
	[0038] TLS_DHE_DSS_WITH_AES_256_SHA
	[0013] SSL_DHE_DSS_WITH_3DES_EDE_SHA
	[0004] SSL_RSA_WITH_RC4_128_MD5
Response using 154.42
---------------------
HTTP/1.0 200 Connection Established
Timestamp: 19:26:50:1777

Request using 155.0
---------------------
CONNECT militarybankonline.bankofamerica.com:443 HTTP/1.1
Host: militarybankonline.bankofamerica.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/528.7 (KHTML, 
like Gecko) Chrome/1.0.155.0 Safari/528.7

The data sent represents a SSLv3-compatible ClientHello handshake.  For your 
convenience, the data is extracted below.

Major Version: 3
Minor Version: 1
Random: 49 59 95 0E 19 67 29 D8 CE 4F 68 9F 80 7B 55 14 63 93 B3 ED E5 2A 05 BD 17 A4 
8A 9D B7 88 E7 F8 
SessionID: empty
Ciphers: 
	[002F] TLS_RSA_AES_128_SHA
	[0035] TLS_RSA_AES_256_SHA
	[0005] SSL_RSA_WITH_RC4_128_SHA
	[000A] SSL_RSA_WITH_3DES_EDE_SHA
	[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
	[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
	[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
	[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
	[0032] TLS_DHE_DSS_WITH_AES_128_SHA
	[0038] TLS_DHE_DSS_WITH_AES_256_SHA
	[0013] SSL_DHE_DSS_WITH_3DES_EDE_SHA
	[0004] SSL_RSA_WITH_RC4_128_MD5

Response using 155.0
---------------------
HTTP/1.1 200 Connection Established
Timestamp: 19:27:10:3256

***The only difference that I could see is that 154.42 is using protocol HTTP/1.0 and 
155.0 is using HTTP/1.1***
Status: Untriaged
Labels: -Area-Misc Area-BrowserBackend Chrome-specific NeedsEngReview
Comment 6 by mal.chromium@gmail.com, Jan 14, 2009
(No comment was entered for this change.)
Status: Assigned
Owner: ero...@chromium.org
Labels: Mstone-2.0 NewHTTP
Comment 7 by eroman@chromium.org, Jan 14, 2009
I have been unable to reproduce this.

What happens when you use this version of chrome:

http://build.chromium.org/buildbot/snapshots/chromium-rel-xp/8044/chrome-win32.zip

(Extract the zip and run chrome.exe).

Thanks


Comment 8 by suna...@chromium.org, Jan 14, 2009
Even I can't reproduce it now with Chromium 1.0.156.0 (Developer Build 7480)[Version 
used by reporter]. 
Comment 9 by ACiDxCHR...@gmail.com, Jan 14, 2009
are either of you using vista? like I said earlier when I try it in XP it works fine 
but when I do it in Vista it gives me that error even on latest build. I will try on 
a fresh vanilla installation of Vista in VM to see if it is an operating system 
setting specific to me.
Comment 11 by suna...@chromium.org, Jan 15, 2009
Oh Yes. This works fine in XP but not on Vista. I could still reproduce 
it with Chromium 2.0.157.0 (Developer Build 7833) but not with Chrome 1.0.154.43
Comment 12 by eroman@chromium.org, Jan 16, 2009
(No comment was entered for this change.)
Cc: w...@chromium.org
Comment 13 by eroman@chromium.org, Jan 20, 2009
The ERR_FAILED is being generated by SSLClientSocketWin::DoHandshakeReadComplete:

    if (result == 0 && !ignore_ok_result_)
-->   return ERR_FAILED;  // Incomplete response :(

So I am guessing that in order to reach this, we must have written something that the 
server didn't like during SSLClientSocketWin::DoHandshakeWrite().
Comment 14 by eroman@chromium.org, Jan 20, 2009
(No comment was entered for this change.)
Owner: w...@chromium.org
Comment 15 by wtc@chromium.org, Jan 20, 2009
Eric and I looked at the SSL packet trace.  We found that
the server is a TLS-intolerant server.

On XP, Google Chrome 2.0.157.2 sends this SSL ClientHello
message to the server:

--> [
(70 bytes of 65)
SSLRecord { [Tue Jan 20 18:06:37 2009]
   0: 16 03 01 00  41                                   |....A
   type    = 22 (handshake)
   version = { 3,1 }
   length  = 65 (0x41)
   handshake {
   0: 01 00 00 3d                                      |...=
      type = 1 (client_hello)
      length = 61 (0x00003d)
         ClientHelloV3 {
            client_version = {3, 1}
            random = {...}
   0: 49 76 83 2d  d3 65 66 86  3e f1 86 26  c7 38 e2 86  | Iv.-.ef.>..&.8..
  10: 23 cd 5b 0d  f6 f5 2e b3  44 91 6c 13  d2 e4 16 b2  | #.[.....D.l.....
            session ID = {
                length = 0
                contents = {..}
            }
            cipher_suites[11] = {
                (0x0004) SSL3/RSA/RC4-128/MD5
                (0x0005) SSL3/RSA/RC4-128/SHA
                (0x000a) SSL3/RSA/3DES192EDE-CBC/SHA
                (0x0009) SSL3/RSA/DES56-CBC/SHA
                (0x0064) TLS/RSA-EXPORT1024/RC4-56/SHA
                (0x0062) TLS/RSA-EXPORT1024/DES56-CBC/SHA
                (0x0003) SSL3/RSA/RC4-40/MD5
                (0x0006) SSL3/RSA/RC2CBC40/MD5
                (0x0013) SSL3/DHE-DSS/DES192EDE3CBC/SHA
                (0x0012) SSL3/DHE-DSS/DES56-CBC/SHA
                (0x0063) TLS/DHE-DSS_EXPORT1024/DES56-CBC/SHA
            }
            compression[1] = { 00 }
         }
   }
}
]

On Vista, Google Chrome sends a different SSL ClientHello
message, which causes the server to close the underlying
TCP connection immediately:

--> [
(92 bytes of 87)
SSLRecord { [Tue Jan 20 17:56:46 2009]
   0: 16 03 01 00  57                                   |....W
   type    = 22 (handshake)
   version = { 3,1 }
   length  = 87 (0x57)
   handshake {
   0: 01 00 00 53                                      |...S
      type = 1 (client_hello)
      length = 83 (0x000053)
         ClientHelloV3 {
            client_version = {3, 1}
            random = {...}
   0: 49 76 80 de  9f e8 29 53  cc 9c 42 d7  95 86 c6 4f  | Iv....)S..B....O
  10: 0e fb c2 29  3d 02 c2 e8  f3 65 4a 12  7e a6 b7 9c  | ...)=....eJ.~...
            session ID = {
                length = 0
                contents = {..}
            }
            cipher_suites[12] = {
                (0x002f) TLS/RSA/AES128-CBC/SHA
                (0x0035) TLS/RSA/AES256-CBC/SHA
                (0x0005) SSL3/RSA/RC4-128/SHA
                (0x000a) SSL3/RSA/3DES192EDE-CBC/SHA
                (0xc009) TLS/ECDHE-ECDSA/AES128-CBC/SHA
                (0xc00a) TLS/ECDHE-ECDSA/AES256-CBC/SHA
                (0xc013) TLS/ECDHE-RSA/AES128-CBC/SHA
                (0xc014) TLS/ECDHE-RSA/AES256-CBC/SHA
                (0x0032) TLS/DHE-DSS/AES128-CBC/SHA
                (0x0038) TLS/DHE-DSS/AES256-CBC/SHA
                (0x0013) SSL3/DHE-DSS/DES192EDE3CBC/SHA
                (0x0004) SSL3/RSA/RC4-128/MD5
            }
            compression[1] = { 00 }
            extensions[18] = {
              extension type elliptic_curves, length [8] = {
   0: 00 06 00 17  00 18 00 19                          |........
              }
              extension type ec_point_formats, length [2] = {
   0: 01 00                                            |..
              }
            }
         }
   }
}
]
Read EOF on Server socket. [Tue Jan 20 17:56:46 2009]

You can see that the lists of cipher suites are different
in the ClientHello messages.  Moreover, the Vista ClientHello
message has two extensions (for elliptic curve cryptography).
Most likely, the server doesn't like ClientHello extensions.

We have code in http_network_transaction.cc for handling
TLS-intolerant servers, but it requires the error code from
SSL handshake to be ERR_SSL_PROTOCOL_ERROR or
ERR_SSL_VERSION_OR_CIPHER_MISMATCH.  Since we're returning
ERR_FAILED now, the TLS-intolerant server handling code is
not activated.  The fix is most likely to return
ERR_SSL_PROTOCOL_ERROR instead.
Status: Started
Cc: ero...@chromium.org
Labels: -NeedsEngReview
Comment 16 by bugdroid1@gmail.com, Jan 21, 2009
The following revision refers to this bug:
    http://src.chromium.org/viewvc/chrome?view=rev&revision=8377 

------------------------------------------------------------------------
r8377 | wtc@chromium.org | 2009-01-21 11:16:05 -0800 (Wed, 21 Jan 2009) | 9 lines
Changed paths:
   M http://src.chromium.org/viewvc/chrome/trunk/src/net/base/ssl_client_socket_win.cc?r1=8377&r2=8376

Return ERR_SSL_PROTOCOL_ERROR instead of the default
ERR_FAILED when we read EOF during the SSL handshake.
The ERR_SSL_PROTOCOL_ERROR error code will allow the
TLS-intolerant server handling code in
http_network_transaction.cc to kick in if necessary.

R=eroman
BUG=5894
Review URL: http://codereview.chromium.org/18606
------------------------------------------------------------------------

Comment 17 by wtc@chromium.org, Jan 21, 2009
Fixed in r8377.

Until this fix shows up in the Dev channel, you can work
around this bug by turning off TLS 1.0.  Go to
Control Panel > Internet Options > Advanced > Settings >
Security, uncheck the "Use TLS 1.0" box, and click the
"OK" button.  Restart Chromium.

Remember to turn TLS 1.0 back on when you get the bug fix
because TLS 1.0 is more secure than SSL 3.0.
Summary: Bank of America Military Bank Login Page Inaccessible on Vista with the new HTTP stack
Status: Fixed
Comment 18 by wtc@chromium.org, Jan 21, 2009
The TLS intolerant server at
https://militarybankonline.bankofamerica.com/efs/servlet/military/login.jsp
identifies itself as
"Server: IBM_HTTP_Server/6.0.2.15 Apache/2.0.47 (Unix) DAV/2".

I also found that WinHTTP handles this particular TLS intolerant
server transparently on Vista.  WinHTTP doesn't report any error
to us at all, so our own TLS intolerant server handling code isn't
being used.

In any case, with my fix, the new HTTP stack (plus our own TLS
intolerant server handling code) generates the same SSL packet
trace as WinHTTP does.
Comment 19 by mal.chromium@gmail.com, Dec 18, 2009
(No comment was entered for this change.)
Labels: -Area-BrowserBackend Area-Internals Internals-Network
Sign in to add a comment

Powered by Google Project Hosting