首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保护web服务以防止篡改交换的数据和模拟应用程序请求

保护web服务以防止篡改交换的数据和模拟应用程序请求
EN

Stack Overflow用户
提问于 2011-03-15 19:58:28
回答 2查看 2.4K关注 0票数 2

我正在使用客户端API库构建一个web服务。如何帮助使用客户端API库的开发人员防止最终用户修改客户端应用程序和web服务之间交换的数据?

另外,如何确保请求来自应用程序,而不是由简单地直接调用服务的最终用户模拟?

我知道这里实现的任何安全性都会有解决办法,所以问题不是如何使其防篡改,而是防篡改。

EN

回答 2

Stack Overflow用户

发布于 2011-03-16 02:10:40

你真的不能。

您要做的是加密您的有效负载。对有效负载进行加密可以确保中间的人不能篡改它,并且有效负载是由具有适当密钥的人创建的。要做到这一点,您需要获得一个密钥。要获取密钥,您需要将其嵌入到程序中,或者从服务器请求它。如果你将它嵌入到程序中,任何使用该程序的人都可以访问它。如果您从服务器请求它,那么您需要一些工件来标识要发送给程序的适当密钥--这实际上是某种密钥本身。

对流量进行加密会阻碍大多数人。问题是,它不会阻挠所有人,以及那些坚持不懈的人,然后以一种形式发布他们的信息,让那些最初不愿意做这项工作的人变得容易。

这就是为什么它归结为你想要保护的东西。

例如,如果你在玩一个得分的游戏,如果你得到了足够的分数,你赢得了很高的声望,或者,糟糕的是,金钱/奖品,那么就有适当的动机作弊并绕过安全措施。如果用户通过作弊以任何重要的方式获得奖励,那么不仅有人会作弊,他们还会让其他人作弊。

这就是为什么“隐蔽安全性”行不通的原因。这一切都集中在那些试图破坏安全的人的动机上,一旦安全被曾经老练的分析师打破,然后,突然之间,“每个人”都知道了。

想想最近的索尼Playstation黑客事件吧。那个系统是相当安全的,但是有人以某种方式发现了签名密钥,它允许一个经过嗯修改的系统运行软件。当这些签名密钥是安全的时,“破解”PlayStation所需的负担级别涉及硬件修改等。

现在他们不需要任何东西了。这是下载的。整个PS社区现在都是不可信的。那只猫已经从袋子里跑出来了。

类似的事情也发生在TI计算器上,有人对签名密钥进行了反向工程,破坏了平台。而这只是那些使用计算器的极客。

这些只是一些极端情况,说明一旦安全性遭到破坏,您的协议可能会发生什么情况。因此,重要的是要先了解是什么驱动了你的解决方案,然后尝试通过一些其他方法来缓解它,在这些方法中,有效负载和加密对解决方案的成功不那么重要。

票数 2
EN

Stack Overflow用户

发布于 2011-03-16 01:53:43

最好的解决方案是使用HTTPS来防止篡改导线。然而,通常情况下,客户比开发人员对环境有更多的控制。对于所有的移动平台来说尤其如此。您将无法隐藏API密钥或防止API调用在传输之前在内存中被操作。没有安全系统可以防止这种情况发生。

也许你正在寻找“(In)Security though obscurity”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5311359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档