I've recently implemented in-app purchases in my app using the follow 
server-side conversation to check receipts from Google Play(let's call my 
server Fngopt):

1) Ask Fngopt server for a nonce code. On the server register this code was 
generated.
2) Generate a purchase request to Google Play with this nonce.
3) when I obtain a signed receipt I check it on the server and make sure 
that it contains a nonce Fngopt served out

Now my problem is that I originally wanted to build an additional layer of 
security by making sure the receipt was also using a recent timestamp, 
basically trying to give receipts a sell-by-date. However the 
restore-purchased-items feature returns a receipt with a timestamp of the 
original purchase date. So is this hacking scenario applicable:

Hack my app or create a fake DNS server to intercept the receipt being 
exchanged during a purchase. You can then create a new app which bypasses 
the Play store and simply sends this receipt over and over. You can then 
sell this app as a cracked copy of the original where you don't have to pay 
for in-app purchases at all.

This was recently successfully achieved on IOS 5.x (patched in 6.0) not 
quite in the same way however the principle is the same. A receipt cannot 
be tied to an account and therefore can be reused by anyone.

Any thoughts appreciated thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"Android Security Discussions" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/android-security-discuss/-/6S253s270qAJ.
To post to this group, send email to android-security-discuss@googlegroups.com.
To unsubscribe from this group, send email to 
android-security-discuss+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/android-security-discuss?hl=en.

Reply via email to