是否有可能执行从已知的唯一客户端Web服务调用?
-
19-09-2019 - |
题
情景:
这是公开可用的Web服务,我有完全的控制权。 但我只希望这个特定的桌面应用程序(我发布的应用程序)来访问Web服务。 我可以存储在桌面客户端密钥密码,但是这将是很容易破解。
是否有任何已知的执行,强制执行呢? PKI,非对称配钥匙?
解决方案
如果市民将有机会获得这个桌面应用程式的副本,任何良好的逆向将能够破解它和“模仿”的数据与服务器。它好好尝试一下怎么回事安全是你的密码,你的应用程序需要的一切加密/解密的数据包括在二进制文件,所以黑客只需要挖掘出来的吧。
密码学的目标是,当它被转移,由“中间人”黑客保护数据,但如果有权访问对等体中的任何一个,就可以很容易地破解它。
您的服务器必须永远不要相信从客户端会发生什么。
[编辑再开始]
尽管你不能100%保证客户认为你的服务器是或不是你的应用程序或一些“模拟器”通过thirdies,您就可以东西给复杂化。它在游戏中的反作弊常见的做法有时,随机,使客户端应用程序像一个有趣的问题“什么是您的MAIN.EXE从偏移哈希A到偏移量B?”或“从现在开始,数据包类型0x07的交换与数据包类型0x5F的”。一旦检测到假的,服务器在一个“愚蠢的模式”进入,行动malfunctional,并列入黑名单的IP /帐户此模式数小时,使他们不能肯定什么他们的计划是做错了。
如果您发现有人正在建设一个模拟器,让他们从头再来:混杂的数据包类型表,密码表,改变一些数据包格式,并迫使客户更新。你不会看到饼干打扰你一会儿...... LOL
其他提示
的WS-Security 提供X509加密。
这实现的一部分包括只给特定的客户端所生成的公开密钥的可能性。这样,只有您选择的客户端可以连接到服务。
最简单的方法是使用客户端和服务器证书消息的安全性。最好的办法是,导入客户端证书在服务器机器和硬编码的客户端证书指纹app.config文件中。另一种方法是我还没有尝试过的证书的协商。
如果使用的是IIS来承载服务然后客户端证书使用SSL的另一种选择。
在 WCF安全 MSDN链接。