文章
分享照片時,中繼資料發生了什麼事
手機拍的照片會內嵌中繼資料:相機型號、拍攝時間,通常還有精確的 GPS 座標,這是遵循 Exif 標準的每一台消費型相機和手機都有的做法。接下來這些資料的命運,完全取決於照片是怎麼傳出去的。通訊軟體的相簿選取器,通常會為了聊天視窗重新壓縮圖片,並在這個過程中順帶剝除內嵌欄位;同一個應用程式的「傳送檔案」選項,則通常會原封不動地交出原始位元組。以下說明每個管道背後其實只有一個共同機制,以及如何自己檢查一張特定照片實際發生了什麼,而不是憑猜測。
每個管道背後只有一個機制
Exif 這類中繼資料,是內嵌在檔案位元組裡的,和像素放在同一個容器中。每當某個應用程式把影像解碼再重新編碼(為了配合聊天視窗縮圖、為了動態消息壓縮、為了轉成不同格式),它建立的就是一份全新的檔案,除非那一步驟明確地把中繼資料一併複製過去,否則新檔案就是沒有這些資料。相對地,傳送或複製完全相同的原始位元組,什麼都不會改變,所以原本內嵌的東西,就會繼續內嵌在裡面。下面描述的每一個管道,其實都是同一個分岔的不同版本:重新壓縮,或交出原始檔案。

通訊軟體:相簿選取器 vs. 檔案或文件
大多數聊天應用程式都提供兩種明顯不同的傳送影像方式,而它們的行為差異,正是出於上面這個原因。透過一般的影像選取器(就是那個顯示相簿格線和預覽畫面的介面)挑選照片,通常會把它重新壓縮成適合聊天的大小與畫質,這正是會丟掉內嵌中繼資料的重新編碼步驟。改成選擇把同一張圖片以「檔案」或「文件」方式傳送,則會跳過那條處理流程,直接傳輸原始位元組,中繼資料也包含在內。如果同一張照片以「檔案」方式傳送時,看起來更銳利、下載下來的檔案也明顯比以一般圖片傳送時大,這就是同一種重新編碼有沒有發生過的直接證據。
截圖是從一張白紙開始的
截圖不是重新編碼過的照片,而是作業系統的螢幕擷取機制建立出來的全新影像,它從一開始就不曾連接過相機,所以根本沒有 Exif 的 GPS 欄位或相機型號可以繼承。截圖實際上會帶有什麼中繼資料,因作業系統而異:有些會寫入擷取時間戳記或基本尺寸,但都與底層照片實際拍攝的地點無關。這也是為什麼有人會建議,與其直接分享檔案,不如對一張照片截圖,來去除原始中繼資料,代價是額外一次重新編碼帶來的畫質損失。
公開動態消息也走同一個分岔
上傳到公開動態消息或限時動態的照片,通常會經過伺服器端的處理流程,產生平台實際提供的各種尺寸(縮圖、動態消息寬度版本,有時還有完整解析度的下載版本),而這個流程本身就是另一次重新編碼,所以訪客看到的版本,通常已經被剝除了原始檔案帶有的中繼資料。這並不代表平台自己伺服器上,對原始上傳內容保留了什麼,只說明陌生人能從動態消息下載到的那個版本,最後內嵌了什麼。

檢查一張特定照片,而不是假設
一般性的規律只是起點,不是保證:應用程式的行為會因版本和實際使用的功能而異,唯一能知道某個檔案實際帶有什麼的方法,就是親自查看。我們的 EXIF 檢視器會在本機打開一張影像,列出每一個內嵌欄位,包含 GPS,讓你在傳送前先檢查一張照片。我們的 EXIF 移除工具,會先從副本中剝除這些中繼資料,這樣不管你之後用哪個管道傳送,都不會留下任何敏感內容,不管那個管道原本會不會自己剝除都一樣。這兩個工具都完全在你的瀏覽器中執行:你檢查或清理的照片,絕不會被上傳。
本文涉及的工具
常見問題
如果通訊軟體會剝除中繼資料,我的位置資訊就一定安全嗎?
不完全是。從影像檔案移除 Exif,只影響那個檔案內嵌的內容;並不代表應用程式或平台本身,不會在自己的伺服器上記錄你的帳號、IP 位址或上傳時間。中繼資料被剝除,只代表照片本身不再帶有座標,不代表這個檔案是以匿名方式傳送的。
從手機刪除一張照片,會移除我已經傳送出去的副本上的位置資料嗎?
不會。一份副本離開你裝置的那一刻,它當時帶有的任何中繼資料,就成了另一份獨立檔案的一部分,不論是在收件人的裝置上、伺服器上,還是最終落腳的任何地方。之後刪除原始檔案,對已經存在於別處的副本完全沒有影響。
我要怎麼確定某一張照片是不是還帶有 GPS 資料?
把它打開在 Exif 檢視器裡,直接查看 GPS 欄位,而不是根據你用了哪個應用程式或設定去猜測。行為會因應用程式版本、以及選擇了哪種傳送方式而不同,所以唯一可靠的檢查方式,就是讀取你即將傳送的那個實際檔案。