微软正在推广代码“混淆”的理念,以使Windows Phone 7应用程序更安全,这是通过与先发制人的解决方案合作实现的。该供应商现在提供了一个特殊的Windows Phone版本的代码混淆工具,以及一套基于云计算的服务,收集、管理和报告从下载的WP7应用程序中获取的分析数据。
有一个新的“网络有个足球雷竞技app世界”故事最近的一个事件引发了关于WP7(或Android或其他手机应用)安全程度的争论。
WP7应用程序的核心是微软。net代码框架的一个版本。应用程序代码运行在虚拟机中,虚拟机对其进行解释并调用底层操作系统。对于WP7,虚拟机是由微软Silverlight或微软XNA Studio在手机上提供的。从一开始,. net应用程序就像其他托管代码环境(如Java(以及Android,在其他移动操作系统中))一样,对于有经验的程序员来说很容易分解。
正如这篇文章所指出的,关于混淆的实际效果存在一些争议。这个词的意思是“使模糊、不清楚或难以理解”。实际上,你可以把它看作是一个复杂的版本“儿童黑话”——一种改变语言的游戏,收件人可以理解,但听到对话的人却听不懂。与我交谈过的有经验的开发人员似乎普遍认为混淆是一种可以并且应该用于保护代码的工具,这取决于你的应用程序中的内容。其他做法包括对设备上的应用程序代码进行全部或部分加密;并将关键信息或知识产权保存在安全的服务器上,通过云访问。
PreEmptive首席营销官塞巴斯蒂安·霍尔斯特(Sebastian Holst)在一封电子邮件中说,模糊代码使用了一组应用程序代码的转换,比如重命名方法或属性,或者使用不可打印的字符,不仅重命名可执行文件,还重命名其他组件,包括XML资源。这种类型的转换使人难以阅读代码。另一组转换通过操纵控制流来创建备用指令堆栈,从而中断代码的机器翻译。Holst说,替代方案“在逻辑上与原始程序是等价的,但是a)不能转换成有效的编程语言语法,b)不能反映编译器使用的通用模式,以及反向工程实用程序依赖于反向工程二进制文件。”
结合,“有足够的证据表明,模糊有效和持续的阻止好奇和机会主义,物质阻碍恶意,如果必要的(提供了一个基础)起诉成功——比我们预计的一样从门上的锁或一个安全的银行,”霍尔斯特说。
与微软联合推出的新产品与之前两个版本的Dotfuscator产品大不相同。Dotfuscator既能保护应用,又能“测量”应用,以便收集有关应用性能的大量数据。2010年4月,微软Visual Studio发布了免费的、基本的社区版。根据Holst的说法,这个版本“可以通过大量的人工干预,为Windows Phone 7提供适度的保护和分析。”(微软刚刚宣布Visual Studio现在支持WP7开发。)第二个版本是从供应商那里获得许可的完全商业或专业产品,根据PreEmptive的说法,“在保护、分析和Visual Studio/构建集成方面显著增强了功能”。起价为2500美元。
最后,PreEmptive的Runtime Intelligence Service(用于在应用程序上收集和管理运行时数据)已经成为一项管理服务,每月的价格约为300美元。
相比之下,新的WP7将商业版的Dotfuscator与运行时智能服务(Runtime Intelligence Service)结合在一起,价格要便宜得多,对于那些可能只卖1.99美元的应用程序的开发者来说,这是必不可少的。PreEmptive已经创建了一个新的,单一的SKU来订购联合服务,该服务只对WP7开发商免费提供到2011年3月31日。
此后,它将按月计费。这个价格还没有最终确定,但霍尔斯特表示:“我们的目标是低于10美元,但这还不是板上钉钉的事。”他补充道,“……在任何情况下,开发者都不会被迫转向专业版本。”
Dotfuscator并不是唯一的这样的工具。另一个原因是加密模糊处理,来自LogicNP Software。
如果你是一个WP7程序员,你会使用混淆吗?为什么或为什么不?如果是,你用什么工具来做?如果没有,您还采取了哪些其他步骤来保护应用程序中需要保护的部分?微软是否应该采取其他措施?如果是,应该采取什么措施?