紙質二維碼也能隔空篡改:百米之外無痕攻擊,秒變惡意網站入口
現在,打印好的紙質二維碼,可能也不安全了!
通過激光照射,攻擊者在一百米開外就能分分鐘實施篡改。
更可怕的是,這種激光用肉眼根本無法察覺,正常的二維碼在無意之間就有可能變成惡意網站的入口。
最近,日本東海大學的研究人員開發出一種遠距離、超隱蔽的二維碼篡改方式。
不僅攻擊過程不可見,被攻擊后的二維碼用肉眼看也和正常情況沒有任何區別。
對普通用戶和設備來說,這種攻擊幾乎無法防范。
那么,研究人員是如何在無形之中“偷天換日”的呢?
激光照射改變信息點“顏色”
要想解釋這個問題,我們需要先了解一下二維碼識讀的原理。
(本文中的“二維碼”均是指我們最常見的QR型二維碼)
我們常見的二維碼,主要由定位點、格式及掩碼信息區、信息區和糾錯區組成。
以下圖中的2(尺寸)M(糾錯等級)型二維碼為例,它由25×25個格點組成,其中左上、左下、右下的7×7區域為定位點。
下圖中D1~D28和E1~E16分別為數據字段和糾錯字段,藍色區域則為格式及掩碼信息區。
其中數據字段是由原始文本先經過分組,然后用一定的處理方式轉換為二進制字符串,在二維碼中用黑色和白色分別表示1和0。
糾錯字段,顧名思義就是為了避免在生成和掃描過程中產生誤差而設計的,它由數據字段根據里德-所羅門算法生成,根據糾錯等級的不同長度也有所區別。
格式及掩碼信息區則儲存了二維碼的編碼(明文到二進制串)方式,以及掩碼操作。
掩碼是為了避免出現某些特定圖案影響掃描結果,按照一定規律對原始點陣進行的變換操作,操作方式存儲在了掩碼信息區域。
讀取過程則是先捕捉定位點,然后對圖像進行校正和降噪處理,接著判斷格式及掩碼區的位置并讀取,以獲知數據字段的解碼方式。
本實驗中,研究者通過逐步覆蓋二維碼信息的方法,構造出一個介于兩個二維碼之間的混合中間體。
這個中間體包含了一個關鍵色塊,它的顏色決定了真正被讀取出的二維碼究竟是哪一個。
研究人員利用肉眼不可見的激光對這個色塊進行照射,就能決定攝像頭的識別結果——
經過照射之后,雖然肉眼看不出區別,但在攝像頭的視角下原本是黑色的模塊就會被識別為白色。
下圖對比了人眼和攝像頭可以識別的波長范圍:在暗處,波長超過600納米的光幾乎無法被人眼識別,即使在亮處,也無法看到超過700納米的光。
而攝像頭在700納米的波長下依然有50%以上的捕捉率。
本實驗中,研究人員使用了10毫瓦的635納米(紅色可見光)和785納米(紅外線)的光分別在不同距離對二維碼進行了照射。
其中0~50米為真實距離,100米距離則通過鏡面反射實現。
結果顯示,在10~40米處,兩種波長的光都能成功將二維碼指向的鏈接改成虛假網址;
在50米處,可見光處理的二維碼出現了兩個網址都能掃出的現象,但紅外光依然能成功篡改;
而在100米的位置,兩種波長的光線照射后的二維碼都出現了交替結果。
未來,研究者還計劃把攻擊距離增加到1公里。
不過,這個實驗中需要使用透鏡對激光進行聚焦,進而確定篡改信息點的位置。
如果光路中的氣流擾動比較明顯,則會對這一過程產生影響,因此長距離攻擊存在更多不確定因素。
也正是這一特點,為防御這種攻擊提供了可能——只要時不時擾動二維碼面前的氣流,激光就找不到位置了。
對此,有網友調侃到,不如在二維碼前面扇扇子,把激光“趕走”。
除了氣流擾動的方式,作者在論文中還提到,二維碼擁有者可以使用防篡改材料來避免攻擊。
One More Thing
除了篡改二維碼,還有用激光照射交通標志從而干擾自動駕駛系統的案例。
這種激光同樣是肉眼不可見,但可以被攝像頭識別,從而造成誤導。
相關研究表明,在室內環境下,這種攻擊對停車標志和限速標志的攻擊成功率幾乎是百分之百。
論文地址(日語):http://id.nii.ac.jp/1001/00228597/