本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體地,涉及一種基于瀏覽器的終端動態(tài)鎖定標記方法。
背景技術(shù):
目前所有的B/S系統(tǒng)基本上都在使用HTTP/HTTPS協(xié)議作為客戶終端瀏覽器與服務(wù)端之間的通信協(xié)議,該協(xié)議具有無狀態(tài)、無連接、簡單、方便的特點,導(dǎo)致了服務(wù)端側(cè)并不知道客戶終端的位置以及客戶終端的身份,由此為黑客的中間人攻擊、冒用用戶身份提供了便利和可能。
在客戶終端瀏覽器與服務(wù)端之間的通信過程中,客戶終端瀏覽器向服務(wù)端發(fā)一次請求,服務(wù)端響應(yīng)之后,本次連接即斷開了(即短連接方式);服務(wù)端不知道客戶終端位置和身份,也不知道是否該提供客戶終端所要求的服務(wù)。下次請求時再重新建立連接,標志請求歸屬的手段是會話標識session和本地cookies文本(cookies中文名稱為小型文本文件,指某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端上的數(shù)據(jù)或加密數(shù)據(jù),定義于RFC2109),這兩個臨時值都很容易被黑客截獲利用,從而達到冒充用戶的目的,用戶登錄流程安全及用戶個人信息安全受到極大的威脅。
技術(shù)實現(xiàn)要素:
針對前述現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種基于瀏覽器的終端動態(tài)鎖定標記方法,其在建立客戶終端與服務(wù)端的長連接之前,根據(jù)瀏覽器信息、登錄請求時間戳以及待建立長連接的連接標記符,對客戶終端瀏覽器進行臨時的鎖定標記,如此可使服務(wù)端在長連接通信過程中,對客戶終端的瀏覽器進行識別,并安全響應(yīng)對應(yīng)的業(yè)務(wù)數(shù)據(jù),進而可規(guī)避黑客的中間人攻擊,極大的提升了互聯(lián)網(wǎng)身份認入門的安全性和認證數(shù)據(jù)傳輸?shù)陌踩?,便于實際推廣和應(yīng)用。
本發(fā)明采用的技術(shù)方案,提供了一種基于瀏覽器的終端動態(tài)鎖定標記方法,包括如下步驟:S101.客戶終端向服務(wù)端長連接服務(wù)器發(fā)送包含瀏覽器標記符的登錄請求消息,所述瀏覽器標記符為使用登錄請求時間戳對該客戶終端瀏覽器的瀏覽器信息進行混編而得到的字符串;S102.服務(wù)端長連接服務(wù)器在接收到所述登錄請求消息后,從服務(wù)器本地的連接資源池中為該客戶終端分配可用的長連接賬戶,并使用所述瀏覽器標記符對所述長連接賬戶進行混編,得到連接標記符;S103.服務(wù)端長連接服務(wù)器在連接資源池中保存所述瀏覽器標記符和所述連接標記符及它們與所述長連接賬戶的對應(yīng)關(guān)系;S104.服務(wù)端長連接服務(wù)器向客戶終端發(fā)送包含所述長連接賬戶和連接標記密文的登錄請求響應(yīng)消息,所述連接標記密文為使用所述瀏覽器標記符對所述連接標記符進行數(shù)字簽名而得到的字符串;S105.客戶終端在接收到所述登錄請求響應(yīng)消息后,保存所述長連接賬戶和所述連接標記密文,然后使用所述長連接賬戶建立客戶終端與服務(wù)端之間的長連接,完成對客戶終端的動態(tài)鎖定標記。
優(yōu)化的,在所述步驟S101之前,還包括如下步驟:S100.客戶終端使用瀏覽器客戶端腳本語言讀取該客戶終端瀏覽器的瀏覽器信息。
優(yōu)化的,在所述步驟S101中,所述混編方式為雜湊算法。
優(yōu)化的,所述瀏覽器信息包含瀏覽器類型和瀏覽器版本號。
優(yōu)化的,所述登錄請求時間戳為預(yù)定發(fā)送所述登錄請求消息的毫秒級時間戳。
優(yōu)化的,在所述步驟S102中,從服務(wù)器本地的連接資源池中為該客戶終端分配可用的長連接賬戶的步驟包括如下:若所述連接資源池存在未分配的長連接賬戶,則直接從未分配的長連接賬戶中隨機選擇一個長連接賬戶分配給該客戶終端;若所述連接資源池不存在未分配的長連接賬戶且該連接資源池中的數(shù)據(jù)未滿,則在該連接資源池中新建一個長連接賬戶,然后將新建的長連接賬戶分配給該客戶終端;若所述連接資源池不存在未分配的長連接賬戶且該連接資源池中的數(shù)據(jù)已滿,則中止為該客戶終端分配可用的長連接賬戶。
優(yōu)化的,所述長連接賬戶為Socket長連接賬戶。
優(yōu)化的,在所述步驟S105之后,還包括如下步驟:在客戶終端與服務(wù)端之間的長連接通信中,將所述連接標記密文添加到交互消息的Http請求頭中。
綜上,采用本發(fā)明所提供的一種基于瀏覽器的終端動態(tài)鎖定標記方法,具有如下有益效果:(1)該方法在建立客戶終端與服務(wù)端的長連接之前,根據(jù)瀏覽器信息、登錄請求時間戳以及待建立長連接的連接標記符,對客戶終端瀏覽器進行臨時的鎖定標記,如此可使服務(wù)端在長連接通信過程中,對客戶終端的瀏覽器進行識別,并安全響應(yīng)對應(yīng)的業(yè)務(wù)數(shù)據(jù),進而可規(guī)避黑客的中間人攻擊;(2)可規(guī)避目前互聯(lián)網(wǎng)服務(wù)登錄流程中入口的安全問題,即服務(wù)端與瀏覽器的互不信任問題和服務(wù)端不知道客戶終端身份的問題,極大的提高了互聯(lián)網(wǎng)身份認證入門的安全性;(3)在一次認證發(fā)起到結(jié)束期間,通過在服務(wù)端與客戶終端之間建立了不可打斷的長連接,可規(guī)避黑客進行網(wǎng)絡(luò)截獲并中間人攻擊的可能性,極大的提升了認證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的基于瀏覽器的終端動態(tài)鎖定標記方法流程圖。
具體實施方式
以下將參照附圖,通過實施例方式詳細地描述本發(fā)明提供的基于瀏覽器的終端動態(tài)鎖定標記方法。在此需要說明的是,對于這些實施例方式的說明用于幫助理解本發(fā)明,但并不構(gòu)成對本發(fā)明的限定。
本文中術(shù)語“和/或”,僅僅是一種描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,A和/或B,可以表示:單獨存在A,單獨存在B,同時存在A和B三種情況,本文中術(shù)語“/和”是描述另一種關(guān)聯(lián)對象關(guān)系,表示可以存在兩種關(guān)系,例如,A/和B,可以表示:單獨存在A,單獨存在A和B兩種情況,另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對象是一種“或”關(guān)系。
實施例一
圖1示出了本發(fā)明提供的基于瀏覽器的終端動態(tài)鎖定標記方法流程圖。本實施例提供的所述基于瀏覽器的終端動態(tài)鎖定標記方法,包括如下步驟。
S101.客戶終端向服務(wù)端長連接服務(wù)器發(fā)送包含瀏覽器標記符的登錄請求消息,所述瀏覽器標記符為使用登錄請求時間戳對該客戶終端瀏覽器的瀏覽器信息進行混編而得到的字符串。
在所述步驟S101中,所述瀏覽器信息可以但不限于包含瀏覽器類型(例如IE瀏覽器、火狐瀏覽器、UC瀏覽器和360瀏覽器等)和瀏覽器版本號等信息。所述登錄請求時間戳為預(yù)定發(fā)送所述登錄請求消息的時間戳,其可以但不限于為精確到毫秒級的時間戳。在所述步驟S101之前,必須在客戶終端獲取客戶終端瀏覽器的瀏覽器信息,因此在所述步驟S101之前,還包括如下步驟:S100.客戶終端使用瀏覽器客戶端腳本語言讀取該客戶終端瀏覽器的瀏覽器信息。所述瀏覽器客戶端腳本語言可以但不限于為JS-JavaScrip語言(一種直譯式腳本語言,即是一種動態(tài)類型、弱類型、基于原型的語言,內(nèi)置支持類型,它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶終端的腳本語言,常用于給HTML網(wǎng)頁增加動態(tài)功能)。此外,在所述步驟S101中,所述混編方式可以但不限于為雜湊算法。所述雜湊算法又稱Hash函數(shù)(一種把任意長的輸入消息串變化成固定長的輸出串的一種函數(shù)),如此可以獲得字長固定的客戶終端瀏覽器標記符,以便后續(xù)進行數(shù)字簽名。
S102.服務(wù)端長連接服務(wù)器在接收到所述登錄請求消息后,從服務(wù)器本地的連接資源池中為該客戶終端分配可用的長連接賬戶,并使用所述瀏覽器標記符對所述長連接賬戶進行混編,得到連接標記符。
在所述步驟S102中,所述連接資源池為在客戶終端長連接服務(wù)端時所需要的長連接賬戶(包含賬號及對應(yīng)密碼)集合。所述長連接是本領(lǐng)域的常用術(shù)語,指在一個通訊連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包,并在連接保持期間,若沒有數(shù)據(jù)包發(fā)送,則需要雙方互發(fā)鏈路檢測包或心跳檢測包。在本實施例中,所述長連接為客戶終端通過賬號/密碼與服務(wù)端保持長時間連接的通信方式。優(yōu)化的,在所述步驟S102中,從服務(wù)器本地的連接資源池中為該客戶終端分配可用的長連接賬戶的步驟包括如下:若所述連接資源池存在未分配的長連接賬戶,則直接從未分配的長連接賬戶中隨機選擇一個長連接賬戶分配給該客戶終端;若所述連接資源池不存在未分配的長連接賬戶且該連接資源池中的數(shù)據(jù)未滿,則在該連接資源池中新建一個長連接賬戶,然后將新建的長連接賬戶分配給該客戶終端;若所述連接資源池不存在未分配的長連接賬戶且該連接資源池中的數(shù)據(jù)已滿,則中止為該客戶終端分配可用的長連接賬戶。此外,所述長連接賬戶為Socket長連接賬戶。由于所述Socket長連接具有不可打斷性,可以高效地保障客戶終端與服務(wù)端之間的通信安全。
S103.服務(wù)端長連接服務(wù)器在連接資源池中保存所述瀏覽器標記符和所述連接標記符及它們與所述長連接賬戶的對應(yīng)關(guān)系。
S104.服務(wù)端長連接服務(wù)器向客戶終端發(fā)送包含所述長連接賬戶和連接標記密文的登錄請求響應(yīng)消息,所述連接標記密文為使用所述瀏覽器標記符對所述連接標記符進行數(shù)字簽名而得到的字符串。
S105.客戶終端在接收到所述登錄請求響應(yīng)消息后,保存所述長連接賬戶和所述連接標記密文,然后使用所述長連接賬戶建立客戶終端與服務(wù)端之間的長連接,完成對客戶終端的動態(tài)鎖定標記。
在所述步驟S105之后,還包括如下步驟:在客戶終端與服務(wù)端之間的長連接通信中,將所述連接標記密文添加到交互消息的Http請求頭中。如此服務(wù)端可根據(jù)對Http請求頭中的所述連接標記密文進行校驗的結(jié)果,安全響應(yīng)對應(yīng)的業(yè)務(wù)數(shù)據(jù)。如此可使服務(wù)端在長連接通信過程中,對客戶終端的瀏覽器進行識別,規(guī)避黑客的中間人攻擊,極大的提升了互聯(lián)網(wǎng)身份認入門的安全性和認證數(shù)據(jù)傳輸?shù)陌踩?,便于實際推廣和應(yīng)用。
綜上,本實施例所提供的基于瀏覽器的終端動態(tài)鎖定標記方法,具有如下有益效果:(1)該方法在建立客戶終端與服務(wù)端的長連接之前,根據(jù)瀏覽器信息、登錄請求時間戳以及待建立長連接的連接標記符,對客戶終端瀏覽器進行臨時的鎖定標記,如此可使服務(wù)端在長連接通信過程中,對客戶終端的瀏覽器進行識別,并安全響應(yīng)對應(yīng)的業(yè)務(wù)數(shù)據(jù),進而可規(guī)避黑客的中間人攻擊;(2)可規(guī)避目前互聯(lián)網(wǎng)服務(wù)登錄流程中入口的安全問題,即服務(wù)端與瀏覽器的互不信任問題和服務(wù)端不知道客戶終端身份的問題,極大的提高了互聯(lián)網(wǎng)身份認證入門的安全性;(3)在一次認證發(fā)起到結(jié)束期間,通過在服務(wù)端與客戶終端之間建立了不可打斷的長連接,可規(guī)避黑客進行網(wǎng)絡(luò)截獲并中間人攻擊的可能性,極大的提升了認證數(shù)據(jù)傳輸?shù)陌踩浴?/p>
如上所述,可較好地實現(xiàn)本發(fā)明。對于本領(lǐng)域的技術(shù)人員而言,根據(jù)本發(fā)明的教導(dǎo),設(shè)計出不同形式的基于瀏覽器的終端動態(tài)鎖定標記方法并不需要創(chuàng)造性的勞動。在不脫離本發(fā)明的原理和精神的情況下對這些實施例進行變化、修改、替換、整合和變型仍落入本發(fā)明的保護范圍內(nèi)。