我已经“保护”了我的 android 应用程序和提供金融交易服务的 tls 服务器之间的通信,目前正在开发中。
安全凭证存储在 Android apk 中包含的 BKS 密钥库中。密钥库的密码在应用程序源中以纯文本形式显示:
keyStore.load(is, "passwd".toCharArray());
我担心如果有人对应用程序进行逆向工程,他们将能够冒充另一个用户并危及服务的安全性。
我想知道我的实现是否存在错误,是否有其他人有这种担忧,以及防止这种可能性的最佳方法是什么。
我已经“保护”了我的 android 应用程序和提供金融交易服务的 tls 服务器之间的通信,目前正在开发中。
安全凭证存储在 Android apk 中包含的 BKS 密钥库中。密钥库的密码在应用程序源中以纯文本形式显示:
keyStore.load(is, "passwd".toCharArray());
我担心如果有人对应用程序进行逆向工程,他们将能够冒充另一个用户并危及服务的安全性。
我想知道我的实现是否存在错误,是否有其他人有这种担忧,以及防止这种可能性的最佳方法是什么。
每当您在客户端上存储安全数据时,它都可能受到逆向工程的影响。您可能会尝试在代码中隐藏它,但坚定的黑客无论如何都会发现它。因此,使其更安全的唯一方法是不要在代码中公开密码。也许您可以在应用程序开始时向用户询问一些密码并使用它来解密密码?
存储在您的应用程序中的凭据是否每个用户都是唯一的,即每个用户都拥有自己的具有唯一凭据的 apk?如果您只有一个具有相同凭据的 apk,那么这与没有安全性一样好。更糟糕的是,它给人一种虚假的安全感。
您(您的雇主)应该真正聘请安全专家从安全角度设计您的系统。
这是我要做的:
但不要认为我的话是理所当然的。如果涉及金融交易,您仍然需要安全专家。
我相信Diffie-Hellman 密钥交换正是我所寻找的。我宁愿不必使用涉及用户的复杂过程重新实现我自己的 DH 版本。
目前正在为一家加工公司编程-
它们是交易应用程序的一套规则和规定 - 或 - POS APP(销售点应用程序)
这些规则在网上列为 PCI 验证,必须出具一定数量的安全性,否则将是 Visa,inc 或许多其他公司的诉讼。
关于您的问题,它不符合 PCI 合规性,因为这是一个安全问题。
请阅读 PCI 合规性,以便他们全面了解安全性,损害持卡人数据是不好的。
:)