微信看了你的相冊?別慌,並沒有

微信看了你的相冊?別慌,並沒有

我們越來越關注隱私了。

早在 2018 年,大家在使用彈出式攝像頭的機型,發現打開某些 app 時,沒有拍照卻彈出了攝像頭;到了 2020 年,MIUI 12 的「照明彈」功能,讓幾分鍾獲取上千次位置信息的 app 無處遁形。

微信看了你的相冊?別慌,並沒有

▲MIUI 12 發布會.

而微信昨天上了熱搜,也正是因為類似的情況:有用戶開啟了 iOS 15 的隱私新特性「記錄 App 活動」,通過《隱私洞見(App Privacy Insights)》查看後發現,微信、淘寶等多款 app 在未使用的情況下,多次讀取用戶手機相冊。

微信看了你的相冊?別慌,並沒有

▲ 圖片來自:微博@Hackl0us

對此,微信官方給出了回應:

iOS 系統為 app 開發者提供相冊更新通知標準能力,相冊發生內容更新時會通知到 app,提醒 app 可以提前做准備,app 的該准備行為會被記錄成讀取系統相冊。

也就是說, 微信在用戶授權「系統相冊權限」的前提下,為了方便用戶在微信聊天時按下聊天框旁邊的「+」時出現縮略圖從而快速發圖,微信使用了 iOS 系統的能力,讓用戶發送圖片的體驗更加快速流暢。這個操作都在手機本地完成。

微信看了你的相冊?別慌,並沒有

▲也就是這個功能.

那麼問題來了,微信到底是大晚上在後台悄悄看用戶的照片,還是像它說的那樣,是因為 iOS 機制導致的呢?

微信真的在讀取用戶相冊里的照片嗎?

當然沒有。

在知乎上,有博主舉了一個非常容易理解的例子:他剛清理過的相冊有 30MB 相冊,按照這一大小乘以微信月活人數 12.5 億,大概是 3.5PB,而實際用戶的相冊大小要遠超這個數字。微信用至少數十 PB 的存儲空間去做一件違反《數據安全法》、侵犯用戶隱私被巨額罰款、公司聲譽受損風險的事,這有什麼意義呢?

微信為了實現在 iPhone 上「快捷發圖」,利用了一個 iOS 的協議,即 PHPhotoLibraryChangeObserver。這個功能讓微信成為了相冊的觀察者,可以時時接收相冊改變的消息。

微信看了你的相冊?別慌,並沒有

也就是說,當你拍攝照片、截圖、存儲下載的圖片後,iOS 就會將「用戶存照片啦」這個信息告訴微信,而微信就會獲得這個消息。不過,「微信獲得用戶存照片」這一消息,被「記錄 App 活動」這一系統功能標記為「讀取相冊」。

那麼,微信為什麼會在並沒有使用它的時間(也就是凌晨)獲取消息呢?

我們用一個簡單的例子說明,比如你晚上 11 點和女友互道晚安,然後自己玩手機時保存了幾張搞笑圖片——這時你雖然沒有打開微信,但 iOS 系統依然把「用戶存照片」這一信息發送給了微信。

等到你休息時(可能是凌晨 3 點),微信被 iOS 系統叫醒,在 CPU 空閒期間來獲取了這一信息(這是一種名為 background fetch 的後台喚醒機制,app 無法控制喚醒時間,由系統確定)。

這就相當於微信在蘋果報社訂閱了一份名為「用戶更新照片」的報紙,蘋果賣報員將報紙送到了微信家里,微信則在蘋果安排的休息時間打開報紙看了一眼——只不過看報紙的時間是它自己無法確定的凌晨罷了。

微信看了你的相冊?別慌,並沒有

▲ 拍照後保持微信前台,耗電量並沒有明顯增加,也就是說微信沒有上傳照片.

那微信為什麼要用這麼一個容易引發爭議的接口協議呢?

這也和 iOS 系統有關,在 Android 平台,點擊「+」後,微信可以調用 Android 相冊接口,直接掃描最新的照片,並且把它呈現出來。但如果在 iOS 系統用同樣的方法,就會因為繁雜的相簿、目錄以及和親友共享的網絡相簿等拖慢運行時間,所以只得通過 PHPhotoLibraryChangeObserver 這一接口,提前觀察用戶相冊是否發生變化,實現提前准備。

微信的「快捷發圖」功能,真的在本地實現麼?

這個問題的答案也是肯定的,我們進行了一輪測試。

在最新的 iOS 15 中,app 獲取照片的權限有三種,分別為「選中的照片」、「所有照片」以及「無」。我們便在手機開啟飛行模式的狀態下,對系統截圖、相機拍攝以及微信 app 內截圖三種使用場景,進行三種權限的測試。

  • 開啟「所有照片」

微信看了你的相冊?別慌,並沒有

▲可以識別系統截圖

微信看了你的相冊?別慌,並沒有

▲ 可以識別相機拍照.

微信看了你的相冊?別慌,並沒有

▲可以識別系統內截圖.

  • 開啟「選中的照片」

微信看了你的相冊?別慌,並沒有

▲ 無法識別系統截圖.

微信看了你的相冊?別慌,並沒有

▲ 無法識別相機拍照.

微信看了你的相冊?別慌,並沒有

▲ 可以識別微信內截圖.

  • 開啟「無」

微信看了你的相冊?別慌,並沒有

▲ 無法識別系統截圖.

微信看了你的相冊?別慌,並沒有

▲無法識別相機拍照.

微信看了你的相冊?別慌,並沒有

▲可以識別微信內截圖.

具體測試結果,我們也製作了一個表格進行展示:

微信看了你的相冊?別慌,並沒有

據了解,如果微信在前台,微信 app 就可以利用應用內截圖實現「快捷發圖」的功能。所以,微信「快捷發圖」的功能,確實是在本地完成的。而且如果不開啟照片權限,也確實無法正常使用此功能。

關注隱私,但也不用太過緊張

今年二月份,工信部組織的 App 個人信息保護監管座談會在北京召開,除了中國信息通信研究院、北京網際網路法院、中國消費者協會等單位的專家學者,我們熟悉的百度、騰訊、阿里巴巴等 14 家企業的負責人也都參會研討。

在會中,針對 App 過度索取麥克風、相冊、通訊錄等權限問題,工業和信息化部專題開展技術檢測,對發現存在問題的 179 款 App 提出了責令限期整改,對其中未按期整改的 26 款 App 予以公開通報。

微信看了你的相冊?別慌,並沒有

▲圖片來自:微博@工信微報.

國家監管的加強、用戶對隱私的關注、硬體廠商的跟進,我們手機里的 app 也越來越「聽話」了,而微信、淘寶等常用 app,自然也不會在用戶隱私上犯迷糊。

作為普通用戶,我們只要通過正規渠道下載安裝 app,在安裝 app 時仔細確認聯系人、相冊、定位信息等的權限信息是否與 app 共享,就足夠在保證 app 體驗的同時,保護我們的隱私了。

微信看了你的相冊?別慌,並沒有

來源:愛范兒