本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及的是一種身份驗(yàn)證的方法、終端設(shè)備以及服務(wù)器。
背景技術(shù):
隨著用戶網(wǎng)絡(luò)安全意識(shí)的提升,用戶身份驗(yàn)證的應(yīng)用越來越廣泛,在不安全的公共網(wǎng)絡(luò)渠道中,用戶身份驗(yàn)證能夠有效的保護(hù)安全通信和系統(tǒng)相關(guān)資源。
因此為了保護(hù)安全的網(wǎng)絡(luò)系統(tǒng)環(huán)境,簡(jiǎn)單而有效的用戶身份驗(yàn)證機(jī)制是非常必要的。基于密碼的用戶身份驗(yàn)證機(jī)制為防止未經(jīng)允許授權(quán)的訪問與權(quán)限提供了最基本的功能。當(dāng)然還有基于用戶權(quán)限與授權(quán)設(shè)定實(shí)現(xiàn)了一些智能卡、令牌TOKEN等,然而這些手段在無形中增加了硬件成本和維護(hù)成本,而且用戶身份驗(yàn)證的效率低,準(zhǔn)確性差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種能夠降低成本且提升了用戶身份驗(yàn)證效率以及準(zhǔn)確性的身份驗(yàn)證的方法、終端設(shè)備以及服務(wù)器。
本發(fā)明實(shí)施例第一方面提供了一種身份驗(yàn)證的方法,包括:
終端設(shè)備掃描客戶端設(shè)備生成的二維碼,以使已掃描所述二維碼的所述終端設(shè)備注冊(cè)到服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
所述終端設(shè)備將第一驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器,以使所述服務(wù)器將第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,所述第二驗(yàn)證數(shù)據(jù)為所述服務(wù)器根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成的數(shù)據(jù);
所述終端設(shè)備根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
所述終端設(shè)備將所述第三驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器設(shè)備,以使所述服務(wù)器將指示信息發(fā)送給所述客戶端設(shè)備,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證。
本發(fā)明實(shí)施例第二方面提供了一種身份驗(yàn)證的方法,包括:
服務(wù)器接收終端設(shè)備發(fā)送的第一驗(yàn)證數(shù)據(jù),所述第一驗(yàn)證數(shù)據(jù)為所述終端設(shè)備注冊(cè)到所述服務(wù)器后所生成的用于進(jìn)行驗(yàn)證的數(shù)據(jù),所述終端設(shè)備通過掃描客戶端設(shè)備生成的二維碼注冊(cè)到所述服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
所述服務(wù)器根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第二驗(yàn)證數(shù)據(jù);
所述服務(wù)器將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,以使所述終端設(shè)備根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
所述服務(wù)器接收所述終端設(shè)備發(fā)送的所述第三驗(yàn)證數(shù)據(jù);
所述服務(wù)器根據(jù)所述第三驗(yàn)證數(shù)據(jù)生成指示信息,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證;
所述服務(wù)器將所述指示信息發(fā)送給所述客戶端設(shè)備。
本發(fā)明實(shí)施例第三方面提供了一種終端設(shè)備,包括:
掃描單元,用于掃描客戶端設(shè)備生成的二維碼,以使已掃描所述二維碼的所述終端設(shè)備注冊(cè)到服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
第一發(fā)送單元,用于將第一驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器,以使所述服務(wù)器將第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,所述第二驗(yàn)證數(shù)據(jù)為所述服務(wù)器根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成的數(shù)據(jù);
計(jì)算單元,用于根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
第二發(fā)送單元,用于將所述第三驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器設(shè)備,以使所述服務(wù)器將指示信息發(fā)送給所述客戶端設(shè)備,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證。
本發(fā)明實(shí)施例第四方面提供了一種服務(wù)器,包括:
第一接收單元,用于接收終端設(shè)備發(fā)送的第一驗(yàn)證數(shù)據(jù),所述第一驗(yàn)證數(shù)據(jù)為所述終端設(shè)備注冊(cè)到所述服務(wù)器后所生成的用于進(jìn)行驗(yàn)證的數(shù)據(jù),所述終端設(shè)備通過掃描客戶端設(shè)備生成的二維碼注冊(cè)到所述服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
第一計(jì)算單元,用于根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第二驗(yàn)證數(shù)據(jù);
第一發(fā)送單元,用于將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,以使所述終端設(shè)備根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
第一接收單元,用于接收所述終端設(shè)備發(fā)送的所述第三驗(yàn)證數(shù)據(jù);
生成單元,用于根據(jù)所述第三驗(yàn)證數(shù)據(jù)生成指示信息,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證;
第二發(fā)送單元,用于將所述指示信息發(fā)送給所述客戶端設(shè)備。
采用本實(shí)施例所示的方法,能夠使得終端設(shè)備通過掃描客戶端設(shè)備基于一次性密碼所生成二維碼實(shí)現(xiàn)身份的驗(yàn)證,且驗(yàn)證的過程中,由終端設(shè)備和服務(wù)器之間相互發(fā)送驗(yàn)證數(shù)據(jù),從而使得服務(wù)器通過終端設(shè)備所發(fā)送的驗(yàn)證數(shù)據(jù)判斷所述終端設(shè)備是否通過驗(yàn)證,可見,本實(shí)施例所示的對(duì)所述終端設(shè)備進(jìn)行注冊(cè)以及驗(yàn)證的過程都放到了遠(yuǎn)端的服務(wù)器上,從而降低了終端設(shè)備的計(jì)算量,提升了身份驗(yàn)證的效率,而且降低了身份驗(yàn)證的風(fēng)險(xiǎn),提升了身份驗(yàn)證的安全。
附圖說明
圖1為本發(fā)明所提供的驗(yàn)證系統(tǒng)的一種實(shí)施例結(jié)構(gòu)示意圖;
圖2為本發(fā)明所提供的服務(wù)器的一種實(shí)施例結(jié)構(gòu)示意圖;
圖3為本發(fā)明所提供的終端設(shè)備的一種實(shí)施例結(jié)構(gòu)示意圖;
圖4為本發(fā)明所提供的身份驗(yàn)證的方法的一種實(shí)施例步驟流程圖;
圖5為本發(fā)明所提供的身份驗(yàn)證的方法的另一種實(shí)施例步驟流程圖;
圖6為本發(fā)明所提供的身份驗(yàn)證的方法的另一種實(shí)施例步驟流程圖;
圖7為本發(fā)明所提供的身份驗(yàn)證的方法的另一種實(shí)施例步驟流程圖;
圖8為本發(fā)明所提供的終端設(shè)備的另一種實(shí)施例結(jié)構(gòu)示意圖;
圖9為本發(fā)明所提供的服務(wù)器的另一種實(shí)施例結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種身份驗(yàn)證的方法、為更好的理解本發(fā)明實(shí)施例所提供的身份驗(yàn)證的方法,以下首先對(duì)能夠?qū)崿F(xiàn)本發(fā)明實(shí)施例所提供的方法的驗(yàn)證系統(tǒng)的具體結(jié)構(gòu)進(jìn)行詳細(xì)說明:
如圖1所示,本實(shí)施例所示的驗(yàn)證系統(tǒng)包括服務(wù)器101、至少一個(gè)客戶端設(shè)備102以及至少一個(gè)終端設(shè)備103。
本實(shí)施例所示的所述驗(yàn)證系統(tǒng)所包括的所述客戶端設(shè)備102以及所述終端設(shè)備103的具體數(shù)目不作限定。
本實(shí)施例所示的所述服務(wù)器101、所述客戶端設(shè)備102以及所述終端設(shè)備103之間能夠進(jìn)行數(shù)據(jù)通信。
以下結(jié)合圖2所示對(duì)本實(shí)施例所示的服務(wù)器的具體結(jié)構(gòu)進(jìn)行說明:
本發(fā)明實(shí)施例所提供的服務(wù)器200可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個(gè)或一個(gè)以上中央處理器(central processing units,CPU)222(例如,一個(gè)或一個(gè)以上處理器)和存儲(chǔ)器232,一個(gè)或一個(gè)以上存儲(chǔ)應(yīng)用程序242或數(shù)據(jù)244的存儲(chǔ)介質(zhì)230(例如一個(gè)或一個(gè)以上海量存儲(chǔ)設(shè)備)。其中,存儲(chǔ)器232和存儲(chǔ)介質(zhì)230可以是短暫存儲(chǔ)或持久存儲(chǔ)。存儲(chǔ)在存儲(chǔ)介質(zhì)230的程序可以包括一個(gè)或一個(gè)以上模塊(圖示沒標(biāo)出),每個(gè)模塊可以包括對(duì)服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器222可以設(shè)置為與存儲(chǔ)介質(zhì)230通信,在服務(wù)器200上執(zhí)行存儲(chǔ)介質(zhì)230中的一系列指令操作。
服務(wù)器200還可以包括一個(gè)或一個(gè)以上電源226,一個(gè)或一個(gè)以上有線或無線網(wǎng)絡(luò)接口250,一個(gè)或一個(gè)以上輸入輸出接口258,和/或,一個(gè)或一個(gè)以上操作系統(tǒng)241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,F(xiàn)reeBSDTM等等。
以下結(jié)合圖3所示對(duì)本實(shí)施例所提供的終端設(shè)備103的具體結(jié)構(gòu)進(jìn)行詳細(xì)說明:
如圖3所示,為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明實(shí)施例方法部分。該終端設(shè)備可以為包括手機(jī)、平板電腦、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、POS(Point of Sales,銷售終端)、車載電腦等任意終端設(shè)備。
圖3示出的是與本發(fā)明實(shí)施例提供的終端設(shè)備相關(guān)的終端設(shè)備的部分結(jié)構(gòu)的框圖。參考圖3,終端設(shè)備包括:射頻(Radio Frequency,RF)電路310、存儲(chǔ)器320、輸入單元330、顯示單元340、傳感器350、音頻電路360、無線保真(wireless fidelity,WiFi)模塊370、處理器380、以及電源390等部件。本領(lǐng)域技術(shù)人員可以理解,圖3中示出的終端設(shè)備結(jié)構(gòu)并不構(gòu)成對(duì)終端設(shè)備的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結(jié)合圖3對(duì)終端設(shè)備的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:
RF電路310可用于收發(fā)信息或通話過程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器380處理;另外,將設(shè)計(jì)上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路310包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路310還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(Global System of Mobile communication,GSM)、通用分組無線服務(wù)(General Packet Radio Service,GPRS)、碼分多址(Code Division Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Division Multiple Access,WCDMA)、長(zhǎng)期演進(jìn)(Long Term Evolution,LTE)、電子郵件、短消息服務(wù)(Short Messaging Service,SMS)等。
存儲(chǔ)器320可用于存儲(chǔ)軟件程序以及模塊,處理器380通過運(yùn)行存儲(chǔ)在存儲(chǔ)器320的軟件程序以及模塊,從而執(zhí)行終端設(shè)備的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器320可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端設(shè)備的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器320可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
輸入單元330可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與終端設(shè)備的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,輸入單元330可包括觸控面板331以及其他輸入設(shè)備332。觸控面板331,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板331上或在觸控面板331附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置??蛇x的,觸控面板331可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器380,并能接收處理器380發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板331。除了觸控面板331,輸入單元330還可以包括其他輸入設(shè)備332。具體地,其他輸入設(shè)備332可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元340可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端設(shè)備的各種菜單。顯示單元340可包括顯示面板341,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機(jī)發(fā)光二極管(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板341。進(jìn)一步的,觸控面板331可覆蓋顯示面板341,當(dāng)觸控面板331檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器380以確定觸摸事件的類型,隨后處理器380根據(jù)觸摸事件的類型在顯示面板341上提供相應(yīng)的視覺輸出。雖然在圖3中,觸控面板331與顯示面板341是作為兩個(gè)獨(dú)立的部件來實(shí)現(xiàn)終端設(shè)備的輸入和輸入功能,但是在某些實(shí)施例中,可以將觸控面板331與顯示面板341集成而實(shí)現(xiàn)終端設(shè)備的輸入和輸出功能。
終端設(shè)備還可包括至少一種傳感器350,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板341的亮度,接近傳感器可在終端設(shè)備移動(dòng)到耳邊時(shí),關(guān)閉顯示面板341和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別終端設(shè)備姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于終端設(shè)備還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路360、揚(yáng)聲器361,傳聲器362可提供用戶與終端設(shè)備之間的音頻接口。音頻電路360可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器361,由揚(yáng)聲器361轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器362將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路360接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器380處理后,經(jīng)RF電路310以發(fā)送給比如另一終端設(shè)備,或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器320以便進(jìn)一步處理。
WiFi屬于短距離無線傳輸技術(shù),終端設(shè)備通過WiFi模塊370可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖3示出了WiFi模塊370,但是可以理解的是,其并不屬于終端設(shè)備的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器380是終端設(shè)備的控制中心,利用各種接口和線路連接整個(gè)終端設(shè)備的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器320內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器320內(nèi)的數(shù)據(jù),執(zhí)行終端設(shè)備的各種功能和處理數(shù)據(jù),從而對(duì)終端設(shè)備進(jìn)行整體監(jiān)控??蛇x的,處理器380可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器380可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器380中。
終端設(shè)備還包括給各個(gè)部件供電的電源390(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器380邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。
盡管未示出,終端設(shè)備還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。
本實(shí)施例對(duì)所述客戶端設(shè)備102的具體結(jié)構(gòu)不作限定,只要所述客戶端設(shè)備102能夠生成二維碼以被終端設(shè)備103掃描即可。
基于圖1至圖3所示,以下結(jié)合圖4所示對(duì)本發(fā)明實(shí)施例所提供的身份驗(yàn)證的方法的具體執(zhí)行過程進(jìn)行詳細(xì)說明。
步驟401、客戶端設(shè)備基于一次性密碼生成二維碼。
首先對(duì)本實(shí)施例所示的一次性密碼進(jìn)行說明:
在對(duì)用戶進(jìn)行身份驗(yàn)證的過程中,靜態(tài)密碼容易遭到破解,而一次性密碼(英文全稱:One Time Password,英文簡(jiǎn)稱:OTP)能夠有效的提升用戶身份驗(yàn)證的安全性。
一次性密碼只對(duì)于一個(gè)登錄會(huì)話或事務(wù)是有效的。一次性密碼防止了與傳統(tǒng)靜態(tài)密碼相關(guān)聯(lián)的許多缺點(diǎn),例如,重播攻擊,字典攻擊,網(wǎng)絡(luò)釣魚攻擊。這意味著,如果一個(gè)潛在的入侵者試著去記錄一個(gè)已經(jīng)被用于登錄服務(wù)或者進(jìn)行事物的一次性密碼,他將不能濫用它因?yàn)檫@個(gè)密碼不再有效。
因此,一次性密碼的目的是使它更加難以獲得未經(jīng)授權(quán)訪問受限資源的權(quán)限。
一次性密碼方案不能由人類記憶。出于這個(gè)原因,為了工作,它們需要額外的技術(shù)?;旧希淮涡悦艽a可以分為一下四類:
一類:基于數(shù)學(xué)算法:1981年,Lamport首先提出了利用單向散列鏈的一次性密碼身份驗(yàn)證方案。然而,如果需要無期限的密碼,當(dāng)一套老哈希鏈用盡的時(shí)候,需要選取一個(gè)新的種子值。特別是,維護(hù)一個(gè)用來驗(yàn)證用戶身份驗(yàn)證請(qǐng)求的密碼文件同時(shí)也增加了篡改的風(fēng)險(xiǎn)和維護(hù)成本。出于這個(gè)原因,許多研究人員提出了各種用戶身份驗(yàn)證,如使用智能卡來改善安全,成本或效率。
另一類:基于智能卡:由于管理密碼文件中的抗篡改技術(shù)和便利性,智能卡已經(jīng)廣泛應(yīng)用到許多遠(yuǎn)程身份驗(yàn)證方案。然而,對(duì)于用戶來說,隨身攜帶卡和掃描器仍然是一個(gè)負(fù)擔(dān)。因此這個(gè)障礙限制了基于身份驗(yàn)證方案的智能卡的應(yīng)用。
另一類:基于令牌標(biāo)記:令牌一次性密碼通常與物理硬件令牌相關(guān)聯(lián)。在令牌的內(nèi)部是一個(gè)準(zhǔn)確的已經(jīng)與服務(wù)器上的時(shí)鐘同步的時(shí)鐘。近期,它已經(jīng)可以將電子原件與常規(guī)密鑰卡一次性密碼令牌相關(guān)聯(lián),例如InCard,RSA,SafeNet,和Vasco。然而,出于和智能卡方案一樣的原因,這些方法不是很方便。
另一類:基于短消息服務(wù):由于短息是一個(gè)無處不在的通信通道同時(shí)在所有的手機(jī)上利用。然后,盡管短信是一個(gè)最盡力的遞送員,意味著通訊公司盡力地傳送短信,但是不能保證它一定送達(dá),或者不知道它要花多長(zhǎng)時(shí)間。應(yīng)該強(qiáng)調(diào),一次性密碼必須有一個(gè)生命周期作為安全特性。此外,基于短信方案必須持續(xù)直到帶來額外費(fèi)用。因此,它是不切實(shí)際的,同時(shí)不是必要地低成本解決方案。
可見,為了消除上述所示的一次性密碼的缺點(diǎn),則本實(shí)施例所示的客戶端設(shè)備可基于所述一次性密碼生成二維碼。
具體的,本實(shí)施例所示的客戶端設(shè)備被啟動(dòng)時(shí),客戶端設(shè)備的處理器能夠通過一次性密碼計(jì)算預(yù)設(shè)內(nèi)容以生成二維碼,所述客戶端設(shè)備的顯示屏即可顯示已生成的所述二維碼。
應(yīng)用本實(shí)施例所示的方法的應(yīng)用場(chǎng)景也可參見圖5所示,本實(shí)施例所示的客戶端設(shè)備可存儲(chǔ)有圖5所示的預(yù)設(shè)內(nèi)容content可為統(tǒng)一資源定位地址URL,或文本text,或電話號(hào)碼phone number,或短訊服務(wù)SMS。
如圖5所示的應(yīng)用場(chǎng)景可知,所述客戶端服務(wù)器能夠基于一次性密碼對(duì)預(yù)設(shè)內(nèi)容content進(jìn)行加密運(yùn)算以生成二維碼QR Code。
步驟402、所述終端設(shè)備掃描所述客戶端設(shè)備生成的二維碼。
本實(shí)施例所示的終端設(shè)備通過掃描所述二維碼以加入圖1所示的驗(yàn)證系統(tǒng)。
由于移動(dòng)通信的飛速發(fā)展,在嵌入式攝像頭中的二維碼技術(shù)已經(jīng)作為新的輸入接口被應(yīng)用。有嵌入式攝像頭的終端設(shè)備可以捕捉到二維碼,然后使用運(yùn)行在終端設(shè)備上的軟件對(duì)它們進(jìn)行解碼。
與此同時(shí),在終端設(shè)備中使用二維碼有許多好處,比如全方位的可讀性和糾錯(cuò)能力。出于這個(gè)原因,采用了二維碼的終端設(shè)備支持現(xiàn)在的許多服務(wù),比如,訂票、支付和統(tǒng)一資源定位符閱讀。
所以本實(shí)施例提出采用廣泛使用的二維碼技術(shù)來支持一次性密碼系統(tǒng),則終端設(shè)備上的二維碼應(yīng)用可以獲得從二維碼上繼承的好處,如大容量,打印尺寸小,高速掃描,抗毀壞能力和數(shù)據(jù)健壯性。此外,各種屬性,比如流動(dòng)性和靈巧性。因此,我們的方法可以更加的便利,因?yàn)橛脩舨恍枰獙?duì)于每一個(gè)安全域都攜帶單獨(dú)的硬件令牌來獲得訪問權(quán)限。
如圖5所示的應(yīng)用場(chǎng)景為例,則終端設(shè)備掃描所述客戶端設(shè)備所生成的二維碼后則執(zhí)行注冊(cè)階段,所述注冊(cè)階段的具體執(zhí)行過程請(qǐng)?jiān)斠娤率霾襟E403至步驟408所示。
步驟403、所述終端設(shè)備生成與所述終端設(shè)備對(duì)應(yīng)的第一注冊(cè)數(shù)據(jù)。
本實(shí)施例對(duì)所述第一注冊(cè)數(shù)據(jù)IDA不作限定,只要所述第一注冊(cè)數(shù)據(jù)IDA與所述終端設(shè)備對(duì)應(yīng)即可,例如,所述第一注冊(cè)數(shù)據(jù)IDA可為所述終端設(shè)備的處理器的ID碼,或所述終端設(shè)備的預(yù)設(shè)的登錄賬號(hào)和登陸密碼等。
步驟404、所述終端設(shè)備將所述第一注冊(cè)數(shù)據(jù)發(fā)送給所述服務(wù)器。
步驟405、所述服務(wù)器接收所述終端設(shè)備發(fā)送的所述第一注冊(cè)數(shù)據(jù)。
具體的,在執(zhí)行本實(shí)施例所示的步驟404和步驟405的過程中,所述服務(wù)器和所述終端設(shè)備可預(yù)先建立安全的通信通道,從而使得所述服務(wù)器和所述終端設(shè)備之間通過已創(chuàng)建的通信通道進(jìn)行數(shù)據(jù)的傳輸。
步驟406、所述服務(wù)器生成第二注冊(cè)數(shù)據(jù)。
具體的,本實(shí)施例所示的服務(wù)器能夠根據(jù)單向散列函數(shù)h(*)對(duì)所述第一注冊(cè)數(shù)據(jù)IDA和預(yù)設(shè)密鑰S進(jìn)行計(jì)算以生成第二注冊(cè)數(shù)據(jù)XA。
所述預(yù)設(shè)密鑰S為所述服務(wù)器預(yù)先存儲(chǔ)的長(zhǎng)期密鑰。
更具體的,XA=h(IDA,S)。
步驟407、所述服務(wù)器將所述第二注冊(cè)數(shù)據(jù)發(fā)送給所述終端設(shè)備。
步驟408、所述終端設(shè)備接收所述第二注冊(cè)數(shù)據(jù)。
本實(shí)施例所示的終端設(shè)備在接收到所述第二注冊(cè)數(shù)據(jù)之后,所述終端設(shè)備即可將所述第二注冊(cè)數(shù)據(jù)XA作為長(zhǎng)期密鑰進(jìn)行存儲(chǔ)。
采用本實(shí)施例所示的步驟403至步驟408從而完成了所述終端設(shè)備注冊(cè)到服務(wù)器的過程。
如圖5所示的應(yīng)用場(chǎng)景為例,在執(zhí)行完步驟403至步驟408,完成了終端設(shè)備注冊(cè)到服務(wù)器的過程后,通過下述所示的步驟409至步驟435執(zhí)行驗(yàn)證階段。
步驟409、所述終端設(shè)備記錄第一時(shí)間戳。
具體的,所述第一時(shí)間戳T1為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間。
步驟410、所述終端設(shè)備生成所述第一驗(yàn)證數(shù)據(jù)。
具體的,本實(shí)施例所示的所述第一驗(yàn)證數(shù)據(jù)包括所述第一時(shí)間戳T1和所述第二注冊(cè)數(shù)據(jù)XA。
步驟411、所述終端設(shè)備將所述第一驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器。
步驟412、所述服務(wù)器接收所述第一驗(yàn)證數(shù)據(jù)。
步驟413、所述服務(wù)器記錄第二時(shí)間戳。
具體的,所述第二時(shí)間戳T2為所述服務(wù)器檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間;
步驟414、所述服務(wù)器判斷所述第一驗(yàn)證數(shù)據(jù)是否滿足第一預(yù)設(shè)條件,若否,則執(zhí)行步驟415,若是,則執(zhí)行步驟416。
其中,所述第一預(yù)設(shè)條件為所述第一時(shí)間戳等于第二時(shí)間戳。
具體的,當(dāng)所述服務(wù)器判斷出所述第一驗(yàn)證數(shù)據(jù)所包括的第一時(shí)間戳與所述服務(wù)器所記錄的第二時(shí)間戳不相等,則說明所述第一驗(yàn)證數(shù)據(jù)不滿足所述第一預(yù)設(shè)條件,則繼續(xù)執(zhí)行步驟415。
當(dāng)所述服務(wù)器判斷出所述第一驗(yàn)證數(shù)據(jù)所包括的第一時(shí)間戳與所述服務(wù)器所記錄的第二時(shí)間戳相等,則說明所述第一驗(yàn)證數(shù)據(jù)滿足所述第一預(yù)設(shè)條件,則繼續(xù)執(zhí)行步驟416。
步驟415、所述服務(wù)器拒絕所述終端設(shè)備進(jìn)行驗(yàn)證的請(qǐng)求。
在所述服務(wù)器判斷出所述第一驗(yàn)證數(shù)據(jù)所包括的第一時(shí)間戳與所述服務(wù)器所記錄的第二時(shí)間戳不相等的情況下,則所述服務(wù)器即可確定出所述終端設(shè)備進(jìn)行身份驗(yàn)證的請(qǐng)求是無效的,可選的,所述服務(wù)器可向所述終端設(shè)備和/或所述客戶端設(shè)備發(fā)送目標(biāo)指示信息,所述目標(biāo)指示信息用于指示所述終端設(shè)備進(jìn)行身份驗(yàn)證的請(qǐng)求是無效的。
步驟416、所述服務(wù)器生成第一子數(shù)據(jù)。
具體的,所述服務(wù)器根據(jù)所述單向散列函數(shù)h(*)對(duì)目標(biāo)隨機(jī)數(shù)r、所述第一時(shí)間戳T1和所述第二時(shí)間戳T2進(jìn)行計(jì)算以生成第一子數(shù)據(jù)h(r,T1,T2)。
所述目標(biāo)隨機(jī)數(shù)r為所述服務(wù)器隨機(jī)生成的數(shù)據(jù)。
步驟417、所述服務(wù)器生成第一參數(shù)。
具體的,所述服務(wù)器對(duì)所述目標(biāo)隨機(jī)數(shù)r和所述第二注冊(cè)數(shù)據(jù)IDA進(jìn)行異或運(yùn)算以生成第一參數(shù)α;
本實(shí)施例所示的所述第二注冊(cè)數(shù)據(jù)為在所述步驟406中所生成的數(shù)據(jù)。
具體的,
步驟418、所述服務(wù)器生成第二子數(shù)據(jù)。
具體的,所述服務(wù)器通過第一函數(shù)對(duì)所述第一參數(shù)進(jìn)行計(jì)算以生成第二子數(shù)據(jù)。
更具體的,本實(shí)施例所示的第一函數(shù)為EOR(*)。
其中,所述第一函數(shù)EOR(*)為將數(shù)據(jù)編碼成二維碼圖像的函數(shù)。
在本實(shí)施例中,所述第二子數(shù)據(jù)為EOR(α)。
步驟419、所述服務(wù)器生成第二驗(yàn)證數(shù)據(jù)。
本實(shí)施例中,所述服務(wù)器所生成的所述第二驗(yàn)證數(shù)據(jù)包括所述第一子數(shù)據(jù)h(r,T1,T2)、所述第二子數(shù)據(jù)EOR(α)以及所述第二時(shí)間戳T2。
步驟420、所述服務(wù)器將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備。
步驟421、所述終端設(shè)備接收所述第二驗(yàn)證數(shù)據(jù)。
步驟422、所述終端設(shè)備判斷所述第二驗(yàn)證數(shù)據(jù)是否滿足第二預(yù)設(shè)條件,若否,則執(zhí)行步驟423、若是,則執(zhí)行步驟424。
本實(shí)施例中,所述第二預(yù)設(shè)條件為所述第一時(shí)間戳T1等于所述第二時(shí)間戳T2。
即若所述終端設(shè)備確定出所述第一時(shí)間戳T1等于所述第二時(shí)間戳T2,則確定出所述第二驗(yàn)證數(shù)據(jù)滿足所述第二預(yù)設(shè)條件,則可繼續(xù)執(zhí)行步驟424。
若所述終端設(shè)備確定出所述第一時(shí)間戳T1不等于所述第二時(shí)間戳T2,則確定出所述第二驗(yàn)證數(shù)據(jù)不滿足所述第二預(yù)設(shè)條件,則可繼續(xù)執(zhí)行步驟423。
步驟423、所述終端設(shè)備拒絕繼續(xù)進(jìn)行身份驗(yàn)證。
本實(shí)施例在所述終端設(shè)備確定出所述第一時(shí)間戳T1不等于所述第二時(shí)間戳T2的情況下,則所述終端設(shè)備拒絕繼續(xù)進(jìn)行身份驗(yàn)證,則身份驗(yàn)證的流程終止。
步驟424、所述終端設(shè)備生成第二參數(shù)。
具體的,所述終端設(shè)備通過第二函數(shù)DOR(*)對(duì)所述第二驗(yàn)證數(shù)據(jù)所包括的所述第二子數(shù)據(jù)EOR(α)進(jìn)行計(jì)算以生成第二參數(shù)。
其中,所述第二函數(shù)DOR(*)為終端設(shè)備將捕獲在嵌入式攝像頭設(shè)備的二維碼解碼的函數(shù)。
所述第二參數(shù)為DOR(EOR(α))。
步驟425、所述終端設(shè)備生成所述目標(biāo)隨機(jī)數(shù)。
本實(shí)施例中,所述終端設(shè)備對(duì)所述第二參數(shù)DOR(EOR(α))和所述第二注冊(cè)數(shù)據(jù)XA通過異或運(yùn)算進(jìn)行計(jì)算以生成所述目標(biāo)隨機(jī)數(shù)r。
具體的,
步驟426、所述終端設(shè)備生成第三參數(shù)。
具體的,所述終端設(shè)備通過所述單向散列函數(shù)h(*)對(duì)所述目標(biāo)隨機(jī)數(shù)r、所述第一時(shí)間戳T1以及所述第二時(shí)間戳T2進(jìn)行計(jì)算以生成第三參數(shù)。
更具體的,所述第三參數(shù)為h(r,T1,T2)。
步驟427、所述終端設(shè)備判斷所述第三參數(shù)是否滿足第三預(yù)設(shè)條件,若否,則執(zhí)行步驟428,若是,則執(zhí)行步驟429。
本實(shí)施例中,所述第三預(yù)設(shè)條件為所述第三參數(shù)等于所述第一子數(shù)據(jù)。
具體的,若所述終端設(shè)備判斷出所述第三參數(shù)不等于所述第一子數(shù)據(jù),則繼續(xù)執(zhí)行步驟428,若所述終端設(shè)備判斷出所述第三參數(shù)等于所述第一子數(shù)據(jù),則繼續(xù)執(zhí)行步驟429。
步驟428、所述終端設(shè)備拒絕繼續(xù)進(jìn)行身份驗(yàn)證。
步驟429、所述終端設(shè)備獲取第三時(shí)間戳。
本實(shí)施例所示的所述第三時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼開始的時(shí)間。
步驟430、所述終端設(shè)備生成第三驗(yàn)證數(shù)據(jù)。
本實(shí)施例所示的終端設(shè)備所生成的所述第三驗(yàn)證數(shù)據(jù)包括所述第三參數(shù)h(r,T1,T2)和所述第三時(shí)間戳T3。
步驟431、所述終端設(shè)備將所述第三驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器。
步驟432、所述服務(wù)器判斷所述第三驗(yàn)證數(shù)據(jù)是否滿足第四預(yù)設(shè)條件,若是,則執(zhí)行步驟433。
本實(shí)施例中,所述第四預(yù)設(shè)條件為所述第一時(shí)間戳T1和所述第三時(shí)間戳T3之間的差值小于或等于預(yù)設(shè)閾值,且所述第四預(yù)設(shè)條件還為所述第三參數(shù)h(r,T1,T2)和所述服務(wù)器所存儲(chǔ)的所述第二驗(yàn)證數(shù)據(jù)所包括的所述第一子數(shù)據(jù)h(r,T1,T2)相等。
具體的,本實(shí)施例所示的所述服務(wù)器預(yù)先存儲(chǔ)有所述預(yù)設(shè)閾值,則所述服務(wù)器在接收到所述第三時(shí)間戳后,所述服務(wù)器即可判斷所述第一時(shí)間戳和所述第三時(shí)間戳之間的差值是否小于或等于所述預(yù)設(shè)閾值。
本實(shí)施例所述第三參數(shù)為所述終端設(shè)備發(fā)送給所述服務(wù)器的,所述第一子數(shù)據(jù)為所述服務(wù)器在執(zhí)行步驟416所生成的,則本步驟所示,所述服務(wù)器需要判斷所述第三參數(shù)是否等于所述第一子數(shù)據(jù)。
步驟433、所述服務(wù)器生成指示信息。
本實(shí)施例所示在所述服務(wù)器確定出所述第三驗(yàn)證數(shù)據(jù)滿足所述第四預(yù)設(shè)條件的情況下,則所述服務(wù)器可生成用于指示所述終端設(shè)備通過驗(yàn)證的指示信息。
步驟434、所述服務(wù)器將所述指示信息發(fā)送給客戶端設(shè)備。
本實(shí)施例中,在所述服務(wù)器確定出所述終端設(shè)備已通過驗(yàn)證的情況下,所述服務(wù)器可將已生成的指示信息發(fā)送給所述客戶端設(shè)備。
步驟435、所述客戶端設(shè)備接收所述指示信息。
本實(shí)施例中,所述客戶端設(shè)備在接收到所述指示信息的情況下,即可確定當(dāng)前的所述終端設(shè)備已通過驗(yàn)證,即可執(zhí)行對(duì)應(yīng)的功能。
例如,將本實(shí)施例所示的驗(yàn)證系統(tǒng)應(yīng)用至訂票領(lǐng)域,則所述客戶端設(shè)備可為能夠執(zhí)行訂票功能的計(jì)算機(jī)設(shè)備,在所述計(jì)算機(jī)設(shè)備接收到服務(wù)器所發(fā)送的所述指示信息的情況下,所述計(jì)算機(jī)設(shè)備即可對(duì)所述終端設(shè)備開放訂票的對(duì)應(yīng)功能。
如圖5所示的應(yīng)用場(chǎng)景中,在完成了驗(yàn)證階段后,本實(shí)施例所示的方法還能夠繼續(xù)執(zhí)行安全規(guī)避的階段。
具體的,本實(shí)施例所示的方法能夠?qū)K端設(shè)備的風(fēng)險(xiǎn)進(jìn)行規(guī)避。
其中,本實(shí)施例因?yàn)樗鼋K端設(shè)備長(zhǎng)期存儲(chǔ)有步驟408所示的密鑰XA,因此終端設(shè)備需要受到良好的保護(hù),而本實(shí)施例所示的終端設(shè)備只是用來掃描客戶端設(shè)備的二維碼,核心的注冊(cè)階段以及驗(yàn)證階段在遠(yuǎn)端的服務(wù)器上執(zhí)行,二維碼的生成階段在客戶端設(shè)備上執(zhí)行,從而有效的降低了本實(shí)施例所示的終端設(shè)備的安全風(fēng)險(xiǎn),提升了終端設(shè)備的安全。
采用本實(shí)施例所示的方法,攻擊者通過終端設(shè)備得到服務(wù)器的密鑰的目的是不可行的,因?yàn)楸緦?shí)施例所示的單向散列函數(shù)又稱單向哈希函數(shù),單向哈希函數(shù)是不可逆轉(zhuǎn)的,通過不可逆轉(zhuǎn)的單向哈希函數(shù),能夠使得攻擊者無法獲取到服務(wù)器所存儲(chǔ)的密鑰,從而進(jìn)一步的提升了驗(yàn)證過程的安全。
采用本實(shí)施例所示的方法,有效的降低了遠(yuǎn)程用戶的安全風(fēng)險(xiǎn),因?yàn)楫?dāng)不知道相應(yīng)的隨機(jī)數(shù)r的值時(shí),得到合法的用戶長(zhǎng)期密鑰xA是不可行的。另一方面如果截獲了在公共渠道傳播的信息,它仍然無法得到r,這是因?yàn)閱蜗蚬:瘮?shù)是不可逆轉(zhuǎn)的。
采用本實(shí)施例所示的方法,有效的降低了中間人攻擊和重放攻擊,如果破解者多次嘗試一個(gè)從公共渠道上截獲的合法的時(shí)間戳T3請(qǐng)求,服務(wù)器在時(shí)間戳T3上接收到了訪問請(qǐng)求。但是時(shí)間戳T1和時(shí)間戳T3之間的差值不低于預(yù)先存儲(chǔ)的時(shí)間間隔,則服務(wù)器即可進(jìn)行拒絕。而且隨機(jī)數(shù)r是服務(wù)器隨機(jī)選取的。因此,中間人攻擊和重放攻擊將會(huì)失敗。
為更好的理解本發(fā)明實(shí)施例所示的方法,則以下結(jié)合應(yīng)用場(chǎng)景對(duì)本實(shí)施例所示的方法進(jìn)行詳細(xì)說明:
本應(yīng)用場(chǎng)景中,將所述驗(yàn)證系統(tǒng)應(yīng)用至支付領(lǐng)域,在本應(yīng)用場(chǎng)景中,所述客戶端設(shè)備為能夠執(zhí)行支付功能的計(jì)算機(jī)設(shè)備。
結(jié)合圖5、圖6以及圖7所示。
本應(yīng)用場(chǎng)景所示的客戶端設(shè)備生成二維碼的具體過程,請(qǐng)?jiān)斠妶D4的實(shí)施例所示,具體不做贅述。
在支付之前,所述終端設(shè)備通過掃描所述客戶端設(shè)備所生成的二維碼以加入所述驗(yàn)證系統(tǒng),在加入所述驗(yàn)證系統(tǒng)后,所述終端設(shè)備執(zhí)行圖6所示的過程以使終端設(shè)備注冊(cè)到所述服務(wù)器。
如圖6所示,終端設(shè)備將IDA發(fā)送至所述服務(wù)器和所述客戶端設(shè)備,所述終端設(shè)備發(fā)送所述IDA的具體過程請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本應(yīng)用場(chǎng)景中不做贅述。
所述服務(wù)器對(duì)所述IDA進(jìn)行計(jì)算以生成XA,本應(yīng)用場(chǎng)景中所述XA的具體生成過程請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本應(yīng)用場(chǎng)景中不做贅述。
所述服務(wù)器將以生成的所述XA發(fā)送至所述終端設(shè)備,以使所述終端設(shè)備對(duì)所述XA進(jìn)行存儲(chǔ)。
所述終端設(shè)備存儲(chǔ)所述XA的具體過程,請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本應(yīng)用場(chǎng)景中不做贅述。
如圖5所示可知,在終端設(shè)備執(zhí)行完所述注冊(cè)階段以使所述終端設(shè)備注冊(cè)到所述服務(wù)器上后,即可執(zhí)行驗(yàn)證階段,所述驗(yàn)證階段的具體過程可參見圖7所示。
在驗(yàn)證階段,所述終端設(shè)備和所述服務(wù)器之間進(jìn)行驗(yàn)證數(shù)據(jù)的交互,具體的交互過程,請(qǐng)?jiān)斠妶D4所示的具體過程,在本應(yīng)用場(chǎng)景中不做贅述。
在圖7所示中,若所述服務(wù)器確定出所述終端設(shè)備已通過驗(yàn)證,則所述服務(wù)器即可將指示信息發(fā)送給所述客戶端設(shè)備,以使接收到所述指示信息的所述客戶端設(shè)備確定出所述終端設(shè)備已通過驗(yàn)證,在本應(yīng)用場(chǎng)景中,所述客戶端設(shè)備即可與已通過驗(yàn)證的終端設(shè)備之間進(jìn)行支付的操作。
在高速發(fā)展的信息化時(shí)代,采用本實(shí)施例所示的驗(yàn)證方法在基于日常產(chǎn)品和系統(tǒng)化設(shè)計(jì)的情況下,能夠配合到人們的習(xí)慣、便利性和日常生產(chǎn)。本實(shí)施例提供的基于一次性密碼認(rèn)證協(xié)議的動(dòng)態(tài)安全性邊界二維碼,不僅消除了密碼驗(yàn)證表的使用,同時(shí)由于信息化時(shí)代終端設(shè)備以及網(wǎng)絡(luò)的普遍遍及性,使得本實(shí)施例所示的方法具有廣泛的應(yīng)用范圍,而且在驗(yàn)證的過程中,用戶無需添置新的設(shè)備,則使得本實(shí)施例所示的方法具有非常高的性價(jià)比,能夠普及的應(yīng)用,可以消除現(xiàn)有技術(shù)所示的攜帶單獨(dú)硬件令牌的負(fù)擔(dān),還可以減少短信帶來的額外費(fèi)用。且本實(shí)施例所示的方法有效的提高了安全性,使用二維碼的終端設(shè)備的驗(yàn)證使原有用戶身份驗(yàn)證提高了方便性和便捷性。
圖3所示從硬件實(shí)體的角度對(duì)本實(shí)施例所提供的終端設(shè)備的結(jié)構(gòu)進(jìn)行說明,以下結(jié)合圖8所示從功能模塊角度對(duì)本實(shí)施例所提供的終端設(shè)備的具體結(jié)構(gòu)進(jìn)行詳細(xì)說明:
所述終端設(shè)備包括:
掃描單元801,用于掃描客戶端設(shè)備生成的二維碼,以使已掃描所述二維碼的所述終端設(shè)備注冊(cè)到服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
第一生成單元802,用于生成與所述終端設(shè)備對(duì)應(yīng)的第一注冊(cè)數(shù)據(jù);
第三發(fā)送單元803,用于將所述第一注冊(cè)數(shù)據(jù)發(fā)送給所述服務(wù)器,以使所述服務(wù)器將第二注冊(cè)數(shù)據(jù)發(fā)送給所述終端設(shè)備,所述第二注冊(cè)數(shù)據(jù)為所述服務(wù)器根據(jù)所述單向散列函數(shù)對(duì)所述第一注冊(cè)數(shù)據(jù)和預(yù)設(shè)密鑰進(jìn)行計(jì)算以生成的數(shù)據(jù),所述預(yù)設(shè)密鑰為所述服務(wù)器預(yù)先存儲(chǔ)的密鑰;
第一接收單元804,用于接收所述第二注冊(cè)數(shù)據(jù)。
第一記錄單元,用于記錄第一時(shí)間戳,所述第一時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間;
第二生成單元805,用于生成所述第一驗(yàn)證數(shù)據(jù),所述第一驗(yàn)證數(shù)據(jù)包括所述第一時(shí)間戳和所述第二注冊(cè)數(shù)據(jù),以使所述服務(wù)器確定所述第一驗(yàn)證數(shù)據(jù)滿足第一預(yù)設(shè)條件的情況下,生成所述第二驗(yàn)證數(shù)據(jù),所述第一預(yù)設(shè)條件為所述第一時(shí)間戳等于第二時(shí)間戳,所述第二時(shí)間戳為所述服務(wù)器檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間,所述第二驗(yàn)證數(shù)據(jù)包括第一子數(shù)據(jù)、第二子數(shù)據(jù)以及所述第二時(shí)間戳,其中,所述第一子數(shù)據(jù)為所述服務(wù)器根據(jù)所述單向散列函數(shù)對(duì)目標(biāo)隨機(jī)數(shù)、所述第一時(shí)間戳和所述第二時(shí)間戳進(jìn)行計(jì)算以生成的數(shù)據(jù),所述目標(biāo)隨機(jī)數(shù)為所述服務(wù)器隨機(jī)生成的數(shù)據(jù),所述第二子數(shù)據(jù)為所述服務(wù)器通過第一函數(shù)對(duì)第一參數(shù)進(jìn)行計(jì)算以生成的數(shù)據(jù),所述第一參數(shù)為所述服務(wù)器對(duì)所述目標(biāo)隨機(jī)數(shù)和所述第二注冊(cè)數(shù)據(jù)進(jìn)行異或運(yùn)算所生成的數(shù)據(jù)。
第一發(fā)送單元806,用于將第一驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器,以使所述服務(wù)器將第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,所述第二驗(yàn)證數(shù)據(jù)為所述服務(wù)器根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成的數(shù)據(jù);
第二接收單元807,用于接收所述第二驗(yàn)證數(shù)據(jù),所述第二驗(yàn)證數(shù)據(jù)包括第二時(shí)間戳,所述第二時(shí)間戳為所述服務(wù)器檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間;
第一判斷單元808,用于判斷所述第二驗(yàn)證數(shù)據(jù)是否滿足第二預(yù)設(shè)條件,所述第二預(yù)設(shè)條件為第一時(shí)間戳等于所述第二時(shí)間戳,所述第一時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間;
觸發(fā)單元809,用于若所述第一判斷單元判斷出所述第二驗(yàn)證數(shù)據(jù)滿足第二預(yù)設(shè)條件,則觸發(fā)執(zhí)行所述計(jì)算單元執(zhí)行根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù)的步驟。
計(jì)算單元810,用于根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
具體的,所述計(jì)算單元810包括:
第一計(jì)算模塊8101,用于通過第二函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)所包括的所述第二子數(shù)據(jù)進(jìn)行計(jì)算以生成第二參數(shù);
第二計(jì)算模塊8102,用于對(duì)所述第二參數(shù)和所述第二注冊(cè)數(shù)據(jù)通過異或運(yùn)算進(jìn)行計(jì)算以生成所述目標(biāo)隨機(jī)數(shù);
第三計(jì)算模塊8103,用于通過所述單向散列函數(shù)對(duì)所述目標(biāo)隨機(jī)數(shù)、所述第一時(shí)間戳以及所述第二時(shí)間戳進(jìn)行計(jì)算以生成第三參數(shù);
判斷模塊8104,用于判斷所述第三參數(shù)是否滿足第三預(yù)設(shè)條件,所述第三預(yù)設(shè)條件為所述第三參數(shù)等于所述第一子數(shù)據(jù);
獲取模塊8105,用于若所述判斷模塊判斷出所述第三參數(shù)滿足第三預(yù)設(shè)條件,則獲取第三時(shí)間戳,所述第三時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼開始的時(shí)間;
確定模塊8106,用于確定所述第三驗(yàn)證數(shù)據(jù)包括所述第三參數(shù)和所述第三時(shí)間戳,以使所述服務(wù)器在確定出所述第三驗(yàn)證數(shù)據(jù)滿足第四預(yù)設(shè)條件的情況下,生成所述指示信息,所述第四預(yù)設(shè)條件為所述第一時(shí)間戳和所述第三時(shí)間戳之間的差值小于或等于預(yù)設(shè)閾值,且所述第四預(yù)設(shè)條件還為所述第三參數(shù)和所述服務(wù)器所存儲(chǔ)的所述第二驗(yàn)證數(shù)據(jù)所包括的所述第一子數(shù)據(jù)相等。
第二發(fā)送單元811,用于將所述第三驗(yàn)證數(shù)據(jù)發(fā)送給所述服務(wù)器設(shè)備,以使所述服務(wù)器將指示信息發(fā)送給所述客戶端設(shè)備,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證。
圖8所示的終端設(shè)備執(zhí)行身份驗(yàn)證的方法的具體過程請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本實(shí)施例中不做贅述。
圖8所示的終端設(shè)備在執(zhí)行身份驗(yàn)證方法的具體過程所取得的有益效果的說明,請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本實(shí)施例中不做贅述。
圖2從硬件實(shí)體的角度對(duì)服務(wù)器的具體結(jié)構(gòu)進(jìn)行說明,以下結(jié)合圖9所示的實(shí)施例從功能模塊的角度對(duì)服務(wù)器的具體結(jié)構(gòu)進(jìn)行詳細(xì)說明:
所述服務(wù)器包括:
第二接收單元901,用于接收所述終端設(shè)備發(fā)送的與所述終端設(shè)備對(duì)應(yīng)的第一注冊(cè)數(shù)據(jù);
第二計(jì)算單元902,用于根據(jù)所述單向散列函數(shù)對(duì)所述第一注冊(cè)數(shù)據(jù)和預(yù)設(shè)密鑰進(jìn)行計(jì)算以生成第二注冊(cè)數(shù)據(jù),所述預(yù)設(shè)密鑰為所述服務(wù)器預(yù)先存儲(chǔ)的密鑰;
第二發(fā)送單元903,用于將所述第二注冊(cè)數(shù)據(jù)發(fā)送給所述終端設(shè)備。
第一接收單元904,用于接收終端設(shè)備發(fā)送的第一驗(yàn)證數(shù)據(jù),所述第一驗(yàn)證數(shù)據(jù)為所述終端設(shè)備注冊(cè)到所述服務(wù)器后所生成的用于進(jìn)行驗(yàn)證的數(shù)據(jù),所述終端設(shè)備通過掃描客戶端設(shè)備生成的二維碼注冊(cè)到所述服務(wù)器,所述二維碼由所述客戶端設(shè)備基于一次性密碼所生成;
記錄單元905,用于記錄第二時(shí)間戳,所述第二時(shí)間戳為所述服務(wù)器檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間;
判斷單元906,用于判斷所述第一驗(yàn)證數(shù)據(jù)是否滿足第一預(yù)設(shè)條件,所述第一驗(yàn)證數(shù)據(jù)包括第一時(shí)間戳和所述第二注冊(cè)數(shù)據(jù),所述第一時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼結(jié)束的時(shí)間,所述第一預(yù)設(shè)條件為所述第一時(shí)間戳等于第二時(shí)間戳;
觸發(fā)單元907,用于若所述判斷單元判斷出所述第一驗(yàn)證數(shù)據(jù)滿足所述第一預(yù)設(shè)條件,則觸發(fā)所述第一計(jì)算單元執(zhí)行根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第二驗(yàn)證數(shù)據(jù)的步驟。
第一計(jì)算單元908,用于根據(jù)單向散列函數(shù)對(duì)所述第一驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第二驗(yàn)證數(shù)據(jù);
具體的,所述第一計(jì)算單元908包括:
第一計(jì)算模塊9081,用于根據(jù)所述單向散列函數(shù)對(duì)所述目標(biāo)隨機(jī)數(shù)、所述第一時(shí)間戳和所述第二時(shí)間戳進(jìn)行計(jì)算以生成第一子數(shù)據(jù),所述目標(biāo)隨機(jī)數(shù)為所述服務(wù)器隨機(jī)生成的數(shù)據(jù);
第二計(jì)算模塊9082,用于對(duì)所述目標(biāo)隨機(jī)數(shù)和所述第二注冊(cè)數(shù)據(jù)進(jìn)行異或運(yùn)算以生成第一參數(shù);
第三計(jì)算模塊9083,用于通過第一函數(shù)對(duì)所述第一參數(shù)進(jìn)行計(jì)算以生成第二子數(shù)據(jù);
第一生成模塊9084,用于生成第二驗(yàn)證數(shù)據(jù),所述第二驗(yàn)證數(shù)據(jù)包括所述第一子數(shù)據(jù)、所述第二子數(shù)據(jù)以及所述第二時(shí)間戳。
第一發(fā)送單元909,用于將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述終端設(shè)備,以使所述終端設(shè)備根據(jù)所述單向散列函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)進(jìn)行計(jì)算以生成第三驗(yàn)證數(shù)據(jù);
第一接收單元910,用于接收所述終端設(shè)備發(fā)送的所述第三驗(yàn)證數(shù)據(jù),所述第三驗(yàn)證數(shù)據(jù)包括第三參數(shù)和第三時(shí)間戳,所述第三參數(shù)為所述終端設(shè)備通過所述單向散列函數(shù)對(duì)所述目標(biāo)隨機(jī)數(shù)、所述第一時(shí)間戳以及所述第二時(shí)間戳進(jìn)行計(jì)算以生成的參數(shù),所述目標(biāo)隨機(jī)數(shù)為所述終端設(shè)備對(duì)第二參數(shù)和所述第二注冊(cè)數(shù)據(jù)通過異或運(yùn)算進(jìn)行計(jì)算以生成的隨機(jī)數(shù),所述第二參數(shù)為所述終端設(shè)備通過第二函數(shù)對(duì)所述第二驗(yàn)證數(shù)據(jù)所包括的所述第二子數(shù)據(jù)進(jìn)行計(jì)算以生成的參數(shù),所述第三時(shí)間戳為所述終端設(shè)備檢測(cè)到所述終端設(shè)備掃描所述二維碼開始的時(shí)間;
生成單元911,用于根據(jù)所述第三驗(yàn)證數(shù)據(jù)生成指示信息,所述指示信息用于指示所述終端設(shè)備已通過驗(yàn)證;
具體的,所述生成單元911包括:
判斷模塊9111,用于判斷所述第三驗(yàn)證數(shù)據(jù)是否滿足第四預(yù)設(shè)條件,所述第四預(yù)設(shè)條件為所述第一時(shí)間戳和所述第三時(shí)間戳之間的差值小于或等于預(yù)設(shè)閾值,且所述第四預(yù)設(shè)條件還為所述第三參數(shù)和所述服務(wù)器所存儲(chǔ)的所述第二驗(yàn)證數(shù)據(jù)所包括的所述第一子數(shù)據(jù)相等;
第二生成模塊9112,用于若所述判斷模塊判斷出所述第三驗(yàn)證數(shù)據(jù)滿足所述第四預(yù)設(shè)條件,則生成所述指示信息。
第二發(fā)送單元912,用于將所述指示信息發(fā)送給所述客戶端設(shè)備。
圖9所示的服務(wù)器執(zhí)行身份驗(yàn)證的方法的具體過程請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本實(shí)施例中不做贅述。
圖9所示的服務(wù)器在執(zhí)行身份驗(yàn)證方法的具體過程所取得的有益效果的說明,請(qǐng)?jiān)斠妶D4所示的實(shí)施例,具體在本實(shí)施例中不做贅述。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。