Hi everyone, I’ve been trying to understand how MiTM setups like a transparent proxy work.

Obviously, the use-case here is in a personal scope: I’d like to inspect the traffic of some of my machines. I am aware that Squid can be a transparent proxy, and some might use the Burp Suite to analyse network traffic.

Could someone explain the basic networking and the concept of certificates in this scenario? I feel like I don’t understand how certificates are used well enough.


For example: I realise that if someone inserts a root certificate in the certificate store of an OS, the machine trusts said CA, thus allowing encrypted traffic from the machine to be decrypted. However, say the machine was trying to access Amazon; won’t Amazon have its own certificate? I don’t know how I’m confused about such a simple matter. Would really appreciate your help!

  • stifle867@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    There are some cases where this would not work by the way. It’s called certificate pinning and it’s basically when an application comes with the trusted certificate for a host built-in. Even if you were to override it with a root certificate in the certificate store, the app simply wouldn’t use it.

      • stifle867@programming.dev
        link
        fedilink
        English
        arrow-up
        6
        ·
        1 year ago

        No, not at all. The request never hits the cache. The certificate is stored within the app and all internet communication is specifically pinned to said certificate. It doesn’t even ask your certificate store.

          • stifle867@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Yeah, unfortunately it’s a huge barrier if you’re wanting to see why your devices are phoning home and the data being sent. It makes it extremely difficult if not impossible for most people to bypass.