這組碼只是一種遞送方式。所有真正的風險都在目的地,而你的手機在開啟之前就會先讓你看到它。
QR Code 是一種把文字寫下來的方式。那個圖形編碼了幾百個字元——幾乎總是一個網址,有時是電話號碼、WiFi 密碼或聯絡資訊。這就是全部內容。裡面沒有程式、沒有附件,也沒有任何可執行的東西。
這替任何 QR Code 能對你做的事設下了一道硬性上限。掃描器讀出文字,交給你的手機,接下來發生什麼,就是你的手機面對那種類型的一段文字時會做的事。對網址而言,那代表詢問你要不要開啟它。
下面這些限制都直接源自那一點。它們都不取決於你的手機有沒有更新、有沒有裝防毒 App,或你是不是特別小心——它們是「這個格式除了文字什麼都裝不下」的必然結果。
現在的手機還會在開啟之前先讓你看到目的地,這是整個系統裡最有用的一項安全功能。安全掃描這件事,大半就只是把那段預覽讀完。
QR Code 是一個你讀不到的連結。這是最誠實的總結。在螢幕上你可以把游標移到連結上看它通往哪裡,但一個印出來的方塊在相機對準它之前什麼也不會告訴你。
所以所有依附在 QR Code 上的風險,都是依附在連結上的風險:一個模仿你的銀行、要你登入的頁面,一張假的停車或送貨付款表單,一個推著你去應用程式商店之外安裝東西的頁面。這套手法現在有了名字——quishing——但它沒有任何一點是新的。碼是信封,不是威脅。
這個格式真正額外帶來的,是「因為位置而產生的信任」。貼在停車收費機或餐廳桌上的一張貼紙,會借走它所黏附表面的可信度,而那正是它之所以有效的原因。
現實世界中常見的攻擊是實體的,而不是技術性的。有人印一張碼,貼在停車收費機、充電樁、海報或付款終端機上原本那張正牌的碼上面。那個表面看起來仍然很官方,因為它本來就是官方的。變的只有那個方塊。
確認只要一秒:用手指劃過那組碼。貼在印刷表面上的貼紙會有一道摸得出來的邊緣,顏色或光澤通常也會略有落差。只要牽涉到錢,這個動作就值得做。
幾乎所有要點都可以濃縮成一個習慣:在點下去之前先看目的地。剩下的就是知道哪些情況值得多看一眼。
這些都不需要防毒 App。手機本身的預覽,加上一瞬間的注意力,就涵蓋了其中絕大多數。
你會承接一部分責任,因為你正在訓練你的客人去掃東西。請讓碼指向你自己的網域而不是短網址服務,這樣預覽顯示出來的才是認得出來的東西。並在碼旁邊用小字印出網址,讓謹慎的人有辦法完全不掃描也能到達那個頁面。
然後要不時實地檢查你的碼。如果你的碼在公共場合,就得有人去看它們,因為在客人心裡,一張蓋在你的碼上面的貼紙就是你的問題,不管那是誰貼的。
在碼旁邊用小字印出目的地不花一毛錢,卻能讓謹慎的客人完全繞過這組碼。
WiFi 碼以純文字裝著網路名稱和密碼,所以任何拍下它的人都握有你的密碼。用在訪客網路沒問題,用在你收銀機所在的網路則是個壞主意。
聯絡資訊碼裝的是你放進去的任何細節。把私人手機號碼印在公開海報上,在某些情況下是合理的決定,在另一些情況下則會讓人後悔,但它應該是一個決定,而不是一次意外。
QR Code Agent 在你的瀏覽器裡建立這個圖形。你輸入的內容從不離開你的裝置、不會送往伺服器,也不會被儲存,因為根本沒有帳號可以拿來存放它。
這些碼是靜態的,所以它們直接攜帶你的網址,中間沒有一層日後可能被更改或被接管的轉址。代價是我們無法在你做好之後查看、編輯或停用一組碼——就資安而言,這件事多半落在好的那一邊,因為根本沒有中間層可以被攻陷。
免費、免註冊,而且你的碼永不失效。
拿到你的碼了嗎? ☕ 請我喝杯咖啡 ——這能讓這個工具對所有人保持免費。