How To Pull Location Data From Encrypted Google Maps Sessions
Trailrunner7 writes "In the last couple of years, Google and some other Web giants have moved to make many of their services accessible over SSL, and in many cases, made HTTPS connections the default. That's designed to make eavesdropping on those connections more difficult, but as researchers have shown, it certainly doesn't make traffic analysis of those connections impossible. Vincent Berg of IOActive has written a tool that can monitor SSL connections and make some highly educated guesses about the contents of the requests going to Google Maps, specifically looking at what size the PNG files returned by Google Maps are. The tool then attempts to group those images in a specific location, based on the grid and tile system that Google uses to construct its maps."
This is an example of an algorithm to guess based on image sizes based on knowledge of the system that Google uses to send map information, there is nothing wrong with the underlying technology. Google could easily stymie this if they wanted to. Moderately interesting, but not really news-worthy.
This is a known-cyphertext attack using the tile filesizes as identifiers. Build a database of map tiles' sizes and coordinates (x,y,z) from gmaps, then compare against the SSL response stream.
It doesn't say if it's only effective for satellite view.
Care about electronic freedom? Consider donating to the EFF!
So perhaps I'm new to this game - but this is a pretty cool hack. Using the sizes of PNG files over an encrypted channel to locate someone is pretty nifty.
For those who know more: is SSL encryption predictable (size-wise)? If I have the same size payload, will it always generate the same size encrypted result?
Cemil.
Could anybody brainstorm as to how this could be made lucrative? I don't imagine it, somehow.
1. You're on a public wifi, unsecured, and I'm sniffing your packets, and uh oh, I'm getting information about where you are located. Wait... you're right over there. I can see you. Okay, I'm smart.
2. Okay, you're far away, and somehow I hacked your network connection, and all I see is you're using Google. Or maybe I hacked you over unsecure wifi from the public bench over here. Anyways, I can see what location you're looking *at*. So... I come up to you, and I say, "Karl... Karl, are you looking at Mogadishu, Karl? You know... we, uh, we're not allowed to look at Mogadishu, Karl. It's against whatevers. So... you're FIRED, Karl. Clean out your locker, Karl!"
Is this all plausible? What is this useful for, anyway?
"I caught you looking at the world's largest beaver dam in northern Canada. I'm going to tell the boss I caught you looking at beaver on your lunch break. Guess what? He's going to totally misunderstand. He's going to fire you. I'm going to get the partnership. I might be a douche, but, you're saaaaaaaaaaaaaaack---tuh."
Or how about this:
"Hrmmmm my opponent seems to be spending a great deal of time looking at the Himalayas. Hrrmmmmm yesssss I think I have something to use against him there. Hrmmmmm the public sentiment could be turned again.... no.... well the.... his wife would not appreesh... uh.... well.... the U.S. government has a strict policy regarding.... no.... well wtf. There's something wrong with this fuck for staring at Katchenjunga all god damn day long."
"Stratigraphically the origin of agriculture and thermonuclear destruction will appear essentially simultaneous" -- Lee
An interesting take on attacking an SSL stream, but like said above how useful is this really? As the first reply said, it does sounds like a known-plaintext attack in that you know to look for a certain number of bits, and when taken together with other certain numbers of bits you can deduce the area of the world being viewed. Seems mostly academic, unless you're law enforcement or some other such entity who is recording traffic from a known bad guy and trying to determine his next target... (which then again is sorta what counter-terror units do these days)
by bundling tiles randomly google could make this approach much harder - if they accept that sometimes its a little slower.
Or they could switch to using SPDY as they have on other services. There would be only 1 TCP stream, so no logical boundaries outside the SSL wall.