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。 本文的保護和帶有識別符號的使用分析是區分說明的。