Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 168603 - [Vista] SSL Recording fails on Windows Vista
Summary: [Vista] SSL Recording fails on Windows Vista
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: TPTP (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows Vista
: P1 critical (vote)
Target Milestone: ---   Edit
Assignee: DuWayne Morris CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 163254
  Show dependency tree
 
Reported: 2006-12-19 15:55 EST by DuWayne Morris CLA
Modified: 2016-05-05 10:28 EDT (History)
6 users (show)

See Also:


Attachments
Ethereal trace file (326.07 KB, application/octet-stream)
2006-12-19 16:13 EST, Richard Ptasnik CLA
no flags Details
Etheral trace file showing entire conversion. (30.64 KB, application/octet-stream)
2006-12-19 17:32 EST, Richard Ptasnik CLA
no flags Details
Fix for SSL Recording via Internet Explorer on Vista (953 bytes, patch)
2007-01-12 10:36 EST, DuWayne Morris CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description DuWayne Morris CLA 2006-12-19 15:55:44 EST
When attempting to perform an HTTP Recording of SSL traffic on Windows Vista, the recorder is unable to establish a connection to the server.  No security warning is presented (like we normally get due to re-direction through our recorder proxy server).  It is assummed that this is due to some new security feature in Windows Vista.  At this time, there is no known work-around or code fix approach in hand to address this issue.
Comment 1 Richard Ptasnik CLA 2006-12-19 16:13:37 EST
Created attachment 55927 [details]
Ethereal trace file
Comment 2 Richard Ptasnik CLA 2006-12-19 17:32:30 EST
Created attachment 55931 [details]
Etheral trace file showing entire conversion.

In this recording I used another vista machine (9.37.207.132), who had its IE set to use a socks proxy set to the machine running the recorder process (9.37.207.21).  I used this method because in the normal local recording I was unable to trace loopback traffic using Ethereal and was unable to see IE to recorder process traffic.

The results are the same, a IE browser on Vista is unable to record SSL traffic.  Interesting enough, we were able to take a non-Vista IE, point it to the Vista recorder process, and record SSL traffic.  This seems to point to some sort of security setting on Vista IE stopping this SSL conversion.
Comment 3 DuWayne Morris CLA 2006-12-20 12:52:41 EST
It has been found that SSL recording works on Vista using FireFox.

No SSL recording solution found for Internet Explorer at this time.  At least this narrows it down to the version of IE 7 that is installed on Vista or some not so obvious settings somewhere that are applied on Vista (as opposed to some blockage by the operating system).
Comment 4 Paul Slauenwhite CLA 2006-12-20 12:55:01 EST
(In reply to comment #3)

Does IE7 work on XP?
Comment 5 DuWayne Morris CLA 2006-12-20 13:36:53 EST
Yes, IE 7 SSL recording works on Windows XP SP2.

As far as targeting, I believe we should target the fix for 4.2.2 and hope that we find a solution.  
Comment 6 Paul Slauenwhite CLA 2006-12-21 11:00:43 EST
[Duwayne Morris]
There is no known fix at this time.
Comment 7 Mark D Dunn CLA 2007-01-08 10:56:27 EST
DuWayne has done all the research on this and has ideas on how to fix this.  I suggest reassigning this to DuWayne.  Reassign to me if you feel necessary. 
Comment 8 DuWayne Morris CLA 2007-01-08 14:53:34 EST
Found this link on Microsoft.com describing the behavior we see when there is a problem with the server Security Certificate.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/ie7_https_imps.asp

Importing the Hyades certificate into IE as a trusted certificate and importing it as a Trusted Certificate Authority was no help.

It is now expected based on this info that the same thing will happen to IE7 on Windows XP.  This appears to be strictly an IE security measure that happened first on Windows Vista.
Comment 9 DuWayne Morris CLA 2007-01-09 13:10:09 EST
Adding some further behavior notes.

Connecting from IE 7 on Vista to a proxy recorder running on an XP machine gives the same error message on SSL, will not connect, while non-SSL works fine.  This is an added demonstration that perhaps IE 7 on Vista recognizes the proxy address attempting to establish an SSL connection and blocks because this is a man in the middle attack. 

Connecting to a server without a trusted certificate provides a different error message.  It also provides an option to view/import the certificate and to proceed with the connection.  So, the problem we have is definitely associated with the specific behavior of a proxy server. I tested this by connecting to a Java SSL server running at my house via an IP address and that uses a certificate I generated for myself with no trusted CA.  


Perhaps we can overcome this by adding another layer of indirection with a normally acting proxy communicating through a hidden proxy.  This may need to do some IP spoofing to work, just a thought.  I don't think the solution is simple unless we can get some help from Microsoft.
Comment 10 DuWayne Morris CLA 2007-01-09 13:47:15 EST
Another experiment:  Tested SSL to my untrusted site through a regular proxy server from IE 7 on Vista, no problem observed.  Added Mark to CC list.
Comment 11 DuWayne Morris CLA 2007-01-09 20:04:47 EST
After discussing this defect at length with Dave Scott, it appears there are some actions that can be taken to further investigate.  Dave has a more detailed understanding of the Ethereal trace info during the SSL hand shaking process and offered some suggestions to help either solve or at least clarify the nature of the issue further. Stay tuned for further info as it becomes available.
Comment 12 DuWayne Morris CLA 2007-01-10 10:30:57 EST
Good news!  Details need work to determine the exact problem and find the best solution.  It appears that there is a problem with the default choice of cipher suite.  Using Advanced Options in IE, disabling TLS 1.0 to force the use of SLL v3.0 allows recording.  re-start IE when switching this option.  This is a work-around for the moment and I will work on a better solution.
Comment 13 DuWayne Morris CLA 2007-01-10 15:48:19 EST
Performing testing on a fix to request checkin.  We currently have conditional code as follows in SSLCheckClass.java:

		if ((vendor.indexOf("Sun")) >= 0){
			// The following to use Sun JVM
			ctx = SSLContext.getInstance("TLS");
			kmf = KeyManagerFactory.getInstance("SunX509");
		}
		else{
			// or use the following for the IBM JVM
			ctx = SSLContext.getInstance("SSL");
			kmf = KeyManagerFactory.getInstance("IbmX509");
		}

This was due to fact that at the time the code was written, the same connection string would not work on both Sun and IBM for the SSLContext (in addition to the KeyManagerFactory difference).  Changing "SSL" to "TLS" or to "SSL_TLS" is working on the IBM 1.5 JVM without changing the default settings on IE 7 on Vista.  I will put together a request to fix.
Comment 14 DuWayne Morris CLA 2007-01-12 10:36:10 EST
Created attachment 56831 [details]
Fix for SSL Recording via Internet Explorer on Vista

Changes are in SSLCheckClass.java
Comment 15 DuWayne Morris CLA 2007-01-12 10:37:11 EST
Attached a patch for the change made in SSLCheckClass.java.  The initialization of the SSLContext for the IBM JVM was changed to use "SSL_TLS" instead of "SSL" in setting up the proxy SSL Server.  The problem was that through whatever fault or changes exist in Internet Explorer 7 on Vista (or a fault in the JVM), there was a failure to agree on an acceptable cipher suite on Vista, thus the connection was closing at the end of the hand shake.  The expansion to include both SSL and TLS in the SSLContext resolved the issue.
Comment 16 DuWayne Morris CLA 2007-01-15 09:31:41 EST
Checked in the fix for this defect on Friday, Jan 12 after testing on supported JVM's and on Linux and Windows.  Plan to file new defects to merge this change into other branches.
Comment 17 Paul Slauenwhite CLA 2007-01-15 09:53:11 EST
Please use this defect to check-in the fix for 4.3.1 and 4.4 (HEAD).
Comment 18 Paul Slauenwhite CLA 2007-01-15 12:26:58 EST
Approval request:

http://dev.eclipse.org/mhonarc/lists/tptp-pmc/msg02850.html
Comment 19 DuWayne Morris CLA 2007-01-15 15:01:18 EST
Closing this defect again.  A decision was made to create separate defects for merging the fix to this defect into the 4.3.1 and 4.4.0 branches.
Comment 20 Paul Slauenwhite CLA 2007-06-02 14:50:34 EDT
Reporter: Please verify and close in preparation for shutting down the TPTP 4.4 release.  Thanks.
Comment 21 DuWayne Morris CLA 2007-06-05 09:23:49 EDT
Verified.
Comment 22 DuWayne Morris CLA 2007-06-05 09:24:06 EDT
Closing.