回答:我正在使用相互 SSL 身份验证。现在没有任何问题:)
我正在做一个服务器项目。我尝试使用 XOR encrypt-decypt 方法对客户端进行身份验证,但这还不够安全。我决定在我的套接字上使用 SSL,但我做不到。我有一个基于 System.Net.Sockets.Socket 的连接。即我想要这个:如果传入 Tcp 连接,则验证它是我们客户端的套接字连接。(每个套接字都无法从我们的端口连接我们的服务器套接字)。谁能给我一个起点或一些例子?(这是我服务器的死角,做不到就取消!)
EDIT1:我的系统目前是这样工作的:
客户端连接到服务器。
服务器创建 16 字节长的随机密钥并使用 serverKey (XOR) 对其进行加密,并将其发送给客户端
客户端使用 serverKey 解密数据并使用 clientKey 加密并发送回
服务器解密数据和检查是否相同
(当客户端连接时,为验证超时启动一个计时器)
EDIT2:现在我正在使用其他密码学。当客户端连接时,它将被发送,客户端将解密并发回。密码学是这样工作的:
用特殊方法(不专业)加密 byte[]。之后,得到一个 byte[] 的哈希码。这个散列算法是我写的,如果有人不知道,永远不要理解我们的加密字节[]。(已经哈希输出不能回来)。最后,它结合了散列和加密(如 XOR,一种特殊方法)。
使用这种方法,没有人会得到解密/破解的数据。否则有一个非对称加密/解密方法(http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)。我可以稍后使用(硬)非对称密码学升级我的身份验证系统(如果还不够的话)。