作者:盧興沄,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心成都業(yè)務(wù)支持中心
生物認(rèn)證作為目前最為熱門的身份校驗(yàn)方式被廣泛使用到各類應(yīng)用場(chǎng)景。在移動(dòng)互聯(lián)網(wǎng)場(chǎng)景,App搭載生物認(rèn)證功能對(duì)于用戶數(shù)據(jù)安全性和提升用戶粘性有很大幫助。
Part 01●??主流生物認(rèn)證方式及其優(yōu)缺點(diǎn)?●?
本期內(nèi)容介紹的生物認(rèn)證方式包括:指紋識(shí)別和面部識(shí)別。
? 指紋識(shí)別:通過分析和比對(duì)人類手指上的細(xì)節(jié)和紋理來識(shí)別個(gè)體的身份。因?yàn)槊總€(gè)人的指紋都是獨(dú)一無(wú)二的,且指紋易于提取,所以指紋識(shí)別方案的采用較為廣泛。目前指紋識(shí)別系統(tǒng)使用光學(xué)或電容傳感器來捕獲指紋圖像,并用算法來提取和對(duì)比指紋特征。
? 人臉識(shí)別:通過分析和比對(duì)人類面部特征來識(shí)別個(gè)體身份。人臉識(shí)別可以使用攝像頭或圖像傳感器來捕獲人臉圖像,并使用算法來提取和比對(duì)面部特征。常用人臉識(shí)別分為3d人臉識(shí)別和2d人臉識(shí)別,目前除了iphone廣泛搭載3d結(jié)構(gòu)光外,少有廠商采用人臉識(shí)別的方案。3d結(jié)構(gòu)光由于技術(shù)的先進(jìn)性,使得這一方案下的安全性很高。但是由于技術(shù)難度較大,以及硬件成本較高,絕大多數(shù)硬件廠商都放棄了3d結(jié)構(gòu)光的人臉識(shí)別,而是提供2d的人臉識(shí)別方案。作為應(yīng)用的開發(fā)者,可以借助硬件設(shè)備的攝像頭,通過連續(xù)采集不同角度的人臉來構(gòu)建3d人臉模型來間接實(shí)現(xiàn)3d人臉識(shí)別方案。
兩種識(shí)別技術(shù)都有其優(yōu)點(diǎn)和局限性。指紋識(shí)別具有高度準(zhǔn)確性和穩(wěn)定性,適合用于大規(guī)模應(yīng)用,但是指紋識(shí)別可能會(huì)受到指紋質(zhì)量和損傷的影響。人臉識(shí)別具有非接觸性和方便性,但是易受采集環(huán)境如光照、角度和遮擋等因素影響。
根據(jù)應(yīng)用的使用場(chǎng)景選擇適合的生物認(rèn)證方式或者采用多種生物認(rèn)證方式相結(jié)合的方式,可以克服單一生物認(rèn)證方式存在的固有缺陷,使得生物認(rèn)證的適應(yīng)性更好。
圖2 Treemaps圖示意圖
Part 02●??生物認(rèn)證在移動(dòng)設(shè)備上使用?●
目前主流移動(dòng)設(shè)備采用Android OS和IOS,受設(shè)備廠商硬件限制,生物認(rèn)證的應(yīng)用通常在Android OS上采用指紋識(shí)別,在IOS上采用人臉識(shí)別。市面上已經(jīng)有大量的應(yīng)用已經(jīng)利用移動(dòng)設(shè)備自帶的生物認(rèn)證硬件實(shí)現(xiàn)了各種級(jí)別的生物認(rèn)證功能,包括安全性要求較低的生物認(rèn)證登錄,以及安全性要求較高的生物認(rèn)證支付功能。
目前Andoid OS和IOS分別提供了金融級(jí)的指紋識(shí)別和人臉識(shí)別方案,使用起來非常簡(jiǎn)單。只需要在OS的設(shè)置中注冊(cè)用戶的指紋和人臉特征,當(dāng)需要使用用戶生物特征識(shí)別時(shí)只需要調(diào)用OS提供的相關(guān)接口即可,以Android OS為例:
圖3 Android OS指紋識(shí)別框架
應(yīng)用層,App調(diào)用AOSP接口,通過接口與與Binder和Framework層的指紋服務(wù)進(jìn)行操作和數(shù)據(jù)傳輸,最后獲得App所需要的相關(guān)數(shù)據(jù);
Framework層,承上啟下的作用,分別與應(yīng)用層和HAL層交互;
HAL層:這一層是手機(jī)廠商各自算法邏輯和結(jié)果反饋的體現(xiàn),其結(jié)果來自于硬件抽象的結(jié)果。
Driver層:受HAL層請(qǐng)求驅(qū)動(dòng),直接控制指紋硬件。
在應(yīng)用層獲得指紋認(rèn)證結(jié)果后,即可進(jìn)行下一步操作。但是已添加的指紋是存儲(chǔ)在手機(jī)上的,而指紋識(shí)別的結(jié)果只是返回true和false,一旦手機(jī)設(shè)備被用戶獲取root權(quán)限,即可劫持指紋驗(yàn)證結(jié)果。因此本地指紋識(shí)別的結(jié)果作為鑒權(quán)的依據(jù)存在一定的風(fēng)險(xiǎn),如果指紋識(shí)別用于支付需要更高等級(jí)的處理手段。對(duì)于一般應(yīng)用的身份識(shí)別,可以采用加密的方式增強(qiáng)指紋識(shí)別的安全性。
Part 03●? 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的生物認(rèn)證登錄系統(tǒng)?●
客戶端統(tǒng)一采取生物認(rèn)證管理器,封裝各底層API細(xì)節(jié),對(duì)上層應(yīng)用透明,核心功能包括了對(duì)設(shè)備硬件支持判斷、請(qǐng)求認(rèn)證以及處理認(rèn)證結(jié)果(包括過期認(rèn)證憑證的判斷移除)。
服務(wù)端為了達(dá)到保證用戶登錄流程嚴(yán)格按順序執(zhí)行,防止個(gè)別繞過流程,采取通用加密方式生成footprint隨機(jī)碼,并結(jié)合設(shè)備uuid唯一字符串進(jìn)行md5加密,生成業(yè)務(wù)憑證,使每一步操作都有憑證校驗(yàn),無(wú)法繞過或者串改。保證整個(gè)生物認(rèn)證流程完整安全的進(jìn)行。
服務(wù)端采用分布式部署,實(shí)現(xiàn)負(fù)載均衡,即使在業(yè)務(wù)高峰期(比如參加活動(dòng),強(qiáng)制重新登錄等場(chǎng)景),也能很好提供穩(wěn)定服務(wù)。
后期維護(hù)中,若賬號(hào)在其他設(shè)備登錄或者修改身份,服務(wù)端清空當(dāng)前憑證,使該設(shè)備以外的其他設(shè)備自動(dòng)登出,無(wú)法使用已過期憑證進(jìn)行業(yè)務(wù)交互,確保了后期安全性。
圖4? 流程圖
Part 04●?總結(jié)?●
生物認(rèn)證在移動(dòng)設(shè)備上的使用已經(jīng)非常成熟,打造一套簡(jiǎn)單易用的生物認(rèn)證系統(tǒng)已經(jīng)沒有太大的技術(shù)難度。將生物認(rèn)證集成到我們的App中能夠簡(jiǎn)化用戶的登錄操作,對(duì)提升用戶的滿意度有很大的幫助。