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