一種用于手機令牌的種子匹配方法
【技術領域】
[0001]本發(fā)明涉及網絡安全認證技術領域,具體涉及手機令牌技術。
【背景技術】
[0002]OTP全稱叫One-time Password,也稱動態(tài)口令,是根據專門的算法生成一個與時間相關的、不可預測的隨機數(shù)字組合,每個口令只能使用一次。
[0003]OTP產生的因素包括種子,時間,算法;保障OTP安全的唯一要素就是保障種子數(shù)據的安全性(算法公開)。
[0004]動態(tài)密碼手機令牌也稱手機口令牌,是用來生成動態(tài)口令的手機客戶端軟件。手機動態(tài)令牌是由運行在手機上的程序產生動態(tài)口令,動態(tài)口令與手機綁定進行身份認證。目前成熟的手機令牌有號令手機令牌,國內手機動態(tài)令牌號令手機令牌,其特點是不僅提供通用版本,還有各種手機操作系統(tǒng)上的包括iPhone、Sybiam> Windows Mobile、Andr1dvl.8 等。
[0005]OTP應用于手機令牌時,分為手機聯(lián)網與不聯(lián)網的情況,當手機聯(lián)網時,可通過手機自動與服務端通訊,將服務端種子發(fā)放到手機端,此時只要保證通訊的安全,并且需要操作者具有一定的網絡安全方面的知識,但是大多數(shù)操作者不具備這方面的知識,從而很容易造成種子的泄露,給手機令牌的安全性帶來極大的影響。
[0006]當手機不聯(lián)網時,需要通過手動輸入完成種子的發(fā)放。雖然通過手動輸入能夠有效避免因網絡安全問題造成種子泄露的問題,但是通過手工輸入時,輸入的數(shù)據有限(可見字符),長度有限,可通過暴力窮舉的方法破解。
[0007]即:0TP = fun(time+seed),如果客戶知道OTP,則通過計算公式,貝丨」可以嘗試seedo
[0008]由此可見,如何有效提高手機令牌獲取種子時的安全性,避免種子被暴力破解是本領域亟需解決的問題。
【發(fā)明內容】
[0009]針對現(xiàn)有動態(tài)密碼手機令牌在獲取種子時所存在的問題,本發(fā)明的目的在于提供一種手機令牌的種子匹配方法,以防止通過暴力破解的方法獲取種子數(shù)據,提高手機令牌的安全性。
[0010]為了達到上述目的,本發(fā)明采用如下的技術方案:
[0011]一種用于手機令牌的種子匹配方法,該方法基于手機和認證服務器實施,
[0012]在手機端,獲取相應動態(tài)令牌的序列號和激活碼,并由此產生手機第一新種子,接著將第一新種子與某一至少2位十進制隨機數(shù)進行計算產生手機第二新種子,再利用手機第二新種子計算形成動態(tài)口令;
[0013]在認證服務器端,獲取相應動態(tài)令牌的序列號和激活碼,并由此產生服務器第一新種子;
[0014]當手機端令牌產生的動態(tài)口令來認證服務器認證時,認證服務器根據服務器第一新種子和至少2位十進制隨機數(shù)循環(huán)進行計算產生相應的服務器第二新種子,再循環(huán)利用相應的服務器第二新種子計算產生對應的動態(tài)口令,并循環(huán)與手機端產生的動態(tài)口令做匹配;
[0015]如果服務器端產生的所有動態(tài)口令都與手機端產生的口令不一致,則認證手機端產生的口令無效;
[0016]如果服務器端中根據某一個至少2位十進制隨機數(shù)產生的動態(tài)口令和手機端產生的動態(tài)口令一致,記錄當前隨機數(shù),改變種子的狀態(tài)位,記錄當前的種子和隨機數(shù);
[0017]當手機端產生的動態(tài)口令第二次在認證服務器上做認證,認證服務器端會根據第一次認證成功后的種子和隨機數(shù)生成對應動態(tài)口令,并進行比對,如果一致,則認為手機端產生種子是正確的且是經過變形的,此時更新服務器端的種子,更新最新的種子為當前的種子和隨機數(shù)算出來的種子。
[0018]本發(fā)明提供的方案將目前產生種子算法變更為:OTP = fun(time+seed+radom(2位十進制隨機數(shù))),這樣暴力破解的復雜度;比原來復雜度提高10*10 = 100倍,可以根據隨機數(shù)的位數(shù)指數(shù)增加復雜度。
[0019]同時,只有連續(xù)2次校驗動態(tài)口令才能保證手機端的種子確實是經過原始種子和兩位隨機數(shù)計算后的種子,這樣能夠極大的增加計算生成動態(tài)口令的復雜度,有效的增加暴力破解的難度。
【附圖說明】
[0020]以下結合附圖和【具體實施方式】來進一步說明本發(fā)明。
[0021]圖1為本發(fā)明進行種子匹配的流程原理圖。
【具體實施方式】
[0022]為了使本發(fā)明實現(xiàn)的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。
[0023]本發(fā)明提供的用于手機令牌的種子匹配方案,基于手機和認證服務器來實施。
[0024]在手機端,
[0025]首先,獲取相應動態(tài)令牌的序列號和激活碼,并將該序列號和激活碼做摘要產生手機第一新種子,即原始種子。
[0026]該步驟中,動態(tài)令牌對應的序列號和激活碼,隨動態(tài)令牌同時下發(fā),在獲取時,直接提取即可。但并不限于此,可根據實際需求來采用其它的獲取方案,只要能夠快速、準確的獲取到動態(tài)令牌對應的序列號和激活碼即可。
[0027]在形成種子時,由獲取到的序列號和激活碼按照所設定的算法做摘要得到,該令牌種子具體是由私有結構體和當前時間采用國密SM3算法生成的32字節(jié)隨機數(shù),私有結構體包括算法、口令長度、口令變化周期、令牌種子等。
[0028]接著,將第一新種子與一 2位或者指定位數(shù)(大于2位)的十進制隨機數(shù)進行計算產生手機第二新種子,具體計算所采用的算法可根據實際需求而定,但該算法與認證服務器中計算時鎖采用的算法相同。
[0029]再接著,利用手機第二新種子計算形成動態(tài)口令,例如由手機第二新種子與時間進行計算得到動態(tài)口令。
[0030]在認證服務器端,
[0031]獲取相應動態(tài)令牌的序列號和激活碼,并將該序列號和激活碼做摘要產生服務器第一新種子,即原始種子。
[0032]該步驟中,動態(tài)令牌對應的序列號和激活碼,隨動態(tài)令牌同時下發(fā)并進行存儲,在獲取時,直接提取即可。但并不限于此,可根據實際需求來采用其它的獲取方案,只要能夠快速、準確的獲取到動態(tài)令牌對應的序列號和激活碼即可。
[0033]對于服務器的第一新種子(即原始種子),其同樣是由獲取到的序列號和激活碼按照一定的算法做摘要形成。該令牌種子是由私有結構體和當前時間采用國密SM3算法生成的32字節(jié)隨機數(shù),私有結構體包括算法、口令長度、口令變化周期、令牌種子等。
[0034]當手機端令牌產生的動態(tài)口令來認證服務器認證時,認證服務器根據服務器第一新種子與2位或者指定位數(shù)(大于2位)的十進制隨機數(shù)中包含所有的隨機數(shù)依次循環(huán)進行計算產生對應的服務器第二新種子,這里計算所采用的算法與手機端中采用的算法相同;接著,利用計算產生的服務器第二新種子計算產生對應的動態(tài)口令(其計算采用的算法與手機中計算產生動態(tài)口令所采用的算法相同),并循環(huán)與手機端產生的動態(tài)口令做匹配。
[0035]如果服務器端產生的所有動態(tài)口令都與手機端產生的動態(tài)口令不一致,則認證手機端產生的口令無效;