Aze*_*eem 4 security android xamarin
我正在开发涉及付款的申请.我将在应用程序中使用某种加密,并在服务器后端使用一些加密和安全性.
我想知道在部署到Android时特别保护我的Xamarin代码.我知道Xamarin.iOS转换为本机代码,但Xamarin.Android在DLL中部署.Net代码,可以使用DotPeek或任何其他工具轻松地反编译,代码将可见,包括我的加密密钥或任何其他安全相关数据,服务器和我的应用之间的安全性所必需 混淆是一种选择,但我想知道任何其他选项.请指导我这个问题因为我非常关心.
直接回答你的问题:不,没有任何内容可以保护Xamarin编译的Android应用程序免受逆向工程攻击.
正如您必须采取行动来使用ProGuard等工具来保护APK中的Android本机代码一样,包含应用程序业务逻辑的.NET程序集将要求您采取特殊操作来对程序集进行模糊处理,加密或以其他方式进行保护.窥探.有了相对较小的.NET工具链,并且有兴趣通过中间语言代码,人们可以学到很多关于应用程序如何组合在一起的知识.需要明确的是,ProGuard只会混淆应用程序的Java代码,并且不会对Xamarin编译的APK中的.NET程序集提供任何保护.
正如您的问题以及问题评论中所指出的那样,像DotPeek,ildasm,ILSpy和Reflector这样的工具提供了一种非常简单(在许多情况下是免费的!)方式来检查.NET程序集,其中许多工具提供将大量IL代码转换回更高级别的.NET语言(如C#或VB.NET)的机制.通过一些额外的努力,这些更高级别的类可以插入Visual Studio或Xamarin Studio解决方案并转换回运行代码 - eep!由于Xamarin.Android使用即时编译,除了Android本机代码上类似ProGuard的解决方案之外,您还可以为.Net实现像Babel这样的混淆器或者为.Net提供Crypto-Obfuscator,它提供了大量的开发人员 - 可配置的混淆技术/规则以及加密程序集部分的选项.
虽然这些工具使得逆向工程的猫捉老鼠游戏变得更加困难,但我们最终还是在努力保护客户端代码; 那些决心查看底层实现并有耐心这样做的人将能够通过二进制文件和程序集中留下的线索进行搜索,以开始计算正在使用的混淆或加密技术.虽然没有100%安全的工具,机制或安全方法,但您可以通过应用分层安全方法来降低风险,同时着眼于实施多层方法和花费时间的"风险与成本/影响".采用这些额外的安全措施所带来的额外复杂性.根据SilverlightFox建议,聘请安全专业人员在组织的其他平台上审核您的应用程序可以是确定其他需要改进的领域,强调潜在关注领域或获得进一步改进组织选择的平台方法建议的重要一步安全.
| 归档时间: |
|
| 查看次数: |
3478 次 |
| 最近记录: |