abox.tools

語言: 繁體中文

掃 QR Code 安全嗎?

掃這一下是安全的。QR Code 就是一段文字,鏡頭對準它,發生的只有一件事,就是這段文字被讀出來。會出事的環節在後面一步,是某個東西把讀到的內容開啟的時候。而那一下,你可以不點。

以 Markdown 檢視

先說結論

掃碼是安全的。QR Code 是畫成方格的一小段文字。鏡頭對準它,發生的只有一件事,就是這段文字被讀出來。讀,裝不了任何東西,去不了任何地方,也碰不著你手機裡的任何東西。道理和看一眼紙上寫的地址一樣,看,不會把你送過去。

危險從後面一步開始,就是某個東西把讀到的內容開啟的時候。QR Code 騙局的全部本事,就是讓這一步搶在你看清去處之前發生。碼裡那段文字是個地址,沒有人能用肉眼讀出來,而多數手機會急急忙忙一點,替你應了。把讀和開啟分開,騙局就沒有下手的地方了。

QR Code 到底是什麼

方格底下沒有別的,只有一串字元。至多幾千個,通常遠遠不到。可能是一個網址,一個 Wi-Fi 名加密碼,一張聯絡人名片,或者一行普通文字。這個格式是 1994 年設計的,本來用於在豐田的工廠裡追零件,裡面不含任何指令。QR Code 裝不下病毒,就像路牌裝不下一樣。

它裝得下的,是一段向你手機開口的文字。開啟這個網址,連上這個網路,存下這張名片。每一條都是請求,不是命令。碼只管提議,掃它的那一方才管決定。把文字亮出來、然後停住等你的掃碼器,完全無害。自作主張替你執行的掃碼器,等於把決定權交給了印碼的人。安全的掃碼和危險的掃碼,差別全在這裡。

為了說話周全,補一句。解碼的程式可能有毛病,所有解析輸入的程式都可能有,這些年掃碼器裡也真出過。但那份風險屬於掃碼器,不屬於碼,騙局靠的也不是它。騙局靠的是你那一下點按。

貼碼的把戲

這種騙局已經常見到有了名字,叫 quishing。手法簡單得近乎難堪。自己印一張碼,蓋在真碼上面,等。在停車繳費機上,假碼通向一個裝成市政樣子的付款頁。在餐館桌上,蓋住選單。在塞進門縫的快遞單上,就貼在「未能派送」幾個字旁邊。

注意讓它得手的是什麼。不是技術高明,這裡面沒有任何技術。是 QR Code 恰好屬於唯一一種地址,人在跟著走之前讀不出來。歪網址用字母寫出來,誰看一眼都露餡。同一個網址畫成方格,和老實的一模一樣。等你能看清這個碼去了哪裡,你已經到了。到的那個頁面,特意做得像你等著見的那個,正在問你要卡號。

防的辦法不是不掃。是在掃和去之間看一眼地址。這大約花兩秒鐘,把戲就整個落空了。

網址撒謊的三種路數

看兩秒鐘就夠,但得知道看什麼。歪網址會擺出三副老實面孔,三副都值得見過一次就記住。

1. @ 前面的名字

網址可以帶一個使用者名稱,寫在 @ 號前面。@ 之前的一切都是擺設,真正的去處從它後面開始。[email protected] 去的不是你的銀行,是 evil.example。前面那截「yourbank.com」,只是個被捎帶著的、毫無意義的登入名。眼睛讀網址讀開頭,瀏覽器讀結尾。

2. 長得像、其實不是的字母

字母表之間有重合。西裡爾字母 а 和拉丁字母 a 畫出來一模一樣,用它寫的網址是另一個網址,螢幕上卻看不出分別。這個把戲有名字,叫同形字攻擊。一個去處可以和你信任的那個逐字吻合,人卻在別處,原因就在這裡。

3. 老實的頭一程

碼裡的網址可以是真正體面的。短連結、營銷跳轉、搜尋引擎自家的點選統計,都體面。然後它只做一件事,把你轉送到一個不體面的地方。頭一個地址經得起查,去處卻由一臺伺服器在你動身之後才定。印刷品上出現短連結,不能說明有什麼不對,但它確實意味著一件事,就是你查得到的地址,不是你要到的地址。

怎麼掃才穩妥

規矩就一句話。先讀,後開,永遠別讓一個動作把兩件事都做了。落到實處,是這麼幾條。

這裡的識讀器是怎麼做的

這個站有一個 QR Code 與條碼識讀器,它就建在本頁一直講的那條規矩上。它從不開啟任何東西。解出的文字全文列出,網址真正會到達的主機單獨抽成一行,上面說的三副面孔都會查,一露頭就點名。開啟連結是另一個按鈕,讀完再按。不按也行。

讀這件事發生在你自己的機器上。你掃的那張圖在你的瀏覽器裡解碼,不發往任何地方。所以一個讓你起疑的碼,可以放心檢查,沒有任何人知道它寫了什麼,這個站也不知道。把 Wi-Fi 關掉,頁面照常運作,這是驗證這句話最容易的辦法。至於擺明了不懷好意的內容,比如會在開啟方執行程式碼的 javascript: 地址,連連結都不給,只把它是什麼說出來。

另一半也在。一個 QR Code 產生器,碼在你自己機器上畫。還有一篇作伴的指南,講付印之前怎麼做一個碼,並證明它掃得出來。要是你這個問題背後還藏著那個更大的問題,把東西交給一個網站到底意味著什麼,它有自己的一頁。