我有一个(客户机/服务器通信)设置现在像这样:如何保护我的密码安全?
1)客户端要求用户输入用户名和通过
2)客户端使用端口80(在Web上发送这个到服务器)
3)服务器回应说这是否是正确的密码(correctpass/wrongpass),如果是正确的,它会发送一个加密密钥给客户端。
4)客户端向服务器发送一系列命令(所有命令都以服务器提供给客户端的加密密钥开始)。
5)服务器检查的encryptionKey识别客户端和响应命令
我的问题是:
这是保持安全的事情以正确的方式?我不确定是否来回发送一个加密密钥会有什么好处。它能帮助客户生成一个加密密钥并让服务器验证它吗?
我想做的事情就像Facebook用来验证应用程序一样。例如,我可以想象,Facebook做了一些事情来阻止我通过诸如wireshark或tcp分析器之类的程序窃取原始密码。
如果它很重要,我的程序是用c#编写的,并使用标准的http发送/接收数据。
感谢,
罗希特
立即改进是切换到HTTPS。 – Tejs
_Is这让事情变得安全_正确的方式 - 用号的用途是什么共享的秘密名/密码通过端口80 –