本文摘要:其實(shí)很早以前就看過(guò)一篇關(guān)于將軍令工作原理的文章,說(shuō)實(shí)話,當(dāng)時(shí)那篇文章我只看懂了一部分,大部分都沒看懂,但是我根據(jù)看懂的那一部分,和后來(lái)自己的思考,下面小編推薦關(guān)于將軍令工作原理的一篇電子論文。 【摘 要】將軍令是每隔1min產(chǎn)生一個(gè)全新的、不能
其實(shí)很早以前就看過(guò)一篇關(guān)于將軍令工作原理的文章,說(shuō)實(shí)話,當(dāng)時(shí)那篇文章我只看懂了一部分,大部分都沒看懂,但是我根據(jù)看懂的那一部分,和后來(lái)自己的思考,下面小編推薦關(guān)于“將軍令”工作原理的一篇電子論文。
【摘 要】“將軍令”是每隔1min產(chǎn)生一個(gè)全新的、不能重復(fù)使用的密碼(6位),用來(lái)保護(hù)網(wǎng)易通行證(游戲賬號(hào))、直銷商賬號(hào)的密碼。文章根據(jù)作者的研究,闡述了幾種可行的“將軍令”的工作原理與算法思想。
【關(guān)鍵詞】將軍令;動(dòng)態(tài)密碼;原理;算法
“將軍令”是廣州網(wǎng)易互動(dòng)娛樂有限公司自主研發(fā)的、具有完全知識(shí)產(chǎn)權(quán)的高科技身份認(rèn)證產(chǎn)品,專門用來(lái)保護(hù)網(wǎng)易通行證(游戲賬號(hào))、直銷商賬號(hào)的密碼。“將軍令”是每隔1min(60s)產(chǎn)生一個(gè)全新的、不能重復(fù)使用的密碼(6位),俗稱“動(dòng)態(tài)密碼”。采用“將軍令”后,網(wǎng)易以“賬號(hào)+密碼+動(dòng)態(tài)密碼”的形式對(duì)游戲ID進(jìn)行保護(hù),大大提高了賬號(hào)的安全性。對(duì)于將軍令的工作原理,很多人提出自己的設(shè)想,筆者也就自己的研究,進(jìn)行如下闡述。
“將軍令”的實(shí)際工作流程很簡(jiǎn)單:即用戶端(“將軍令”本身)產(chǎn)生一個(gè)動(dòng)態(tài)密碼,然后將這個(gè)動(dòng)態(tài)密碼和服務(wù)器端進(jìn)行匹配。由于用戶端在出廠之后,同服務(wù)器端就再?zèng)]有物理上直接的聯(lián)系,因而,如何與服務(wù)器端保持邏輯上的同步是最大的問(wèn)題,即如何保證用戶端產(chǎn)生的動(dòng)態(tài)密碼與服務(wù)器端驗(yàn)證的動(dòng)態(tài)密碼是一個(gè)密碼。
1 第一種設(shè)想
在“將軍令”內(nèi)置微型芯片,里面保存大量“以6位數(shù)字為一組”的預(yù)定數(shù)組(6位數(shù)字動(dòng)態(tài)碼),每60s自動(dòng)讀取下一組新數(shù)組,數(shù)組的排列順序無(wú)規(guī)律并無(wú)一相同,但全部已經(jīng)預(yù)先存放好,利用循環(huán)模式,當(dāng)讀完最后一組數(shù)后便從頭再開始讀取第一組數(shù)組。主機(jī)服務(wù)器端也同樣預(yù)先存放好同樣的數(shù)組列,啟用“將軍令”時(shí)以序列號(hào)來(lái)識(shí)別該取用哪一條數(shù)組列。這種方法是一種最易實(shí)現(xiàn)的方法,但這也是一種最易被破解的方法,安全性較低。
2 第二種設(shè)想
這種設(shè)想是利用算法來(lái)實(shí)現(xiàn)動(dòng)態(tài)密碼的產(chǎn)生。
算法思想1:用戶端在出廠時(shí)就植入一個(gè)算法,這個(gè)算法同樣會(huì)被保存在服務(wù)器端。這個(gè)算法不一定要很復(fù)雜,比如f(x)=aX+b,X最好是一些獨(dú)特的,各個(gè)“將軍令”都不重復(fù)的數(shù)字,比如“將軍令”的序列號(hào)等。a可以是一個(gè)固定的數(shù)字,而b可以是一個(gè)動(dòng)態(tài)變化的數(shù)字,如第1次產(chǎn)生動(dòng)態(tài)密碼,b就為“1”;第2次產(chǎn)生動(dòng)態(tài)密碼,b就為“2”……
算法思想2:用戶端產(chǎn)生的動(dòng)態(tài)密碼是一個(gè)與時(shí)間有關(guān)的動(dòng)態(tài)密碼,即密碼M與時(shí)間T之間存在著關(guān)系:M=rand(TX),rand()為隨機(jī)函數(shù),TX為隨機(jī)函數(shù)的種子,x為另一因素,比如“將軍令”的序列號(hào)等。
這里,x是一個(gè)服務(wù)器端已知的變量,出廠時(shí)就已經(jīng)設(shè)定了,最大的可能是“將軍令”的序列號(hào)所對(duì)應(yīng)的一個(gè)因子,在生產(chǎn)“將軍令”寫入初始數(shù)據(jù)的時(shí)候,同時(shí)被植入用戶端和服務(wù)器端,由于每個(gè)“將軍令”的序列號(hào)是唯一的,因而,拿不到“將軍令”就無(wú)法知道x,也就無(wú)法知道動(dòng)態(tài)密碼M。
顯然,只有因子X是不夠的,M=rand(x)是可以產(chǎn)生一個(gè)密碼M,但這個(gè)密碼M顯然無(wú)法動(dòng)態(tài)變化,也就失去了意義,因而時(shí)間因子T也同樣不可缺少。但是,引入時(shí)間因子T之后,又將產(chǎn)生一個(gè)問(wèn)題:就是用戶端和服務(wù)器端時(shí)間同步的問(wèn)題。
時(shí)間同步的同題,筆者認(rèn)為可以這樣解決:服務(wù)器端固定T0,引入因子△t,服務(wù)器端植入△t,△t為用戶端時(shí)鐘同服務(wù)器端時(shí)鐘之差,即△t=T3-T1這樣,用戶端的密碼M=rand(T3X),服務(wù)器端密碼M=rand((T1+△t)X)。對(duì)于成千上萬(wàn)的用戶端在服務(wù)器端只要記錄了△t就可以了。這個(gè)△t,可以在“將軍令”生產(chǎn)的時(shí)候植入服務(wù)器端予以記錄。開通“將軍令”后,在提交序列號(hào)和動(dòng)態(tài)密碼的時(shí)候,服務(wù)器端動(dòng)態(tài)的調(diào)整△t,服務(wù)器端計(jì)算M=rand[(T2+△t)X],并且在△t的基礎(chǔ)上,計(jì)算出……,△t-5*60,△t-4*60,△t-3*60,△t-2*60,△t-1*60,△t,△t+1*60,△t+2*60,△t+3*60,△t+4*60,△t+5*60,……這個(gè)數(shù)列。具體數(shù)列長(zhǎng)度根據(jù)需要來(lái)定,由于是產(chǎn)生隨機(jī)6位數(shù)的函數(shù),在這個(gè)數(shù)列中是不會(huì)出現(xiàn)重復(fù)的M的。這樣,就可以計(jì)算出△t附近前后相差n分鐘所產(chǎn)生的密碼M,只需要比對(duì)提交的動(dòng)態(tài)密碼與數(shù)列中的哪個(gè)值對(duì)應(yīng),就可以動(dòng)態(tài)的調(diào)整△t。假設(shè),動(dòng)態(tài)密碼與△t-2*60對(duì)應(yīng)的密碼相同,就可以調(diào)整△t=△t-2*60。這樣,解決了用戶端從出廠到開通使用所產(chǎn)生的時(shí)間誤差。這個(gè)n,根據(jù)實(shí)際需要制定。
在使用“將軍令”的時(shí)候,采用同樣的方法可以同步。在確定了At后,服務(wù)器端在每次驗(yàn)證的時(shí)候,只要算出M1=rand[(TI+△t-y)x],M=rand[(TI+At)X],M2=rand[(T)+△t+y)x],就可以算出At附近y秒的時(shí)間的密碼M,就是允許“將軍令”有y秒的時(shí)間誤差。利用上面的算法來(lái)實(shí)現(xiàn)動(dòng)態(tài)密碼的產(chǎn)生顯然要比第一種方法的安全性要高很多。
3 第三種設(shè)想
這種設(shè)想利用一個(gè)相對(duì)復(fù)雜的映射來(lái)實(shí)現(xiàn)動(dòng)態(tài)密碼的產(chǎn)生。
它可能是根據(jù):年,月,日,時(shí),分,秒。這樣的話,可以把“將軍令”看成是一個(gè)計(jì)算器,計(jì)算出用戶所需要的數(shù)字,然后與服務(wù)器通過(guò)同樣方法對(duì)計(jì)算出來(lái)的數(shù)字進(jìn)行比對(duì)。
假設(shè):“將軍令”出現(xiàn)的6位數(shù)字,我們分別設(shè)為a,b,c,d,e,f,將軍令的序列號(hào)為x。
a=年*x
b=月*2X
c=日*3X
d=時(shí)*4X
e=分*5X
f=秒*6X
但是,如果通過(guò)這個(gè)映射來(lái)計(jì)算出動(dòng)態(tài)密碼的話,同樣也會(huì)有時(shí)間同步的問(wèn)題需要解決,這就可以參照上面的算法思想進(jìn)行處理。
4 結(jié)束語(yǔ)
以上3種方案就是筆者認(rèn)為比較可行的方案,但通過(guò)研究“將軍令”內(nèi)部結(jié)構(gòu)可以發(fā)現(xiàn),將軍令是不允許更換電池的,一般使用時(shí)間在30個(gè)月左右。不允許更換電池。可能就是為了在最大程度上保持時(shí)間的同步。因此,綜合來(lái)看,筆者認(rèn)為設(shè)想二的第二個(gè)算法思想是最切實(shí)可行的一種方案。
小編推薦優(yōu)秀電子期刊 《鐵路計(jì)算機(jī)應(yīng)用》
《鐵路計(jì)算機(jī)應(yīng)用》(月刊)創(chuàng)刊于1992年,由中華人民共和國(guó)鐵道部主管,中國(guó)鐵道科學(xué)研究院、中國(guó)鐵道學(xué)會(huì)計(jì)算機(jī)委員會(huì)主辦,中國(guó)鐵道科學(xué)研究院電子計(jì)算技術(shù)研究所承辦。是鐵路系統(tǒng)可以在國(guó)內(nèi)外公開發(fā)行的行業(yè)計(jì)算機(jī)與信息技術(shù)專業(yè)技術(shù)性期刊。期刊致力于全面、迅速、準(zhǔn)確地刊登反映國(guó)內(nèi)外鐵路計(jì)算機(jī)應(yīng)用的最新科技成果、計(jì)算機(jī)技術(shù)在鐵路各專業(yè)領(lǐng)域的學(xué)術(shù)與理論探索
轉(zhuǎn)載請(qǐng)注明來(lái)自發(fā)表學(xué)術(shù)論文網(wǎng):http:///dzlw/4085.html