MonoTouch 的安全性如何?

Posted

技术标签:

【中文标题】MonoTouch 的安全性如何?【英文标题】:How Secure is MonoTouch? 【发布时间】:2012-05-24 16:13:46 【问题描述】:

由于 MonoTouch 在实际应用程序中使用 dll,这种方法的安全性如何?例如,如果有人在使用 Mono.Security.dll,难道不能将那个 dll 换成一个实现了这些方法并对应用程序执行代码注入攻击的 dll 吗?

【问题讨论】:

签名程序集是否应该对此有所帮助? 如果你有一个有效的开发者或企业许可证,你可以拿任何 IPA 并重新签署整个事情 【参考方案1】:

这种方法有多安全?

和我所知道的现有的一样多:-)

不能有人换掉那个 dll

没有,有几个原因。

您不能更改应用程序文件。这会破坏数字签名,ios 不会执行它。仅此一项就消除了中间人攻击;

every .dll 中的代码已经编译为本机代码(由 AOT 编译器)和主要可执行二进制文件的一部分。交换新的 .dll 不会改变执行的代码;

部署在设备上的 .dll 被剥离(用于发布版本)。它里面没有 IL(代码),因为它没有用(我们不能在 iOS 上 JIT)。即使您添加带有 IL 代码的 .dll(例如调试版本),它也不会被执行(同样需要 JITting);

为什么要为元数据部署 .dll?(例如,如果您使用反射)

最后说明: MonoTouch 生成原生 ARM 可执行文件,就像 Objective-C 一样。

【讨论】:

第 1 点无效,但正如我所说,如果您拥有有效的开发人员或企业证书,您可以退出整个 IPA,然后您可以在设备上运行它。感谢您提供有关无法换出 dll 的信息 :-) 如果你能说服人们安装你所做的/签署的任何东西,那么 MitM 攻击就不是你更担心的问题了 ;-) 这也是一个普遍的 iOS 问题,与 MonoTouch 无关 如果您从恶意软件的角度来看它。如果您将其视为危害企业安全的一种方式,您就不会这样做来分发 我认为@poupou 的观点是它与 Obj-c 应用程序一样安全(并且同样易受攻击)。

以上是关于MonoTouch 的安全性如何?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 DialogViewController (Monotouch.Dialog) 上设置背景颜色

MonoTouch - 如何有效地创建具有所有 CGColor 类型的列表

如何加快 MonoTouch 编译时间?

如何使用 Monotouch 设置导航项标题的代码?

Monotouch:如何使用 NavigationController.PushViewController 更改视图更改的默认动画

如何清理 MonoTouch 中的线程?