android - proguard 防止逆向工程的安全性如何?

标签 android security networking passwords proguard

我将在应用中处理非常敏感的数据。根据我的定义,混淆并没有增加安全性,它只会在有限的时间内拖延破解者。 Proguard 是否有可能在这方面做得如此出色,以至于可以称为增加的安全性?

最敏感的是一些网络调用。很难嗅探密码,因为我们将在双方生成密码并使用时间戳检查其有效性。问题是应用程序可能会被逆向工程并且生成算法可能会被利用。

不可能将算法保存在本地文件中,因为破解者可以使用已获得 root 权限的手机检索它。从服务器下载算法是行不通的,因为同样的问题也适用于此,如果破解者对应用程序进行逆向工程,他/她将能够看到算法的来源。

非常感谢任何关于如何进行的输入!

编辑

我试图保护的是生成算法,这样破解者就不会向我们的服务器发送大量数据。

最佳答案

一般来说,你可以让 cookies 的生活更艰难。你越努力,剩下的就越少。特别是在经济激励有限的情况下。

您的代码混淆选项是:

  • 使用proguard,它做得很好,当然不完美,但是很好
  • 使用 DexGuard,它可以使逆向工程变得更加困难,例如 通过加密字符串,或检测代码篡改
  • 用 C 编写关键部分

无论代码混淆如何,使您的网络协议(protocol)也难以混淆:加密和签名消息,确保消息不能重复(通过使用时间或序列),以及对客户端进行身份验证

不要在磁盘上保存任何敏感的明文。

关于android - proguard 防止逆向工程的安全性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658219/

相关文章:

android - Android 水波纹效果

android - 使用 Retrofit 网络请求时如何使用 IdlingResource 测试 Android UI

mysql - 在 mysql 中存储密码...使用哈希对吗?但是如何向用户发送忘记的密码呢?

SQL Server 架构最佳实践

ios - 使用Parse是否比设置自己的身份验证更好?

android - 通过 Titanium 进行地理定位

android - 找不到 com.google.firebase :firebase-core:9. 0.0

linux - 有没有办法可以在 linux 上查看真实进程 cmdline?

Windows 网络驱动器通过 ssh 和 powershell

c# - 关闭和清理 Socket 连接的正确方法是什么?