Windows Phone 7应用程序代码的安全性如何?

微软的一个故障重新引发了一场辩论

最近微软的一个小故障使得开发者可以绕过Zune市场下载他们的Windows Phone 7应用程序。尽管微软已经弥补了这个漏洞,但这一事件还是引发了关于如何保护应用程序代码安全的争论,这个问题不仅仅影响WP7开发者。

最近出现了一个小故障微软的下载全新的服务器Windows Phone 7应用程序这在网络开发者中引发了广泛的讨论,并使人们重新关注保护网络安全的最佳方法智能手机应用程序被黑。

微软为Windows Phone 7的发布制定了精明的应用计划

MobileTechWorld网站发现注册的开发者可以通过“解锁”手机,直接从微软的在线服务器下载基本代码包,以微软的XAP文件格式,绕过该公司的在线Zune市场。然后,XAP“包”可以使用各种知名的工具将文件分解为其组成元素,包括开发人员可能希望隐藏的任何数据或知识产权。

这是因为Windows Phone 7应用的底层基础——微软的。net代码框架。应用程序代码运行在虚拟机中,虚拟机对其进行解释并调用底层操作系统。对于WP7,虚拟机是由Microsoft Silverlight或Microsoft XNA Studio提供的。从一开始,. net应用程序就像其他托管代码环境(如Java(以及Android,在其他移动操作系统中))一样,对于有经验的程序员来说很容易分解。

Windows的Kevin Hoffman说:“WP7 XAP(发音为‘zap’)只不过是一个包含XML清单的压缩文件。开发人员作者.".网络开发人员一直都知道他们的应用程序……可能会被拆解。像ILDASM.EXE和Reflector这样的工具总能让任何对。net有基本知识的人破解文件,在许多情况下,还能阅读完全清晰的源代码。”

尽管。net是微软独有的,但整个应用程序体系结构并非如此。Android操作系统社区中的盗版应用程序是一个长期存在的问题,一些人认为这个问题正在恶化。谷歌最近采取了一系列措施使其更加困难。(参见“尽管谷歌努力遏制,但Android软件盗版猖獗”)。

微软迅速填补了XAP下载漏洞,这一漏洞只适用于注册开发者手机,而不适用于WP7消费者手机。“重要的是要注意,从这样的网站获得的应用程序不能在消费零售设备上运行。这些应用程序文件已签名,未经修改将无法运行。这类文件只能在有限数量的“解锁”手机上运行,比如那些由Marketplace开发商通过(在线开发商门户网站)App Hub注册的手机。”

对于新手来说,他们的应用程序解包的容易程度可能会令人不安。一些网上论坛充斥着谴责和愤怒。但同样的论坛也表明,像Hoffman这样有经验的。net开发人员很清楚这个问题,正如他们指出的那样,这不是微软独有的。

“考虑到微软刚刚证实,在一段时间内,市场上的所有2000个应用程序都可以被解锁的设备下载和使用,这种反应似乎相当冷淡,”Pradeep Viswav写道他是微软学生合作伙伴,正在攻读计算机科学和工程学位,也是WMPowerUser.com网站的博主。

不是每个人都同意了。

“[一个]ny .Net开发人员知道这一点,如果他们想要更安全一点,就会混淆他们的程序。”Windows开发者Bobby Cannon写道.“然而,即使是模糊的代码也可以反编译并在未解锁的设备上运行。”

塞莱斯游戏的一名未透露身份的程序员,在Twitter和脸谱网作为一名WP7游戏和应用开发者,他在两个方面对Cannon表示不满,一是对XAP文件一开始就不安全感到愤怒,二是对混淆工具刚刚开始可用感到愤怒。

“这与XAP是否可以反编译无关,”这位程序员写道。“问题在于,为什么那些xap会通过web服务调用暴露出来?”换句话说,为什么他们如此容易地暴露在世界面前?微软方面的巨大监督,这将使许多开发人员产生误解。此外,Windows Phone 7的混淆工具上周才发布。许多应用程序是在一个月前发布的。做数学!”

另一名程序员克林特站在了坎农一边。他写道:“作为一名开发者,并且在Zune Marketplace上有自己的产品,我可能会天真地认为自己的应用受到了任何形式的保护。“当涉及到软件时,这就是事物的本质。我完全期待XDA或其他地方的人能够想出解锁手机的方法,而不是开发者。这迟早会发生的。”

微软建议使用一种称为代码混淆的技术,这种技术使用多种技术,使黑客更难破译和恢复底层源代码。对于它的用处,人们的看法大相径庭,有时甚至大相径庭。一般来说,许多使用模糊处理的程序员将其视为他们能够并且应该在需要保护的地方保护应用程序、数据和知识产权的步骤之一。

微软刚刚宣布伙伴关系PreEmptive Solutions提供了该供应商的Dotfuscator产品的新版本,以及一套用于衡量应用程序下载、性能和问题的分析工具。Windows Phone 7的开发者可以在3月31日之前免费使用4.9版本。根据微软的说法,在此之后,供应商将向开发者收取每月不到10美元的费用。供应商说,开发人员提供的是商业级的产品,而不是功能较差的“社区”版本。

详情可在先发制人的产品页面和博客,与一些额外的链接到其他资源

还有其他的混淆工具,比如加密模糊处理从LogicNP软件。

“混淆是有帮助的,但并不是不可逾越的障碍,”霍夫曼说,这似乎是许多开发者普遍持有的观点。确保你的应用不会泄露重要信息的唯一可靠方法就是在应用中删除这些重要信息。”

霍夫曼说,这些信息,包括算法、代码、密钥等,都在云端,而不是手机上。如果应用程序必须在本地存储重要信息,那么就应该对其进行加密。

他说,设计方法应该体现一位安全顾问曾经给过他的建议:“无论你把墙建得多高、多坚固,总有人能进去或越过。”作为开发者,你的工作就是确保当他们这么做的时候,另一边对他们来说没有什么有用的东西。”

John Cox为Network World研究无线网络和移动计算。有个足球雷竞技app

Twitter:http://twitter.com/johnwcoxnww

博客RSS提要://m.amiribrahem.com/community/blog/2989/feed

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。

版权所有©2010 IDG ComRaybet2munications, Inc.

SD-WAN买家指南:向供应商(和您自己)提出的关键问题