We are a huge organization with hundreds of web servers in a DMZ. We have appliances (a few of them in each location) where all incoming traffic from outside of the network is decrypted (well it should be, but more on this later) and sent to an IDS/IPS.

The problem is that right now we are in a TAP mode, so we are only able to decrypt RSA - about 9% of all traffic. We would love to go inline (to decrypt DH as well) but the problem is our private certificates. We use a cloud Public Key Infrastructure (PKI) solution to sign our Certificate Signing Requests (CSRs) but the private key never leaves its server.

What would a process look like to get them all? Should I go and ask each of the server owners to give me the private key?

  • Either get the keys and certs from each server owner, or generate your own key(s) and get cert(s) for it(them) -- possibly only one using wildcard and/or SAN -- assuming you can convince your 'cloud PKI' your systems are authorized to have such cert(s). The latter approach makes accountability straightforward, which may make it more acceptable. Commented Oct 26, 2017 at 6:04

1 Answer 1


DH is point to point key exchange. The best method is to break the encryption and rebuild a different tunnel to the end point of the network. This will cause high load. Most corporations, as soon the packet enters in their secure network, they are forwarded decrypted to allow analysis without performance impact.

I think most of the devices cannot sniff that type of traffic, só you will need to break the tunnel. Even if you have the private key, the key pair generated by DH is between the origin and destination, middle systems will not be able to get the key.

What I mean in breaking the tunnel is for your devices to have their own certificates and private keys in the same way as servers and act as endpoint for the communication.


Generate your tool csr and request certificates for each site you have. If you own the sites it won’t be a problem and you will be able to read trafic. Same way as if your appliance was a web server. Many tools do not allow it. Others allow it but restrict this to a small number of virtual servers hosted.

Collecting the private keys from the web servers might not be sufficient. You have to break the tunnel and not eavesdrop at it.

To get the private keys from each site. The site certificate needs to be exportable, you need to know the password if any and export it to a file(private key), then in your ids you should proceed importing it. But that is probably what you already have done due to the fact that your statement says you can read trafic only some specific DH is not possible... :) The process of exporting the keys changes a bit if you have a windows or a Linux, easy to find in the internet.

Why you can read TLS_ECDHE_RSA_WITH_AES_256_GCM_S HA384 they are not using Diffie-Hellman Ephemeral (DHE/EDH) or RSA Ephemeral cipher suite to exchange keys but ecliptic curve. if you snif the packets and see if the cipher suite specified begins TLS_DHE or SSL_DHE, you will not be able to decrypt the data.

  • thanks for commenting but I'm afraid I don't get what you are trying to say. If I look at the vendors documentation, it lists all the DH ciphers it can decrypt when the appliance is inline, for example TLS_ECDHE_RSA_WITH_AES_256_GCM_S HA384 this can be decrypted.
    – cyzczy
    Commented Oct 25, 2017 at 15:25
  • The product fine print will describe "decryption" as terminating the TLS session, inspecting the decrypted traffic, and starting a new TLS session.
    – mgjk
    Commented Oct 25, 2017 at 17:11
  • This article describes the active-inline and passive-inline modes in more detail, including the necessity to decrypt everything and re-encrypt it to inspect DHE. origin-symwisedownload.symantec.com/resources/webguides/sslv/… Unless you have specific requirements otherwise, it's often more practical to skip the re-encryption step once you're in the perimeter.
    – mgjk
    Commented Oct 25, 2017 at 17:27
  • @mgjk thank's but I know that already. My question remains the same. How to get the private keys. As far I understand I will have to upload the private key of each server to the appliance for the client -> appliance decryption to take place.
    – cyzczy
    Commented Oct 25, 2017 at 20:12
  • Yes you would need the keys. I have only seen TLS done at the server for tiny shops. In medium or larger organizations, TLS was done at a proxy. This means that key storage was already in the hands of network operations or security. With the prevalence of DH, your kind of interception only makes sense when the established processes are too entrenched to alter. (A modern network might use a NGFW, terminate TLS at the perimeter or similar.) Having the cert and key on both the server and the appliance might make sense for the appliance failure modes, but I would talk to the vendor and test.
    – mgjk
    Commented Oct 26, 2017 at 9:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .