security - TCP 安全连接 - 仅通过我的客户端

标签 security tcp network-programming

所以我的服务器和客户端之间有这个 TCP 连接,任何人都可以连接到我的服务器。但我想确保客户端真的在使用我的客户端应用程序,而不仅仅是伪造来自假 TCP 客户端的消息。有什么方法可以检查连接是否真的来 self 的游戏客户端?

谢谢!

编辑 如果我要使用 TLS,我能解决这个问题吗?

最佳答案

您的问题可能没有完整的解决方案,因为无论您做什么,对方都可能总是拿走您的程序,在受监控的环境中运行它,操纵运行时数据并让它使用其“安全”网络协议(protocol).由于客户端应用程序在不受控制的手中,您永远无法确定它是您自己的程序。

小例子:我的应用程序运行您的应用程序并将数据回放到您的服务器,然后将您的响应转发回应用程序。你怎么知道?

也就是说,使用 SSL 并将客户端的私钥硬编码到应用程序中可能是一种非常有前途的“99%”方法——您可以尝试使用一些技巧使其难以找到(例如,看看 Skype 是如何做到的) ).如果您随后还在您的程序中构建完整性检查,以确定是否有人在操纵内存或调试您的程序,您可以尝试让潜在对手更难一些。 (但请注意,您将始终必须将私钥与您的应用程序一起发送,因此它并不真正安全,不会被发现。)

关于security - TCP 安全连接 - 仅通过我的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615712/

相关文章:

ruby - 关闭 capybara 的正确方法(使用 poltergeist/phantomjs)

c - net-snmp解析代码,如何解析MIB?

string - 如何将网络客户端的 IP 转换为 Golang 中的字符串?

android - MD5 转换在 Java 和 Android 中的工作方式是否不同?

linux - 更改虚拟机 KVM 中的 root 密码

security - Maven 3 密码加密是如何工作的?

c - TCP 代码中出现未初始化值错误

php - 使用基于时间的旋转散列或字符串来确保安全

.net - 如何强制我的 C# 应用程序立即确认 TCP 数据报?

java - 如何从多个客户端接收文件?