欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種安全的雙向ssl認證方法和中間件的制作方法

文檔序號:8226047閱讀:397來源:國知局
一種安全的雙向ssl認證方法和中間件的制作方法
【技術領域】
[0001]本發(fā)明涉及信息安全領域,特別是涉及一種安全的雙向SSL認證方法和中間件。
【背景技術】
[0002]雙向SSL(Secure Socket Layer,安全套接字層)認證用于為網(wǎng)絡通信提供安全及數(shù)據(jù)完整性保障,防止網(wǎng)絡傳輸數(shù)據(jù)不會被截取和篡改。
[0003]現(xiàn)有技術中,在某些瀏覽器(例如,F(xiàn)ireFox瀏覽器)中通過PKCS# 11創(chuàng)建雙向SSL時,PIN碼輸入框由瀏覽器彈出,不受中間件的控制,用戶在PIN碼輸入框中輸入的PIN碼有可能被鍵盤鉤子勾取并復制,因而存在泄漏PIN碼的風險,無法保證雙向SSL認證的安全性。

【發(fā)明內容】

[0004]本發(fā)明提供了一種安全的雙向SSL認證方法和中間件,以解決現(xiàn)有技術中PIN碼易泄漏的風險。
[0005]本發(fā)明提供了一種安全的雙向SSL認證方法,包括以下步驟:
[0006]S1、中間件等待被應用進程調用,當C_GetTokenInfo接口被所述應用進程調用時,執(zhí)行步驟S2 ;當C_Login接口被所述應用進程調用時,執(zhí)行步驟S5 ;
[0007]S2、所述中間件判斷所述應用進程是否為預設進程,如果是,則執(zhí)行步驟S3 ;否則,執(zhí)行步驟S4;
[0008]S3、所述中間件將令牌內的標識位的值修改為第二預設值,將所述令牌內的標識位的值輸出給所述應用進程,向所述應用進程發(fā)送成功消息,并返回步驟Si;
[0009]S4、所述中間件獲取令牌內的標識位的值,向所述應用進程輸出令牌內的標識位的值,向所述應用進程發(fā)送成功消息,并返回步驟Si;
[0010]S5、所述中間件判斷所述應用進程是否為預設進程,如果是,則執(zhí)行步驟S6 ;否貝1J,執(zhí)行步驟S7;
[0011]S6、所述中間件將第二預設值作為令牌內的標識位的值輸出給所述應用進程,彈出PIN碼輸入框,通過所述PIN碼輸入框獲取用戶輸入的PIN碼,將所述PIN碼發(fā)送給硬件設備,接收所述硬件設備返回的驗證結果,對所述驗證結果進行判斷,如果是PIN碼正確,則將會話信息中的登錄狀態(tài)設置為已登錄,向應用進程發(fā)送成功消息,并返回步驟SI ;如果是PIN碼錯誤,則向所述應用進程發(fā)送失敗消息,并返回步驟SI ;
[0012]S7、所述中間件獲取用戶輸入的PIN碼,將所述PIN碼發(fā)送給硬件設備,接收所述硬件設備返回的驗證結果,對所述驗證結果進行判斷,如果是PIN碼正確,則將會話信息中的登錄狀態(tài)設置為已登錄,向應用進程發(fā)送成功消息,并返回步驟SI ;如果是PIN碼錯誤,則向所述應用進程發(fā)送失敗消息,并返回步驟SI。
[0013]本發(fā)明還提供了一種中間件,包括:
[0014]第一判斷模塊,用于在C_GetTokenInfo接口被應用進程調用時,判斷所述應用進程是否為預設進程;
[0015]第一處理模塊,用于在所述第一判斷模塊判斷出所述應用進程為預設進程時,將令牌內的標識位的值修改為第二預設值,將所述令牌內的標識位的值輸出給所述應用進程,向所述應用進程發(fā)送成功消息;
[0016]第二處理模塊,用于在所述第一判斷模塊判斷出所述應用進程不是預設進程時,獲取令牌內的標識位的值,向所述應用進程輸出令牌內的標識位的值,向所述應用進程發(fā)送成功消息;
[0017]第二判斷模塊,用于接口被所述應用進程調用時,判斷所述應用進程是否為預設進程;
[0018]第三處理模塊,用于在所述第二判斷模塊判斷出所述應用進程為預設進程時,將第二預設值作為令牌內的標識位的值輸出給所述應用進程,彈出PIN碼輸入框,通過所述PIN碼輸入框獲取用戶輸入的PIN碼,將所述PIN碼發(fā)送給硬件設備,接收所述硬件設備返回的驗證結果,對所述驗證結果進行判斷,如果是PIN碼正確,則將會話信息中的登錄狀態(tài)設置為已登錄,向應用進程發(fā)送成功消息;如果是PIN碼錯誤,則向所述應用進程發(fā)送失敗消息;
[0019]第四處理模塊,用于在所述第二判斷模塊判斷出所述應用進程不是預設進程時,獲取用戶輸入的PIN碼,將所述PIN碼發(fā)送給硬件設備,接收所述硬件設備返回的驗證結果,對所述驗證結果進行判斷,如果是PIN碼正確,則將會話信息中的登錄狀態(tài)設置為已登錄,向應用進程發(fā)送成功消息;如果是PIN碼錯誤,則向所述應用進程發(fā)送失敗消息。
[0020]本發(fā)明達到的有益效果:通過修改中間件被預設進程調用時的接口處理邏輯,確保建立雙向SSL時彈出的PIN碼輸入框都由中間件控制,進而防止用戶在PIN碼輸入框中輸入的PIN碼被竊取,提高雙向SSL認證的安全性。
【附圖說明】
[0021]圖1為本發(fā)明實施例中的一種安全的雙向SSL認證系統(tǒng)結構圖;
[0022]圖2和圖3為本發(fā)明實施例中的一種安全的雙向SSL認證方法流程圖;
[0023]圖4為本發(fā)明實施例中的一種中間件的結構示意圖。
【具體實施方式】
[0024]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0025]本發(fā)明實施例提供了一種安全的雙向SSL認證方法,應用于包括主機以及與該主機連接的硬件設備的系統(tǒng)中,如圖1所示,該主機中包括中間件和應用進程,應用進程通過調用中間件的接口,進行雙向SSL認證,具體流程如圖2和圖3所示,包括以下步驟:
[0026]步驟101,中間件等待被應用進程調用,當C_GetTokenInfo接口被應用進程調用時,執(zhí)行步驟102 ;當C_Login接口被應用進程調用時,執(zhí)行步驟106 ;當C_Sign接口被應用進程調用時,執(zhí)行步驟118。
[0027]步驟102,中間件獲取應用進程的進程名。
[0028]具體地,中間件通過調用GetModuleFileName函數(shù),獲取應用進程的全路徑,從全路徑中獲取進程名。
[0029]步驟103,中間件根據(jù)獲取到的進程名,判斷應用進程是否為預設進程,如果是,則執(zhí)行步驟104 ;否則,執(zhí)行步驟105。
[0030]其中,預設進程可以為Firefox瀏覽器進程,也可以為其他瀏覽器進程。
[0031]步驟104,中間件將進程信息設置為第一預設值,將令牌內的標識位的值修改為第二預設值,將第二預設值作為令牌內的標識位的值輸出給應用進程,向應用進程發(fā)送成功消息,并返回步驟101。
[0032]其中,進程信息用于記錄調用中間件接口的進程類型,該進程信息為第一預設值時,表示調用中間件接口的進程為預設進程;該進程信息為其他值時,表示調用中間件接口的進程為其他進程。令牌內的標識位用于記錄是否需要登錄令牌,該標識位的值為第二預設值時,表示不需要登錄令牌;該標識位的值為其他值時,表示需要登錄令牌。本實施例中,第二預設值為0x00000100。
[0033]步驟105,中間件獲取令牌內的標識位的值,向應用進程輸出令牌內的標識位的值,向應用進程發(fā)送成功消息,并返回步驟101。
[0034]步驟106,中間件判斷進程信息是否為第一預設值,如果是,則執(zhí)行步驟107 ;否貝1J,執(zhí)行步驟113。
[0035]步驟107,中間件將第二預設值作為令牌內的標識位的值輸出給應用進程。
[0036]步驟108,中間件彈出PIN碼輸入框,通過PIN碼輸入框獲取用戶輸入的PIN碼,將該PIN碼發(fā)送給硬件設備,接收硬件設備返回的驗證結果。
[0037]步驟109,中間件對接收到的驗證結果進行判斷,如果是PIN碼正確,則執(zhí)行步驟110 ;如果是PIN碼錯誤,則執(zhí)行步驟111 ;如果是PIN碼鎖死,則執(zhí)行步驟112。
[0038]步驟110,中間件將會話信息中的登錄狀態(tài)設置為已登錄,向應用進程發(fā)送成功消息,并返回步驟101。
[0039]步驟111,中間件從令牌信息中獲取PIN碼重試次數(shù),向應用進程輸出PIN碼重試次數(shù),并返回步驟108。
[0040]步驟112,中間件向應用進程發(fā)送鎖死消息,并返回步驟101。
[0041]步驟113,中間件獲取用戶輸入的PIN碼,將該PIN碼發(fā)送給硬件設備,接收硬件設備返回的驗證結果。
[0042]步驟114,中間件對接收到的驗證結果進行判斷,如果是PIN碼正確,則執(zhí)行步驟115 ;如果是PIN碼錯誤,則執(zhí)行步驟116 ;如果是PIN碼鎖死,則執(zhí)行步驟1
當前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
登封市| 双柏县| 双城市| 蒙山县| 嘉兴市| 青阳县| 高尔夫| 连云港市| 左云县| 中西区| 碌曲县| 乡宁县| 临邑县| 黎平县| 二连浩特市| 绍兴市| 内黄县| 溧水县| 昌邑市| 武邑县| 奉化市| 大冶市| 万年县| 嘉黎县| 富裕县| 宣恩县| 民县| 运城市| 南江县| 溧水县| 宜州市| 夏邑县| 合阳县| 禹城市| 冀州市| 合山市| 通化县| 苏尼特右旗| 永仁县| 东台市| 枝江市|