繁体   English   中英

在Android上防止多个用户帐户(实际用户流)

[英]Preventing Multiple User Accounts On Android (Well User Streams Actually)

所以我有一个独特的安全问题。 (好吧我反正这么想,但我可能只是不知道我在做什么?)

所以总体思路。 我想创建一个将数据流发送到我的服务器的应用程序。 我根本不关心保持流是安全的,它没有什么重要的。 所以不要认为加密。

对我来说重要的是确保每个流的有效性。 通过验证我的意思是,验证每个流实际上来自运行我的应用程序的独特硬件设备。

我一直在网上搜索如何阻止用户创建多个用户帐户,从验证电子邮件到验证文本。 这些都是权宜之计措施,需要处理时间和资源,只能帮助限制问题。 (它很容易制作多个电子邮件帐户,只有稍微难以访问多个电话号码,如果您弄清楚电话号码的事情,将文本转发到您自己的手机并不困难。)

对于这个特殊情况,我有一个想法是让第三方有一个确定的列表,将硬件ID与电话号码相匹配,AKA是实际为手机提供服务的提供商。

那么什么是令人敬畏的API将允许以下行动。 1.人开始我的应用程序。 2.应用程序将初始联系发送到我的服务器 (这将包括用户电话号码)3。我的服务器收到此信息并查询提供商服务器,要求提供商服务器查询该特定电话号码,确保其网络上有有效的硬件ID,并且该特定电话正在运行我的应用程序的一个实例。

我认为像这样的系统可以解决我的问题,并且非常简单。 即使有人扯下我的应用程序并在手机上安装一个同名的应用程序来欺骗系统,我也不在乎,因为该手机仍然只能发送1个数据流。 而且我认为创建一个硬件设备以欺骗网络上的另一部手机几乎是不可能的。 (好吧,也许你可以做到,但他们会很快跟踪你。)

  1. 解决这个问题的方法是编写一个感染其他手机的病毒,导致他们对服务提供商的请求做出错误的回应。 虽然这是一个可能的漏洞,但我觉得谷歌和其他公司会更加安全地对抗此类病毒以保持系统声誉。

思考? 建议? 请记住,重要的是验证任何传入的流来自运行我的应用程序的独特硬件。

(你能猜出我的应用程序是什么吗?)

上周,Android开发者博客上发布了一篇关于此事的帖子

简而言之:ANDROID_ID是一个很好的开端,虽然它并不能在所有手机(尤其是旧手机)上可靠地工作。 如果您想支持旧款手机,您可以将其与上述建议的IMEI结合使用(但请记住,并非所有设备都有IMEI。例如,仅限WiFi)。

请阅读,而不仅仅是试图成为一个消极的ninny。 我有很多盗版经验,我可以告诉你,你的努力是徒劳的。 在这笔交易中,花在复杂的盗版预防上的时间浪费了。 如果你通过Android市场销售,诚实的用户将保持诚实。 谁在乎我是否愿意将它交给我的朋友如果这是一个很好的应用程序,他会想要更新并且必须购买它,因为我不会只是继续复制新版本并通过电子邮件发送邮箱等等...

海盗只是要下载免费副本,所以你永远不会得到他们的钱让它去! 这就像那个有足够吸引力的女孩,但你不喜欢她作为一个人。 你不会忘记让她成为你的女朋友。 海盗以同样的方式看待你的软件:“我想要它,如果它是免费的,否则......我......”

你把所有这些工作都放到了一半的烘焙计划中,浪费你应该用来更新你的应用并支持付费用户的时间。 所有这些努力都不会被“偷走”。 你知道我要做什么来破解那个程序(不是字面意思我,只是一个例子)我要对它进行十六进制编辑或反向工程代码并完全删除你的认证调用。 我可能会创建一个电话服务来进行身份验证,并且只是破解你的应用程序以在127.0.0.0/8环回上进行身份验证。

无论保护多么好,如果要在多用户环境中运行,它都会被打破,看看HD-DVD和蓝光。 我出现在破坏这些保护措施的场合,他们非常令人印象深刻和复杂,但最终很容易打破。

DRY限制是我购买电影,游戏和节目的重点。 共享是关怀!!!! 更重要的是它是免费的广告!!!!!!!!!!!

我不能告诉你CD的电影游戏的数量嗯... Pr0nsites>,> 口哨因为盗版我买了/花了钱。 如果你制作了一个很棒的程序并且保持更新,人们会购买它。 如果您尝试将其锁定在平台或特定设备上HAHAHAHA祝您好运,请问他们如何保持键盘仅通过OEM发布。 即使有设备制造商支持,硬件仿真和调试也要破解它。

我13岁或14岁时盗版了一个操作系统并没有钱,就像光盘刻录软件一样。 当我18岁并建造了一个新的钻机我买了两个。 我盗取了一些Android应用程序并猜测我买了哪些我喜欢的以及开发者更新的内容。

您最好的反盗版计划是一个好的开发者,并对您的社区做出响应。 这是您最好的保护计划! 谷歌现在接受应用程序付款sooo ...通过在应用程序中捐赠专业/购买按钮让您的应用免费(通过菜单按钮捐赠更多)。 请务必向其披露应用程序购买时的说明,以避免惹恼人们并收到不良评价。

以下是它的工作原理。 该应用程序已安装,他们在应用程序中购买应用程序使用蓝牙wifi或两者上的MAC地址生成设备ID。 一旦购买,生成的密钥字符串被加密存储在设备存储器中。 在应用程序重新启动时,它会解密字符串键,将其与mac地址进行对比,以确保它位于同一设备上。 它应该在任何新安装时检查服务器并查看设备是否已经注册并发送允许设备再次生成密钥字符串。

在购买时通过电子邮件重新注册密钥代码,它应该是不同于字符串密钥的许可证密钥,因此他们不能使用字符串密钥来破解加密并破解方案。

密钥应该只引用设备ID服务器端,并允许用新的设备替换该设备,例如保险更换(或新设备)。

你应该只使用谷歌应用程序商店drm,因为如果你的一个客户移动到新设备,他们将会生气。

为了确保应用程序始终有效,您应该承诺在开发停止时发布无drm产品。

Drm只是一种痛苦和麻烦,而且海盗完全取消了这些限制,所以当你看到有限制的付费客户或者自由轻松的时候你会选择什么?

如果这不是完全清楚的抱歉我打了三个人大声说话,其中一个是三岁的孩子扔在我脸上。

结束

PS

https://market.android.com/details?id=com.noshufou.android.su.elite&feature=search_result此应用程序暂时没有安装:10,000 - 50,000次购买只是为了支持其他程序的开发

如果我真的想将应用程序锁定到特定硬件上,我会使用手机中的IMEI (GSM)或MEID (CDMA)并为其分配一个唯一的cookie。 您可以使用权限“读取电话状态”从电话中检索这些号码并将其发送到您的服务器。 为了保护您的客户,我只会发送一次并返回一个随机cookie,供他们用于进一步的请求。 您可以在数据库中记录IMEI / MEID以及相关的cookie,以确保相同的设备始终获得相同的cookie。 我还会为客户的隐私使用SSL进行此初始交易,但如果您愿意,可以在明文中发送cookie。 这会将他们的帐户与他们的手机相关联。 我不知道Android MP3播放器,平板电脑等是否有类似的序列号。 除了IMEI之外,GSM电话还有一个称为IMSI的号码,该号码专用于SIM卡而不是电话。 CDMA手机没有SIM卡,只有MEID。 最后,我所说的这个cookie不一定是常规的HTTP Cookie,它只能是URL的一部分,例如?cookie=abcd123或带内发送的一些字符串,你决定使用哪种网络协议。

为什么不使用像IMEI这样的独特硬件ID?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM