At work my company uses internet monitoring software (websense). I know if I visit a https ssl-encrypted site (such as https://secure.logmein.com) they can't see what I'm doing on the site since all the traffic is encrypted. But do they see, that I visited https://secure.logmein.com ?
|
An encrypted connection is established first before any HTTP requests are performed (e.g. GET, POST, HEAD, etc.), but the hostname and port are visible. There are many other ways to detect which sites you’re visiting as well, for example:
A popular way to evade a websense proxy is to first establish a connection (via HTTPS:) to an outside proxy (e.g. https://proxy.org/) and make your request from there. |
|||||
|
Simple Proxy ServersEven a simple proxy will see and log the names of the servers. For example visiting https://example.com/some/address.html will create a request like this from the browser to the proxy server:
The rest of the connection is encrypted and a simple proxy just forwards it. . Complex Proxy ServersThere are, however, more complex proxy servers, that are able to see the complete traffic in plain text. These kinds of proxy servers, however, require that you have a root certificate installed for which they can create server certificates on the fly. Looking at the certificate chain in the browser usually reveals this kind of man in the middle attack. At least in the common case of it being done by your own company and not state agencies:
|
||||
|
|
|
If websense is configured to log it, then yes, they will be able to see where you went, all the URLs you visit. Content is less likely to be viewed - it depends on how websense/proxy is set up - but it can be done. It depends whether the SSL session is from your browser to the server or if it is just to the proxy (effectively running a man in the middle attack) |
|||||||||||||
|
|
It is possible, but it requires some setup. Here is how it is done, and how you can tell. On a corporate computer, where software updates are pushed from a central location, it is possible to send to your computer a "trusted" certificate that will be stored next to the trusted certificate of say, Verising or Entrust. Your company's proxy will hold the private key of that certificate. When you visite a HTTPS web site, like https://mybank.com/, the proxy will put itself in the middle. It will establish a HTTPS connection with your browser generating on the fly a certificate for mybank.com. It will replay (and possibly monitor or log) all you traffic on a new connexion, from the proxy to mybank.com. You can tell if this is the case by looking at the padlock icon. If you see that the certificate for mybank.com was issued by acmesprockets.com (your company), then you know they can see your "encrypted" traffic. You can also check with a computer on another network (at home) and compare the results. I know that BlueCoat supports that configuration, and I'm sure others do, too. |
|||||||||||
|
|
They can see all of your SSL traffic unencrypted if they use a BlueCoat proxy or similar. Many large Enterprises do this. |
|||||
|
|
Following on Guillaume's answer (sorry, not enough reputation to comment), another way to check for foul play is to use the "Perspectives" Firefox add-on. When visiting an https site it checks (through Internet "notaries") that the public key you receive (via the web server certificate) does indeed belong to the site you're visiting. |
|||||
|
|
With HTTPS, the SSL/TLS tunnel is established first, and HTTP traffic happens only within that tunnel. Some information still leaks:
From these we can conclude that the target server name is definitely not a secret. You may assume that your company learns it. The rest of the communication is encrypted so it is nominally inaccessible from outsiders. However, the length of the data packets which are sent and received by the client can still be inferred by any eavesdropper (with single byte accuracy if a RC4 cipher suite is used), and this can also reveal a lot of information, depending on context. If your company is serious about security then it may have installed a more advanced proxy like Blue Coat's ProxySG. Such systems perform a Man-in-the-Middle attack by dynamically generating a fake certificate for the target server. This gives them access to the complete data, as if there was no SSL. Note that, however, such interception is possible only if the company could add to the trust store of your desktop system the root CA certificate that the proxy uses to issue the fake certificates. This is a rather intrusive action. Therefore, if they could do that, why would they stop there ? They may have inserted, just as easily, a handful of spying software which will plug in your Web browser, your keyboard and your display; and everything you do on the machine is known to them. Alternatively, if you can make sure that your machine is free from any interference from your company (e.g. it is your own device and you installed no company-provided software on it), then MitM-proxy cannot decrypt your SSL connections. A very simple way to hide your traffic from your company is not to use their facilities at all. Bring your own laptop with a 3G key (or tethered to your smartphone). By paying for your own Internet, you can evade network-based detection and spend your days roaming the Web instead of doing the work you are paid to do (but, of course, detection of slackers has never been restricted to only using computerized gizmos). |
|||
|
|
Not just from certificate but also from handshake messages servername information can be get. As I tested %80 of the traffic contains server_name extension in client hello message(first message send by client to server in https protocol) . But this extension is optional and sometimes it does not exist .In this case certificate can be checked. In certificate there exist server name again . |
|||
|
|

