Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well, that's more clever than a company I did due diligence for.

Their strategy was to have a pool of API keys attached to new accounts that would take advantage of the Google Maps API free tier, and monitor its usage. As the free tier usage would run out, the system would roll over to a new API key automatically.

Wrote that one up in big red marker in my report...



Genuine question: wouldn't this be considered write fraud?

Last time I asked this question [0] on a different story [1], the responses I got were that it definitely is wire fraud, but this is so mind-blowing that I would like to ask again to confirm.

[0] https://news.ycombinator.com/item?id=22362682

[1] https://news.ycombinator.com/item?id=22354357


It's violation of terms of service, and possibly a violation of contract, but it's clearly a civil matter, not a criminal one.


hmm, not sure, some DA might want to prosecute it as theft of service.


https://arstechnica.com/tech-policy/2020/03/court-violating-...

A snippet from the article: A federal court in Washington, DC, has ruled that violating a website's terms of service isn't a crime under the Computer Fraud and Abuse Act, America's primary anti-hacking law. The lawsuit was initiated by a group of academics and journalists with the support of the American Civil Liberties Union.


Sometimes my simplest comments get misunderstood the greatest; if someone were to want to take this to a criminal court it would be idiotic to go for violating terms of service as the reason, especially for the link you provide, but as I said in my post someone might want to try this as theft of services.

Did you think my use of the word services was somehow related to terms thereof, because no. So to quote wikipedia because it was the first that came up when I googled "Theft of services is the legal term for a crime which is committed when a person obtains valuable services — as opposed to goods — by deception, force, threat or other unlawful means, i.e., without lawfully compensating the provider for these services", do you see how someone might argue that changing out the api key could be seen as a form of deception?

I am not saying that I would think it right that someone bring this to criminal court (I figured I better put that out there as even the simplest of comments can be misunderstood, so who knows what several paragraphs together might lead to), I am not saying that they would even win, I am not saying anyone who did it would be doing so for the purest of motives. But I am saying it does seem something like theft of services by using deception.

on edit: the theft and new api keys refers several ancestors back to this anecdote "Their strategy was to have a pool of API keys attached to new accounts that would take advantage of the Google Maps API free tier, and monitor its usage. As the free tier usage would run out, the system would roll over to a new API key automatically."


Presumably there are other laws available, e.g. ones related to stealing cable TV service.


What contract? You don't sign a contract when you create a Google account (which is basically what you need to create an API key with access to the free tier)


These terms[0] are, in general, legally binding (especially as you're a business signing them and not just a person), and it's obvious bad-faith to do this, making any sort of lawsuit hard to fight. While they most likely won't actually take you to court over this, you risk suspension of your main GCP account.

> 3.3 Restrictions.

> Customer will not, and will not allow third parties under its control to: ... (d) create multiple Applications, Accounts, or Projects to simulate or act as a single Application, Account, or Project (respectively) or otherwise access the Services in a manner intended to avoid incurring Fees or exceed usage limits or quotas;

0: https://cloud.google.com/terms


Elaborating on above, not all contracts are signed. Not all contracts are even written - some are verbal or implied.


It's not clever, it's just much more simpler. Using linear interpolation for the time between 2 stops will have low accuracy because for the particular situation time might not be linear with position and distance. Also traffic incidents might happen.

Going with a pool of free keys will be much more dependable, even if somehow more complicated to manage and easier to break.


It's probably against their ToS and Google could detect it and ban all of those accounts, or the servers' IPs.

You can then keep fooling them by creating new accounts or changing IPs (assuming your usage doesn't have clear patterns they could look at).

But such events would be clearly disruptive for the business. Works for a POC, but if your business has actual customers, it's a terrible solution.


This company was shockingly deep into their lifecycle to still be using this approach. And yeah, they'd cycle IPs as needed too. I think the thought was that Google isn't doing a ton of fraud analysis for this particular modality of fraud. Still though...


You don't have many options if you need high accuracy: you have to pay a lot or try to trick Google which might be both immoral and against the law and for sure is tricky, hard to maintain and you can't count on it in the long run.

Let's hope there will be alternatives to Google provided traffic data. For now they seemed to monopolized it by offering it for free while losing money to discourage competition.


> You don't have many options if you need high accuracy: you have to pay a lot

What happened to actually trying to solve problems with programming?

Interpolation is one solution. Caching is another. Temporal analysis. Put everything together.

You don't need to query the magic Google box for every small update you make (and they might get that info from the transit providers, which given my experience are not that great sometimes).


Linear interpolation gets you 9X% of the way there for cheap, though. You can then come up with strategies for attacking the last 10% at somewhat higher cost instead of committing the entire stack to the high-cost strategy.

For example, if you ascertain that a bus is more than 2 minutes late, switch to polling that bus more often until it makes it to its next stop. And then switch back to linear interpolation once it gets to that stop. But you'll pay a little bit more for the added accuracy.

Morale of the story: if you want to get high-resolution real-time data, you (and your customers) have to pay for it, as that shit ain't easy.


> So, we ensure a maximum of 20 meters between two location coordinates to improve accuracy of information.

Hardly "low accuracy".

The key change is modelling the problem as one of routes rather than journeys. Since a route can be "polled" at a certain resolution & used regardless of the number of journeys on it.

> This approach made the API calls independent of the number of vehicles and dependent only on our stops, which helped us in scaling up our fleet with no additional cost.


> Since a route can be "polled" at a certain resolution

Unless I'm misunderstanding, they aren't polling these inter-stop coordinates


nobody will notice the difference between 4:00 minutes and 4:30 minutes, is the difference of stopping on a red light or finding it in green.


I worked at a company where they did the same thing, for a different Google API.

It didn't work out, and it still baffles me how anyone thought it could.


It usually works until it doesn’t.


The wrong kind of “do things that don’t scale”


From what I understand (I have no insider info/hints or anything related), this sort of thing was precisely why Google radically changed the pricing structure to make the free tier much smaller for Maps API recently.

I.e. Google knew there was rampant abuse by people like this (this example is not the only thing like this I have heard of...) so Google fixed the glitch and in the process ruined it for all the people genuinely using the service's free tier.

This is why we can't have nice things :) I guess we are lucky that Google didn't decide to just cut their losses and close the whole shebang down - that would be a shame as Google maps is really useful IMO.


I discovered that our preproduction servers use the free tier while trying to work on some CI/CD issues. Normally we never get anywhere near the limit, unless someone (say, me) is trying to work on the test suite during a time of day when a lot of pushes are happening. Had a few enforced breaks there for a little while.


Is that okay in terms of the ToS? How frequently did someone have to create new accounts?

Won't Google just ban the server's IP?


Needless to say, that's very much against the TOS and it's a matter of time until they get blocked. Surely at some point it'd be easier and cheaper just to pony up for a license?


... obviously not? :)


Pooling free-tier accounts is usually against ToS.


Easier to use a random key, normal distribution.


[flagged]


The whole chain of replies by this user in this thread sounds like the obnoxious vegan stereotype of the tech world.

How do you know someone is not using google products out of some moral grandstanding principle? Dont worry, they will let you know, even if it is just some thread that is only tangentially related to the topic (and their username will likely tell you as well).


Fraud.




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

Search: