Once I ensure security out of the building, am I safe from Man in the Middle attacks?

Say I want to engage in an action that can be compromised through a man-in-the-middle attack (like key exchange). I’ve done my best to secure my end of the communication up until the point the network leaves the building: I make sure my machine is not compromised, there’s no unrecognized devices on my LAN, I verify that my DNS has not been compromised etc. My partner also does the same on their end and we’re both confident that a man in the middle attack can not be conducted from within the building.

How motivated would an attacker have to be to successfully compromise the network between us in order to conduct a man in the middle attack? I’m assuming the US government, with the co-operation of the ISPs would be able to do it. But what about doing it without the permission of the ISP?

If I’m using DSL, could someone break into the local DSLAM and insert a proxy?

Could they dig up the wire in somebody’s front yard & compromise it?

Is it possible to remotely hack into backbone routers and have them act as a proxy?

Most discussions about securing against man-in-the-middle attacks focus on the local network with the implicit assumption that once it gets out of your building, it’s secure. How true is this in theory & practice?

>I’ve done my best to secure my end of the communication up until the point the network leaves the building

Do both of you control every device on your networks? For instance, its possible to brute force SSL, so someone who puts up an invisible proxy could do this. Sure, your DNS is good and your machine is locked down, but the network administrator could do this.

I dont think you even need to bruteforce SSL. A local attacker with control over a proxy could just pretend to be the site, serve you its valid ssl, and then pass back the data to the legitimate site. He would then be able to see your data and you would see a secure exchange.I believe this is how this tool works.

There is also a new “authentication gap” attack which exploits the SSL/TLS option of requesting different crypto bit rates. Or something similar. I read about it a while ago.

So you may think these are unlikely, but all the hacker needs to do is exploit either of your local lans or a router on the way between you. Thats easier than most people assume, but generally not something thats automated and if youre not being targeted its probably unlikely this is happening. Although, I have read that a lot of companies do crack or impersonate ssl so they can have a log of what their employees are doing.

To really get security you would require a second authentication and encryption layer. Perhaps running a VPN between the sites and then using the SSL enabled application. Or ssh port forwarding. In both cases verify the keys you and your pal are using before connecting.

Short of quantum encryption techniques, key exchange is always compromisable. In the end you reduce to the 3 Byzantine Generals problem. The only known totally secure communication mechanism is with a one-time pad, and since the most information you can securly exchange is the size of the pad, key exchange is pointless. All other forms of encryption are weaker, and thus key exchange over any such layer is also pointless. The best you can hope for after such a key exchange is encryption only as good as the encyption used for the exchange.

So, you are really asking about, not the theoretical compromising of the communication, but the practicalities. And you already give a few possibilities. A DSLAM is no more complex than your ADSL modem. In principle anyone could interrupt the phone line and intercept the communication, and make it reasonably difficult to detect. A TDR might see the change in line length if you were loooking. After that you are totally open anyway. You might control your own DNS, but you are still beholden to the higher level DNS caches, and they can be poisoned. You could hard wire your friend’s IP address, but the routing information is still open to poisoning.

In short, on basis of the requirements of the question, there is no known way of securing the communication to the level you require.