我正在为Android构建一个安全的消息传递应用程序,主要是作为一种学习体验。 该应用程序将允许服务器所在的一个或多个人之间进行加密通信 将永远无法以纯文本格式查看邮件内容。
以下是我的协议的一个示例,我想知道它是否合适或是一种可怕的方式,因为我只是学习密码学最佳实践。
下面我们有客户A和B,A希望私下与B沟通
我不确定这是否安全,双重加密的原因是让MITM攻击更难获得A或B的公钥,以便他们可以错误地发送消息或拦截任何有价值的东西。
有关更好的方法,或建议改进的任何意见?
答案 0 :(得分:1)
我强烈建议您使用一个众所周知,开发和广泛使用的体系结构,如HTTPS,并避免自己重新创建。
可以使用自签名证书来实施,也可以购买一张保险。
更新的 一个非常好的阅读链接,说明为什么你应该避免编写已经编写并经过充分测试的密码术:Showcasing bad cryptography。
答案 1 :(得分:0)
有些观点引起我的注意:
使用公钥/私钥进行通信效率不高。安全通信的常用方案是:
为什么要加密公钥?没有意义,因为他们是“公开的”。
另外,正如@blue所说,这是加密中的第一条诫命:
不要自己实施加密系统
学习它并没有什么坏处,但是如果你想做一些非常安全的事情,你想要使用经过良好考验的协议和库:https,open ssl,...