摘 要:針對當前系統登錄方式在安全方面存在的問題和不足,分析傳統加密方式中存在易被解密的隱患,提出一種基于偽密碼的加密方法。首先由加密函數將用戶的真密碼轉換為隨機的偽密碼并存儲在數據庫中,再由解密函數將存放在數據庫中的偽密碼解密,并與用戶的原密碼比較,從而確定用戶身份的合法性。該方法實現簡單,對應的偽密碼毫無規律,不易破解,安全性較強。
關鍵詞:系統安全; 加密方法; 偽密碼解密; 數據庫
中圖分類號:TP311 文獻標識碼:A
文章編號:1004-373X(2010)12-0051-02
New Method and Its Realization of System-registry Encryption
YANG Dong-feng
(Computer Center, Yan’an University, Yan’an 716000,China)
Abstract:Aiming at the shortages of logging in terms of its security, the hidden trouble of decryption that exists in the traditional way of encryption, is analyzed and a new encrypting method based on the pseudo-password is proposed. The users′real-passwords are converted to the random pseudo-passwords by means of the encryption function and are stored in the database. Then the pseudo-passwords stored in the database are decoded by the decryption function, compared with the users′ original passwords, and the legitimacy of user identity is identified. This method is easy to realize, in addition, the corresponding pseudo-passwords are so erratic that it is difficult to crack. Therefore, the strong system security is provided.
Keywords:system security; encryption; pseudo-password decryption; database
0 引 言
隨著我國信息化建設的飛速發展,以網絡和數據庫技術為基礎的信息處理系統應用正逐步深入。但是,由于技術限制和軟件缺陷等因素,系統的正常運行可能會受到來自不同方面的安全威脅(如自然的,物理的和人為的),尤其是一些黑客總是憑借自己的破密技術非法登錄系統,對信息系統造成不可估量的破壞[1],因而,系統的登錄加密技術就顯得尤為重要,這里必須采取行之有效的方法來保證系統登錄的安全性。下面,就系統登錄采用傳統加密方法存在的弊端進行討論,進而提出一種新的加密方法[2]。
1 傳統的系統加密方式及其弊端
目前,在大多數開發的應用系統中,最常用的方式就是使用口令實現對系統操作權限的訪問控制。實現的方法就是在進入系統時提示操作者輸入一個字符串口令。這種口令的設置方法是將固定的口令密碼寫在程序代碼中,在系統開始運行時,要求操作者輸入該密碼,如果密碼正確,方可進入,否則,系統是不能讓操作者使用的。這種傳統加密方式的缺點是密碼固定,而且整個系統只有一個密碼,不會隨機改變,而且容易被別人破解。所以,這種傳統的加密方式存在極大的安全隱患[3]。
2 一種系統新加密方法的提出
在設計系統時,也有的程序設計者針對傳統的系統加密方式采用了一種較為安全的加密方式,即將用戶在進入系統時輸入的口令通過加密轉換為一種稱為加密偽碼的數據,存儲在數據庫中[4],但這種方法的密碼和偽碼仍有明顯的對應關系,容易被破解。針對這種情況,提出了一種在Visual FoxPro中用隨機偽密碼存儲在數據庫中的方法,實現了簡單可靠的系統加密。這種方法的特點是實現簡單,加密可靠,不易破解[5]。它的原理是可將1個1~7位的用戶密碼轉換為20位的隨機偽密碼,且每次重新設定密碼時所產生的偽碼都不相同。通過變換生成的20位偽碼沒有任何規律性,即使從數據庫中擦除偽碼也無法進入系統,從而實現了可靠的密碼權限控制[6] 。
2.1 生成隨機的偽密碼
從用戶密碼到存庫的隨機偽碼之間的變換由2個函數完成,即加密函數和解密函數。加密函數的思想是對用戶密碼(真碼)進行復雜化、隱蔽化處理,也就是將真碼淹沒在20位偽碼中,加密函數如下[7]:
FUNC JMCX
PARA ZMM
ZMZ=VAL(ZMM)
N1=RAND()*10^9
IF N1<=999999999
N1=N1+10^9
ENDIF
N1=INT(N1)
C1=STR(N1+ZMM)+STR(N1)
C2=SUBS(C1,5,20)+SUBS(C1,1,4)
P1=″
P2=″
FOR i=1 TO 10
P1=P1+SUBS(C2,2*i-1,1)
P2=P2+SUBS(C2,2*i,1)
ENDFOR
WMM=P1+P2
RETU WMM
若真碼為1234567,則偽碼為6491530215286819-3982,無論真碼是1位還是多位,偽碼總是具有同樣的不確定性和復雜性,所以若想通過簡化真碼來分析偽碼是不可能的。
2.2 解碼
解碼函數是將數據庫中存放的偽碼轉換成原用戶密碼,其代碼如下:
FUNC JMCX
PARA WMM
PP=″
FOR i=1 TO 5
PP=PP+SUBS(WMM,i,1)+SUBS(WMM,i+5,1)
ENDFOR
DD=SUBS(PP,17,4)+SUBS(PP,1,16)
M1=SUBS(DD,1,10)
M2=SUBS(DD,11,10)
ZMM=INT(VAL(M1)-VAL(M2))
RETU ZMM
由于提交的系統全是編輯的,非法者是無法得到密碼轉換函數中的信息的,所以解密方法不易被發現。
3 對用戶權限控制的實現
對一個包含多種業務操作的應用系統,由于業務的要求,常需要限制不同操作者的業務操作范圍,在VFP中,可以建立一個權限數據表,表中有多個字段,分別用于存儲每個操作者的代號、姓名、偽密碼等信息,如見表1所示[8]。
系統主表單上的多個業務模塊由多個按鈕來實現啟動,那么在系統主表單的 【確定】 按鈕CLICK 方法程序中添加一些判斷代碼,就可以實現系統的口令和操作權限控制。輸入工號和口令后,按【確定】,CLICK中的代碼則首先根據輸入的工號,對權限數據表中所對應記錄的口令偽碼進行解碼,得出的真碼與輸入口令一致方可進入系統[9]。為了在系統一啟動就打開權限數據表,故要將權限表添加到主表單的數據環境中。不同工號的操作員在進入系統后可以自行修改自己的密碼,而管理員無法知道操作員的密碼,只能進行擦除,這一點更加提高了操作員密碼的安全性[9]。
表1 權限數據表
工號 姓名 偽密碼
01 劉四龍 75913006360053614589
02 王高鵬 17615822156435449957
03 房金鎖 16710714110199886591
04 楊毛丹 58613143131858393185
4 結 語
該文是筆者在實際系統設計開發過程中,針對系統登錄采用傳統加密方式存在的缺陷,充分利用數據庫提供的用戶角色這一數據保護功能[10],應用數據加密技術對用戶信息進行合理可行的加密運算,設計出了一種新的安全登錄機制,從而加強了整個系統登錄的安全性。
參考文獻
[1]卿斯漢.密碼學與計算機網絡安全[M].北京:清華大學出版社,2001.
[2]李世取.密碼學中的有關概率模型[ M] .北京:電子工業出版社,2006.
[3]朱泉,何月順.數字簽名技術及其在OA中的應用[J].計算機與數字工程,2005,33(4):127-129.
[4]袁鵬飛.數據庫高級應用開發技術[M].北京:人民郵電出版社,2000.
[5]高品均,陳糧.數據庫加密技術綜述[N].計算機世界,2000(27):3-11.
[6]肖攸安,李臘元.數字簽名技術的研究[J].武漢理工大學學報:交通科學與工程版,2002,26(6):737-740.
[7]孫兆林.軟件加密解密與計算機安全技術[M].北京:中國水利水電出版社,2001.
[8]李礴.資金結算子系統操作指南[M].北京:中國鐵道出版社,1999.
[9]孫飛顯,徐明潔,楊進,等.基于Web的教務管理系統安全方案設計[J].2006,26(5):1198-1199.
[10]肖攸安,李臘元.數字簽名技術的發展[J].交通與計算機,2003,21(2):2-4.