【问题标题】:Does my iOS app contain encryption if I use realm?如果我使用领域,我的 iOS 应用程序是否包含加密?
【发布时间】:2021-12-25 02:58:45
【问题描述】:

最后,我将我的应用上传到 App Store connect。我使用的是最新版本的 realmswift,我只创建了一个默认的领域数据库,从未明确告诉领域使用加密。在这种情况下,我的应用是否包含加密?

另外,有时我可以看到看起来像领域建立互联网连接的输出(我不知道它是否是 HTTPS),我不知道为什么。也许是为了检查领域的更新?

在这种情况下,realm 真的建立了 HTTPS 连接吗?我应该选择什么?包含与否?

【问题讨论】:

  • 您没有指定是仅使用本地 Realm 还是 RealmSync,所以我在回答中都提到了这两个问题。但是, - 看起来像领域建立了互联网连接的输出 - 有点模糊。您能否将您的问题包括在内?
  • 我正在使用本地领域。几天前我已经看到了那个输出,但我没有保存它。该输出现在没有显示,所以每当我再次看到它时,我都会更新这个问题。感谢您的回答!

标签: realm app-store app-store-connect realm-mobile-platform


【解决方案1】:

除非你告诉它是加密的,否则 Realm 数据库是不加密的。例如您需要包含以下代码才能加密领域

// Generate a random encryption key
var key = Data(count: 64)
_ = key.withUnsafeMutableBytes { (pointer: UnsafeMutableRawBufferPointer) in
    SecRandomCopyBytes(kSecRandomDefault, 64, pointer.baseAddress!) }

var config = Realm.Configuration(encryptionKey: key)
do {
    let realm = try Realm(configuration: config)
} catch let error as NSError {
    fatalError("Error opening realm: \(error.localizedDescription)")
}

话虽如此,默认情况下,iOS 8 及更高版本的应用程序文件在设备被锁定时使用 NSFileProtection 进行加密。

对于同步的 Realm,这有点不同,因为磁盘上的文件可以按照上述方式加密,但存储在 MongoDB 中的同步数据没有加密。

已同步的领域将建立与同步服务器 (MongoDB) 的连接,从而导致互联网流量。同样,如果您使用 REST 调用从 MongoDB 中提取数据,也会导致网络活动。

【讨论】:

  • 同步请求是否使用 HTTPS?
  • @richardjorne MongoDB Realm Sync 可以发出 https 请求。但是,如果仅在本地,则不应有来自 Realm 的出站流量 - 但是您可能会涉及其他库或与 iOS 应用程序一起使用与 Realm 无关的其他网络流量。如果我的回答有助于澄清事情,请务必接受它,以便它可以帮助其他人。 How To Accept
猜你喜欢
  • 2013-10-04
  • 1970-01-01
  • 2022-07-06
  • 1970-01-01
  • 1970-01-01
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
相关资源
最近更新 更多