本發(fā)明涉及競品分析技術(shù)領(lǐng)域,尤其涉及一種人機(jī)識別方法、系統(tǒng)及終端設(shè)備、可讀存儲介質(zhì)。
背景技術(shù):
人機(jī)識別系統(tǒng)(區(qū)分計算機(jī)與人的完全自動化的公共圖靈機(jī)測試)是一類進(jìn)行問答式身份驗證的安全措施。人機(jī)識別系統(tǒng)針對個人有助于保護(hù)免受垃圾郵件和密碼解密的干擾;針對企業(yè)可有效阻止垃圾評論、論壇灌水、惡意注冊、刷單、薅羊毛等行為。該系統(tǒng)會要求您完成一個簡單的測試,以證明您是人,而不是一臺試圖攻入受密碼保護(hù)帳戶、或惡意批量操作的計算機(jī)。
關(guān)于人機(jī)識別系統(tǒng),下面統(tǒng)稱為驗證碼。目前,總體驗證碼存在的形態(tài)比較多,但從技術(shù)及體驗角度大致可分為如下幾類:
1.標(biāo)準(zhǔn)型驗證碼
這類圖形驗證碼是簡單圖形驗證,通過把數(shù)字/字母/漢字轉(zhuǎn)化成圖像,然后用戶識別后還原為原始的數(shù)字/字母/漢字輸入。系統(tǒng)通過比對用戶的輸入和原始數(shù)據(jù),就可以返回是否通過驗證的結(jié)果。由于數(shù)字、字母或文字有限,且簡單地固定拼接,因此通過現(xiàn)有成熟的ocr(光學(xué)字符識別)技術(shù)可輕松準(zhǔn)確識別,識別率可達(dá)到100%,因此已完全失去防護(hù)作用
2.扭曲,粘連模糊型驗證碼
因標(biāo)準(zhǔn)型驗證碼極易被ocr技術(shù)識別。因此在標(biāo)準(zhǔn)驗證碼防護(hù)過程中,在圖片中加入了相應(yīng)的圖像模糊、扭曲、粘連、及干擾點線等處理手段,以降低ocr有效識別(光學(xué)字符識別)。這種方案在初期起到一定作用,使破解率下降,識別度達(dá)到20%。但隨后經(jīng)過一段時間的發(fā)展,隨著圖像處理技術(shù)增強(qiáng),通過預(yù)處理、分割、識別等技術(shù)。預(yù)處理過程采用比較傳統(tǒng)的方式分離前景、背景以及降噪。在分割階段,基于字符筆劃的分割策略,將前景像素分類為曲線像素和直線像素,通過檢測直線筆劃趨勢,分離直線像素,從而同樣可以100%識別。但經(jīng)過扭曲變形后的驗證碼,卻對人工產(chǎn)生大量干擾,導(dǎo)致驗證速度及準(zhǔn)確性極具下降,嚴(yán)重影響用戶體驗。
3.知識型驗證碼
這類驗證碼基于第二代驗證碼的核心思想(通過人類知識可以解答,而計算機(jī)難以解答的問題進(jìn)行人機(jī)判斷)而產(chǎn)生的創(chuàng)新的交互優(yōu)化型驗證碼。此類驗證碼基于第二代驗證碼的核心原理--“人機(jī)之間知識的差異”,拓展出大量創(chuàng)新型驗證碼。但此類驗證碼的問題及答案是有限的,很易被爬蟲技術(shù)將所有驗證碼進(jìn)行下載,并進(jìn)行有效匹配,從而達(dá)到破解目的。另可通過建立七層卷積神經(jīng)網(wǎng)絡(luò),基于搜索引擎進(jìn)行獲取答案,從而達(dá)到破解目的。
4.手機(jī)短信、及語音驗證碼
這種方式需要用戶輸入手機(jī)獲取到的短信、語音驗證碼,這種方式一方面用起來極不方便,容易受手機(jī)信號等因素影響,經(jīng)常有短信收到已過時效的情況發(fā)生,另一方面這種方式也不安全,短信很容易受到截取。另外此類驗證碼發(fā)送依賴于運(yùn)營商平臺,因此本身有一定的費(fèi)用成本,這樣會導(dǎo)致這類驗證碼自身被攻擊,刷取流量,產(chǎn)生費(fèi)用損耗。
5.交互式驗證碼
此類驗證碼,又稱為無知識型行為交互式驗證碼,針對大多數(shù)的用戶能夠無需思考,直接通過。不存在業(yè)務(wù)和流程的打斷,體驗流暢,對用戶體驗的提升毋庸質(zhì)疑。較前三代驗證碼在用戶體驗上有很大提升。但因此類驗證碼行為數(shù)據(jù)收集及判斷邏輯,均有javascrpit實現(xiàn),因此在代碼的安全性方面非常差,極易被破解及數(shù)據(jù)偽造,從而失去安全防護(hù)做用。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)目前市面上存在的驗證碼實現(xiàn)技術(shù)至少存在以下問題:腳本明文易破解,人機(jī)識別的準(zhǔn)確率較低,用戶體驗差。
技術(shù)實現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的人機(jī)識別方法、系統(tǒng)及終端設(shè)備、可讀存儲介質(zhì)。
本發(fā)明實施例提供的人機(jī)識別方法,應(yīng)用于客戶端,該方法包括:
從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼;
展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為;
采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡;
將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端根據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別;
其中,所述行為特征模型為依據(jù)若干操作樣本訓(xùn)練得到的、人類操作和機(jī)器操作的分類器。
其中,在所述從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片之前,還包括:
目標(biāo)應(yīng)用界面加載時,執(zhí)行預(yù)先設(shè)置于所述目標(biāo)應(yīng)用中的第一可執(zhí)行代碼,所述第一可執(zhí)行代碼中包括驗證服務(wù)端的地址信息和所述目標(biāo)應(yīng)用授權(quán)的授權(quán)id,以根據(jù)所述地址信息將所述授權(quán)id發(fā)送到所述驗證服務(wù)端,以供所述驗證服務(wù)端對所述授權(quán)id進(jìn)行驗證,驗證通過后所述驗證服務(wù)端返回第二可執(zhí)行代碼;
執(zhí)行所述第二可執(zhí)行代碼,加載基于安全套接字層ssl協(xié)議的交互模塊。
其中,所述第二可執(zhí)行代碼中攜帶有服務(wù)端驗證標(biāo)識;
所述從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,包括:
響應(yīng)于觸發(fā)主體所觸發(fā)的人機(jī)識別驗證請求,基于ssl協(xié)議向所述驗證服務(wù)端發(fā)送驗證碼獲取請求,所述驗證碼獲取請求中攜帶有所述授權(quán)id和所述服務(wù)端驗證標(biāo)識,以供所述驗證服務(wù)端對所述授權(quán)id和所述服務(wù)端驗證標(biāo)識進(jìn)行驗證,驗證通過后所述驗證服務(wù)端隨機(jī)生成唯一的驗證碼,并返回所述驗證碼的圖片碎片;
所述展示所述驗證碼以及對應(yīng)的驗證指令,包括:
調(diào)用所述交互模塊展示所述驗證碼以及對應(yīng)的驗證指令。
其中,所述采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡,包括:
調(diào)用所述交互模塊基于瀏覽器采集在進(jìn)行驗證交互過程中系統(tǒng)應(yīng)用層的硬件信息軌跡數(shù)據(jù),以及基于預(yù)設(shè)的系統(tǒng)驅(qū)動程序采集在進(jìn)行驗證交互過程中系統(tǒng)驅(qū)動層的硬件信息軌跡數(shù)據(jù)。
其中,所述將所述操作行為軌跡發(fā)送到所述服務(wù)端,包括:
對所述操作行為軌跡進(jìn)行加密計算,并基于ssl協(xié)議將加密后的操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端在對接收到的操作行為軌跡進(jìn)行解密計算后,判定得到的操作行為軌跡是否正確,若正確則依據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別。
其中,所述驗證碼在所述驗證服務(wù)端具有預(yù)設(shè)時間長度的有效緩存時間;
在所述對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別之后,所述方法還包括:所述驗證服務(wù)端根據(jù)所述驗證碼的有效緩存時間,判定基于所述驗證碼的人機(jī)識別行為是否有效。
其中,所述方法還包括:
向企業(yè)服務(wù)器發(fā)送業(yè)務(wù)交互請求,所述業(yè)務(wù)交互請求中攜帶有所述驗證服務(wù)端返回的識別結(jié)果對應(yīng)的識別結(jié)果校驗碼,所述企業(yè)服務(wù)器根據(jù)所述識別結(jié)果校驗碼與所述驗證服務(wù)端進(jìn)行識別結(jié)果的驗證,并在驗證通過后進(jìn)行業(yè)務(wù)交互。
本發(fā)明實施例還提供了一種人機(jī)識別系統(tǒng),應(yīng)用于客戶端,該系統(tǒng)包括:
驗證模塊,用于從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼;
交互模塊,用于展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為;
采集模塊,用于采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡;
通信模塊,用于將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端,依據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別;
其中,所述行為特征模型為依據(jù)若干操作樣本訓(xùn)練得到的、人類操作和機(jī)器操作的分類器。
本發(fā)明實施例還提供了一種終端設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運(yùn)行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)如上所述方法的步驟。
本發(fā)明實施例還提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)如上所述方法的步驟。
本發(fā)明實施例提供的人機(jī)識別方法、系統(tǒng)及終端設(shè)備、可讀存儲介質(zhì),通過基于碎片重組的驗證碼進(jìn)行驗證交互,并將觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡作為帶校驗信息,以對操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別,本發(fā)明能夠準(zhǔn)確識別當(dāng)前操作用戶為正常用戶還是異常用戶,提高人機(jī)識別的準(zhǔn)確率,提高用戶體驗。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1為本發(fā)明實施例的一種人機(jī)識別方法的流程圖;
圖2為本發(fā)明實施例的一種人機(jī)識別方法的具體信令流程圖;
圖3為本發(fā)明實施例的一種人機(jī)識別方法的實現(xiàn)效果示意圖一;
圖4為本發(fā)明實施例的一種人機(jī)識別方法的實現(xiàn)效果示意圖二;
圖5為本發(fā)明實施例的一種人機(jī)識別方法的實現(xiàn)效果示意圖三;
圖6為本發(fā)明實施例的一種人機(jī)識別系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。
本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非被特定定義,否則不會用理想化或過于正式的含義來解釋。
圖1示意性示出了本發(fā)明一個實施例的人機(jī)識別方法的流程圖。本實施例提供的人機(jī)識別方法被配置在終端設(shè)備中,例如,計算機(jī)、筆記本、pda(個人數(shù)字助理,personaldigitalassistant)等各種能夠安裝虧護(hù)短客戶端應(yīng)用程序的電子設(shè)備。參照圖1,本發(fā)明實施例的人機(jī)識別方法具體包括以下步驟:
s11、從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼。
本實施例中,驗證服務(wù)端通過將圖片格式的驗證碼進(jìn)行碎片化,可以確保驗證碼傳輸過程的安全性,客戶端應(yīng)用從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片之后,能夠根據(jù)圖片組合算法自動還原圖片,得到完整的驗證碼。
s12、展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為。
本實施例中,客戶端可以使用插件的形式實現(xiàn)驗證碼以及對應(yīng)的驗證指令的展示,以避免明文代碼被破解。
s13、采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡。
為了確保數(shù)據(jù)采集的全面性,本實施例中可以基于瀏覽器及系統(tǒng)內(nèi)核對硬件層面進(jìn)行多維度、精準(zhǔn)數(shù)據(jù)采集,
s14、將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端根據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別;
其中,所述行為特征模型為依據(jù)若干操作樣本訓(xùn)練得到的、人類操作和機(jī)器操作的分類器。
本發(fā)明實施例提供的人機(jī)識別方法,通過基于碎片重組的驗證碼進(jìn)行驗證交互,并將觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡作為帶校驗信息,以對操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別,本發(fā)明能夠準(zhǔn)確識別當(dāng)前操作用戶為正常用戶還是異常用戶,提高人機(jī)識別的準(zhǔn)確率,提高用戶體驗。
本發(fā)明實施例中,在所述從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片之前,還包括以下步驟:目標(biāo)應(yīng)用界面加載時,執(zhí)行預(yù)先設(shè)置于所述目標(biāo)應(yīng)用中的第一可執(zhí)行代碼,所述第一可執(zhí)行代碼中包括驗證服務(wù)端的地址信息和所述目標(biāo)應(yīng)用授權(quán)的授權(quán)id,以根據(jù)所述地址信息將所述授權(quán)id發(fā)送到所述驗證服務(wù)端,以供所述驗證服務(wù)端對所述授權(quán)id進(jìn)行驗證,驗證通過后所述驗證服務(wù)端返回第二可執(zhí)行代碼;執(zhí)行所述第二可執(zhí)行代碼,加載基于安全套接字層ssl協(xié)議的交互模塊。其中,安全套接字層,是客戶端到服務(wù)器端的認(rèn)證。主要用來提供對用戶和服務(wù)器的認(rèn)證;對傳送的數(shù)據(jù)進(jìn)行加密和隱藏;確保數(shù)據(jù)在傳送中不被改變,即數(shù)據(jù)的完整性。
在實際應(yīng)用中,企業(yè)用戶在自己的網(wǎng)站或應(yīng)用中,需要放置人機(jī)識別產(chǎn)品的位置放置整個驗證碼集成的標(biāo)準(zhǔn)代碼即第一可執(zhí)行代碼。此代碼中需要設(shè)置驗證服務(wù)器的ip地址、當(dāng)前應(yīng)用所授權(quán)的合法id,及以根據(jù)自身網(wǎng)站樣式,基于人機(jī)識別產(chǎn)品提供的標(biāo)準(zhǔn)api,進(jìn)行設(shè)置識別產(chǎn)品具體樣式,例如:顏色、大小等。具體的,在企業(yè)應(yīng)用頁面初始加載時,第一可執(zhí)行代碼會自動運(yùn)行,以加載js客戶端集成腳本模塊(即組件1),以將當(dāng)前的授權(quán)id向指定驗證服務(wù)端對應(yīng)的驗證服務(wù)器,以ssl協(xié)議方式進(jìn)行異步數(shù)據(jù)請求,驗證服務(wù)器判斷id合法、ssl端可信情況下會自動返回第二可執(zhí)行代碼,執(zhí)行所述第二可執(zhí)行代碼,以加載基于安全套接字層ssl協(xié)議的js交互模塊即組件2。
具體的,js交互模塊的主要功能是用于與本地客戶端插件程序,基于ssl雙向認(rèn)證協(xié)議進(jìn)行數(shù)據(jù)通信,雙方基于客戶端插件啟動的本地域名映射(localhost)進(jìn)行數(shù)據(jù)通信,兩者之間會根據(jù)業(yè)務(wù)需求建立心跳檢測,由js向客戶端插件發(fā)送密文指令,進(jìn)行相關(guān)業(yè)務(wù)交互操作。其中,二者之前數(shù)據(jù)均為獨(dú)有pki加密技術(shù)實現(xiàn)。在初次運(yùn)行時組件2會自動檢測,當(dāng)前客戶端環(huán)境是否已經(jīng)安裝客戶端驗證碼程序,如未安裝,則會界面提示用戶先下載安全組件;如安裝則會自動發(fā)送信號給客戶端驗證碼程序,雙方啟動通信心跳檢測。
在本發(fā)明的一個可選實施例中,第二可執(zhí)行代碼中還攜帶有服務(wù)端驗證標(biāo)識。
相應(yīng)地,步驟從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,具體實現(xiàn)流程如下:響應(yīng)于觸發(fā)主體所觸發(fā)的人機(jī)識別驗證請求,基于ssl協(xié)議向所述驗證服務(wù)端發(fā)送驗證碼獲取請求,所述驗證碼獲取請求中攜帶有所述授權(quán)id和所述服務(wù)端驗證標(biāo)識,以供所述驗證服務(wù)端對所述授權(quán)id和所述服務(wù)端驗證標(biāo)識進(jìn)行驗證,驗證通過后所述驗證服務(wù)端隨機(jī)生成唯一的驗證碼,并返回所述驗證碼的圖片碎片。本實施例中,客戶端基于ssl協(xié)議向所述驗證服務(wù)端發(fā)送加密格式的驗證碼獲取請求,驗證服務(wù)端對接收到客戶端發(fā)送的驗證碼獲取請求后,先進(jìn)性相應(yīng)的解密處理,得到驗證碼獲取請求中攜帶的授權(quán)id和服務(wù)端驗證標(biāo)識,然后在驗證授權(quán)合法后,自動隨機(jī)生成永不重復(fù)的驗證碼圖片,并進(jìn)行碎片化,已將驗證碼的圖片碎片返回給客戶端。
進(jìn)一步地,步驟展示所述驗證碼以及對應(yīng)的驗證指令,具體可通過調(diào)用所述交互模塊展示所述驗證碼以及對應(yīng)的驗證指令。
本實施例中,操作行為軌跡包括系統(tǒng)應(yīng)用層的硬件信息軌跡數(shù)據(jù)和系統(tǒng)驅(qū)動層的硬件信息軌跡數(shù)據(jù),其中,所述采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡的實現(xiàn)流程具體如下:調(diào)用所述交互模塊基于瀏覽器采集在進(jìn)行驗證交互過程中系統(tǒng)應(yīng)用層的硬件信息軌跡數(shù)據(jù),以及基于預(yù)設(shè)的系統(tǒng)驅(qū)動程序采集在進(jìn)行驗證交互過程中系統(tǒng)驅(qū)動層的硬件信息軌跡數(shù)據(jù)。
本實施例中,所述將所述操作行為軌跡發(fā)送到所述服務(wù)端,具體實現(xiàn)流程如下:對所述操作行為軌跡進(jìn)行加密計算,并基于ssl協(xié)議將加密后的操作行為軌跡發(fā)送到所述驗證服務(wù)端,以供所述驗證服務(wù)端在對接收到的操作行為軌跡進(jìn)行解密計算后,判定得到的操作行為軌跡是否正確,若正確則依據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別。
具體的,可以通過獨(dú)有pki加密技術(shù),基于ssl協(xié)議將采集的操作行為軌跡上傳至驗證服務(wù)端。
獨(dú)有pki加密技術(shù)主要包括如下技術(shù)內(nèi)容:
1、隨機(jī)因子;
2、rsa非對稱密鑰算法;
3、aes對稱密鑰算法;
4、sha256哈希值摘要算法。
在pki加密技術(shù)中,數(shù)據(jù)加密報文格式包含5個參數(shù):appid(即應(yīng)用所授權(quán)的合法授權(quán)id)、key密鑰(30位的用于aes加密的workkey)、checker(完整性驗證碼)、zip(壓縮數(shù)據(jù)流標(biāo)識)、postmsg(提交的數(shù)據(jù)),所有參數(shù)值要在傳入前需要先做htmlencode、再做urlencode后再進(jìn)行提交。其中:
1.appid為應(yīng)用所授權(quán)的合法授權(quán)id,傳輸時要求base64(utf8編碼)加密。
2.key是為包體加密算法aes使用的key(由數(shù)字、字母組成的16位隨機(jī)因子aeskey,和14位時間串yyyymmddhhmmss組成。
具體的,前16位隨機(jī)碼用于為包體做aes加、減密,后14位時間串用于服務(wù)器校驗包體是否在有效期內(nèi)(每個數(shù)據(jù)包發(fā)送與服務(wù)器時間相差不能超過5分鐘,否則就算包失效)。此key值在向服務(wù)器發(fā)送時,需要使用云端提供的授權(quán)公鑰進(jìn)行rsa加密。
3.checker為完整性校驗,將加密后的postmsg(包體)做sha256即可(sha256(postmsg))。
4.zip標(biāo)識請求數(shù)據(jù)是否進(jìn)行過7zip壓縮。具體的,0不壓縮,1壓縮。
5.postmsg為請求的主體數(shù)據(jù)包,此數(shù)據(jù)要求為json格式(傳送時內(nèi)容為aeskey做為加密key、偏移量對包體進(jìn)行aes加密)。
進(jìn)一步地,所述驗證碼在所述驗證服務(wù)端具有預(yù)設(shè)時間長度的有效緩存時間。其中,預(yù)設(shè)時間長度的具體取值可根據(jù)實際應(yīng)用場景進(jìn)行設(shè)置,對此,本發(fā)明實施例不作具體限定。相應(yīng)的,在所述對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別之后,所述方法還包括:所述驗證服務(wù)端根據(jù)所述驗證碼的有效緩存時間,判定基于所述驗證碼的人機(jī)識別行為是否有效。
在實際應(yīng)用中,如圖2所示,在收到j(luò)s交互模塊發(fā)送的相關(guān)指令后,首先客戶端程序會根據(jù)js所收集的瀏覽器信息,自動判斷當(dāng)前js運(yùn)行環(huán)境是否為標(biāo)準(zhǔn)常用瀏覽器,以防止通過webview或webbrowser等進(jìn)行仿冒瀏覽器進(jìn)行相關(guān)惡意操作。然后js交互模塊會根據(jù)用戶點擊驗證碼工具欄的動作,向客戶端程序即組件3發(fā)送相關(guān)指令,組件3在收到用戶點擊動作指令后,會向服務(wù)器獲取最新驗證碼圖片碎片,驗證服務(wù)器在解密請求并驗證授權(quán)合法后,會自動隨機(jī)生成永不重復(fù)的驗證碼圖片,并進(jìn)行碎片化,返回給組件3;組件3根據(jù)圖片組合算法自動還原圖片并由組件2進(jìn)行呈現(xiàn);接著組件2根據(jù)用戶相關(guān)驗證操作行為,自動基于瀏覽器收集用戶鼠標(biāo)、鍵盤、陀螺儀等相關(guān)硬件信息軌跡數(shù)據(jù),并將最終收集數(shù)據(jù)提交組組件3;在組件2收集用戶操作行為的同時,組件3會調(diào)用預(yù)設(shè)的系統(tǒng)驅(qū)動程序即組件4,采集在進(jìn)行驗證交互過程中系統(tǒng)驅(qū)動層的硬件信息軌跡數(shù)據(jù)。其中,硬件發(fā)送的相關(guān)真實數(shù)據(jù)用以防止軌跡模擬程序基于應(yīng)用層進(jìn)行行為偽造。然后,由組件3根據(jù)用戶操作的結(jié)果,自動結(jié)束本次驗證流程,并將組件2收集的相關(guān)數(shù)據(jù),及組件3基于系統(tǒng)層收集的應(yīng)用環(huán)境、及硬件信息、驅(qū)動信息等數(shù)據(jù),整體通過獨(dú)有pki加密技術(shù),基于ssl協(xié)議將數(shù)據(jù)上傳至驗證服務(wù)端的云端分控驗證中心即組件5。其中,云端分控驗證中心為人機(jī)識識別系統(tǒng)云端計算的核心版塊,接收客戶端提交的驗證數(shù)據(jù),云端基于客戶端采集的全面信息,根據(jù)五層防控模型依次逐層運(yùn)算,策略池-模型組-特征計算-風(fēng)控規(guī)則引擎計算-決策樹,并將計算結(jié)果及challengeid返回客戶端。客戶端根據(jù)結(jié)果將注冊信息及challengeid一并提交企業(yè)服務(wù)器。企業(yè)服務(wù)器基于challengeid與驗證服務(wù)器校驗驗證碼有效性,通過后方可執(zhí)行企業(yè)相關(guān)業(yè)務(wù)操作。
其中,組件3與瀏覽器采用基于sslhttps進(jìn)行通信,因此可以做到跨瀏覽器運(yùn)行,同時組件3內(nèi)部基于不同應(yīng)用采用獨(dú)立沙箱隔離技術(shù),可以使得組件3只需一次安裝,可以為不同網(wǎng)站、不同應(yīng)用提供安全服務(wù);同時又保障各應(yīng)用數(shù)據(jù)相關(guān)獨(dú)立。
本實施例中的客戶端系統(tǒng)驅(qū)動程序(即組件4)屬于硬件驅(qū)動,用于配合組件3基于驅(qū)動層收集用戶真實硬件操作行為,例如:鼠標(biāo)移動、點擊等相關(guān)軌跡事件,基于硬件環(huán)境的不同收集信息不同,例如:windows\mac下收集鼠標(biāo)、鍵盤信息;又如:移動設(shè)備下收集屏幕點擊、陀螺儀相關(guān)數(shù)據(jù)。其中,相關(guān)驅(qū)動代碼均由合法代碼簽證機(jī)構(gòu),提供相關(guān)簽證。
本實施例中,客戶端通過向企業(yè)服務(wù)器發(fā)送業(yè)務(wù)交互請求,所述業(yè)務(wù)交互請求中攜帶有所述驗證服務(wù)端返回的識別結(jié)果對應(yīng)的識別結(jié)果校驗碼,所述企業(yè)服務(wù)器根據(jù)所述識別結(jié)果校驗碼與所述驗證服務(wù)端進(jìn)行識別結(jié)果的驗證,并在驗證通過后進(jìn)行業(yè)務(wù)交互。
實際應(yīng)用中,所述驗證服務(wù)端在對采集的操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別之后,返回識別結(jié)果以及對應(yīng)的識別結(jié)果校驗碼即challengeid,向企業(yè)服務(wù)器發(fā)送業(yè)務(wù)交互請求,所述業(yè)務(wù)交互請求中攜帶有所述驗證服務(wù)端返回的識別結(jié)果對應(yīng)的challengeid,所述企業(yè)服務(wù)器根據(jù)所述識別結(jié)果校驗碼與所述驗證服務(wù)端進(jìn)行識別結(jié)果的驗證,并在驗證通過后進(jìn)行業(yè)務(wù)交互。
本發(fā)明實施例中,還包括設(shè)置于驗證服務(wù)端的服務(wù)器端二次認(rèn)證sdk(即組件6)。組件6用于企業(yè)服務(wù)器與組件5進(jìn)行二次確認(rèn)提供服務(wù)的sdk。當(dāng)客戶端將驗證結(jié)果challengeid,及業(yè)務(wù)相關(guān)數(shù)據(jù)提交企業(yè)服務(wù)器后,企業(yè)服務(wù)器首先通過組件6與組件5,基于challengeid進(jìn)行確認(rèn)當(dāng)前驗證結(jié)果,以防止客戶端驗證結(jié)果偽造,challengeid一次性有效,在與組件5確認(rèn)后,即刻失效;組件6將確認(rèn)結(jié)果返回給企業(yè)服務(wù)器,企業(yè)服務(wù)器根據(jù)確認(rèn)的驗證結(jié)果再進(jìn)行相關(guān)業(yè)務(wù)操作。本實施例中,驗證服務(wù)端采用風(fēng)險計算引擎,結(jié)合完善的模型進(jìn)行計算;采用機(jī)器智能訓(xùn)練,實時自我優(yōu)化風(fēng)險控制模型,并自動調(diào)整計算維度;采用深度機(jī)器學(xué)習(xí)(結(jié)合貝葉斯算法)完善行為訓(xùn)練及識別;采用高并發(fā)架構(gòu)方案,以確保滿足企業(yè)高并發(fā)驗證需求;提供人性化的saas管理平臺,可全面多維度的分析驗證數(shù)據(jù),及個性化的驗證碼安全設(shè)置。
為了提高js在瀏覽器工作環(huán)境下的安全性,本發(fā)明實施例利用js+插件技術(shù)實現(xiàn)人機(jī)識別,具體的,通過在用戶網(wǎng)站集成少量標(biāo)準(zhǔn)js代碼,然后根據(jù)集成代碼中提供的授權(quán)id,自動從服務(wù)器下載插件,并提示用戶首次使用安裝;之后插件會基于系統(tǒng)獨(dú)立運(yùn)行,并通過一個標(biāo)準(zhǔn)https協(xié)議,與js進(jìn)行跨瀏覽器通信,以實現(xiàn)驗證碼呈現(xiàn),及基于驅(qū)動層的用戶操作行為信息采集,并將采集后的信息基于獨(dú)有pki加密技術(shù),進(jìn)行加密后上傳服務(wù)器;最后由服務(wù)器根據(jù)采集數(shù)據(jù)及用戶行為進(jìn)行多維度計算,并最終給出計算結(jié)果及challengeid(自定義的返回密文串,用于企業(yè)服務(wù)器與驗證碼服務(wù)器進(jìn)行云端二次確認(rèn)查詢,實現(xiàn)識別結(jié)果的驗證,并驗證結(jié)果將返回客戶端,以供客戶端根據(jù)結(jié)果,將當(dāng)前用戶操作的業(yè)務(wù)數(shù)據(jù)上傳至企業(yè)服務(wù)器,進(jìn)行后續(xù)企業(yè)服務(wù)相關(guān)操作。具體實現(xiàn)效果可參見圖3-圖5所示,圖3-圖5中以點擊驗證碼圖片中的某一圖像為例觸發(fā)主體需執(zhí)行的操作行為,后續(xù)可基于觸發(fā)主體的點擊操作對應(yīng)的操作行為軌跡對觸發(fā)主體進(jìn)行人機(jī)識別。
本實施例中,利用js與客戶端插件(獨(dú)立應(yīng)用程序)進(jìn)行交互技術(shù),客戶端核心驗證及交互技術(shù)均有插件實現(xiàn),通過從服務(wù)器端動態(tài)獲取隨機(jī)碼圖片碎片,經(jīng)過客戶端解密進(jìn)行重組,拼接成正??梢晥D片后,提示用戶進(jìn)行驗證交互。然后基于驅(qū)動層采用用戶操作行為軌跡,并將一系列軌跡基于pki技術(shù)將數(shù)據(jù)加密后,提交服務(wù)端進(jìn)行驗證。從而實現(xiàn)人機(jī)識別、同時保障客戶端安全。本發(fā)明采用全新的無知識型行為驗證交互方式,保障用戶體驗簡潔、高效。而且采用js+插件驗證碼模式、內(nèi)核級驅(qū)動技術(shù),可有效保障客戶端計算的精準(zhǔn)性。
本發(fā)明實施例提出的人機(jī)識別方法,是一種基于內(nèi)核、驅(qū)動級人機(jī)識別方法,該方法采用雙向ssl認(rèn)證,保障網(wǎng)絡(luò)安全;采用pki(publickeyinfrastructure公鑰加密體系)保障數(shù)據(jù)采集安全,另使用c語言進(jìn)行開發(fā),保障數(shù)據(jù)采集全面,客戶端代碼安全。從而達(dá)到與傳統(tǒng)驗證相比較,既簡潔又安全。
需要說明的是,本發(fā)明實施例中,js、插件、服務(wù)器之間均采用雙向ssl認(rèn)證,防止第三方仿冒或數(shù)據(jù)篡改。其中,插件采用c語言開發(fā),并采用獨(dú)有加固技術(shù),防止代碼反編、動態(tài)調(diào)試、內(nèi)存篡改。
需要說明的是,本發(fā)明實施例中提出的雙向ssl數(shù)字證書需要由合法機(jī)關(guān)提供,代碼簽名證書需要由相關(guān)合法機(jī)關(guān)提供。
對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施例,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
圖6示意性示出了本發(fā)明一個實施例的人機(jī)識別系統(tǒng)的結(jié)構(gòu)示意圖。參照圖6,本發(fā)明實施例的人機(jī)識別系統(tǒng)具體包括驗證模塊601、交互模塊602、采集模塊603以及通信模塊604,其中,驗證模塊601,用于從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼;交互模塊602,用于展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為;采集模塊603,用于采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡;通信模塊604,用于將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端,依據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別。
本實施例中,所述行為特征模型為依據(jù)若干操作樣本訓(xùn)練得到的、人類操作和機(jī)器操作的分類器。
對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
此外,本發(fā)明實施例還提供了一種終端設(shè)備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運(yùn)行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)各個人機(jī)識別方法實施例中的步驟,例如圖1所示的步驟:從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼;展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為;采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡;將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端根據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別。本發(fā)明能夠準(zhǔn)確識別當(dāng)前操作用戶為正常用戶還是異常用戶,提高人機(jī)識別的準(zhǔn)確率,提高用戶體驗?;蛘撸鎏幚砥鲌?zhí)行所述計算機(jī)程序時實現(xiàn)上述各系統(tǒng)實施例中各模塊/單元的功能。
示例性的,所述計算機(jī)程序可以被分割成一個或多個模塊/單元,所述一個或者多個模塊/單元被存儲在所述存儲器中,并由所述處理器執(zhí)行,以完成本發(fā)明。所述一個或多個模塊/單元可以是能夠完成特定功能的一系列計算機(jī)程序指令段,該指令段用于描述所述計算機(jī)程序在所述終端設(shè)備中的執(zhí)行過程。例如,所述計算機(jī)程序可以被分割成驗證模塊601、交互模塊602、采集模塊603以及通信模塊604,各模塊具體功能如下:驗證模塊601,用于從驗證服務(wù)端動態(tài)獲取驗證碼的圖片碎片,對所述圖片碎片進(jìn)行重組,得到完整的驗證碼;交互模塊602,用于展示所述驗證碼以及對應(yīng)的驗證指令,所述驗證指令用于指示觸發(fā)主體基于所述驗證碼進(jìn)行驗證交互,所述驗證指令中包含指示所述觸發(fā)主體執(zhí)行的操作行為;采集模塊603,用于采集觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡;通信模塊604,用于將所述操作行為軌跡發(fā)送到所述服務(wù)端,以供所述驗證服務(wù)端,依據(jù)預(yù)先設(shè)置好的行為特征模型,對所述操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別。
所述終端設(shè)備可以是桌上型計算機(jī)、筆記本、掌上電腦及云端服務(wù)器等計算設(shè)備。所述終端設(shè)備可包括,但不僅限于,處理器、存儲器。本領(lǐng)域技術(shù)人員可以理解,所述終端設(shè)備可以包括更多或更少的部件,或者組合某些部件,或者不同的部件,例如所述終端設(shè)備還可以包括輸入輸出設(shè)備、網(wǎng)絡(luò)接入設(shè)備、總線等。
所稱處理器可以是中央處理單元(centralprocessingunit,cpu),還可以是其他通用處理器、數(shù)字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,所述處理器是所述終端設(shè)備的控制中心,利用各種接口和線路連接整個終端設(shè)備的各個部分。
所述存儲器可用于存儲所述計算機(jī)程序和/或模塊,所述處理器通過運(yùn)行或執(zhí)行存儲在所述存儲器內(nèi)的計算機(jī)程序和/或模塊,以及調(diào)用存儲在存儲器內(nèi)的數(shù)據(jù),實現(xiàn)所述終端設(shè)備的各種功能。所述存儲器可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如硬盤、內(nèi)存、插接式硬盤,智能存儲卡(smartmediacard,smc),安全數(shù)字(securedigital,sd)卡,閃存卡(flashcard)、至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
本發(fā)明實施例還提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)存儲有計算機(jī)程序,所述計算機(jī)程序被處理器執(zhí)行時實現(xiàn)上述任一實施例方法中的步驟。
上述終端設(shè)備集成的模塊/單元如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明實現(xiàn)上述實施例方法中的全部或部分流程,也可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的計算機(jī)程序可存儲于一計算機(jī)可讀存儲介質(zhì)中,該計算機(jī)程序在被處理器執(zhí)行時,可實現(xiàn)上述各個方法實施例的步驟。其中,所述計算機(jī)程序包括計算機(jī)程序代碼,所述計算機(jī)程序代碼可以為源代碼形式、對象代碼形式、可執(zhí)行文件或某些中間形式等。所述計算機(jī)可讀介質(zhì)可以包括:能夠攜帶所述計算機(jī)程序代碼的任何實體或裝置、記錄介質(zhì)、u盤、移動硬盤、磁碟、光盤、計算機(jī)存儲器、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、電載波信號、電信信號以及軟件分發(fā)介質(zhì)等。
本發(fā)明實施例提供的人機(jī)識別方法、系統(tǒng)及終端設(shè)備、可讀存儲介質(zhì),通過基于碎片重組的驗證碼進(jìn)行驗證交互,并將觸發(fā)主體在進(jìn)行驗證交互過程中的操作行為軌跡作為帶校驗信息,以對操作行為軌跡的觸發(fā)主體進(jìn)行人機(jī)識別,本發(fā)明能夠準(zhǔn)確識別當(dāng)前操作用戶為正常用戶還是異常用戶,提高人機(jī)識別的準(zhǔn)確率,提高用戶體驗。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。
最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。