【问题标题】:How to secure my windows phone 8.1 application?如何保护我的 windows phone 8.1 应用程序?
【发布时间】:2015-01-16 14:00:01
【问题描述】:

我是一名使用 c# 和 xaml 技术的 Windows Phone 开发人员。
目前我正在为我的客户创建一个银行应用程序,它针对的是 Windows phone 8.1 OS 版本。

我正在使用 Windows Phone xaml 应用程序模板来创建它。

由于它是一个银行应用程序,我需要最大限度地保护它。当我将我的 Appx 文件发送给银行技术团队时,他们已经担心应用程序的安全性。他们通过逆向工程将我为我的应用程序编写的代码发给了我。

我需要做什么?我们可以通过什么方式避免此类漏洞?请建议我避免这种情况的最佳方法。

谢谢

【问题讨论】:

  • 您的意思是保护.appx 文件?
  • 几个想法:你可能会想到code obfuscation,用C++写一些关键的方法(应该更难反转),记得保护任何敏感数据(字符串等),加密一些数据,使用 PasswordVault。

标签: c# security xaml windows-phone-8.1


【解决方案1】:

银行应用程序的安全性不应取决于客户端代码是否保密。您不应该在客户端上存储任何机密,因为无法让它们免受攻击者的侵害。

使用加密通信 (https) 与服务器通信。验证使用的证书,对用户进行身份验证,并让服务器发出一个具有有限生存时间的访问令牌。这些都是行业最佳实践。不要试图发明自己的安全措施。

【讨论】:

  • 是的!对。我必须加密存储在存储文件夹中的那些文件中的字符串。我们正在使用 https 与服务器进行通信。
  • 如果有人进入我的代码并访问我的 api 和加密代码详细信息怎么办?
  • 如果有人进入您的代码并窃取了令牌,他们将拥有与您的应用程序对该特定用户的相同访问权限。您无法可靠地区分有效应用程序和恶意应用程序。因此,请确保您的用户只拥有他们实际需要的权限,而不是更多。
  • 是的。当然。如果以后有任何关于此主题的更新,请告诉我。
【解决方案2】:

我想说,Security by Obscurity 不再是最先进的技术了......

一旦您的包裹被提交到商店,它将被加密,并且不再那么容易进行逆向工程。你可以让他们反编译他们从商店下载的包。

您可以做的其他事情是自己使用混淆器来使您的代码更难进行逆向工程。

您必须确保加密本地存储的日期(例如使用 PasswordVault)等。

但最后,您仍然必须将代码传送到手机本身,如果有人真的想通过它,他总是可以做到的。你可以让它变得更难。

更新:我刚刚检查过,安装文件的存储加密仅适用于 XAP (Silverlight) 文件。目前还没有正式的 appx 文件状态,但肯定也会出现。

查看详情here

【讨论】:

  • 你有关于这个被商店加密的包的参考吗?
  • 没错...您必须以即使有人拥有源代码的方式设计应用程序也是安全的...这是唯一的方法...
  • @Romasz:刚刚检查过。仅适用于 XAP,遗憾的是尚未适用于 appx。 :( 更新了答案。
  • 此外,XAP DRM 并没有多大帮助,因为互锁的未锁定设备可以访问存储未受保护程序集的应用程序安装文件夹。因此,唯一真正的选择是混淆应用程序或使用 C++ 和 WinRT。
  • @KaiBrummund 所以我的包类型是 .appx。在提供的链接中,包仍然没有加密。对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-26
相关资源
最近更新 更多