0

I want to share information and screenshots of my SSL certificate to help identify a potential security issue.

The potential security issue involves private company-owned computers which list my employer as the Certificate Authority. As such, I do not want to reveal information about the CA which could potentially reveal my employer's identity.

What parts of an SSL Certificate can I share without revealing the Certificate Authority's identity?

Censored SSL Certificate Details

Stevoisiak
  • 1,515
  • 1
  • 11
  • 27
  • I'm a little confused about what you're trying to accomplish. Here's what I understand: You think that your employer is decrypting and inspecting HTTPS traffic. You have found their root cert in your java trust store. Clearly they have the ability to intercept HTTPS traffic. The question is whether or not they actually are doing it. Here's what I don't understand: why do you want to share details about the cert? How does that help you prove anything? – Mike Ounsworth Jul 12 '17 at 14:57
  • @MikeOunsworth At first I planned on posting this question as "*Is my employer running man-in-the-middle HTTPS attacks?*". ([Original question for reference](https://gist.github.com/Stevoisiak/1b565137500246e7715bc53220393f47)). However, I wasn't sure what information was needed to determine that, or what information I was allowed to share. – Stevoisiak Jul 12 '17 at 15:07
  • Maybe you should edit this question into the more general one. I've tried to answer the more general question below. – Mike Ounsworth Jul 12 '17 at 15:11
  • @MikeOunsworth I was under the impression that these were two separate, distinct questions? One is about what information can be shared about a CA without revealing it's identity, while the other is about identifying a man-in-the-middle attack. – Stevoisiak Jul 12 '17 at 15:19
  • [I have created a chat for extended discussion.](https://chat.stackexchange.com/rooms/62085/discussion-on-question-by-steven-vascellaro-what-parts-of-an-ssl-certificate-can) – Stevoisiak Jul 12 '17 at 15:35
  • @StevenVascellaro: there are several questions here which deal with MITM in general, MITM by the employer and also on how to detect it. Maybe have a look first and then ask a new question for the problems not answered in the other ones? For example have a look at the explanation in [Is it possible for corporation to intercept and decrypt SSL/TLS traffic](https://security.stackexchange.com/a/101726/37315). – Steffen Ullrich Jul 12 '17 at 16:07

3 Answers3

2

Based on my understanding of your question, you are trying to prove that your employer is intercepting and inspecting your HTTPS traffic.

Ok, you've found your company's CA cert in your java trust store. That tells us that they have the ability to perform the MitM attack that you are describing, but it does not prove that they are actually doing it. That cert may be there for a completely legitimate reason, like for example so your VPN client can authenticate the VPN server, or so you don't get certificate errors when connecting to internal network resources.

To be sure that they are inspecting HTTPS traffic, you need to actually catch them in the act. When you make a TLS connection that you suspect of being MitM'd, look at the server cert you are presented; if it chains to your company's CA then that connection is being MitM'd and you'll have proof, but if it chairs to a publicly trusted CA then it's secure.

You'll need to do some digging about the java application you're using to figure out how to see the details of each TLS connection (you may be able to do this through JVM settings, but I'm not sure). Browsers, for example, are quite good about showing you the details of the TLS connection.

Mike Ounsworth
  • 57,707
  • 21
  • 150
  • 207
2

Let's take a random cert out of my Chrome trust store. I choose GlobalSign

GlobalSign root cert1 GlobalSign root cert2

The question, is if this were a private CA, which fields would you need to hide in order to protect the identity of the CA? Answer: pretty much all of them.

Here's what I would consider to be a safely redacted version, basically leaving "this is a CA", but removing anything that could be used to identify them.

GlobalSign root cert1 redacted GlobalSign root cert2 redacted


I'm really not sure what you gain by posting this beyond just saying "My company's root CA cert is in my trust store".

Mike Ounsworth
  • 57,707
  • 21
  • 150
  • 207
0

To perform HTTPS MiTM attack and inject fake cert

  1. The middleman will redirect all request to a proxy server
  2. The middleman server will generate an ad-hoc cert ASAP and rewrite the packet to the target server
  3. If the CA is a trusted domain in your browser, it will not show any error.

So to caught such act in action is not easy if it employed a MiTM server able to generate cert from CA found inside your browser.

To automatically caught such work in action is not easy. Unless you have tools such as phantomjs/selenium ready and download the webpage and certificate immediately, then inspect them later with the results from the open Internet. Packet sniffer will not help here, as it can be just proxy server or VPN connection activities.

Because a serious SSL MiTM server will try to avoid server that issue HPKP that will expose a cert discrepancy. If your laptop connects to a site like Facebook in public network previously, your browser will show cert error if the internal network you use connect to a server that show different cert and CA.

Your attempt to show the certificate proves nothing because there is no controlled evidence.

mootmoot
  • 2,387
  • 10
  • 16