近年來,生物識別技術的應用越來越廣泛,我們已漸漸習慣使用指紋識別來代替密碼,方便快捷地解鎖手機,進行支付等。但其安全性仍然堪憂。
犯罪分子能透過螢幕影像採集技術、指紋雕刻技術或者簡單的惡意軟體等手段輕鬆捕獲、複製我們的指紋,用於犯罪。
不過,“魔高一尺,道高一丈”。當下前沿的“生物探針技術”就是反欺詐和防盜刷的利刃,能透過使用者的行為特徵對螢幕面前的人進行身份判定,更精準地識別出“你是不是本人”,有效地檢測識別自動化工具撞庫攻擊、授權爬取賬單、網銀盜號、電詐盜刷等交易風險。
下面就讓我們來回顧看雪2020第四屆安全開發者峰會上《生物探針技術研究與應用》的精彩內容。
演講嘉賓
王巍,東南大學計算機博士,哈工大博士後,曾就職於微眾銀行等知名機構,主持反欺詐演算法框架的建設;擁有10年反欺詐演算法經驗;發表論文10餘篇,擁於10+相關專利。現就職於同盾科技,任小盾安全演算法總監。
演講內容
以下為速記全文:
大家下午好,我是王巍,來自於同盾科技。現在就由我來給大家分享一下生物探針的研究與應用這個課題。
今天下午的分享有四個部分的內容,第一個部分是生物探針的概念及應用背景的介紹,第二個是業界研究現狀的總結以及我們對現有的研究現狀做一個問題的梳理,第三個部分我們將介紹我們自然基於神經網路演算法來解決業界存在的一些問題,第四個部分的內容是對我們的工作做一個總結以及對下一步工作做一個展望。
一.生物探針及應用場景
我們先來看一下第一部分的內容——使用者認證方式的發展過程。2010年前是PC時代,主要就是透過輸入密碼等來進行認證。稍微加強一點的認證方式就是在電腦中再插一個U盾來加強認證。
2010年之後隨著智慧手機的普及,一些強身份認證資訊,像指紋、人臉、聲紋等等都被應用到認證當中,極大方便了我們的認證工作。
到了2020年,隨著AI技術被討論得越來越多,越來越多的AI技術也被應用到身份認證當中,我們也更加關注個人隱私保護,關注一些使用者體驗等等。因此生物探針這個技術也得到了廣泛的關注,生物探針主要是收集使用者在使用手機過程中的一些行為習慣,比如說持機方式是單手還是雙手,平時是雙手操作還是單手操作,以及你的按壓力度以及輸入密碼的時長、間隔等等。它會透過這些生物特徵來構建唯一的一個使用者ID,來對使用者進行身份認證。
生物探針一般有如下幾個應用場景,一個是無感認證,主要是強呼叫戶體驗,使用者在輸入使用者名稱、密碼的時候同時就可以在後臺完成兩步認證,對於使用者來說是無感知的。
第二個應用場景是可以強化身份驗證。輸入使用者名稱密碼之後,如果系統檢測你的網路環境有異常,會彈出一個驗證碼或者人臉識別等等。但如果用生物探針這項技術,只要在輸入使用者名稱和密碼的時候,就可以同時完成對使用者行為習慣的認證。
第三個是持續認證。我們輸入密碼,接下來在瀏覽網頁、購物的時候就不需要再認證了,但是生物探針是在後臺持續執行,持續對使用者進行認證的,中間發現任何異常,可以立刻終止。
第四個是隱私保護。生物探針記錄的是人的一些行為習慣,不像人臉一樣涉及到一些使用者的隱私,因此對隱私保護是有非常大的幫助的。
二.業界研究現狀
下面,我們對業界的研究現狀進行了梳理。我這邊列出來的主要是一些學術界的paper,之所以列出來,是因為工業界目前生物探針落地的場景和案例比較少,而且能夠找到的一些公開資料也都是在學術界的。主要可以分兩大類,一類是使用感測器,一類是不使用感測器。如果是使用感測器的話,一般就是對移動端的認證,如果不使用感測器的話,一般就是對PC端的認證,就是擊鍵形式的一個生物認證。
同時我們可以看到,在學術圈內的一些文章中,它的人數和樣本量都是比較少的,主要是因為生物特徵本身很難用程式碼生成的方式來大量生成樣本,只能靠人工點按收集,這也是制約我們做一個好的模型或者演算法的難點所在。
最後,我們可以看到它當中的一些分類器和模型的選擇基於兩大類。一類是基於距離類的模型,還有一類是基於一些傳統的機器學習演算法,比如說基於一些統計學、基於一些傳統的神經網路的機器學習演算法。
而最新的演算法模型,比如說像深度學習很難用起來有幾個原因,一個是生物探針的發展是由對鍵盤、擊鍵認識發展過來的,那個時候深度學習討論得比較少。還有一個原因是受限於樣本量,很難以現有的人工採集方式構建出大量的樣本來供深度學習,學習出一個好的模型。
對此呢,我們對現有的研究現狀進行了一個總結,梳理了其中的三個問題。
第一個是資料限制的問題。資料限制是指,我們在手機上網的過程中,或者在用一個APP的過程中,一般有三個方面的資料被我們採集,一個是滑動資料,就是滑動的起始位置、長度和麵積、壓力等等,這個資料是可以拿到的。第二個是感測器資料,感測器資料有三大類,磁力器、加速器、陀螺儀,還有就是按壓的力度。還有一類就是按壓的力度,比如說你輸密碼的時候按壓的力度、大小面積等等是可以拿到的。但是因為歷史沿承的原因,擊鍵的資料被研究得比較多,點按的資料很多的演算法會用到,但是滑動和感測器的資料只有很少的文章在進行專門的研究,而且很少有研究是把所有收集的資料都用起來的。
第二個問題是跨期不穩定的問題。雖然說一個人的行為習慣相對是固定的,比如說有長期養成的行為習慣,但是我們訓練模型的時候,因為採集環境會受到一些影響,噪音資料以及感測器的不穩定等等原因,都可能會導致我們先前採集來的資料建立的模型在後期驗證的時候失效。
第三個問題是不支援小樣本的訓練。如果說我們只有簡單的幾次輸入,生物探針模型就很難對它做一個準確的判斷。如果說我們需要大量的樣本來學習到一個足夠好的生物探針模型的話,在長期的學習過程中,我們又很難保證會不會發生攻擊,因此需要構建一個在冷啟動階段就能快速用起來的生物探針模型。
三.基於神經網路的生物探針模型
基於上面介紹的幾個問題,我們的目標就是要構建一個資料全面、跨期穩定、能夠支援小樣本的模型。
首先介紹一下我們所採用的一些特徵,主要是三大類,剛才已經介紹過了,滑動類、感測器還有擊鍵的。滑動類的特徵,有一個時間特徵,就是你滑動的時長,還有空間特徵,滑動的長度、寬度,以及滑動的力度、強度等等,這幾個方面的特徵要在特徵空間用起來。第二個是感測器的特徵,主要是有加速器、陀螺儀和磁力器,這三個特徵採集到的一般是XYZ三個軸上的資料。我們做特徵的時候還會做合力方向,四個特徵,四個維度,每個維度都可以提取一些特徵出來。第三個特徵是擊鍵類的特徵,包括擊鍵的時間、擊鍵的間隔、長度,還有差分。差分是指你第一次輸入和第二次輸入的時間差,以及第一次輸入和第三次輸入的時間差。我們發現這個特徵在我們的模型構建的時候是比較有效的。這是我們採用的一個生物特徵表。
下面是我們一個基於神經網路的模型框架。這是我們的一個主體的判斷模型,主要由三個小模型組成。
第一個是姿態分類模型,就是指我們在實驗的過程當中,發現使用者他握手機的手勢對模型或者數字採集的抖動性影響很大,或者對於樣本採集的質量影響很大,比如說有的人是單手持機單手操作,而有的人是雙手。這個我下一頁會做詳細的介紹。
第二個模型是一個孿生網路模型,這是基於深度學習的一個網路模型,也是我們的一個主體模型。
第三個是基於距離的模型,是一個輔助判斷的模型。我們最終的結果,就是採集到使用者的輸入資料之後,經過姿態分類模型、孿生網路模型和距離模型的融合結果,來判斷是否是本人輸入。
這三個模型我接下來分別都會做一個詳細的介紹。
我們簡單地做了一個姿態分類模型,主要有六類,單手持機單手操作、單手持機另一個手操作等,就不詳細介紹了。
接下來,說一下孿生網路模型。這裡,我們用的一個模型就是簡單的決策樹,這個模型是我們在構建生物探針時的一個主體模型。大家如果對其有所瞭解的話會知道,一個感知機的輸入向量是固定的一串特徵,輸入到模型中可以進行判斷,透過判斷結果看是否是本人。
但是這個孿生網路模型和傳統的模型有一個很大的不同,就是輸入向量是由兩個特徵組成的。也就是說,它會每次將兩個特徵,即使用者行為1和使用者行為2同時輸入到孿生網路當中,再根據比較網路去判斷結果。這就是我們的模型和一般的模型最大的不同所在。
另外一個不同點是我們在孿生網路中加了一個transformer網路。意思就是說,我們對持續的特徵進行了一個處理。這麼處理是因為我們在實驗中發現,使用者在瀏覽一個網頁或者在轉賬的過程中,他按鍵的順序、瀏覽的順序對我們模型的效果影響很大,所以我們加了一個transformer網路來學習持續的變化,從而來構建一個更精確的模型。這個我們後面也會有資料來支撐這個論點。
而在比較網路中,我們還用了一個Triplet損失。這個比較專業,我就不詳細介紹了。主要就是說,我們加這個損失函式的原因是希望在一個小樣本空間中把好壞樣本區分開,把正確的本人使用者和非本人使用者區分開,實驗的時候我們發現這個對模型精準度是有很大幫助的。
這麼做的主要思想在於,能使具有相同標籤的樣本在embedding空間中儘量接近,第二是使具有不同標籤的樣本在embedding空間儘量遠離,同時它對小樣本的訓練也非常有利,可以幫助我們得模型在冷啟動階段快速學習到使用者的一些基本的行為。
接下來我們介紹輔助的判斷模型,就是距離匹配模型。它非常好理解,假定每個使用者輸入了3-5條資料,我們標記他為本人,我們就會把這3-5條資料在每個特徵維度上做一個平均,構成他的擊鍵特徵。
此時再來一個新的使用者,不管他是不是本人,我們會把這個資料和我們訓練的擊鍵特徵進行比對。比如說是一個相減的操作,如果距離大的話,我們就認為他不是本人;距離小的話,就是跟本人很相似,那我們就認為他是本人。其實採用距離模型的一個很重要的原因是,它可以很方便我們定位到具體是哪個特徵出了問題,然後相應去除錯我們的模型。
另外,這個地方我重點介紹一下我們距離選型的一個計算公式。其實維度很多,有成千上萬維,我們採集的也是很多維度的特徵。在這裡我們只放了十維的資料,圖上的亮橙色就是我們的擊鍵特徵,暗的就是我們採集的特徵資料。
擊鍵特徵是由暗的以及亮橙色的各條樣本的各個資料加權形成的,這就是我們判斷的依據。然後當一個新的使用者需要驗證的時候,採集到的使用者輸入特徵資料可能會不全。
假定採集到了一個維度d的資料,剩下的v-d維度的資料是我們沒有采集到的,這個距離公式就是我們計算新的樣本特徵和擊鍵特徵有多大差距的一個計算公式。大家學過高數都應該知道,這個公式是一個歐式距離的變形,其中我們重點考慮了兩個引數。
一個是每個維度上的特徵標準差,特徵標準差越大,就意味著這個維度上的資訊的抖動越大,這個資訊就會越不足,因為它不穩定。另外一個就是我們在考慮距離的時候,考慮到了採集到的一些特徵可能會不全。這在現實當中是經常發生的,越是採集不到足夠全的資料,對模型精準度的影響也會越大。
我們主要就是考慮以上兩個引數,把它加入到歐式距離中,對它進行變形,形成了我們的距離函式S,也就是我們最終用來判斷的距離公式。
那麼有了這個距離之後,我們還要做的是距離閾值的選定,就是說有了距離之後,那麼多大為大,多小為小呢?我們要有一個判斷的標準。
一般來說學術界有一個EER的指標,它是由兩個指標構成的,一個是FRR,它的意思是樣本為本人,但是未能透過驗證;另一個是FAR,叫誤識率,意思就是樣本為非本人,但是透過了驗證。
這個圖是我們選取距離函式閾值的標準。假定我們要求使用者在體驗良好的環境當中,比如說客戶要求我們必須把打擾率控制在千分之幾的水平,這個時候我們就會把FRR控制得比較低,而FAR控制得比較高。這麼做的目的就是儘量不要打擾客戶,換句話說就是儘量讓更多的人去透過模型的驗證,儘量少拒絕一些人,即便可能會造成漏抓壞人,但也會有一些其他的驗證手段來彌補的。
另一種情況可能就是在高安全的支付場景。這個時候我們希望能儘量地保障安全性,即便打擾客戶也沒關係,但不能出錯。在這個場景下,我們就會把FAR控制得比較低,而FRR控制得比較高,雖然對使用者的干擾會高一些,影響使用者體驗,但安全效能得到更高的保障。
以上就是我們在閾值選擇上的一個衡量標準。一般來說,你不知道怎麼選或者沒有一個業務要求的話,就會選擇FRR等於FAR這樣一個閾值水平,來衡量模型的好壞。
下面再來介紹一下我們的資料採集方案。我們採集了公司內部65個參與者的資料,每個人採集了大概1000條左右的資料,後期進行資料清洗。訓練集和測試集的比例大概是2:1,時間跨度為三週,前兩週用於訓練,後一週用於測試。
這個地方講一下,很多的公開資料上,它們資料的訓練級和測試級的選取都是隨機選取的,但我們這個地方為了驗證跨區不穩定的問題,是用一個時間週期來作為選取標準的。
從時間分佈上來看,採集的時間跨度是3周左右,男女比例也差不多,清洗得到的有效且可用的資料建模條數是90%左右。
這是我們在實驗室內部做的一個測試結果。這個圖比較專業,我簡單告訴大家三個結論。
第一,透過我們的資料測算,發現距離模型雖然比較簡單,但是它的效能並不差,比一些複雜的模型甚至還要好一些,這也是為什麼很多人選擇距離模型的原因。
第二,我們加入了transformer這個持續模型之後,效果明顯有所提升。因此我們得出使用者輸入的順序是非常重要的,比如說先滑動還是後點按這都要在模型中準確識別出來。
第三就是我們加了一個Triplet損失函式,發現它的效能是最好的,也就是說損失函式在小樣本的空間中能顯著提高模型的效能。
以上就是我們這張圖主要想表達的三個意思。
下面我來介紹一下我們的典型用例。這是我們和電商的合作用例,主要是在無感認證上。傳統的認證方式有兩步,就是在輸入使用者名稱密碼之後接下來會檢測你的網路執行環境,如果有異常會彈出驗證碼,讓你輸入驗證碼,透過之後才能完成最後的認證。
而生物探針技術如果用在無感認證中,可以把兩步認證一步完成。在輸入使用者名稱密碼的時候,後端會有一個生物探針的模型可以完成認證。其優勢有兩點,一個是耗時明顯降低了,一般做兩步認證的話至少要十秒以上,但如果只是輸入密碼的話很快就能完成。第二個好處就是傳統的兩步認證如果頻繁彈出驗證碼,時間長了會造成一定的客戶流失,生物探針這樣的問題就比較少。
對於傳統的兩步認證方式,在第一步輸完賬號密碼之後,我們統計了一下,大概有2.3%的客戶。不管是因為什麼原因會觸發二次驗證,當要求使用者輸入驗證碼的時候使用者就會有22%左右的拒絕率。
同樣,我們用生物探針進行認證的時候,可能也會觸發輸入驗證碼的操作,但只有大概5‰左右的比例會觸發。這個跟業務方是可以商量決定的,要儘量減少對客戶的打擾。
輸入驗證碼之後也可能會透過驗證,也可能會不透過,大概有77%左右的拒絕率,從這個資料可以看到兩個結論。第一個就是對客戶的打擾。如果把輸入驗證碼就認定為對客戶的打擾的話,2.3%和5‰的差距還是很大的。也就是說,生物探針是可以顯著降低這種打擾率的。第二就是在同樣篩選客戶進入輸驗證碼的環節,拒絕率也發生了很大的變化,這就意味著生物探針對最後準確地識別出好壞客戶是有很大幫助的。
四.未來工作
接下來我就介紹一下我們下一步的工作吧,下一步工作主要有四個方面。
第一個,繼續基於時序模型的探索。因為我們在研究中發現對於這種使用者的輸入行為,特徵的輸入順序對模型的準確性有很大的影響,這也是有一個業務上的解釋的。比如說我們進入一個轉賬環節的驗證,那麼使用者正常開啟APP到進入轉賬經過了幾個瀏覽的步驟也好、點按操作也好,是相對比較固定的。
第二是要嘗試更多的損失函式,這個主要是基於對小樣本學習的考慮。我們是希望能夠快速地構建出一步到位的簡單模型,在冷啟動的時候來使用的,而損失函式的變化對於模型的精準度有很大的影響。
第三是提高線上學習的能力,探索一些遷移學習、one-shot learning等技術來進一步提升冷啟動的效率。
第四是要擴充當前的資料集規模,因為我們發現目前的資料集還是偏少的,要想構建一個長期、穩定、強大的神經網路模型是需要更大量,甚至更海量的資料採集來幫助我們構建的。
那麼今天我的分享就到這裡,謝謝大家!
本屆峰會議題回顧
2020看雪SDC議題回顧 | 逃逸IE瀏覽器沙箱:在野0Day漏洞利用復現
2020 看雪SDC議題回顧 | LightSpy:Mobile間諜軟體的狩獵和剖析
2020 看雪SDC議題回顧 | DexVmp最新進化:流式編碼
2020 看雪SDC議題回顧 | Android WebView安全攻防指南2020
……
更多議題回顧盡情期待!!
注意:關注看雪學院公眾號(ikanxue)回覆“SDC”,即可獲得本次峰會演講ppt!
其他議題演講PPT,經講師同意後會陸續放出,請大家持續關注看雪論壇及看雪學院公眾號!
- End -