Android - 实施加密IM的最佳方式

时间:2014-09-05 08:53:01

标签: java android encryption aes rsa

我正在使用PHP和GCM作为中间人来创建和端到端的加密IM for Android。

我已经确定了IM部分,但现在我正在寻求对所有邮件实施端到端加密。

我的IM是纯文本的,最大有效负载为4kb(最大GCM支持)。

在Android上实现此功能的最佳方法是什么? AES + RSA?

是否有任何默认库可以安全轻松地实现这一目标?

1 个答案:

答案 0 :(得分:1)

很难说什么是最好的,解决方案还取决于你想要的安全性。

  1. 修复了RSA密钥对 - 您可以生成RSA密钥对并使用它们来加密流量。然而,这不会保护会话免受反编译APK文件并提取RSA密钥的人的影响 - 尽管您可以通过混淆代码并通过对其进行异或或使用反射来访问应用程序来隐藏密钥来使其变得困难。有一些相关的建议here以及有关实施的问题/答案here
  2. 使用SSL的动态加密密钥 - 即时分别为每个客户端协商使用的加密密钥。为此,客户需要信任服务器(即确保他们真正与您的服务器通信,而不是其他人)。这与SSL非常相似,服务器通过提供由第三方签名的证书来证明其身份。如果使用SSL是一个选项,则可以使用自签名证书here
  3. 自定义动态加密密钥 - 您可以设置自己的安全方案,但是您必须自己制作防弹措施。