今天小編分享的科技經驗:紙質二維碼也能隔空篡改:百米之外無痕攻擊,秒變惡意網站入口,歡迎閱讀。
現在,打印好的紙質二維碼,可能也不安全了!
通過激光照射,攻擊者在一百米開外就能分分鍾實施篡改。
更可怕的是,這種激光用肉眼根本無法察覺,正常的二維碼在無意之間就有可能變成惡意網站的入口。
最近,日本東海大學的研究人員開發出一種遠距離、超隐蔽的二維碼篡改方式。
不僅攻擊過程不可見,被攻擊後的二維碼用肉眼看也和正常情況沒有任何區别。
對普通用戶和設備來說,這種攻擊幾乎無法防範。
那麼,研究人員是如何在無形之中 " 偷天換日 " 的呢?
激光照射改變信息點 " 顏色 "
要想解釋這個問題,我們需要先了解一下二維碼識讀的原理。
(本文中的 " 二維碼 " 均是指我們最常見的 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
除了篡改二維碼,還有用激光照射交通标志從而幹擾自動駕駛系統的案例。
這種激光同樣是肉眼不可見,但可以被攝像頭識别,從而造成誤導。
相關研究表明,在室内環境下,這種攻擊對停車标志和限速标志的攻擊成功率幾乎是百分之百。