ios - ios cocoa touch静态库的独立沙箱

标签 ios security cocoa-touch static-libraries sandbox

我想创建一个静态库来执行一些安全敏感操作。对我来说重要的是其他使用我的静态库的应用程序不能访问静态库的数据。

实际上,重要的是我在运行时保存在磁盘和内存中的数据都不能通过主机应用程序访问。所以我的问题是如何为静态库提供一个单独的沙箱,以便主机应用程序无法访问这些信息。

我知道有一些安全敏感的库有 .a 文件,我想知道它们如何为其应用程序提供安全性。以下是 paypal iOS SDK 的链接:

https://github.com/paypal/PayPal-iOS-SDK

更新

根据下面的开发人员链接,我们可以在授权文件中使用沙盒 key 来启用沙盒。 它说 iOS 应用程序在默认情况下是沙盒的。 但是 iOS 静态库呢?他们是否也被沙盒化了?如果不是,我们如何对其进行沙箱处理?

https://developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AboutEntitlements.html

更新

在 Android 操作系统中,当您开发项目库时,您可以在该项目的 manifest 中定义一个标记,以强制 Android 操作系统将库代码运行到单独的进程中(顺便说一下宿主进程无法访问库进程的运行时内存)。所以我认为我们也应该在 iOS 上为这种行为提供等效的选项。

更新

请注意,即使在运行时,我们也想保护主机应用程序的数据。关于通过反射访问 UI 元素数据的大问题之一。假设有人在 Paypal SDK 中输入卡数据,主机可以通过反射访问输入的数据。然后主机应用程序的开发人员可以访问所有卡信息及其身份验证数据,并将它们用于他们的用途。

最佳答案

库和框架属于托管应用程序。特别是一个static lib的代码都包含在app的binary中,没有分离。您也不能为库创建单独的沙箱。

您的静态库可以通过使用对称 key 加密磁盘上的文件来保护其数据。但是攻击者可能会从您的库中提取 key 并解密数据。

关于ios - ios cocoa touch静态库的独立沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40591498/

相关文章:

objective-c - map 叠加层中的文本框/自定义 View 中的文本框以显示在 map 上

ios - 根据另一个的增长缩小 UITextField 的宽度

iphone - 有没有人通过原生 iPhone 应用程序实现了 PayPal API?

ios - iphone 中调用电话中的callID 和地址簿中的记录id 是否相同?

ios - 从初始化器返回而不初始化所有存储的属性 - SwiftUI 绑定(bind)错误

ios - 隐藏导航栏后面的第一个单元格

security - Zend 和 Yii Framework 应用程序之间的单点登录

java - 在java中检测可执行文件

security - 在 header 中发送 session key 与仅 HTTP cookie

iphone - 导航 Controller (及其所有 View )仅是纵向的。我怎样才能把它们变成风景呢?