1。 为什么隐私对备忘录软件很重要

工作想法、个人草稿、日常记录。 在备忘录软件中,会收集给别人看之前的信息。 和快速书写一样,能够理解保存在哪里,被送到哪里也很重要。

在这篇文章中,将分别说明终端内的加密、通信缓存、画面显示、诊断日志和使用分析。 一种保护并不能保证其他途径的保护。

2026年9月6日更新:核对与公开版相同版本(5.8.17)的来源,更正了画面保护、日志、使用解析的说明。 记录能做的事情和限制。

2。 在应用程序切换器中自动隐藏备忘录的功能无效

iOS将应用程序移动到后台后的画面作为快照使用。 Apple会引导画面中,如果画面有机密信息的话,在移动到背景时要清除。

在确认的5.8.17的源中,sceneWillResignActive和sceneDidEnterBackground进行草稿保存,不调用隐私叠加的显示处理。 虽然保留了以前的显示用函数,但不是作为有效保护运行的路径。

显示中的备忘录可能会留在应用程序切换器的图像中。 即使对Outbox进行加密,画面图像也不会被隐藏。 更正这篇报道旧版中的“经常隐藏备忘录内容”的说明。

3. ephemeral URLSession:抑制通信缓存的磁盘保存

标准的URLSession将缓存、Cookie、认证信息保存在磁盘上。 在一般的应用程序中,这是一个很方便的功能,但在备忘录应用程序中是不需要的,可能会成为风险。

通信缓存留在终端上,意味着磁盘上存在何时访问哪个URL的痕迹。 Cookie被保存意味着会话信息会留在终端上。

在这个软件中,使用URLSessionConfiguration.ephemeral。

private let session: URLSession = {
    let config = URLSessionConfiguration.ephemeral
    config.httpCookieAcceptPolicy = .never
    config.httpShouldSetCookies = false
    config.urlCache = nil
    return URLSession(configuration: config)
}()
  • 无磁盘缓存:不将此URLSession的缓存保存到磁盘
  • Cookie的使用无效:这个URLSession不接受Cookie,也不设置要求
  • URL缓存失效:将缓存存储本身设置为nil
  • 不使用永久存储的构成:URLSession的会话信息不保存到磁盘

这是关于URLSession的缓存等的保护,不是应用程序单独保存、发送的使用事件或消除服务器端的发送记录的功能。 通过使用解析的标识符进行关联,也与这个设置分开进行。

4。 性能测量日志的输出范围

PerformanceLogger的日志输出被#if DEBUG包围。 在没有定义DEBUG的构建中,不包含这个记录器的日志输出处理。

这个记录器的logError,记录的不是错误的详细文,而是类型。 例如,使用URLError这种类型,不直接输出可能包含文件路径和用户输入的localizedDescription。

另一方面,不是自动将传递给logEvent的事件名和附加字符串全部无害化的机制。 呼叫方需要不传递邮箱地址、备忘录正文、认证信息。

这个说明不扩展到应用程序、外部SDK、OS整体的“零日志”的保证。 本公司的使用事件发送和AppsFlyer作为不同的机制生效。 获取范围在本报道的使用分析FAQ和隐私政策中说明。

5。 AES-GCM加密Outbox的保护范围

等待发送的备忘录,在终端内的Outbox队列中进行管理。 保存时使用Apple的CryptoKit用AES-GCM进行加密。 新的密码密钥用256比特生成。

钥匙存放在Keychain中,使用kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly。 在这个设置中,从重启后的首次解锁到下次重启都可以访问,备份恢复到其他终端时不会转移钥匙。 应用程序为了加密、解密读取密钥。

这是保存数据的保护,并不是隐藏显示中的画面,也不是保证免受任何终端侵犯的安全。 在更换机型之前,请确认必要的备忘录是否已送达保存地址。

使用邮件发送时,正文由本公司的Relay API和配送基础处理,作为邮件留在收件箱中。 终端内的加密并不意味着邮件配送的端到端加密(E2EE)。 详细内容在隐私政策和数据的通道中说明。

等待发送的队列,请参考Outbox架构的解说。

6。 备忘录正文的保护和外部SDK的作用

iOS在应用内,备忘录正文的加密使用CryptoKit,钥匙保管使用Keychain,正文的发送使用URLSession。 Network.framework负责监视连接状态,BackgroundTasks负责后台发送的调度。

另一方面,应用程序也使用外部SDK。 GoogleSignIn和Firebase Authentication用于Google账户的任意邮件自动输入,Firebase App Check在启动时初始化保护后端API。 AppsFlyer用于获取、使用分析,设置与本公司分析共同的安装标识符。

即使设计不将备忘录正文纳入事件项目,也会保留标识符和发送记录的关联。 包括SDK在内的使用分析范围,需要与本文的加密分开确认。 项目和用途在隐私政策中进行了说明。

7。 明确保护范围

终端内的加密、通信缓存的处理、利用分析,分别具有不同的作用。 即使有Outbox的加密和ephemeral URLSession,使用事件的收集也不会消失。

重视能够快速留下备忘录和能够理解获取的信息。 说明使用分析的发送目的地、标识符、关联的范围,根据应用程序的变化进行重新审查。

常见问题

问。 备忘录的内容会保存在服务器上吗?
邮件发送时,正文通过本公司的Relay API和配送基础。 在本公司的Relay API中,除非有法令对应或故障对应等正当必要性,否则不会对本文进行永久保存。 与在配送地址的邮箱中保存是不同的。 每个保存目的地的说明隐私设计。
问。 应用程序对通信进行加密吗?
是的。 API通信使用HTTPS。 Ephemeral URLSession是不将该会话的缓存、Cookie、认证信息永久保存在磁盘上的配置。 不会消除另外进行的使用分析和服务器端的记录。
问。 丢失终端时,备忘录安全吗?
Outbox用AES-GCM加密保存,新的密钥用256位生成。 密钥使用不转移到其他终端的Keychain保护类。 但是,不是保护显示中的画面和配送地址的邮件的机制。 仅凭终端内的加密,并不能保证丢失时所有信息的安全。
问。 有分析和追踪吗?
是的。 使用本公司的使用分析和AppsFlyer SDK。 本公司分析会发送随机的安装标识符、会话标识符、活动种类・时间、应用程序的版本、发送结果等。 AppsFlyer发送首次备忘录发送成功、认证成功、收费画面显示、方案选择、购买成功的活动,购买时可能会附加金额、货币、期限等。 因为将相同的安装标识符也设置为AppsFlyer的Customer User ID,所以可以将获取信息和使用事件联系起来。 从应用程序设置的活动项目中不直接包含邮箱地址、备忘录正文、验证码,但本公司解析的发送ID与收件人邮箱地址的哈希相关联,所以不是完全匿名的信息。 详情隐私政策的技术对策。
问。 如何区分使用Apple纯正框架和外部SDK?
iOS应用内备忘录正文的加密和密钥保管使用CryptoKit和Keychain,正文的发送使用URLSession进行。 另一方面,Google登录、Firebase的后端保护、AppsFlyer的获取、使用分析使用外部SDK。 本文的保护和带有标识符的使用分析是区分说明的。