2010-08-27 76 views
0

我有这个web服务在工作。对于该web服务,我们的部门已经开发了一个客户端来使用web服务。防止从不同的客户端应用程序调用webservice

我们想要防止的是,他们开发任何其他客户端来使用它。

是否有任何算法,我们可以改进我们的客户端和web服务通信来验证消费客户端是我们的应用程序?

我有一个想法,那就是我们可以开发一个关于必须与服务器上的计算结果匹配的时间(宽限期5秒)的加密算法。

,但我想可以肯定,对于没有最好的做法...或者,如果它仍然是一个好主意......

(我的英语很抱歉)

+0

您会或不会分发您的客户? – Jasper 2010-08-27 02:11:02

+0

我会将它分发给特定的Costumers(也许20个costumers)...我不想要的是他们开发自己的客户端来使用webservice ... – 2010-08-27 02:14:43

+1

为什么不呢?建立您的API和您的收费模式是否鼓励您创新? – 2010-08-27 03:11:13

回答

1

我认为Web服务(例如基于SOAP或REST)的一部分就是发布一个接口,它可以让您的服务潜在地被各种客户端实现所使用(互操作性是Web的动机之一服务)。

如果您想锁定您的客户使用的服务,将其作为“Web服务”的唯一好处可能就是您实施它的工具和库。你可能想考虑这是否值得(这确实是可能的)。

如果您分发您的客户端应用程序,那么可能会确保请求来自该客户端的任何保护机制都必须嵌入此客户端。因此,无论您嵌入的任何秘密机制可能只会被混淆到某个特定点,但可被更高级的用户破解。

+0

我很确定所有的东西都是易碎的,但是如果路上有更多的石块,很多东西就会坐在一边... – 2010-08-27 02:28:16

+0

这真的取决于用户的技术水平。如果您使用共享密钥发送某些内容,则最终会出现与DVD/CSS保护系统相同的问题(打破一个,将其全部打破)。如果您使用私钥/证书(每个给定应用一个)发送某个内容,如果您怀疑犯规行为,则可以撤消给定的证书。无论哪种方式,如果有人愿意反汇编代码,他们可能会找到秘密/私钥(因为您希望它被使用,所以您无法很好地锁定它)。 – Bruno 2010-08-27 02:35:39

1

你在找什么被称为“身份验证”。

+0

我可以给他们一个用户和一个密码,然而他们将能够开发自己的客户端应用程序....我会更好地要求一些“授权”算法... – 2010-08-27 02:10:54

+0

一种形式认证使用客户端证书。将证书分发给单个应用程序,并仅允许该证书。 – 2010-08-27 02:12:53

+0

哦,听起来不错...任何想法从服务器更新过期时这些证书? – 2010-08-27 02:21:14

0

您需要应用程序认证。对于基于Web的应用程序和服务,请尝试查看两脚OAuth。在OAuth中,您为访问您的服务的每个客户端应用程序发出一个id和一个秘密,并且每个消息都被签名以获得额外的安全性。

相关问题