先說結論
掃碼是安全的。QR Code 是畫成方格的一小段文字。鏡頭對準它,發生的只有一件事,就是這段文字被讀出來。讀,裝不了任何東西,去不了任何地方,也碰不著你手機裡的任何東西。道理和看一眼紙上寫的地址一樣,看,不會把你送過去。
危險從後面一步開始,就是某個東西把讀到的內容開啟的時候。QR Code 騙局的全部本事,就是讓這一步搶在你看清去處之前發生。碼裡那段文字是個地址,沒有人能用肉眼讀出來,而多數手機會急急忙忙一點,替你應了。把讀和開啟分開,騙局就沒有下手的地方了。
QR Code 到底是什麼
方格底下沒有別的,只有一串字元。至多幾千個,通常遠遠不到。可能是一個網址,一個 Wi-Fi 名加密碼,一張聯絡人名片,或者一行普通文字。這個格式是 1994 年設計的,本來用於在豐田的工廠裡追零件,裡面不含任何指令。QR Code 裝不下病毒,就像路牌裝不下一樣。
它裝得下的,是一段向你手機開口的文字。開啟這個網址,連上這個網路,存下這張名片。每一條都是請求,不是命令。碼只管提議,掃它的那一方才管決定。把文字亮出來、然後停住等你的掃碼器,完全無害。自作主張替你執行的掃碼器,等於把決定權交給了印碼的人。安全的掃碼和危險的掃碼,差別全在這裡。
為了說話周全,補一句。解碼的程式可能有毛病,所有解析輸入的程式都可能有,這些年掃碼器裡也真出過。但那份風險屬於掃碼器,不屬於碼,騙局靠的也不是它。騙局靠的是你那一下點按。
貼碼的把戲
這種騙局已經常見到有了名字,叫 quishing。手法簡單得近乎難堪。自己印一張碼,蓋在真碼上面,等。在停車繳費機上,假碼通向一個裝成市政樣子的付款頁。在餐館桌上,蓋住選單。在塞進門縫的快遞單上,就貼在「未能派送」幾個字旁邊。
注意讓它得手的是什麼。不是技術高明,這裡面沒有任何技術。是 QR Code 恰好屬於唯一一種地址,人在跟著走之前讀不出來。歪網址用字母寫出來,誰看一眼都露餡。同一個網址畫成方格,和老實的一模一樣。等你能看清這個碼去了哪裡,你已經到了。到的那個頁面,特意做得像你等著見的那個,正在問你要卡號。
防的辦法不是不掃。是在掃和去之間看一眼地址。這大約花兩秒鐘,把戲就整個落空了。
網址撒謊的三種路數
看兩秒鐘就夠,但得知道看什麼。歪網址會擺出三副老實面孔,三副都值得見過一次就記住。
1. @ 前面的名字
網址可以帶一個使用者名稱,寫在 @ 號前面。@ 之前的一切都是擺設,真正的去處從它後面開始。[email protected] 去的不是你的銀行,是 evil.example。前面那截「yourbank.com」,只是個被捎帶著的、毫無意義的登入名。眼睛讀網址讀開頭,瀏覽器讀結尾。
2. 長得像、其實不是的字母
字母表之間有重合。西裡爾字母 а 和拉丁字母 a 畫出來一模一樣,用它寫的網址是另一個網址,螢幕上卻看不出分別。這個把戲有名字,叫同形字攻擊。一個去處可以和你信任的那個逐字吻合,人卻在別處,原因就在這裡。
3. 老實的頭一程
碼裡的網址可以是真正體面的。短連結、營銷跳轉、搜尋引擎自家的點選統計,都體面。然後它只做一件事,把你轉送到一個不體面的地方。頭一個地址經得起查,去處卻由一臺伺服器在你動身之後才定。印刷品上出現短連結,不能說明有什麼不對,但它確實意味著一件事,就是你查得到的地址,不是你要到的地址。
怎麼掃才穩妥
規矩就一句話。先讀,後開,永遠別讓一個動作把兩件事都做了。落到實處,是這麼幾條。
- 用把解出的文字亮給你、然後停住的掃碼器。多數手機相機在開啟之前,會用一條小橫幅顯示去處。讀那條橫幅,別憑反射去點。讀網址,讀結尾,別讀開頭。
- 賭注最高、又擺在公共場合的地方,疑心放最重。一切以付款收尾的東西,一切常年待在戶外的東西。停車繳費機上的碼,值得比博物館展簽上的碼多想一下。
- 一個碼直通登入頁或者銀行卡資訊頁,那一刻就該停下,改成親手輸入你本來就知道的網址。那個頁面的正版,從來不會比幾次擊鍵更遠。
- Wi-Fi 碼和名片碼,也配同樣的停頓。一個請你的手機記一個網路,一個請它存一個人。兩件事,知情地接受都沒問題,悄無聲息地發生就都不該。
這裡的識讀器是怎麼做的
這個站有一個 QR Code 與條碼識讀器,它就建在本頁一直講的那條規矩上。它從不開啟任何東西。解出的文字全文列出,網址真正會到達的主機單獨抽成一行,上面說的三副面孔都會查,一露頭就點名。開啟連結是另一個按鈕,讀完再按。不按也行。
讀這件事發生在你自己的機器上。你掃的那張圖在你的瀏覽器裡解碼,不發往任何地方。所以一個讓你起疑的碼,可以放心檢查,沒有任何人知道它寫了什麼,這個站也不知道。把 Wi-Fi 關掉,頁面照常運作,這是驗證這句話最容易的辦法。至於擺明了不懷好意的內容,比如會在開啟方執行程式碼的 javascript: 地址,連連結都不給,只把它是什麼說出來。
另一半也在。一個 QR Code 產生器,碼在你自己機器上畫。還有一篇作伴的指南,講付印之前怎麼做一個碼,並證明它掃得出來。要是你這個問題背後還藏著那個更大的問題,把東西交給一個網站到底意味著什麼,它有自己的一頁。