袁志富
摘 要:在日常金融生活中,資金安全才是最重要的,方便都在其次。當(dāng)前流行的指紋密碼、肖像密碼等均屬于靜態(tài)密碼,這種密碼容易被惡意軟件套取。這里要向大家介紹的是一種函數(shù)型密碼,這種密碼的破解難度非常大。希望能為密碼設(shè)計(jì)者提供參考。這種密碼的輸入界面將手機(jī)屏幕從左至右分為1至6六個區(qū)域,縱坐標(biāo)為0至20,靜態(tài)點(diǎn)記為J100-J620(第一位數(shù)為橫坐標(biāo),后兩位數(shù)為縱坐標(biāo))。每個區(qū)域有六個動態(tài)標(biāo)志物上下往復(fù)運(yùn)動,記為D11-D66(第一位數(shù)為區(qū)域號,第二位數(shù)為序號)。其中任意兩個動態(tài)標(biāo)志物都有相遇(縱坐標(biāo)相同)的時候。當(dāng)用戶需要輸入密碼時,手機(jī)先向服務(wù)器發(fā)送解鎖請求,服務(wù)器向手機(jī)發(fā)送36個0-39的隨機(jī)數(shù),手機(jī)根據(jù)這36個隨機(jī)數(shù)來確定36個動態(tài)標(biāo)志物的初始位置,然后上下往復(fù)運(yùn)動,隨機(jī)數(shù)小于20的往上運(yùn)動,其余的往下運(yùn)動。其運(yùn)動速度要統(tǒng)一標(biāo)準(zhǔn),20秒往復(fù)一次吧。
關(guān)鍵詞:密碼 安全性
中圖分類號:TS914? 文獻(xiàn)標(biāo)識碼:A??? 文章編號:1003-9082(2019)06-0-01
一、引入輸入密碼的時機(jī)
用戶可以這樣設(shè)置:“當(dāng)D11到達(dá)J115點(diǎn)的時候,從J106點(diǎn)劃向D62所在點(diǎn)。”如果D11沒到達(dá)J115點(diǎn)就開始操作則視為錯誤密碼,如果錯過了時機(jī)只能等到D11再次到達(dá)J115點(diǎn)的時候才操作(這樣其實(shí)有兩種可能:D11上升到達(dá)J115點(diǎn)和D11下降到達(dá)J115點(diǎn))。用戶操作之后,手機(jī)就把用戶的操作作為密鑰發(fā)送到服務(wù)器開鎖,如果密鑰中的點(diǎn)位跟服務(wù)器計(jì)算出的結(jié)果相同則視為正確密碼。在用戶手機(jī)上可設(shè)置背景圖片,比如上面的J115點(diǎn)在背景圖片中可能就是一間房屋、一棵樹等等靜態(tài)標(biāo)志物,有需要的時候也可以顯示坐標(biāo),同時也可以將動態(tài)標(biāo)志物替換成頭像、動物等圖片。在銀行柜員機(jī)等公用操作平臺上就要用帶坐標(biāo)的背景圖片,以及人人都看得懂的動態(tài)標(biāo)志物。
這樣設(shè)置的密碼就算在別人眼皮底下輸入他也看不出個所以然。
二、引入函數(shù)
如果說上面的方法還不夠復(fù)雜,那就引入函數(shù)吧。先規(guī)定一些常數(shù),如:S(用戶自己設(shè)定的常數(shù),類似于數(shù)字密碼)、圓周率、常數(shù)的平方根、角度的正弦值等等。再引入一些公共變量,如C(當(dāng)天第C次使用該密碼成功開鎖)、W(當(dāng)前是星期幾)、SG(當(dāng)前時晨天干的序數(shù))、ss(當(dāng)前分鐘數(shù))、NR(當(dāng)前農(nóng)歷日期數(shù))等等。
有了這些常數(shù)和公共變量,用戶就可以很方便的設(shè)置函數(shù)。如:
x=(C+W)%8??? //(C+W)除以8的余數(shù);
y=int((π*10^(C*2+W)-int(π*10^(C*2+W)))*10)??????? //π的小數(shù)部分第C*2+W+1位數(shù);
函數(shù)想設(shè)多復(fù)雜就可以設(shè)多復(fù)雜,只要用戶心算能力足夠好。這些函數(shù)看上去很復(fù)雜,用習(xí)慣了其實(shí)也是很簡單的。
函數(shù)設(shè)置好之后就能進(jìn)一步設(shè)置,如:
當(dāng)D15到達(dá)J108點(diǎn)的時候,從D13劃到D5x,再從D5x劃到D55。(當(dāng)x>6時系統(tǒng)默認(rèn)x=x%6,x=0時x=6。)
再如:當(dāng)D1x與D23相遇縱坐標(biāo)相同時(這也有兩種情況,而且應(yīng)該與縱坐標(biāo)為10那條線對稱),點(diǎn)擊(C%2-NR%2==0?D35:D45?? //當(dāng)C與農(nóng)歷日期數(shù)奇偶性相同時點(diǎn)D35,否則點(diǎn)D45)。
此外還可以將上面的S等參數(shù)引進(jìn)來,不管是縱坐標(biāo)還是橫坐標(biāo)都可以設(shè)置函數(shù)。如S的第x位所代表的縱坐標(biāo),sin70的第x位所代表的橫坐標(biāo)等等。也不管是時機(jī)標(biāo)志點(diǎn)還是操作點(diǎn)都可以設(shè)置成函數(shù)。
其實(shí)也可以拋開上面的框架,在用戶設(shè)置密碼時讓用戶設(shè)置一個函數(shù),輸入密碼時讓用戶輸入一個函數(shù)計(jì)算出的不斷變化的結(jié)果,這種方式安全性已經(jīng)比較高了。
三、靈活設(shè)置密碼
這種密碼允許用戶對同一帳戶設(shè)置多個密碼,如:
當(dāng)D1x上升到達(dá)J103點(diǎn)時點(diǎn)擊D55,或當(dāng)D31到達(dá)J3(x%20)點(diǎn)時從J1(6-x%6)劃到D53,或當(dāng)D52與D56相遇時從D1(x%6)劃到J5(y%10+3)。這樣就設(shè)置了三個密碼,用其中任何一個都可以開鎖,哪個密碼的操作時機(jī)先到就用哪一個,節(jié)約了等待時間。同時由于竊密者需要獲取大量的數(shù)據(jù)進(jìn)行對比分析才有可能破解這種密碼,用戶如果設(shè)了幾個密碼混搭使用,竊密者就永遠(yuǎn)找不出一個規(guī)律來,他就算復(fù)制了銀行卡也很難把錢取出來。
如果說竊密者還能通過不停地試密碼來碰運(yùn)氣,用戶還能進(jìn)一步設(shè)置,比如連續(xù)輸錯三次鎖定該帳戶(用戶自己設(shè)定次數(shù))??梢宰層脩粼O(shè)定兩種密碼,其中一種用來清除輸錯記錄,這種密碼不常用,也就不容易被竊取。竊密者就算竊取了這種密碼而沒有開鎖密碼也沒辦法把錢取出來。
用戶設(shè)定密碼時要分情形設(shè)定不同的密碼,銀行卡密碼跟普通的網(wǎng)絡(luò)帳號不能設(shè)置為同一密碼。銀行卡密碼只能到銀行自動柜員機(jī)去設(shè)定或修改,以防止被惡意軟件竊取,如果竊密者竊取了密碼設(shè)置的方法,那密碼就不保密了。如果怕密碼太多不好記,或者長時間不用忘了,可以找一個小本子記錄下來放在家里別人看不到的地方,要用時如果忘了就翻出來看看,最好不要記錄在手機(jī)或者聯(lián)網(wǎng)的電腦里,防止被竊取,也不要用聯(lián)網(wǎng)的電腦或手機(jī)來對密碼中的函數(shù)進(jìn)行模擬計(jì)算。
四、函數(shù)密碼鎖的拓展運(yùn)用
函數(shù)密碼鎖的運(yùn)用廣泛,不僅限于銀行帳戶,其它網(wǎng)絡(luò)帳戶、電腦上的文檔加密等也可以,另外門鎖、車鎖、保險箱鎖等都可以開發(fā)。比如電子門鎖吧,當(dāng)用戶走到門前時拿出手機(jī)打開開鎖軟件,手機(jī)跟門鎖通過藍(lán)牙建立連接,然后輸入密碼,門鎖就自動打開。這樣用戶就不用在腰間掛一大串鑰匙了,而且不必?fù)?dān)心鑰匙丟失,如果手機(jī)丟了,拿另一個裝上開鎖軟件的手機(jī)就可以打開,撿到手機(jī)的人也沒辦法開鎖。如果手機(jī)被鎖在屋里了,直接找鄰居借一個手機(jī)來開一下就行。如果是幾個人合租的房子,就設(shè)幾個密碼每人用一個密鑰,有人搬走了就把他的密鑰刪除即可,有人搬進(jìn)來就新增一個密鑰。
五、開發(fā)專門的開鎖設(shè)備
或許你想用一個很復(fù)雜的密碼卻又懶得去計(jì)算,可以開發(fā)專門的開鎖設(shè)備,比如智能手表吧。用戶可以將銀行帳號及密碼設(shè)在手表里,要開鎖時手機(jī)向其通過藍(lán)牙關(guān)聯(lián)的手表發(fā)送開鎖請求,用戶在手表上點(diǎn)擊確認(rèn)(多一個環(huán)節(jié)避免惡意軟件套取密碼),手表向手機(jī)發(fā)送計(jì)算好的密碼信息,然后自動進(jìn)行開鎖,完成支付。這樣雖然方便,但是要保管好手表,手表的抗毒能力要強(qiáng)。
其它的電子密碼鎖也可以用這種方式打開。手表和手機(jī)等智能產(chǎn)品可以相互開鎖,別人如果只拿到其中一個,就直接鎖定,無法打開,更沒辦法從中得到什么好處。而用戶可以動手輸入密碼開鎖。