By private trust, I mean the use of private certification authorities (CAs). On the Internet, we use public trust CAs. These CAs are created in accordance with browser certificate policies, are highly secured and are audited on an annual basis to confirm they meet their compliance requirements.
Private trust CAs have no security requirements to meet but their own. They are typically deployed in an enterprise to protect the organization’s data. Private trust CAs issue internally trusted certificates to be used for SSL, code signing, S/MIME secure email, VPN, mobile device authentication, etc. The certificate policies associated with enterprise CAs are developed to meet the organization’s business requirements and security objectives.
In order to support private trust, the operating systems and browsers allow the private CA certificate to be imported into the trust store. With the certificate in the trust store, the private trust CA receives the same trust as a public trust CA. As such internally used applications such as browsers and email clients will not receive a trust dialogue when data is secured with a certificate issued from the private trust CA.
Even new trust methods such as Public Key Pinning and Certificate Transparency honor the security of the private trust CA.
The issue with Komodia and PrivDog is they deployed pseudo CAs. The CA certificates are installed on the end user’s workstation without the end user’s knowledge. The CA private key is not suitably protected. The CAs are not governed by a defined certificate policy and do not meet any of the typical CA security requirements. The CA may put the end user’s and organization’s data in jeopardy.
With the use of secured Internet communications, enterprises have a problem screening data entering or exiting their infrastructure, since the communications are encrypted. How does an enterprise know what is in the communication? Is their malware entering their environment? Is their intellectual property (IP) exiting? In order to analyze the data flowing in and out of the organization, the secure communication needs to be broken.
This is achieved with an HTTPS proxy. Some firewalls and load-balancers are configured as proxies. In this case when a user goes to the Internet on an HTTPS connection, the communication is securely proxied. How is this done?
Let’s say the user wants to go to Any Bank at https://anybank.com. The proxy intercepts the communication and reaches out to Any Bank. In real-time the proxy uses a private CA to issue a certificate which matches the certificate at Any Bank. Now there is a secure connection from the browser to the proxy and a second secure connection from the proxy to Any Bank. All communications can now be intercepted by the proxy and recorded or analyzed. This can allow the enterprise to control IP leaving their premises.
Similarly, the enterprise can use a corporate anti-virus server to check for malware. In this case, the proxy server provides unencrypted data to the anti-virus server which allows it to scan for and prevent malware from entering the enterprise.
In an enterprise setting, the practice of inspecting traffic is usually governed by a corporate security policy where users are made aware of this practice and staff who have access to this data are closely monitored. Also, rarely if ever would the data be accessible once decrypted be made available to a third party.
So what about Komodia and PrivDog? In this case, the proxy was not installed by an enterprise on a corporate system. Instead it was installed on the end user’s workstation without the user or the organization’s knowledge. The proxy allowed the secure end-to-end communication to be opened so the communication could be analyzed by a third party and advertisements could be injected in the flow and presented to the end user. If the communication was analyzed, what did the third party see? Is there any chance they saw password for Any Bank?
What about credit card or IP information? It certainly was there in plain sight for the third party to see. And that leads to more questions. Was the data adequately protected? Was it shared with other parties? …
Simple, malware. These software applications deploy private trust and HTTPS proxies inappropriately and insecurely. This type of product should not be deployed. As noted by Mozilla about SSL interception (HTTPS proxy), “If you want to add features to the Web, don’t intercept, make an extension. All of the major browsers offer extension frameworks (see these links for Firefox, Chrome, IE, Safari, and Opera).”