你常常能發現 PDF 被修改過的跡象:修改日期晚於建立日期、製作程式欄位寫著某個 PDF 編輯器、有一行的字型略有不同,或有可以選取的文字藏在方框下面。任何人用一般的 PDF 閱讀器,花幾分鐘就能檢查這些。

老實說,限制在於:這些跡象沒有一個是證據。仔細修改過的檔案可能看起來毫無破綻,而沒被動過的檔案只是因為重新儲存過,就可能看起來很可疑。真正能確認文件是真的,只有兩種方式:有效的數位簽章,或向發行單位查證。其他都只是線索。

步驟 1:查看文件屬性

大多數 PDF 閱讀器都會顯示檔案的中繼資料。在 Adobe Acrobat Reader 中,它在「檔案」下的「內容」裡。在其他閱讀器中,找找「文件屬性」或資訊按鈕。你要看的是幾個欄位。

  • 建立日期和修改日期(Created 和 Modified)。如果修改日期比建立日期晚了幾天或幾個月,表示有東西重新儲存過這個檔案。那可能是修改,也可能只是有人加了註解或填了表單。
  • 製作程式和建立者(Producer 和 Creator)。這兩個欄位寫的是軟體名稱。一份銀行對帳單的製作程式如果是給一般消費者用的 PDF 編輯器,而不是銀行會用的那種系統,就值得再看一眼。
  • 作者和標題(Author 和 Title)。有時這些是從範本或之前的文件遺留下來的,可以告訴你檔案的來源。

中繼資料告訴你的是最後一個程式做了什麼,而不是誰寫了這份文件。舉個實際的例子:從 Kopitiam 編輯器下載的 PDF,製作程式顯示為 pdf-lib(Kopitiam 使用的開源函式庫),建立日期和修改日期都是你下載的那一刻。原本的作者和標題不會帶過去。所以全新的建立日期並不表示文件是新的,只表示檔案是新的。

步驟 2:仔細看文字

把重要的部分放大到 200% 或 400%:姓名、金額、日期、帳號。修改通常範圍很小、目標明確,所以破綻就出現在那些地方。

  • 字型。有沒有某個數字的字體、粗細或大小和周圍的數字略有不同?看看在不同字型間形狀會變化的字元,例如數字 1、4 和 7。
  • 對齊。有沒有某一行比相鄰的行稍微高一點或低一點,或字元之間的間距不平均?
  • 顏色。某個字的黑色是不是有一點點不同,或在有底色的背景上,它後面有一個淡淡的方框?
  • 合計。數字加起來還對嗎?在薪資單或發票上,被改過的數字常常會讓總額或稅額那一行對不上。

有些閱讀器還會列出檔案使用的字型。Adobe Acrobat Reader 的「內容」視窗裡有一個「字型」分頁。如果一份文件用的是某一種字體,但清單裡還包含另一種,例如 Helvetica,就要問問那個字型用在哪裡。

步驟 3:試著選取並複製文字

這是最有用、卻大多數人從來沒試過的檢查。在可疑的那一行上拖曳選取文字,複製,然後貼到一則純文字筆記裡。

  • 如果貼上的文字和你看到的不一樣,就表示有隱藏的文字。修改 PDF 的一種常見做法,是用白色方框蓋住舊字,再在上面打上新字。舊字常常還在檔案裡。
  • 如果頁面其他地方都能選取,只有某一行選不到,那個部分可能是貼在原文上面的一張圖片。
  • 如果其他頁面都是文字,只有某一整頁是圖片,它可能被替換過,也可能只是另外掃描的。

Kopitiam 自己的「遮蓋並取代」工具就是這樣運作的。它在現有文字上蓋一個顏色相同的方框,再在上面加一個新的文字框,原本的文字則留在底下的檔案裡。所以它適合用來修正錯字,但不適合用來隱藏資訊。要隱藏資訊,Kopitiam 的「PDF 塗黑」工具會把每一個塗黑過的頁面變成圖片,讓底下的文字真正消失。你可以用「PDF 轉 Word 與文字」取出檔案裡的每一個字,包括被蓋住的字,然後閱讀結果。它在你的瀏覽器中執行,所以檔案不會被上傳。

掃描版 PDF 是例外。掃描檔是頁面的圖片,所以沒有文字可以選取,也沒有字型清單可以比對。如果掃描檔經過文字辨識,即使沒有人修改過任何東西,隱藏的文字層也可能有錯。對於掃描檔,你能依靠的只有目視檢查和發行單位。

步驟 4:檢查有沒有數位簽章

數位簽章是檔案裡唯一真正能偵測到變更的東西。它是用簽署者的憑證做成的加密封印。簽署之後,即使只改了一個字元,驗證也會失敗。

  1. 用會驗證簽章的閱讀器開啟 PDF,例如 Adobe Acrobat Reader。
  2. 找找頂端的簽章列或簽章面板,然後開啟它。
  3. 讀一讀上面寫了什麼:簽章是否有效、由誰簽署,以及文件在簽署後是否被變更過。
  4. 如果它顯示簽署後有變更,就讀一讀詳細資料。有些文件允許之後填寫表單或加入註解,面板會列出改了什麼。

有兩件事要分清楚。第一,手寫簽名的圖片不是數位簽章。Kopitiam 的「簽名」工具和大多數 PDF 編輯器一樣,會把畫出來的簽名以圖片的形式放上去,這完全無法證明檔案有沒有被更改。第二,有效的數位簽章證明的是檔案從簽署後沒有被更改,並不能證明簽署之前寫的內容是真的。

增量儲存:藏在某些檔案裡的歷史

有些 PDF 軟體儲存變更的方式,是把變更加到檔案末尾,而不是重寫整個檔案。之前的版本仍然在裡面,就在變更的下面。專業工具可以把那些舊版本取出來,有些閱讀器的簽章面板也能讓你查看當初簽署的那個版本。

有一個粗略的檢查方法。用純文字編輯器開啟 PDF 的副本,搜尋 %%EOF,它標示一個已儲存版本的結尾。出現不只一個,可能表示檔案經過增量儲存。這只是一個提示:有些檔案因為一般的技術原因就會有兩個,而很多編輯器,包括 Kopitiam,都是寫出一個全新的檔案,不會留下任何舊版本。

為什麼這些都不是證據

  • 中繼資料很容易更改或移除。沒有中繼資料什麼也證明不了,而有中繼資料也可能是偽造的。
  • 無辜的操作會留下同樣的痕跡。使用「列印」再「另存為 PDF」、壓縮檔案或填寫表單,都會改變製作程式和日期,卻不會改變內容。
  • 把 PDF 平面化會把加上去的文字合併進頁面,所以選取並複製的檢查可能就看不出獨立的一層了。
  • 一個細心的偽造者可以配好字型,從頭重建一整頁,不留下任何你在家裡能發現的破綻。

所以,把你發現的東西當作提出疑問的理由,而不是結論。如果一位租屋申請人的薪資單看起來怪怪的,不要因為一個字型就指控任何人。請對方透過你信任的管道再提供一次文件,或向雇主確認細節。

真正重要的時候,回到源頭

凡是牽涉金錢或法律效力的文件,例如申請貸款用的銀行對帳單、租屋用的薪資單,或求職用的證書,可靠的檢查方式就是向發行單位查證。請銀行、雇主或機構直接把文件寄給你,或請他們確認關鍵數字。有些發行單位會印上參考編號或 QR code,讓你在他們的官方網站上查驗。請自己輸入那個網站的網址,而不是相信文件上印的連結。

如果糾紛可能鬧上法院或找上保險公司,請把原始檔案完全照收到時的樣子保留下來,並尋求專業協助。正式的鑑識檢驗需要專業工具和專業知識。Kopitiam 是 PDF 編輯器,不是鑑識工具,這篇提到的檢查只是初步查看,而不是調查。