近日,研究人員已經證明,可以訓練一種特殊用途的深度學習演算法,即使受害者用手遮住了ATM機的密碼鍵盤,也可以猜測出其輸入的銀行卡PIN碼,成功率最高可達41%。
實施該機器學習攻擊的裝置並不複雜,攻擊者首先需要一個與目標ATM尺寸一致的模型,因為需要對不同ATM機器密碼鍵盤的尺寸和按鍵間距進行有針對性的演算法訓練。
接下來,使用人們在ATM鍵盤上輸入PIN的影片,訓練機器學習模型以識別鍵盤按壓併為每個PIN碼數值分配按鍵機率。
來源:Arxiv.org
在實驗中,研究人員收集了來自不同地區的58個實驗參與人員的5800個不同影片,實驗參與人員在影片中輸入了4位或5位PIN碼。
執行預測模型的機器是一臺配備128GB RAM的Xeon E5-2670和三臺配備5GB RAM的Tesla K20m。這不是普通PC的配置,但也不算太昂貴。
透過使用3次嘗試(通常是銀行卡被吞前允許的最大嘗試次數),研究人員獲取正確的5位PIN碼的成功率達到30%,4位PIN碼的猜測成功率則高達41%。
該模型可以根據非打字手的覆蓋範圍排除按鍵,並透過評估兩個按鍵之間的拓撲距離,從另一隻手的動作中推斷出按下的數字。
三種攻擊場景的預測熱圖 來源:arxiv.org
捕捉鍵盤輸入動作的攝像機的位置起著關鍵作用,尤其是在記錄左撇子或右撇子的人時。在ATM頂部隱藏針孔攝像頭被確定為攻擊者的最佳方法。
如果相機也能夠捕捉音訊,模型還可以透過分析每個數字按鍵細微的按壓聲音差異,從而使預測更加準確。
不同輸入手勢的猜測結果和機率 來源:arxiv.org
對策
該實驗證明,用另一隻手覆蓋密碼鍵盤不足以防禦基於深度學習的攻擊,但值得慶幸的是,你還有以下三種對策可用:
- 首先,如果你的銀行允許您選擇5位(或6位)PIN碼而不是4位PIN碼,請選擇較長的PIN碼。這可能更難記憶,但遭受機器學習攻擊時要安全得多。
- 其次,手部覆蓋鍵盤的百分比會顯著降低機器的預測精度。75%的覆蓋率可以將機器猜測的成功率降低到55%,而總覆蓋率100%(完全蓋住) 可將機器猜測的準確度降低到33%。
- 第三個對策是銀行為使用者提供虛擬和隨機鍵盤,而不是標準化的機械鍵盤。這不可避免地會存在可用性缺陷,但絕對是最好的安全措施。
有趣的是,研究人員還對78名參與者進行了調查,讓他們猜測該實驗影片片段中的密碼,以確定人類是否也能猜出隱藏的PIN碼以及猜測的準確率。結果調查參與者的平均準確率僅為7.92%,遠遠不及機器,這表明人工執行此類攻擊效率非常低下。