【发布时间】:2023-11-19 05:30:01
【问题描述】:
我现在有一个(客户端/服务器通信)设置,如下所示:
1) 客户端向用户询问用户名并通过
2) 客户端使用端口 80(通过网络)将其发送到服务器
3) 服务器回应说这是否是正确的密码(正确密码/错误密码),如果正确,它将向客户端发送一个加密密钥。
4) 客户端向服务器发送一系列命令(所有命令都以服务器提供给客户端的加密密钥开头)。
5) 服务器检查加密密钥以识别客户端并响应命令
我的问题是:
这是确保安全的正确方法吗?我不确定来回发送单个加密密钥是否会有任何好处。让客户端生成加密密钥并让服务器验证它会更有帮助吗?
我想做的事情就像 facebook 对应用程序进行身份验证所做的那样。例如,我可以想象 facebook 做了一些事情来阻止我通过诸如 wireshark 或 tcp 分析器之类的程序窃取原始密码。
如果这很重要,我的程序是用 c# 编写的,并使用标准 http 发送/接收数据。
谢谢,
罗希特
【问题讨论】:
-
立竿见影的改进是切换到https。
-
这是保证安全的正确方法吗? - 不。从端口 80 上的名称/密码开始。
标签: c# networking communication