TWI437868B - A method, system and device for dynamic password verification - Google Patents
A method, system and device for dynamic password verification Download PDFInfo
- Publication number
- TWI437868B TWI437868B TW99118742A TW99118742A TWI437868B TW I437868 B TWI437868 B TW I437868B TW 99118742 A TW99118742 A TW 99118742A TW 99118742 A TW99118742 A TW 99118742A TW I437868 B TWI437868 B TW I437868B
- Authority
- TW
- Taiwan
- Prior art keywords
- dynamic password
- authentication server
- mobile device
- code
- algorithm
- Prior art date
Links
Landscapes
- Telephonic Communication Services (AREA)
- Mobile Radio Communication Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Telephone Function (AREA)
Description
本發明係關於網路通信領域,尤其是,一種動態密碼驗證的方法及裝置。
目前,在網路身份認證技術中最常用的是密碼認證,通常密碼認證可以分為靜態密碼和動態密碼。相對於靜態密碼來說,動態密碼具有“一次一密,一次有效”的特點,是以其安全性高出許多。動態密碼的載體通常可由硬體和軟體來實現,相對於個人移動設備,例如筆記本電腦、手機或PDA等設備來說,由於具有用戶使用方便,安全性高等特點,是以現有大多數軟體實現的動態密碼都是基於個人移動設備的,但相應的通過硬體設備來實現會有較高的成本。
基於個人移動設備的軟體動態密碼的實現系統通常由標記軟體與認證伺服器組成,而這類系統最重要的關健問題是:如何在標記軟體與認證伺服器之間安全共用標記種子,這裏的標記種子是由標記軟體與認證伺服器秘密共用,是使得標記軟體與認證伺服器同步產生相同動態密碼的關鍵所在。
在現有技術中,用戶可以首先在移動設備中安裝標記軟體,然後再單獨獲取到一個包含標記種子的檔案,導入到標記軟體中;另一種方法是在每一個標記軟體下載前都包含一個惟一的標記種子,用戶在下載後可以直接安裝使用標記種子;或者是由移動設備與認證伺服器之間通過一系列即時的消息互動,以協商獲得標記種子。
從上述現有技術的方案可以看出,現有技術的安全性得不到保障,如果在下載過程中駭客獲取到該標記軟體,就可以獲得相應的標記種子,那麼該用戶就毫無秘密可言;同時,如果移動設備不支援聯網,那麼其與認證伺服器進行即時消息互動就相當困難,而且移動設備在與認證伺服器之間進行即時消息互動時,也會產生一系列的流量費用需要用戶承擔,這樣也增加了用戶的負擔和認證成本。
本發明實施例提供了一種動態密碼驗證的方法、系統及裝置,能夠提高身份認證的安全性,而且簡單易用;移動設備與認證伺服器之間也不會產生任何的消息互動,不會造成額外的流量費用,降低了用戶負擔和認證成本。
本發明實施例提供了一種動態密碼驗證的方法,所述方法包括:移動設備利用標記軟體產生初始碼,並將所產生的初始碼通過用戶輸入介面傳遞到認證伺服器;當所述初始碼驗證通過後,所述移動設備按照DH(Diffie-Hellman)演算法來計算得到當前的動態密碼,並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器;所述認證伺服器根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼;所述認證伺服器將自身所產生的動態密碼與所述移動設備所產生的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確。
所述初始碼驗證的過程,具體包括:所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼;所述移動設備獲得所述認證伺服器產生的確認碼,並按照與所述認證伺服器相同的演算法根據其產生的初始碼計算得到所述移動設備自身的確認碼;所述移動設備比較所得到的自身的確認碼和所述認證伺服器所產生的確認碼,來驗證所述移動設備輸入的初始碼是否正確。
所述移動設備按照DH演算法來計算得到當前的動態密碼,具體包括:所述移動設備根據其自身的DH私鑰通過DH演算法來計算得到其自身的DH密鑰;對所得到的自身的DH密鑰通過哈希演算法來得到標記種子;將所得到的標記種子和當前時間值通過預設的演算法處理後,得到當前的動態密碼。
所述認證伺服器根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼,具體包括:所述認證伺服器根據所接收到的初始碼解析得到所述移動設備的DH公鑰;根據所得到的DH公鑰計算得到所述移動設備的DH密鑰,並根據所獲得的DH密鑰按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼。
在所述驗證所述移動設備所產生的動態密碼是否正確的過程中,所述方法還包括:若在指定的時間偏差範圍內,所述認證伺服器產生的動態密碼與所述移動設備所產生的動態密碼一致,則判斷驗證正確。
所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼,具體包括:所述認證伺服器產生亂數字串,將所產生的亂數字串和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;將所得到的校驗碼和所產生的亂數字串組合後產生確認碼。
所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼,具體包括:所述認證伺服器產生一個隨機的DH私鑰,根據所產生的DH私鑰按照DH演算法來計算得到相應的DH公鑰;將計算所得到的DH公鑰和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;將所得到的校驗碼和計算所得到的DH公鑰組合後產生確認碼。
所述移動設備按照DH演算法來計算得到當前的動態密碼,並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器,具體包括:所述移動設備按照DH演算法來計算得到以一串數位表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的特定數位;所述移動設備根據所述挑戰策略,將所述當前動態密碼中的特定數位通過用戶輸入介面傳遞到所述認證伺服器;或,所述移動設備按照DH演算法來計算得到以多串數位表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的某一串數字;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應串的數位通過用戶輸入介面傳遞到所述認證伺服器;或,所述移動設備按照DH演算法來計算得到以數位點陣式表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中某個點陣式座標所對應的數字串;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應點陣式座標所對應的數字串通過用戶輸入介面傳遞到所述認證伺服器。
本發明具體實施例還提供了一種動態密碼驗證的系統,包括:移動設備,用於利用標記軟體產生初始碼,在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼;輸入介面裝置,用於接收所述初始碼和所述動態密碼,並將所接收的初始碼和動態密碼傳遞到所述認證伺服器;認證伺服器,用於根據接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所接收到的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確。
所述認證伺服器進一步對所接收到的初始碼進行預設的演算法處理,產生確認碼;所述移動設備進一步用於獲得所述認證伺服器產生的確認碼,並按照與所述認證伺服器相同的演算法根據自身產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述認證伺服器產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。
本發明具體實施例還提供了一種移動設備,包括:初始碼產生單元,用於利用標記軟體產生初始碼;其中,所述初始碼還通過用戶輸入介面傳遞到認證伺服器中;動態密碼產生單元,用於在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼;其中,所述當前的動態密碼還通過用戶輸入介面傳遞到認證伺服器中。
該移動設備進一步包括:確認碼驗證單元,用於獲得認證伺服器所產生的確認碼,並按照與所述認證伺服器相同的演算法根據所述初始碼產生單元產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述認證伺服器產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。
本發明具體實施例還提供了一種認證伺服器,包括:動態密碼驗證單元,用於根據所述認證伺服器所接收到的初始碼,按照與所述動態密碼產生單元相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所輸入的動態密碼進行比較,來驗證所述動態密碼產生單元所產生的動態密碼是否正確。
該認證伺服器進一步包括:確認碼產生單元,設定在所述認證伺服器中,用於對所述認證伺服器所接收到的初始碼進行預設的演算法處理,產生確認碼。
由上述所提供的技術方案可以看出,首先移動設備利用標記軟體產生初始碼,並將所產生的初始碼通過用戶輸入介面傳遞到認證伺服器;當所述初始碼驗證通過後,所述移動設備按照DH(Diffie-Hellman)演算法來計算得到當前的動態密碼,並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器;所述認證伺服器根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼;所述認證伺服器將自身所產生的動態密碼與所述移動設備輸入的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確。通過以上技術方案的實施,就可以提高身份認證的安全性,而且簡單易用;同時,移動設備與認證伺服器之間也不會產生任何的消息互動,不會造成額外的流量費用,降低了用戶負擔和認證成本。
為讓本發明之上述及其他目的、特徵及優點能更明顯易懂,下文特舉本發明之較佳實施例,並配合所附圖式,作詳細說明如下:本發明實施例提供了一種動態密碼驗證的方法及裝置,利用DH(Diffie-Hellman)密鑰交換演算法,通過公開交換一些演算法參數,安全的在兩個實體間共用一個相同的密鑰,從而實現對動態密碼的驗證,提高身份認證的安全性,而且簡單易用;同時,由於移動設備與認證伺服器之間不會產生任何直接的消息互動,這樣就不會造成額外的流量費用,進而降低了用戶負擔和認證成本。
第一實施例:
為更好的描述本發明實施例,現結合附圖對本發明的具體實施例進行說明,如第1圖所示為本發明第一實施例所提供動態密碼驗證方法的流程示意圖,所述方法包括:步驟11:產生初始碼,並將該初始碼傳遞到認證伺服器。
在本步驟中,首先移動設備利用其下載的標記軟體來產生初始碼,然後將所產生的初始碼通過用戶輸入介面傳遞到認證伺服器中。
上述移動設備利用標記軟體產生的初始碼可以是由一串數位和/或字母組成的,具體可以是移動設備上產生的DH公鑰,該DH公鑰可以通過如下方式來獲得:首先移動設備通過標記軟體產生移動設備私有的DH私鑰,然後利用該DH私鑰通過DH演算法來計算對應的DH公鑰。
另外,在所生成的初始碼中還可以包含版本號資訊,該版本號資訊指的是初始化過程中硬編碼到移動設備中的版本號。
在具體實現過程中,還可以對所得到的初始碼進行多進制的編碼表示,例如對初始碼進行32進制的編碼表示,這樣是為了有效減少初始碼的輸入字元,方便將所產生的初始碼在網頁上輸入。
步驟12:當初始碼驗證通過後,按照DH演算法來產生當前的動態密碼,並將該動態密碼傳遞到認證伺服器中。
在本步驟中,當上述所產生的初始碼驗證通過後,所述移動設備就可以按照DH(Diffie-Hellman)演算法來計算得到當前的動態密碼,然後再並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器中。
在具體實現過程中,初始碼驗證的過程可以為:首先認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼;然後移動設備獲得所述認證伺服器產生的確認碼,並按照與所述認證伺服器相同的演算法根據其產生的初始碼計算得到所述移動設備自身的確認碼;再比較所得到的自身的確認碼和所述認證伺服器所產生的確認碼,來驗證所述移動設備輸入的初始碼是否正確。上述預設的演算法處理可以是由操作人員預先規定的演算法策略,例如可以設定初始碼的前四位為確認碼,或初始碼的後兩位為確認碼。
另外,在上述認證伺服器產生確認碼的過程中,還可以由認證伺服器產生亂數字串,再將所產生的亂數字串和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;然後將所得到的校驗碼和所產生的亂數字串組合後產生確認碼。這樣就可以使初始碼驗證的過程更加的準確和安全。
或者,在上述認證伺服器產生確認碼的過程中,由認證伺服器首先產生一個隨機的DH私鑰,並根據所產生的DH私鑰按照DH演算法來計算得到相應的DH公鑰;再將計算所得到的DH公鑰和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;將所得到的校驗碼和計算所得到的DH公鑰組合後產生確認碼。這樣也可以使初始碼驗證的過程更加的準確和安全。
另外,在具體實現過程中,移動設備按照DH演算法來計算得到當前的動態密碼的過程可以是:首先移動設備根據其自身的DH私鑰通過DH演算法來計算得到其自身的DH密鑰;然後對所得到的自身的DH密鑰通過哈希演算法來得到相應的標記種子;再將所得到的標記種子和當前時間值通過預設的演算法處理後,得到當前的動態密碼。同樣,該預設的演算法處理也可以是由操作人員預先規定的演算法策略,例如將標記種子和當前時間值相乘或相加來得到相應的動態密碼。
步驟13:認證伺服器根據所接收到的初始碼來產生自身的動態密碼。
在本步驟中,所述認證伺服器可以根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼。
在具體實現過程中,認證伺服器得到自身動態密碼的過程可以是:認證伺服器根據所接收到的初始碼解析得到所述移動設備的DH公鑰;然後根據所得到的DH公鑰計算得到所述移動設備的DH密鑰,並根據所獲得的DH密鑰按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼。
步驟14:比較自身所產生的動態密碼和移動設備所產生的動態密碼,來驗證移動設備所產生的動態密碼是否正確。
在本步驟中,所述認證伺服器將自身所產生的動態密碼與所述才所產生的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確。在具體實現過程中,由於移動設備顯示的時間和認證伺服器的時間可能存在一定的偏差,故可以設定在指定的時間偏差範圍內,若認證伺服器產生的動態密碼與移動設備所產生的動態密碼一致,則依然可以判斷驗證正確,從而提高驗證的科學性。
另外,在具體實現過程中,還可以根據移動設備所產生的動態密碼表達方式的不同,在認證伺服器中增加設定相應的挑戰策略,從而進一步提高動態密碼驗證的安全性,具體來說:若移動設備按照DH演算法來計算得到以一串數位表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的特定數位;所述移動設備根據所述挑戰策略,將所述當前動態密碼中的特定數位通過用戶輸入介面傳遞到所述認證伺服器;然後認證伺服器就可以結合所產生的挑戰策略來驗證移動設備所產生的動態密碼是否正確。
除了以上所述的表達方式外,若移動設備按照DH演算法來計算得到以多串數位表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的某一串數字;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應串的數位通過用戶輸入介面傳遞到所述認證伺服器;然後認證伺服器就可以結合所產生的挑戰策略來驗證移動設備所產生的動態密碼是否正確。
另外,除上述表達方式外,若移動設備按照DH演算法來計算得到以數位點陣式表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中某個點陣式座標所對應的數字串;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應點陣式座標所對應的數字串通過用戶輸入介面傳遞到所述認證伺服器;然後認證伺服器就可以結合所產生的挑戰策略來驗證移動設備所產生的動態密碼是否正確。
通過以上第一實施例的技術方案,就可以提高身份認證的安全性,而且簡單易用;同時,移動設備與認證伺服器之間也不會產生任何的消息互動,不會造成額外的流量費用,從而降低了用戶負擔和認證成本。
舉例來說,如第2圖所示為本第一實施例所舉出的移動設備和認證伺服器之間驗證動態密碼的信令互動示意圖,第2圖中:
1、初始化過程。首先認證伺服器確定使用的Diffie-Hellman全局公開量,並隨機選擇自身的Diffie-Hellman私鑰,再計算得到對應的Diffie-Hellman公鑰;然後再硬編碼Diffie-Hellman全局公開量、認證伺服器的Diffie-Hellman公鑰到移動設備中去。這裏為了便於管理移動設備中的認證伺服器Diffie-Hellman公鑰,也對其硬編碼一個版本號。
2、移動設備產生初始碼。在進行初始化操作時,移動設備會產生一串由數位、字母表示的初始碼,其組成如下:
初始碼=32進制表示(版本號+移動設備的Diffie-Hellman公鑰)
其中,版本號指在初始化過程中硬編碼到移動設備中的版本號,移動設備的Diffie-Hellman公鑰是這樣獲得:首先根據DH演算法產生移動設備私有的Diffie-Hellman私鑰,然後就可計算其對應的Diffie-Hellman公鑰。
另外,在上述第1步的初始化過程中,認證伺服器也可以不再預先產生認證伺服器私鑰和公鑰,也不硬編碼認證伺服器的公鑰到移動設備中去,同時也取消硬編碼的版本號。此時,移動設備產生的初始碼的含義就表示為如下:
初始碼=32進制表示(移動設備的Diffie-Hellman公鑰)
另外,在得到上述初始碼後,還可以對其進行32進制編碼表示,這樣可以有效地減少用戶輸入長度,便於用戶在網頁上輸入。例如,假設32進制的表示關係如下表1所示:
那麼,初始碼的32進制表示就可以為:(14803)10=(39D3)16=(EEJ)32
當然,也可以使用更高進制的描述,從而有效地減少初始碼需要輸入的字元,方便操作。
3、根據移動設備產生的初始碼,通過網頁Web頁面輸入傳遞到認證伺服器。在具體實現過程中,可以由用戶來手動輸入,也可以指定相應的裝置來按照策略輸入。
4、為了校驗所輸入的初始碼是正確的,認證伺服器可以產生一個確認碼,回顯給移動設備,該確認碼的定義可以用如下表示:
確認碼=演算法處理(初始碼)
具體是根據用戶輸入的初始碼,經過預設的演算法處理後得到的一個簡短的數字串。這裏,預設的演算法處理可以是由操作人員預先規定的演算法策略,例如可以設定初始碼的前四位為確認碼,或初始碼的後兩位為確認碼,為了考慮確認碼輸入的方便性,確認碼一般可以設定成4位元的數字串。
另外,為了進一步增進安全性,可對上述確認碼的生成過程進行相應的改進,具體來說,可以修改確認碼的定義為:
確認碼=認證伺服器亂數字串+校驗碼
上述的校驗碼=演算法處理(用戶輸入的初始碼+認證伺服器亂數字串)
上述認證伺服器亂數字串是一個6位元以上的數字串,它的作用是用來在生成標記種子過程中增加來自認證伺服器的隨機性;而校驗碼的作用是驗證用戶輸入初始碼、認證伺服器亂數字串的正確性,它一般是2到4位元數字串。
或者,還可以修改確認碼的定義為:
確認碼=32進制表示(認證伺服器Diffie-Hellman公鑰+校驗碼)
校驗碼=演算法處理(用戶輸入的初始碼+認證伺服器Diffie-Hellman公鑰)
上述認證伺服器Diffie-Hellman公鑰是:認證伺服器首先產生一隨機的Diffie-Hellman私鑰,再按照Diffie-Hellman演算法計算得到相應的DH公鑰。
同樣,上述校驗碼的作用是驗證用戶輸入初始碼、認證伺服器亂數字串的正確性,它一般是2到4位元數字串。
5、將所產生的確認碼輸入傳遞到移動設備中去。
6、驗證確認碼,並產生動態密碼。
具體來說,移動設備首先獲得認證伺服器所產生的確認碼;再按照與認證伺服器相同的DH演算法,並根據之前的初始碼計算移動設備自身的確認碼;再將它與認證伺服器所產生的確認碼進行比較;如果不一致,則驗證失敗,提示所輸入的初始碼錯誤,並退出流程,如果一致,則驗證成功,那麼移動設備就可以按照Diffie-Hellman演算法來計算相應的標記種子,並產生當前的動態密碼。
具體計算動態密碼的過程可以為:
首先計算移動設備的DH密鑰,具體來說,Diffie-Hellman密鑰=Diffie-Hellman演算法(移動設備的Diffie-Hellman私鑰+已預先硬編碼的認證伺服器Diffie-Hellman公鑰);
然後,標記種子=哈希演算法(Diffie-Hellman密鑰);上述的哈希演算法可以選取MD5、SHA256等標準哈希演算法來進行計算。
另外,若在步驟4中,認證伺服器產生亂數字串,則移動設備首先通過驗證校驗碼確保移動設備與認證伺服器交換正確的初始碼、認證伺服器亂數字串,驗證通過後,該標記種子的生成演算法將改變為如下:
標記種子=哈希演算法(Diffie-Hellman密鑰+認證伺服器亂數字串)
另外,若在步驟4中,若認證伺服器產生認證伺服器DH公鑰,則移動設備首先通過驗證校驗碼確保移動設備與認證伺服器交換正確的初始碼、認證伺服器Diffie-Hellman公鑰,則驗證通過後,標記種子的生成演算法將改變為如下:
Diffie-Hellman密鑰=Diffie-Hellman演算法(移動設備的Diffie-Hellman私鑰+認證伺服器Diffie-Hellman公鑰)
標記種子=哈希演算法(Diffie-Hellman密鑰)
在通過上述各種方式得到標記種子後,就可以計算移動設備當前的動態密碼,一般可以是6到8位元的純數字,具體來說就是:
動態密碼=演算法處理(標記種子+當前時間值)
具體可以將標記種子與時間值進行預設的演算法處理,以得到一串純數位。該預設的演算法處理也可以是由操作人員預先規定的演算法策略,例如將標記種子和當前時間值相乘或相加來得到相應的動態密碼。
7、將移動設備產生的動態密碼,再通過Web頁面輸入傳遞到認證伺服器。
8、認證伺服器驗證動態密碼是否正確。
首先,認證伺服器根據之前獲得的初始碼,解析得到移動設備的Diffie-Hellman公鑰;然後就可以計算得到一Diffie-Hellman密鑰,該密鑰必然與在步驟6中移動設備計算得到的Diffie-Hellman密鑰一致;在得到Diffie-Hellman密鑰後,認證伺服器使用步驟6中描述的與移動設備相同的DH演算法來得到標記種子和自身的動態密碼;然後將所得到的自身的動態密碼與移動設備產生的動態密碼進行比較,就可以校驗移動設備所產生的動態密碼是否正確。
另外,由於移動設備上顯示的時間與認證伺服器的時間可能存在偏差,是以在具體實現過程中,可以設定在一定的時間偏差範圍內,若認證伺服器產生的動態密碼與移動設備產生的動態密碼一致,也可以視為驗證正確;上述一定的時間偏差範圍可以是1~2分鐘,具體可以由操作人員來設定。
另外,在本第一實施例所舉出的例子中,還可以根據移動設備所產生的動態密碼表達方式的不同,在認證伺服器中增加設定相應的挑戰策略,從而進一步提高動態密碼驗證的安全性,舉例來說:如第3圖所示為認證伺服器產生挑戰策略的一個信令互動示意圖,第3圖中:第一步:移動設備產生動態密碼。一般為6位元數字,如:528639。
第二步:認證伺服器產生挑戰策略,提示用戶輸入移動設備顯示的某些數位。例如:當前移動設備顯示的是:528639;認證伺服器產生挑戰:“請輸入第1,3,5,6個數位”;用戶只有正確輸入“5839”這4個數字才有可能驗證正確。
第三步:用戶根據認證伺服器的提示,輸入相應的動態密碼。
第四步:認證伺服器結合之前的挑戰策略,按照本第一實施例所述的方法來驗證用戶的動態密碼是否正確。
第五步:顯示驗證結果。
如第4圖所示為認證伺服器產生挑戰策略的另一個信令互動示意圖,第4圖中:第一步:移動設備不是產生6位元的純數位,而是根據標記種子和當前時間,產生固定n行的動態密碼,如:
1、298570
2、985570
3、255378
4、018373
第二步:認證伺服器產生挑戰策略,提示用戶輸入第x行的數字串。如“請輸入第2行的動態密碼”。
第三步:用戶根據認證伺服器的提示,正確輸入第x行的數字串。例如,假設上述第二步提示是“請輸入第2行的動態密碼”,那麼用戶應該輸入“985570”。
第四步:認證伺服器結合之前的挑戰策略,按照本第一實施例所述的方法來驗證用戶的動態密碼是否正確。
第五步:顯示驗證結果。
如第5圖所示為認證伺服器產生挑戰策略的另一個信令互動示意圖,第5圖中:第一步:移動設備根據標記種子和當前時間,產生固定n*m的動態點陣式密碼,如產生4*4的動態點陣式密碼:
第二步:認證伺服器產生挑戰,提示用戶輸入某幾個座標所對應的數字串。如“請輸入A2,C3,D1所對應的數字”。
第三步:用戶根據認證伺服器的提示,正確輸入座標所對應的數字。例如,依步驟二的提示,用戶應該輸入“90 89 01”。
第四步:認證伺服器結合之前的挑戰策略,按照本第一實施例所述的方法來驗證用戶的動態密碼是否正確。
第五步:顯示驗證結果。
通過以上挑戰策略的設定,就可以進一步提高動態密碼驗證的安全性。
通過以上所舉出的具體實例的技術方案,就可以實現對動態密碼的驗證,從而提高身份認證的安全性,而且簡單易用;同時,由於初始碼、和動態密碼都是通過用戶輸入介面到認證伺服器中的,移動設備與認證伺服器之間不會產生任何直接的消息互動,這樣就不會造成額外的流量費用,進而降低了用戶負擔和認證成本。
具體實現時,上述方法實施例中的用戶輸入介面可以是網頁頁面,也可以是其他用戶端輸入介面。
第二實施例:
本發明第二實施例提供了一種動態密碼驗證的系統,如第6圖所示為所述系統的結構示意圖,所述系統包括:移動設備、認證伺服器和輸入介面裝置。其中,所述輸入介面裝置可設定於所述認證伺服器中,且所述輸入介面裝置可以是網頁頁面裝置,也可以是其他用戶端裝置。
所述移動設備用於利用標記軟體產生初始碼,在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼。其中,具體產生初始碼及產生動態密碼的方式可見以上方法第一實施例中所述。
所述輸入介面裝置用於接收所述初始碼和所述動態密碼,並將所接收的初始碼和動態密碼傳遞到所述認證伺服器。其中,輸入介面裝置接收所述初始碼和所述動態密碼時,可由用戶來手動輸入上述初始碼和動態密碼,也可指定相應的裝置來按照策略輸入上述初始碼和動態密碼。
所述認證伺服器用於根據接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所接收到的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確。
具體實現時,所述移動設備可包括初始碼產生單元和動態密碼產生單元。其中:所述初始碼產生單元用於利用標記軟體產生初始碼;其中,所述初始碼還通過用戶輸入介面傳遞到認證伺服器中。具體產生初始碼並輸入的方式見以上方法第一實施例中所述。
所述動態密碼產生單元用於在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼;其中,所述當前的動態密碼還通過用戶輸入介面傳遞到認證伺服器中。具體產生動態密碼並輸入的方式見以上方法第一實施例中所述。
具體實現時,認證伺服器可包括動態密碼驗證單元,用於根據所述認證伺服器所接收到的初始碼,按照與所述動態密碼產生單元相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所輸入的動態密碼進行比較,來驗證所述動態密碼產生單元所產生的動態密碼是否正確。
另外,在以上所述的系統中,所述認證伺服器還可對所接收到的初始碼進行預設的演算法處理,產生確認碼。具體產生確認碼的方式可見以上方法第一實施例中所述。所述移動設備還用於獲得所述認證伺服器產生的確認碼,並按照與所述認證伺服器相同的演算法根據自身產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述認證伺服器產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。具體進行驗證的方式可見以上方法第一實施例中所述。
其中,所述認證伺服器可將所產生的確認碼傳遞給所述輸入介面裝置,由所述輸入介面裝置將述確認碼回顯給所述移動設備。之後,可由用戶來手動或指定相應裝置按照策略將該確認碼輸入到移動設備中。或者,也可由認證伺服器將所產生的確認碼直接通過網路發送給所述移動設備。
相應地,具體實現時,所述認證伺服器可進一步包括確認碼產生單元,用於對所述認證伺服器所接收到的初始碼進行預設的演算法處理,產生確認碼。具體產生確認碼的方式見以上方法第一實施例中所述。
所述移動設備可進一步包括確認碼驗證單元,用於獲得所述確認碼產生單元所產生的確認碼,並按照與所述確認碼產生單元相同的演算法根據所述初始碼產生單元產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述確認碼產生單元所產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。具體進行驗證的方式見以上方法第一實施例中所述。
值得注意的是,上述實施例中,移動設備和認證伺服器所包括的各個單元只是按照功能邏輯進行劃分的,但並不局限於上述的劃分,只要能夠實現相應的功能即可;另外,各功能單元的具體名稱也只是為了便於相互區分,並不用於限制本發明的保護範圍。
另外,本領域普通技術人員可以瞭解實現上述方法第一實施例中的全部或部分步驟是可以通過程式來指令相關的硬體完成,相應的程式可以存儲於一種計算器可讀存儲介質中,上述提到的存儲介質可以是唯讀記憶體,磁碟或光碟等。
綜上所述,本發明具體實施例可以提高身份認證的安全性,而且簡單易用;同時,移動設備與認證伺服器之間也不會產生任何的消息互動,不會造成額外的流量費用,從而降低了用戶負擔和認證成本。
以上所述,僅為本發明較佳的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。是以,本發明的保護範圍應該以權利要求書的保護範圍為準。
11...產生初始碼,並將該初始碼傳遞到認證伺服器
12...當初始碼驗證通過後,按照DH演算法來產生當前的動態密碼,並將該動態密碼傳遞到認證伺服器中
13...認證伺服器根據所接收到的初始碼來產生自身的動態密碼
14...比較自身所產生的動態密碼和移動設備所產生的動態密碼,來驗證移動設備所產生的動態密碼是否正確
第1圖:本發明第一實施例所提供動態密碼驗證方法的流程示意圖。
第2圖:本發明第一實施例所舉出的移動設備和認證伺服器之間驗證動態密碼的信令互動示意圖。
第3圖:本發明所舉出的具體實例中認證伺服器產生挑戰策略的一個信令互動示意圖。
第4圖:本發明所舉出的具體實例中認證伺服器產生挑戰策略的另一個信令互動示意圖。
第5圖:本發明所舉出的具體實例中認證伺服器產生挑戰策略的另一個信令互動示意圖
第6圖:本發明第二實施例所提供的動態密碼驗證裝置的結構示意圖。
11...產生初始碼,並將該初始碼傳遞到認證伺服器
12...當初始碼驗證通過後,按照DH演算法來產生當前的動態密碼,並將該動態密碼傳遞到認證伺服器中
13...認證伺服器根據所接收到的初始碼來產生自身的動態密碼
14...比較自身所產生的動態密碼和移動設備所產生的動態密碼,來驗證移動設備所產生的動態密碼是否正確
Claims (10)
- 一種動態密碼驗證的方法,其包含:移動設備利用標記軟體產生初始碼,並將所產生的初始碼通過用戶輸入介面傳遞到認證伺服器;當所述初始碼驗證通過後,所述移動設備按照DH(Diffie-Hellman)演算法來計算得到當前的動態密碼,並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器;所述認證伺服器根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼;所述認證伺服器將自身所產生的動態密碼與所述移動設備所產生的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確;其中所述初始碼驗證的過程,係包含:所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼;所述移動設備獲得所述認證伺服器產生的確認碼,並按照與所述認證伺服器相同的演算法根據其產生的初始碼計算得到所述移動設備自身的確認碼;所述移動設備比較所得到的自身的確認碼和所述認證伺服器所產生的確認碼,來驗證所述移動設備輸入的初始碼是否正確。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述移動設備按照DH演算法來計算得到當前的動 態密碼,具體包括:所述移動設備根據其自身的DH私鑰通過DH演算法來計算得到其自身的DH密鑰;對所得到的自身的DH密鑰通過哈希演算法來得到標記種子;將所得到的標記種子和當前時間值通過預設的演算法處理後,得到當前的動態密碼。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述認證伺服器根據所接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼,具體包括:所述認證伺服器根據所接收到的初始碼解析得到所述移動設備的DH公鑰;根據所得到的DH公鑰計算得到所述移動設備的DH密鑰,並根據所獲得的DH密鑰按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述驗證所述移動設備所產生的動態密碼是否正確的過程中,所述方法還包括:若在指定的時間偏差範圍內,所述認證伺服器產生的動態密碼與所述移動設備所產生的動態密碼一致,則判斷驗證正確。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼,係包含: 所述認證伺服器產生亂數字串,將所產生的亂數字串和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;將所得到的校驗碼和所產生的亂數字串組合後產生確認碼。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述認證伺服器對所接收到的初始碼進行預設的演算法處理,產生確認碼,具體包括:所述認證伺服器產生一個隨機的DH私鑰,根據所產生的DH私鑰按照DH演算法來計算得到相應的DH公鑰;將計算所得到的DH公鑰和所接收到的初始碼進行預設的演算法處理後,得到相應的校驗碼;將所得到的校驗碼和計算所得到的DH公鑰組合後產生確認碼。
- 依申請專利範圍第1項所述之動態密碼驗證的方法,其中所述移動設備按照DH演算法來計算得到當前的動態密碼,並將所述當前的動態密碼通過用戶輸入介面傳遞到認證伺服器,具體包括:所述移動設備按照DH演算法來計算得到以一串數位表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的特定數位;所述移動設備根據所述挑戰策略,將所述當前動態密碼中的特定數位通過用戶輸入介面傳遞到所述認證伺服器;或,所述移動設備按照DH演算法來計算得到以多串數位 表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中的某一串數字;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應串的數位通過用戶輸入介面傳遞到所述認證伺服器;或,所述移動設備按照DH演算法來計算得到以數位點陣式表示的當前的動態密碼;所述認證伺服器產生挑戰策略,提示移動設備輸入所述當前動態密碼中某個點陣式座標所對應的數字串;所述移動設備根據所述挑戰策略,將所述當前動態密碼中相應點陣式座標所對應的數字串通過用戶輸入介面傳遞到所述認證伺服器。
- 一種動態密碼驗證的系統,其包含:移動設備,用於利用標記軟體產生初始碼,在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼;輸入介面裝置,用於接收所述初始碼和所述動態密碼,並將所接收的初始碼和動態密碼傳遞到所述認證伺服器;認證伺服器,用於根據接收到的初始碼,按照與所述移動設備相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所接收到的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確;所述認證伺服器進一步對所接收到的初始碼進行預設的演算法處理,產生確認碼;所述移動設備進一步用於獲得所述認證伺服器產生的 確認碼,並按照與所述認證伺服器相同的演算法根據自身產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述認證伺服器產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。
- 一種移動設備,其包含:初始碼產生單元,用於利用標記軟體產生初始碼;其中,所述初始碼還通過用戶輸入介面傳遞到認證伺服器中;動態密碼產生單元,用於在所述初始碼驗證通過後,按照DH(Diffie-Hellman)演算法來計算得到所述移動設備當前的動態密碼;其中,所述當前的動態密碼還通過用戶輸入介面傳遞到認證伺服器中;其中該移動設備另包含:確認碼驗證單元,用於獲得認證伺服器所產生的確認碼,並按照與所述認證伺服器相同的演算法根據所述初始碼產生單元產生的初始碼來計算得到自身的確認碼,並比較所述自身的確認碼和所述認證伺服器產生的確認碼,來驗證所述認證伺服器所接收到的初始碼是否正確。
- 一種認證伺服器,其包含:動態密碼驗證單元,用於根據所述認證伺服器所接收到的初始碼,按照與移動設備相同的DH演算法來計算得到自身的動態密碼,並將所述自身的動態密碼與所接收的移動設備所產生的動態密碼進行比較,來驗證所述移動設備所產生的動態密碼是否正確;所述認證伺服器另 包含:確認碼產生單元,用於對所述認證伺服器所接收到的初始碼進行預設的演算法處理,產生確認碼。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99118742A TWI437868B (zh) | 2010-06-09 | 2010-06-09 | A method, system and device for dynamic password verification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW99118742A TWI437868B (zh) | 2010-06-09 | 2010-06-09 | A method, system and device for dynamic password verification |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201145960A TW201145960A (en) | 2011-12-16 |
TWI437868B true TWI437868B (zh) | 2014-05-11 |
Family
ID=46766049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW99118742A TWI437868B (zh) | 2010-06-09 | 2010-06-09 | A method, system and device for dynamic password verification |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI437868B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI501104B (zh) * | 2014-03-06 | 2015-09-21 | Univ Nat Chi Nan | The method of establishing the conversation key |
-
2010
- 2010-06-09 TW TW99118742A patent/TWI437868B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201145960A (en) | 2011-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109862041B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
CN109951489B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
US11711219B1 (en) | PKI-based user authentication for web services using blockchain | |
CN110086608B (zh) | 用户认证方法、装置、计算机设备及计算机可读存储介质 | |
US12021971B2 (en) | Computer-implemented systems and methods for performing computational tasks across a group operating in a trust-less or dealer-free manner | |
WO2011023039A1 (zh) | 一种动态口令验证的方法及装置 | |
TWI718567B (zh) | 二維碼生成方法、資料處理方法、裝置、伺服器及計算機可讀儲存媒體 | |
US8745401B1 (en) | Authorizing actions performed by an online service provider | |
US20210234857A1 (en) | Authentication system, authentication method, and application providing method | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
EP2839401B1 (en) | Secure password-based authentication for cloud computing services | |
US9043596B2 (en) | Method and apparatus for authenticating public key without authentication server | |
US10484350B2 (en) | Privacy-preserving location corroborations | |
CN110099048B (zh) | 一种云存储方法及设备 | |
CN113067823B (zh) | 邮件用户身份认证和密钥分发方法、系统、设备及介质 | |
WO2021143457A1 (zh) | 基于sm9算法的身份认证方法、装置和计算机设备 | |
CN111835526B (zh) | 一种生成匿名凭证的方法及系统 | |
JP2022501887A (ja) | デジタルリソースへのアクセスを移転するための、コンピュータにより実施されるシステム及び方法 | |
US20210241270A1 (en) | System and method of blockchain transaction verification | |
CN113709115B (zh) | 认证方法及装置 | |
CN111444551A (zh) | 账户的注册与登录方法、装置、电子设备及可读存储介质 | |
SG175860A1 (en) | Methods of robust multi-factor authentication and authorization and systems thereof | |
CN111161075B (zh) | 区块链交易数据证明监管方法、系统及相关设备 | |
CN114553590A (zh) | 数据传输方法及相关设备 | |
CN114363088A (zh) | 用于请求数据的方法和装置 |