gpt4 book ai didi

java - 如何保护 APK 文件中的 SFTP 密码

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:20:52 30 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它提供将图像/文件上传到 FTP 服务器的服务。

为此,设备上的应用程序必须在发送数据之前登录到 FTP 服务器。

我的问题来了。用户不需要/不必知道 FTP 登录数据。只有应用程序本身。我必须将登录数据存储在 Java 类中。但是我应该如何保护用户和密码呢?

我可以加密或混淆它。但我认为,当 JVM 调用“setPassword(passwordString) 方法”时,黑客有可能在运行时读取密码:

String passwordString = "myPass";

JSch ssh = new JSch();
session = ssh.getSession(SFTP_USER, HOST_ADDRESS, 22);
session.setPassword(passwordString);

那么我怎样才能将我的凭据存储在 APK 中呢?归档并保护它们?我不希望任何人访问我的 FTP 服务器。

最佳答案

how could I store my credentials inside the APK file and secure them? I don't want anyone to get access to my FTP server.

无法解决所述问题。

无论您的混淆技术多么巧妙。如果您在 APK 文件中隐藏固定凭据,那么分析您的应用程序的人将会找到它们。

如果您从这个答案中只得出一件事,那就是为您的服务器设置一个单一的静态密码是非常有问题的,因为您永远无法更改密码服务器-一边,因为你会破坏所有的应用程序。您的密码被公之于众只是时间问题,您对此无能为力。

任何合理的方法都需要为每个单独的用户提供单独的访问凭据。

涉及确认电子邮件的传统用户注册系统是一种很好的方法。你可以使用类似 Google+ 的东西登录或 Facebook Connect 以最大程度地减少最终用户的麻烦。

如果您绝对坚持零用户交互,一种可能(某种程度上)有效的方法是让应用程序注册 Google Cloud Messaging然后向它发送包含访问凭据的推送通知,该应用会将其存储在 KeyChain 中。

如果您为每个应用程序安装生成一个唯一的用户 ID 和密码,您将能够监控服务器并阻止任何滥用访问凭据,而不会影响任何其他用户。如果您以某种方式将 APK 文件的代码签名标识考虑到流程中,您将有一个基本的防御措施来防止人们重新打包您的应用程序。这种方法不会保护您免受智能攻击者的侵害,但它可能会针对您的目的提高足够高的标准。

此外,无论您做什么,请务必正确验证服务器的 SSL证书。如果您不这样做,攻击者只会通过代理服务器运行您的连接。

关于java - 如何保护 APK 文件中的 SFTP 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942271/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com