Hacker News new | past | comments | ask | show | jobs | submit login
Android betrays tethering data (danielpocock.com)
131 points by davidgerard on April 29, 2014 | hide | past | favorite | 103 comments



It's such a shame people have allowed carriers to get away with this. Yes, this is all on the people, because they are the ones that should be outraged when carriers want to charge them twice for the same data, simply because you decided to use that data with another device. Common sense says you should be allowed to use that data however you want. But the carriers got away with it, and now it's status quo.

What the carriers are doing is like your electricity provider telling you that you can only use that specific amount of electricity with certain appliances, but if you want to use it with others, you have to pay extra. It's insane, and I'm starting to believe more and more that declaring carriers and ISP's as utilities is the right way to go to have strong net neutrality in US.

The Internet is every bit as important as electricity in today's modern world. It's about time we start treating it like that.


Your service level only comes with the fixtures package. Oh, you'd like to plug your own appliances into this outlet? That'll be another $29.95 a month, please.


Nabbed from the comments of the post, this is how you disable the "feature" without being rooted:

http://vinhboy.com/blog/2013/12/27/how-to-tether-the-nexus-5...

... still though, I'm interested: what actually is this second device which things get routed through? How can the carrier tell which device your phone is using? Even then, how do they tell which one is the 'normal data' vs the 'tethered data' device?


I spent a day trying to overcome the tethering restriction on my T-Mobile unlimited data prepaid Moto-G. I tried changing some tether_dun_required setting (mentioned in parent), which required me to root my phone. That didn't have any effect!

I ended up running a SOCKS5 proxy on my android phone (the app is called Proxoid, and is unfortunately rather buggy). That at least works, though with the app being rather prone to crashes and hangs, it is not the ideal solution.


Different devices go to different APN gateways as I understood it.


the different devices are assigned different IP addresses


Google considers this a feature, not a bug, and that you are the product and the carrier is the customer: http://code.google.com/p/android/issues/detail?id=38563#c105


The fact that Android staff later fixed the bug in 4.4.2 implies you are wrong.

The carrier is not the customer in Google's market. The advertiser is. I thought that was pretty clear. The carrier merely delivers product.


Is it "fixing a bug" or "removing a feature that is causing product shrinkage"?


Do you want the official answer or the paranoid answer?

The problem with all these extreme explanations is that all the evidence here is not evidence. It's just one irate carrier employee mouthing off on Google's bug forum. This should be obvious, but a gmail.com email address != android.com email address.


Is this really "google" considering it so? The poster identifies themselves as working for a carrier, not google.


Quote from that email:

> IS NOT A BUG. IT IS A FEATURE. It's not a feature for users like you and me, it's a feature for manufacturers like Samsung and HTC, so they can in turn build devices that carriers can have more control over.

The reason why I switched to Android was precisely the control I have with it, with the primary annoyance I experienced with iOS being that the carrier has to give approval for tethering (amongst other bullshit precisely like this one). This happens for Windows Phone too. Was pleased with Android precisely because it's the only OS in which the feature cannot be turned on/off by the career. Apparently this is no longer true.

A bug BY DESIGN is still a bug.

UPDATED: corrected sentence, iOS is not a carrier :-)


You do realize the person you quoted isn't a Google employee or someone working on Android at all, right? That was just from some random joe schmoe.

Nobody from @android.com or @google.com has commented on the bug at all.

And you do still have control, you are free to compile AOSP for a handful of supported devices directly, and you are free to use CM or whatever. Well, except CM has this bug/feature, too.


> iOS being the carrier that has to give approval for tethering

What do you mean by that?


You quoted the post out of context. They were saying they experienced that with iOS devices the carrier was the only one who could enabled tethering while with android devices that was not always the case.


Although the carrier can still block tethering regardless of whether the device purports to let you use it.


No they can't. Devices can have apps on them, apps can have the same usage pattern as your laptop.

It wouldn't work even if they did deep packet inspection, like reading the browser's headers or things like that, because then it would break in-app functionality for apps that allow you to fake your connection to make the server respond as if you were a desktop (also thinking about browsers).


I don't think telcos are all that fussed about the minority of people who use faking apps compared with the amount of money they can sting people for by charging extra to allow tethering. UK telcos certainly manage to block tethering when you've not paid for it - or even when you have paid for it but exceeded your monthly allowance.


> even when you have paid for it but exceeded your monthly allowance

Is this monthly allowance specific for tethering only?

Otherwise that's another problem entirely. Restrictions after exceeding the monthly allowance is OK, after all that's what you're paying for. But if I'm paying for 1 GB per month of data, then I expect to use 1 GB of data unrestricted because I'm paying for it.

And if that 1 GB of data comes with a fine print, then shouldn't consumer laws come into play, at least in the EU?

In Romania, a local career was fined for false advertising a while back because they were promising 600 free minutes, while at the same time the indivisible billing unit was 6 or 10 minutes (instead of per second after the first minute, as everybody else was doing it). Wouldn't such laws work for data too?


Yeah - I have "unlimited" data (I'm averaging about 8GB/month) but only 1GB a month of allowed tethering. Once I go over that 1GB, it stops working until the next billing cycle - other telcos do things like cut the bandwidth to a trickle or only allow it off-peak.

Consumer laws about fine print appear to have no teeth when it comes to UK mobile telcos (who e.g. are legally allowed to advertise 1GB a month as "unlimited")


even so, that problem is just as easily worked around with a browser extension to mimic mobile browser user agent or headers. Granted that could result in our receiving content formatted for a mobile browser but im sure someone could work around that. Also if the site is designed responsively which I believe is the best practice (I think user agent sniffing is discouraged) then this won't be an issue.


Given how much money is at stake, I don't think the telcos are daft enough to let simple faked headers defeat their tethering detection systems.


what exactly about this comment is downvote worthy?


If they can detect it. If the user is sensible, they can't.


It's a literal quote of a part of the comment, I simply don't understand how iOS could be a carrier in any context.


I see where the confusion started... bad_user was mis-quoted...

"iOS being that the carrier has to give approval for tethering"


I wasn't - made a spelling, later corrected it.


Thanks for the fix. Interesting how asking a simple question can get you downvoted into the basement these days.


> iOS could be a carrier

No, it couldn't.

(See what I did there?)


> No


I'm guessing what he meant was:

the primary annoyance I experienced with iOS being [that] the carrier that has to give approval for tethering


Ah good one. Thank you, that fits.


Just because you aren't the customer doesn't mean you are the product. Google's customers are BOTH end users AND carriers.


This has to be one of the most explicit mentions of "if you're not paying for it, you're the product being sold" I've seen. Normally companies tend to be somewhat more subtle about that kind of thing.


You're the product being sold here, but you pay GBP 600 for an Android flagship phone, and more if you need a contract.


I actually find it refreshing - at least they're honest about it. And I'm sure you can find a ROM without it.


iOS, Windows Phone, Blackberry OS -- they all flag and honor carrier tethering usage allowances. Therefore, by this simplistic logic, to all of them you are the product?

I doubt Google's intentions are quite as simple. It's entirely possible that they're honoring the "carrier code" to ensure competition is robust. If your carrier has a problem with tethered data, get a different carrier.

As an aside, it's pretty bizarre to see a comment by some random person (the "IT'S A FEATURE NOT A BUG!") being used as if it's a statement by Google. Bizarre.


Android is a product which is used by carriers to produce phones. They ARE the customer. If you don't agree with the choices your carrier made with their distribution of android, you have alternate options like Cyanogenmod.


I'm getting used to this circus show. I watch the xfinity comcast app on my Galaxy S3 - unfortunately I'm not allowed to "tether" the phone via HDMI and watch the app on my TV (it's actually disabled and you get an error message).

This sort of artificial scarcity is really frustrating to certain users, but it is an absolute gold mine for corporations like this.



Yes. Changed. The original url [1] was blogspam.

Submitters: please double-check the article you post for links to an original source. If there is one, please post it instead.

1. http://lwn.net/Articles/596080/


Interesting!

I'm on a Moto G on giffgaff in the UK and data is 100% free and unlimited (within some vague definition of "fair use"). They shoot your network access for 30 minutes if they find you tethering because it's against their terms.

How they detect this is a closely guarded secret and a big mystery. Perhaps this is it.

However, the asshole carrier tactics come out pretty sharpish: if you want a tablet SIM or data only SIM, they charge a fortune for a capped data SIM (£12 for 3Gb/month). No thanks!

Data is data. that's what net neutrality is about isn't it?

The penalty for breaking the terms is temporary disconnection so screw it, I tether all the time. If you use HTTPS only or a VPN connection then it doesn't cut you off at all. DPI anyone?

The irony is that I've snagged a 3.5Gb ISO image off MSDN onto my handset's USB OTG (at a nice 800k/sec) with the free data and can push 6-8Gb a month which doesn't apparently bother their fair use term but if I start up a download on a tethered device, bang instantly.

Obviously they're device-ist!


My understanding is that they rely primarily on the IP packet TTL. If you're tethering, each packet will have a TTL one lower than if the phone was the originating node.

I know that at one points some carriers used DPI to check for patterns that indicate non-mobile use (connections to things like Windows Update, for instance).


> How they detect this is a closely guarded secret and a big mystery.

I would guess packet inspection and checking user agents. You could bypass it with an iptables rule on the handset (is there iptables available on Android?) and/or changing your browser's user agent string.

That's just a theory, I wanted to test it but never find the time.


Yes for me, I have iptables v1.4.11.1, 2008-08-01.


yes iptablesis on android but our most likely need root to update it


When I moved house last year, we didn't have broadband at home for a few weeks. Coincidentally I got a new phone on Vodafone (on contract - S3 Mini on £21/mo plan), with three months' unlimited data. I tethered the shit out of it, including work-from-home; many gigabytes downloaded. Not a squeak from Vodafone. So YMMV.


I'm on EE and tether all the time (Windows phone). I don't always look but out of the few times I have my max was just under 8 Gb. Granted, I'm on a pretty pricey plan.


A really good tethering plan is one of the main reasons I've stayed with Three UK for so long. £20.50 (with a £4.50 retentions discount) for SIM-only 12mo with unlimited tethering, plenty of minutes and texts.

I'm regularly >20GB, more when I travel.


Watch out Three have changed this in the last couple of months. The old "one plan" gave you unlimited tethered data, the new one is 2GB of tethered data. I suspect too many people were going wire free and hammering the network.

Most months I barely beat 1-2GB but when I'm working on site it can be 20GB which means I may end up stuck on an overpriced "with phone" contract and may have to buy unlocked devices again. I'll have to see what the exact details are in a few months time.


I can't find an official word from Three about this, but I think this doesn't apply to existing plan holders.

I've done about 50GB/mo tethering last month and this with no ill effects yet. I'll be holding on tight to this plan for as long as possible, although as I'm on the rolling, 1-month contract version I suppose there's nothing stopping them from shifting me to a different plan apart from good will.


funnily enough I am going to switch over to giffgaff for just this purpose. Have you found that you can tether just fine over VPN? You find GG generally alright? As is noted below GG are probably checking ttl, but from what I hear there are ways around this too.


It seems to work ok over a PPTP VPN for RDP purposes. Not sure if our remote end forces a different MTU or not. I remember someone doing some work on this to get Vodafone to not drop the connection.

I haven't tried it past that much. I can whip an OTG keyboard/mouse into the thing and use it as an ssh terminal for the interesting bits with connectbot so don't need the tether facility. My ThinkPad has a 3G modem in it which I don't use any more - it was on Vodafone.

GG are pretty good. They went down a couple of times in the last couple of years for a few hours but comms were pretty good about it. Never had any other problems with them. Data bandwidth and latency is pretty good on 3G (HSPA+). I've pulled a huge amount of data in a month without a problem. Calls are reliable and clear and you can crank up and down your free bits every month.

To be honest I probably wouldn't ever hit another PAYG or contract provider again.

I just buy SIM free handsets now on a whim, use them for a year, sell them if they're ok or repair them away if I break them at cost. Up £400-500 a year on my old O2 contract.


I found out that setting the IP TTL of my machine to 65 usually bypasses most tethering checks in most ISPs.

Like T-Mobile has a special case where they allow :443 from tethered hosts, while disallowing :80.

That disappears when the TTL is 65.


Do you do this on your laptop, or on your phone?

I know that (older versions of) Cyanogenmod would set the TTL of packets to be (2^n + 1) for this exact reason, but it happened on the phone.

Also, FWIW, I have T-mobile and haven't experienced issues tethering on my stock Nexus 5. I'm curious why some customers are experiencing these and not others.


On a Galaxy Nexus on T-Mobile in Chicago; they subvert my :80 requests to a "you should be paying for tethering" portal.


On my Nexus 4 it worked fine for a few months, but then they started blocking it (I used it lightly during my commute, probably <1gb monthly, I have the $30 5gb-fast/unlimited-slow plan). Give it time, it'll probably happen to you too.


I set that on the laptop actually - android's TTL is 64, so +1 hop is 65.

I'm sure they could filter that if I upgraded my phone & the tether got a different gateway host (like in the blog).


There isn't and really hasn't ever been wireless net neutrality. Carriers used to (and perhaps still do) get at this data through deep packet inspection.

It's discrimination in the "price discrimination" sense.


In the UK the common practice seems to be to set up dual APNs on a phone, and tell the phone to use one for its own purposes and one for tethering.

If you bought your phone independently of the carrier and don't have their locked down firmware then you can usually just delete the bad APN and everything will go back to normal.

DPI is available, but I'm not sure how often it gets used. If you want to have a play with it on your own then try writing a bit of C code to hook up libpcap to libndpi.


They have long been able to in theory - but do we have confirmation that they actually do so, for the purpose to hand? (distinguishing tethering from on-device)


This type of behaviour is classified as a 'revenue leak' within carriers and is a known irritant in the wireless telecom industry. The nature of the irritant is naturally completely dependent on your point of view (end-user vs. carrier).

Deep Packet Inspection (DPI) has several purported benefits and use-cases, most entirely technical and usually driven by entailing cost-saving/traffic steering requirements, with a few key use-cases around which revenue generating business cases can be modeled.

Distinguishing tethering from on-device traffic via DPI is one way of accomplishing this; there are other, potentially more cost-effective ways to accomplish the same behaviour as already noted in this thread elsewhere (e.g. user-agent detection). As per the OP, another detection method is to have the OEM add a special route/flag when tethering is detected. The nature of the flag takes various forms (which in this case resulted in a new sourceIP from a different subnet be assigned to the device).

Anybody that operates a network (wireless or fixed) implements similar traffic steering/shaping/QoS techniques. Without them, one cannot optimally leverage their heavy network capital investments.


I understand that the pressure to drive down costs ends up driving traffic shaping. Such pressure comes from customers , competition, shareholders and managers inside the organization. You sell me a product for a price; if I want a different product, the price will be different. BUT I should know and be able to choose what I buy. Don't lie to the customers.

PS.: Plus Carriers operate in a heavily distorted market (in most places competition is not free, there is heavy governmental influence and the customer has no choice) so the whole "invisible hand" argument I opened with is debatable.


Isn't user agent detection a form of DPI? They're looking inside the packets being sent, instead of simply using the level 2 and 3 information to determine where and how to route the packets.


Yes, user-agent detection is a form of DPI. At least in the telecom space, DPI often refers to investigating layer-7 packet payloads versus only parsing the L7 HTTP headers as an example.

Arguably, due to the nested encapsulation of the ISO model which we all loosely base our understanding of the various network and application protocols, one could technically claim that parsing an IP (or TCP) payload counts as DPI, but that's not how the term is generally marketed or used by vendors nor network engineering or operating teams.

The wikipedia DPI entry[1] is vague; IMO perhaps deliberately. For the purpose of this discussion, perhaps it would help to distinguish between source IP filtering (as per the OP) and L7 DPI capability.


Sure, my T-Mobile plan has "unlimited" data usage on my phone, but only 5G/month tethering. I can track my usage separately through their website.

Tethering is a standard feature for them now, but they used to require an add on and would track down people tethering without it. (AFAIK it was as simple as searching for desktop user agents)


iOS, Blackberry OS, and Windows Phone all honor carrier tethering flags -- if your carrier says "don't tether", the device will not legitimately tether.

We know that. It has been the case for time eternal.

We also know that carriers have long been able to detect tethering through deep packet inspection : People have been forced into upgrades, or have discovered surprising bonuses on their bill, when they tethered in defiance of that flag (whether through Android, or one of the hack tethering apps available on the other OS').

There is nothing new about this.


That's why you use a VPN.


Yes, but how can you tether your tablet/PC to the VPN connection established on your phone?


Use tethering, with all traffic on the computer sent through the VPN.

Or just use SSHDroid with TCP forwarding to make your phone a proxy without having tethering enabled.


On Android, when you use the inbuilt VPN functionality: no tethered traffic goes through the VPN.


Or just pay for a tethering plan if you want tethering.


Or just pay for answering machine rental instead of hooking your unapproved device up to Ma Bell's wires.

Demarcation points were invented for a reason.


Good luck doing that without being massively price gouged.


Couple of comments.

First, this is caused by "unlimited", or other large plans (1GB+) plans. Unlimited can never mean unlimited, anymore than it does with electricity.

Carriers are selling those plans to give people comfort around billshock. It's much, much easier to give people an unlimited plan than it is to try to get them to pay for a huge post-pay data bill.

However, since this is about customer comfort, carriers are working on an average usage, and assuming an amount of "breakage".

Breakage is the unused portion of a balance, and it is factored into the profit the carrier expects. It comes from calling card days, where there would be a balance at the end of the card that couldn't be used ($1 on the card, and 35c/minute). Unused prepaid balance at the end of the month? Breakage.

We're atypical users, and even then I'm using <500MB/month. However, this is changing - people are frequently staying on mobile and not switching to wifi when it is available. That's why I hear about people complaining about mobile data coverage at home!

Next, mobile carriers are doing anything and everything they can to avoid becoming a dumb bit-pipe. Mobile is more competitive than fixed line (no regional monopolies), so customers have more power. Personally, I think there is an insane amount of money to be made being a simple bit pipe, mostly through cost reductions.

Finally, they're not only tracking this through separate APNs for tethered traffic, they're tracking the hop counts of packets and detecting packets who's hop count is unexpected for the device.

So, running a VPN client on the laptop and tethering won't help, but running a VPN client on your phone and tethering traffic through _that_ connection might.


I agree about unlimited plans. I believe they're the cause of much woe in the internet world, and I don't understand why the tech community generally fights to keep them. Things would become much better if we paid for usage.

But I don't understand why you lump 1GB+ plans in with unlimited. I'm currently paying for 4GB/month of data and I should be able to use it all for whatever I feel like.


That's the breakage. When the average is under the maximum, the remainder is there as a comfort buffer for the customer.

Think of it this way, "The expectation is that you will use 500MB/month, but you are allowed to burst to 5GB."

Without that sort of buffer the carriers get a lot of negative press about bill shock - such as when people use their mobile phones on cruise ships.


They don't really need a buffer, they just need reasonable overage charges.

I pay $10/GB if I go over, and that's pretty reasonable. I've exceeded my plan in the past and the additional charges are entirely sane.

No carrier is getting negative press because of a $10 overage charge, or even a $50 overage charge. They get negative press when they charge $10 for 30kB for roaming without warning the customer, and then the customer gets a bill for $15,000.


Customers should be able to choose between overage fees and throttling when they exceed their monthly limit.


That would be nice, and some locations do that. New Zealand fixed line broadband is a good example. The US market, for some reason, doesn't.


Moreover it bugs me that people keep conflating net neutrality with all-you-can-eat data plans. There's nothing inherently wrong with charging consumers per-byte. I probably use a below average amount of data on my phone, it would be cool if I could pay less.


To be fair, there is a net neutrality problem with pay-per-use with the multipurpose ISPs we often have for home connections. Specifically, if your ISP also offers on-demand TV service, the data usage of that service typically isn't counted against you, giving it an unfair advantage over third-party streaming services.

Aside from that, you are of course correct. And even for those of us who would probably pay more under a metered plan, it would still be better in that you'd know where the limits are, and the ISP would have every incentive to support you. As it stands now, you get "unlimited" but you actually have an invisible line, and crossing it gets you a Talk.


That's a good point. I kinda wish ISPs were just in the ISP business and didn't have other revenue lines to protect/favor.

Otherwise, I'm not sure I get the big deal about metered data. It's gonna suck for people who use a ton of data, but aren't those people currently kinda being subsidized by the customers who pay the same rate but use a tiny fraction as much?


But you would never pay less. Have you ever seen ISP pricing?

The onerous (5GB cap) TWC "Broadband Essentials" service gives you a $5 saving. $5 out of a $60 bill for going from 250 allowed GB to 5.

The providers are never going to charge you less. What you're paying now for unlimited will be the absolute minimum fee, plus troll tolls on top of it.


Hey, feel free to bitch about how much internet access costs in the first place -- I'm right there with you.

But the definition of metered billing is that people who use less data will be charged less and people who use more will pay more. That's probably a good deal for people who use less than average and a bad deal for people who use more than average.


Will Cyanogenmod fix this in their build?


I've checked & CyanogenMod 11M5 on my Nexus 4 doesn't appear to be doing this - if I turn on tethering over bluetooth there's no extra route in the routing table.

However, my current carrier allows me to tether the data I pay for, so perhaps it only does it in response to some kind of carrier request to split the data into tethered / non-tethered classes?


I'm curious about this. These are exactly the types of "fixes" that people are willing to pay for with the OnePlus One


Per post, yes.


Sorta like how Verizon tries to block tethering on grandfather plans. If you are rooted its not a problem. But I never understood it if you are paying for it why have to go through these tricks. What needs to happen is all the money that these mobile networks are raking in they need to invest it in a better infrastructure, its only going to get worse.


AT&T does the same with grandfathered unlimited plans. When I first bought the plan and a phone I was able to tether unlimited. Now they want me to upgrade to a tether plan that only supports 5GB max and phones using stock software refuse to tether unless I do.


There's a lot of guilty surrounding the topic of tethering if the data plan doesn't allow it...


This "feature" was introduced in 4.2.2. Android is at 4.4 now.


Data is data is data is data.

Youtube blocking "mobile playback" of videos is the same as carriers blocking tethering without a specific plan or arbitrary caps (3GB mobile data, 1GB tether)

This is something, across all mobile platforms, we should be fighting tooth and nail.


> Youtube blocking "mobile playback" of videos

Do they still do that? I thought the issue was the ability to play required ads, which the mobile youtube applications now have.


It's not something "they" do, it's an option that any video uploader has. Of course, you can sideload unauthorized YouTube viewers to get around this.


Yep, they still do that. I run into a few of these videos every now and then. It tells me to "save to 'watch later' playlist to watch on your pc".


They still do for some content in Canada, at least, with messages along the lines of "UMG Music has not authorized this video for mobile distribution".


Spotify has different rules depending on what kind of mobile device you're using to listen. My phone is significantly more restricted than my tablet or PC.


Smartphones taught me that even when you pay, you are the product.


This is why I love my Jolla phone !


It's your own fault if you use Vodafone. Overpriced, fucked up consumer support, and at least in Germany, multiple occasions of fraudulent behaviour by the sales agents (e.g. signing you up for stuff you didn't ask for etc). Oh, and a fucked up network, too.


As I noted below, I'm a Vodafone user and they didn't squeak when I tethered and hammered the shit out of my three months' unlimited data on a new contract. (I presume they were letting me run loose so they could try to sell me a data package on top.)

In my experience the UK's a cosy oligopoly between Voda, O2 and EE, with approximately equivalent fuckery between them. YMMV of course.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: