我对密码学还是很陌生的,所以请原谅任何新手的错误。我被问过几次了,但我不知道该找什么。
所以,我有一个服务器,它从我的智能手机上通过http接收命令。目前,所有内容都是使用AES加密的,密码可以在服务器的配置中设置。
问题是,当有人拦截我的请求时,他无法解密命令,但他可以将加密的命令重新发送到我的服务器。
我认为有两种解决办法:
我认为有更好的方法(也许是另一种算法?),有什么帮助是欢迎的。
再说一遍,我对密码学没有多少经验,编程只是一种爱好。
发布于 2013-10-08 17:17:02
请不要试图重新发明安全通信。SSL和SSH是两种非常广泛使用的、非常好的安全通信协议,这两种协议都将解决重播,以及许多尚未考虑的安全问题(重新排序、删除消息、将消息从一个地方插入到另一个地方等)。
发布于 2013-10-09 00:35:18
看来您需要加密和身份验证。
正如其他人所述,对于HTTP请求,请只使用SSL (HTTPS)进行加密。SSL是加密的特例。SSL可以进行身份验证,但是有更好的解决方案可以通过智能手机对用户进行身份验证。
对于用户的身份验证,有许多选项。对于智能手机连接,我建议您也不要发明自己的身份验证协议,而使用经过尝试和测试的解决方案,如OpenID和宣誓。有许多库支持这一点。使用这些协议可以使用现有的Google、Facebook、Twitter帐户等对用户进行身份验证。
https://stackoverflow.com/questions/19253941
复制相似问题