為什麼銀行 App 的安全鍵盤並不能守護你的賬戶安全?
這裡的「軟鍵盤」,實際上指的就是軟件實現的鍵盤。通過在電腦屏幕上顯示壹個鍵盤 UI 然後通過鼠標點擊這個鍵盤上的按鍵,來實現字符輸入功能。由於通過鼠標輸入文本繞過了鍵盤記錄器,因此包括 QQ 在內的許多軟件都提供了軟鍵盤功能。更進壹步,為了避免其他人拍照、錄像而不小心將通過軟密碼輸入的過程錄制下來,壹些軟件還會推薦在輸入密碼的時候,用鍵盤輸入幾位、再用軟鍵盤輸入幾位。
在電腦時代的「軟鍵盤」,其實就是現如今手機銀行 app 普遍采用的「安全鍵盤」的前身。更具體地說,現今手機銀行 app 會在用戶輸入密碼的時候,將系統或用戶指定的第叁方鍵盤替換成自己實現的壹個鍵盤。在中國金融業業界中有壹份編號為 JR/T 0068-2020 的標准,名為《網上銀行系統信息安全通用規范》。其中第 6.2.1.1 條中是這樣描述的:
j) 客戶端程序應提供客戶輸入支付敏感信息的即時防護功能,並對內存中的支付敏感信息進行保護,例如,采取逐字符加密、自定義軟鍵盤、防范鍵盤竊聽技術等措施。
還有 6.2.4.3 條:
a) 應使用即時加密等安全措施降低惡意軟件竊取用戶支付敏感信息的風險,使用軟鍵盤方式輸入密碼時,應采取自定義鍵盤等措施防范密碼被竊取。
另外,還有壹份 JR/T 0092—2019 標准中的 5.1.2.1 壹節也規定了金融業相關 app 需要在密碼輸入中提供「替換原文」、「逐字加密」、「自定義鍵盤」等措施來提供針對密碼的安全防護。
很明顯,這些描述對應的就是金融 app 中普遍使用的「安全鍵盤」。不過,你需要注意兩件事情:首先,這些標准編號開頭是 JR/T,其中的「T」代表這是壹份「推薦性標准」而非強制執行標准;其次,這份標准只規定了 app 的最終表現,但具體如何實現,各大銀行可以說是八仙過海,怎麼弄的都有。
位於善良守序陣營坐標的銀行 app,會利用 Custom Input Views 功能,用接近原生或第叁方鍵盤的體驗來實現;壹些絕對中立的銀行會繪制壹個假的輸入框,然後用戶點擊時顯示壹個 z 軸比較大的 UI,以此來「模擬」鍵盤的效果。
如果說這些好歹還算是「輸入什麼,框裡就有什麼」的正常人范圍的話,那麼銀聯雲閃付 app 可謂是混亂邪惡的典型代表:雖然雲閃付的密碼輸入框用的也是類似 SecurityField 的實現,甚至按住密碼輸入框還能顯示「粘貼」按鈕,但你真的從 1Password 復制密碼之後粘貼進去,會發現提示密碼錯誤,但是純用安全鍵盤輸入的密碼是沒有問題的——我猜測他們要麼是在邏輯層實際記錄安全鍵盤的輸入、UI 只是顯示壹個點點而已;要麼實際上每輸入壹個字符實際上在邏輯層被轉換成了另壹種 Unicode 字符,然後再放到輸入框裡……
但是,這壹頓操作猛如虎,它到底是真的有用,還是僅僅只是壹個人為設限的賽博安慰劑?
▍「安全鍵盤」正在鼓勵「不安全」
之所以前文盤了很久安全鍵盤的歷史,就是為了說明它其實是壹個歷史產物——在公共設備上網是那時候人們接觸互聯網的重要渠道。拋開鍵盤記錄器不談,如果那時候真有人有心,別說硬件層面了,就古早電腦那個「我家大門常打開」的勁兒,沒准你去什麼小網站中個毒,分分鍾你就在黑客面前裸奔。
但現在我們早就過了上網要專門跑去網吧的年代。個人電腦的普及,至少讓硬件被篡改的風險降低了許多;安全啟動、內存校驗等硬件上的措施,以及互聯網用戶對於網絡衛生知識的提升和黑客攻防知識的普及,也進壹步地降低了漏洞出現概率以及出現後的暴露窗口時間。更進壹步,人手壹台手機的年代,想探測記錄觸摸屏幕上的鍵盤輸入基本不太可能。硬件層面上,做到同樣的效果需要對屏幕的顯示或觸摸排線信號進行攔截,但真這麼做,(無痕地)改造手機幾乎是不可能的,這從根本上扼殺掉了鍵盤記錄器這類硬件的存在空間;雖然我們還是會被諸如 O.MG Cable 這類硬件教導「不要亂用公共場所的充電器」,但這類攻擊已經和「安全鍵盤」要解決的事情完全沒有關系了。
硬件探測不可能,那麼軟件呢?
隔壁「豆包手機被網銀封殺」事件已經證明了,即使是貴為系統層級的 app 也不可能輕易地通過屏幕錄制接口獲取屏幕輸入。如果用戶使用第叁方鍵盤呢?對於 iPhone 用戶而言,即使在正常輸入框中使用第叁方鍵盤,在密碼輸入框也會被強制換回 iOS 系統內置鍵盤。部分國產 Android 手機默認會開啟「密碼鍵盤」功能,即使用戶日常使用第叁方鍵盤,在激活 SecurityField 的時候也會被強制更換成系統的密碼鍵盤。雖然這個功能可以被主動關閉、轉而使用第叁方鍵盤來輸入密碼,但由於這個開關非常深,以至於你真的關閉它通常是會在「知道自己真的在做什麼」的前提下關閉的。
[加西網正招聘多名全職sales 待遇優]
這條新聞還沒有人評論喔,等著您的高見呢
在電腦時代的「軟鍵盤」,其實就是現如今手機銀行 app 普遍采用的「安全鍵盤」的前身。更具體地說,現今手機銀行 app 會在用戶輸入密碼的時候,將系統或用戶指定的第叁方鍵盤替換成自己實現的壹個鍵盤。在中國金融業業界中有壹份編號為 JR/T 0068-2020 的標准,名為《網上銀行系統信息安全通用規范》。其中第 6.2.1.1 條中是這樣描述的:
j) 客戶端程序應提供客戶輸入支付敏感信息的即時防護功能,並對內存中的支付敏感信息進行保護,例如,采取逐字符加密、自定義軟鍵盤、防范鍵盤竊聽技術等措施。
還有 6.2.4.3 條:
a) 應使用即時加密等安全措施降低惡意軟件竊取用戶支付敏感信息的風險,使用軟鍵盤方式輸入密碼時,應采取自定義鍵盤等措施防范密碼被竊取。
另外,還有壹份 JR/T 0092—2019 標准中的 5.1.2.1 壹節也規定了金融業相關 app 需要在密碼輸入中提供「替換原文」、「逐字加密」、「自定義鍵盤」等措施來提供針對密碼的安全防護。
很明顯,這些描述對應的就是金融 app 中普遍使用的「安全鍵盤」。不過,你需要注意兩件事情:首先,這些標准編號開頭是 JR/T,其中的「T」代表這是壹份「推薦性標准」而非強制執行標准;其次,這份標准只規定了 app 的最終表現,但具體如何實現,各大銀行可以說是八仙過海,怎麼弄的都有。
位於善良守序陣營坐標的銀行 app,會利用 Custom Input Views 功能,用接近原生或第叁方鍵盤的體驗來實現;壹些絕對中立的銀行會繪制壹個假的輸入框,然後用戶點擊時顯示壹個 z 軸比較大的 UI,以此來「模擬」鍵盤的效果。
如果說這些好歹還算是「輸入什麼,框裡就有什麼」的正常人范圍的話,那麼銀聯雲閃付 app 可謂是混亂邪惡的典型代表:雖然雲閃付的密碼輸入框用的也是類似 SecurityField 的實現,甚至按住密碼輸入框還能顯示「粘貼」按鈕,但你真的從 1Password 復制密碼之後粘貼進去,會發現提示密碼錯誤,但是純用安全鍵盤輸入的密碼是沒有問題的——我猜測他們要麼是在邏輯層實際記錄安全鍵盤的輸入、UI 只是顯示壹個點點而已;要麼實際上每輸入壹個字符實際上在邏輯層被轉換成了另壹種 Unicode 字符,然後再放到輸入框裡……
但是,這壹頓操作猛如虎,它到底是真的有用,還是僅僅只是壹個人為設限的賽博安慰劑?
▍「安全鍵盤」正在鼓勵「不安全」
之所以前文盤了很久安全鍵盤的歷史,就是為了說明它其實是壹個歷史產物——在公共設備上網是那時候人們接觸互聯網的重要渠道。拋開鍵盤記錄器不談,如果那時候真有人有心,別說硬件層面了,就古早電腦那個「我家大門常打開」的勁兒,沒准你去什麼小網站中個毒,分分鍾你就在黑客面前裸奔。
但現在我們早就過了上網要專門跑去網吧的年代。個人電腦的普及,至少讓硬件被篡改的風險降低了許多;安全啟動、內存校驗等硬件上的措施,以及互聯網用戶對於網絡衛生知識的提升和黑客攻防知識的普及,也進壹步地降低了漏洞出現概率以及出現後的暴露窗口時間。更進壹步,人手壹台手機的年代,想探測記錄觸摸屏幕上的鍵盤輸入基本不太可能。硬件層面上,做到同樣的效果需要對屏幕的顯示或觸摸排線信號進行攔截,但真這麼做,(無痕地)改造手機幾乎是不可能的,這從根本上扼殺掉了鍵盤記錄器這類硬件的存在空間;雖然我們還是會被諸如 O.MG Cable 這類硬件教導「不要亂用公共場所的充電器」,但這類攻擊已經和「安全鍵盤」要解決的事情完全沒有關系了。
硬件探測不可能,那麼軟件呢?
隔壁「豆包手機被網銀封殺」事件已經證明了,即使是貴為系統層級的 app 也不可能輕易地通過屏幕錄制接口獲取屏幕輸入。如果用戶使用第叁方鍵盤呢?對於 iPhone 用戶而言,即使在正常輸入框中使用第叁方鍵盤,在密碼輸入框也會被強制換回 iOS 系統內置鍵盤。部分國產 Android 手機默認會開啟「密碼鍵盤」功能,即使用戶日常使用第叁方鍵盤,在激活 SecurityField 的時候也會被強制更換成系統的密碼鍵盤。雖然這個功能可以被主動關閉、轉而使用第叁方鍵盤來輸入密碼,但由於這個開關非常深,以至於你真的關閉它通常是會在「知道自己真的在做什麼」的前提下關閉的。
[加西網正招聘多名全職sales 待遇優]
| 分享: |
| 注: | 在此頁閱讀全文 |
推薦:



