專利名稱:一種信息安全方法
技術領域:
本發(fā)明涉及一種信息安全方法,尤其涉及一種對計算機軟件的安全防范方法。
盡管信息安全被視為高科技,可是現(xiàn)今的信息安全構思卻與古代無甚區(qū)別,如
圖1所示,傳統(tǒng)的信息保安流程一般為讀取密碼步驟101,讀取密鑰步驟102,比較密碼和密鑰步驟103,如果結果為真,則運行后續(xù)程序步驟104,如果結果為假,則中斷程序或進入循環(huán)步驟105。
茲以信息保密為例說明之。一.密鑰此處所謂的密鑰也叫做“密碼”、“系列號”、“口令”,乃是合法身份的識別碼。上述所有稱謂都不很確切,由于信息安全防御和攻擊通常叫做“加密”、“解密”,因此本說明權且采用“密鑰”的稱謂。
密鑰的加持方案,可以分為1.硬加密;
2.軟加密;3.人加密。
和硬件有關的加密方法叫做硬加密,和軟件有關的加密方法叫做軟加密。硬加密和軟加密解釋和區(qū)分開來有時候有點困難。人加密是指用戶個人掌握的特征碼,這個稱謂是杜造的,卻比較容易理解,它可以是1.口令等個人掌握的信息,例如系列號(S/N);2.磁卡、IC卡等個人持有的憑證;3.指紋、語音、眼底視網膜等個人具有的物理特征;4.簽名(包括靜態(tài)和動態(tài)簽名)等個人行為特征。
對于計算機而言,所有這些特征編碼都要求能夠數(shù)字化,轉換為二進制碼,方可以接受和處理。二.真?zhèn)芜@里所謂的“真?zhèn)巍迸c敵我識別相仿,即將讀入的密鑰和內部存儲的密碼進行比較,其結論分為“真”(TRUE)和“假”(FALSE)兩種。由于計算機數(shù)據(jù)是數(shù)字化的,因此又可以分成“大于”、“小于”、“等于”三種情況。三.處置根據(jù)真?zhèn)闻袆e結果所作出的處置應視信息安全的要求而定。以防止軟件被非法使用為例,若是判斷結果為“假”,通常處置為1.中斷程序;2.進入循環(huán)(死循環(huán));3.重新啟動。
從而使程序不能正常運行。
信息安全防范是否有效需要聯(lián)系社會現(xiàn)實來考量,不僅要求防君子,而且要能防小人,也就是要能較為有效地防范進行信息犯罪活動的黑客攻擊手段,為此必須了解黑客攻擊原理和主要手段。茲以制作盜版為例,描述黑客如何進行“破解”。
1.挪用密鑰信息具有和物質不同的一些特性,例如信息不符合守恒定律,復制信息不會造成源信息的損失,因此用同一份軟件可以對多臺計算機進行安裝。同樣的道理,對于那些附帶密鑰系列號的軟件,進行復制的同時標明安裝或運行時的系列號(S/N),就能輕而易舉地制作盜版軟件。
2.偵破密鑰挪用密鑰針對沒有防范措施的場合,偵破密鑰則針對已有防范措施的場合。例如,對網絡采用“監(jiān)聽”,對英文密鑰利用字母排序規(guī)律用“黑客字典”來輔助查找。有些人喜歡用自己的生日、電話號碼作為口令,黑客利用計算機便能很快地偵破。
3.修改程序加密有很多招數(shù),選用比較穩(wěn)妥的辦法,挪用密鑰或者偵破密鑰的手段便難以奏效。然而,高明一點的黑客并不采用破解密鑰而是采用破解程序的辦法,對目標程序進行反匯編,通過靜態(tài)分析或是動態(tài)跟蹤的辦法找出“判別真?zhèn)巍焙汀皡^(qū)別處置”的部分,用機器碼修改程序,進行破解。以制作盜版為例,前述的三個環(huán)節(jié)的匯編語言命令格式可能是CALL讀入密鑰CMP 比較密鑰和內置密碼JZ 如果比較結果為真,跳到某一入口作正常運行JNZ 如果比較結果為假,跳到另一入口,作異常處理把其中第三行“條件跳躍”命令JZ改為無條件跳躍的JMP命令,即把程序中的條件轉向語句改為無條件轉向語句,于是無論讀入的密鑰正確與否程序都會正常運行,就達到了解密目的。此外,把第二行“數(shù)據(jù)比較”命令CMP改為NOP(無動作)或是把第四行“條件跳躍”命令JNZ改為NOP都能夠破解程序。經過破解的程序可以輸入任何字符串或者甚至于不需要輸入密碼即可正常運行,使用起來比未破解的程序更為方便,這也是黑客搞破解的一個借口。
另一種格式是CALL 讀入密鑰CMP比較密鑰和內置密碼JNZ如果比較結果為假,跳到某一入口,作異常處理,比如中斷程序JMP如果比較結果為真,跳到另一入口,正常運行程序只要把第三行的JNZ改為NOP即可破解。
從以上范例可見,破解程序在技術上并不困難,而是反匯編后的程序很長,類似的命令甚多,找出哪幾句和加密有關要花費不少時間,故而黑客都很有耐心。若是程序在要求鍵盤輸出密鑰時往往設置成“如果三次輸入出錯,程序即中斷”之類的條件為剖析程序提供了線索,破解起來就方便多了。
實際使用的防范程序可能會比上述例子稍微復雜一些使用多個密鑰,比如“姓名”加上“注冊碼”;對密鑰或密碼再加密或加以運算等等。例如,WINDOWS操作系統(tǒng)允許用戶設定口令PassWord,該項口令存放在擴展名為pwl(PassWordList)的文件中,若是pwl文件中的數(shù)據(jù)于口令一致,非法用戶用軟盤啟動電腦,打開pwl文件即可盜用口令,采用加密技術使得pwl中的數(shù)據(jù)和源碼不同,能防范盜用口令,但是這些措施并不改變最后以邏輯判斷作出“真”、“假”,“相符”、“不符”,“合法”、“非法”的定性結論。
黑客攻擊并非什么新生事物,程序設計人員針對上述攻擊情況作了一些防破解的措施,大體分為被動與主動兩類。
被動措施包括程序壓縮、使用保護模式等等。主動措施有反跟蹤技術,干擾跟蹤軟件的運行。所有這些辦法都增加了程序破解的困難,卻并未改變防范機制。
上述的計算機軟件安全防范的匯編語言格式只是作為典型的例子,可以有變形,但無論何種形式其防范原理和古代軍事上的口令、崗哨沒有多大區(qū)別。崗哨通過口令是否相符來識別敵我,對合法者放行,非法者堵截,可是入侵者可以殺掉哨兵闖關,同樣黑客也可以通過“殺掉”CALL命令,或是修改“跳躍”,或者移動“中斷向量表”的辦法來破解,卻不必知道口令。這類的安全防范措施并非運行程序的必不可少的部分,而是對非法運行程序產生阻力的附加部分,乃是當前計算機和信息安全的最大隱患。
為解決上述技術問題,本發(fā)明提供一種信息安全方法,其包含如下步驟(1)讀取密碼與密鑰;(2)將密鑰與密碼做運算;(3)利用運算結果做為后續(xù)程序的參數(shù)來運行程序。
為使本發(fā)明的加密算法更為靈活,所述密鑰與密碼的運算方法,可以是數(shù)學運算或邏輯運算,也可以是兩者的結合,優(yōu)選為數(shù)學運算,最簡便的方法是差值運算。
為使本發(fā)明的密碼的取值更為靈活和隱蔽,所述密碼可以是程序中設置的數(shù)據(jù)或程序可以調入的數(shù)據(jù),也可以是兩者的結合。
為使本發(fā)明的密碼的設置更為靈活和隱蔽,所述密碼可以放置于一處或分置于數(shù)處。
為使運算結果與后續(xù)程序的參數(shù)的對應關系更為復雜,所述利用運算結果做為后續(xù)程序的參數(shù)的步驟,可以將運算結果直接作為后續(xù)程序的參數(shù),也可以將運算結果再做運算或轉換后,作為后續(xù)程序的參數(shù)。
為使運算結果的表現(xiàn)形式更為復雜,所述運算結果可以是一個數(shù),也可以是一組數(shù),還可以將一個多位數(shù)的運算結果截成若干段,形成多個運算結果。
為使本發(fā)明對運算結果的運用更加靈活,所述運算結果可以是數(shù)值,也可以轉換為字符,還可以把結果轉換為“名”,既“文件名”或“程序名”等。
本發(fā)明與現(xiàn)有技術相比,有如下有益效果1.由于其不采用“相符”判據(jù)原則,而是采用將密鑰與密碼的運算結果做為后續(xù)程序運行所需的參數(shù)的方法,于是密鑰和密碼就成了運行程序的動力,是運行程序的必不可少的部分,不能通過“殺去”、“繞過”之類的修改程序的手段來破解。本發(fā)明充分利用計算機的特點,從根本上改變了信息安全防范的思路,改善了安全防范的可靠性。
2.本發(fā)明對于非法入侵和非法運行可產生多元化的定量而非定性的后果,從而能有效地對付黑客跟蹤。
3.現(xiàn)有的防范方法作邏輯判斷只能產生兩三種后果,處置方法也比較少,容易進行動態(tài)跟蹤;而使用十位十進制差數(shù)就能產生一百億種不同的結果,而且缺乏特征,難以跟蹤,也難以用機器碼來修改、破解程序。
4.本發(fā)明的方法可以,并且適合用并聯(lián)、串聯(lián)、嵌套的辦法來增強其功效。
并聯(lián)是指運行一個程序有幾處安全防范措施起作用;串聯(lián)指破解一道防范措施后,里層又有一道道防范措施起作用;嵌套指一種以上的防范措施同時起作用。
典型的嵌套是將本發(fā)明的方法和密碼學的加密方法結合起來,可以用差值產生密碼,也可以用密碼產生差值,從而顯著增強破解難度。
5.本發(fā)明的方法和傳統(tǒng)信息保安方法結合起來,有助于防范的可靠性和靈活性。例如可用于準許有限個用戶使用的場合。作為特殊的例子,也可以使用密鑰和零的差值,即密鑰絕對值。對于唯一的一個用戶,可以使用這種方式。
如圖3所示,其為本發(fā)明中,用文字作密鑰產生一組數(shù)來影響后續(xù)程序的例子PC機的卷號在程序中可讀寫,卻不能復制,本例用卷號“知識產權局!”作密鑰為例,闡述如何配密碼來產生數(shù)值。
表1密鑰、密碼和差值示例
表1依據(jù)國標GB 2312“信息交換用漢字編碼字符集基本集”取“胎臉膀璃敢5”作密碼,將密鑰和密碼逐個字節(jié)按ASCII碼求差值,即可得到十進制數(shù)列,10、5、9、3、2、8、7、1、6、4、20,這些數(shù)賦值給變量用于后續(xù)程序參予程序的運行,如果需要其它數(shù)值,可以上述數(shù)值組合。
其執(zhí)行步驟如圖3所示首先設置密碼“知識產權局!”步驟301,然后讀取密鑰“胎臉膀璃敢5”步驟302,對密碼和密鑰逐個字節(jié)讀出ASCII碼步驟303,相減取絕對值得十進制數(shù),賦值給一組變量步驟304,用上述變量作為程序中的參數(shù),運行后續(xù)程序步驟305。
如果密鑰不正確運行到后續(xù)程序就會發(fā)生混亂,混亂的情況和密鑰有關,可能有各種各樣的現(xiàn)象發(fā)生。
如圖4所示,其是把密鑰、密碼運算結果的多位數(shù)截成幾段的例子本例用輸入一個多位數(shù)密鑰做例子,說明如何把運算結果截斷,再轉換為字符。
首先是設置密碼“109479655”步驟401,然后讀取密鑰“62791688”步驟402,求得密碼與密鑰的差值“46687967”步驟403,將上述結果截斷成“46、68、79、67”步驟404,按十進制數(shù)值取ASCII字符“.”,“D”,“O”,“C”步驟405,將以上字符相加成“.DOC”步驟406,將相應的字符串用于后續(xù)程序步驟407。
如圖5所示,其是把邏輯運算的結果轉換成字符的例子本例對十六進制數(shù)的密碼和十進制數(shù)的密鑰作邏輯運算中的“異或”(XOR)運算,生成事先設定的字符“信息安全”四個漢字。
表2.邏輯運算示例
在程序中分別讀入四個密鑰,經邏輯運算后產生預先設定的和漢字編碼相應的十六進制數(shù),轉換成漢字,把漢字賦值給字符串變量。后續(xù)程序中這樣的變量可以作為“名”,比如,路徑名、文件名,網站名,在有些語法語言中還能作為“命令”。本實施例和上例合并起來就能構成文件名“信息安全.DOC”,能調用一個叫“信息安全”的WORD文件。
計算機軟件通常由多個文件組成,各個文件之間要勾連和調用,用本發(fā)明的方法正確的密鑰產生正確的文件勾連和調用,錯誤的或不存在密鑰就會因為生成的文件名不存在而產生“錯誤的文件名”而使程序中斷。
其執(zhí)行步驟為首先讀取(四段)密碼“D605、CIE3、A988、EFAF”步驟501,讀取(四段)密鑰“1728、3649、6410、9988”步驟502,將密碼和密鑰逐對作XOR運算,得出運算結果“DOC5、CFA2、BOB2、C8AB”步驟503,運算得出的四組兩位十六進制數(shù),按GB2312字符集換成漢字字符“信”、“息”、“安”、“全”步驟504,把以上漢字連接起來得到一字符串變量“信息安全”步驟505,后續(xù)程序中可以用上述字符串加擴展名打開和運行相應的文件,加擴展名“.DOC”以用來打開WORD文件“信息安全”步驟506。
上述實施例僅是本發(fā)明的優(yōu)選實施方式,根據(jù)不同的安全防范要求,還可以作出不同的變化,需要說明的是1.密鑰的選取取決于防范要求。此如,要求電腦中安裝好的軟件的軟件,復制品在其它電腦中不能正常運行,或者電腦中的文件下載后不可讀,應該選該電腦的主機板,CPU、磁盤的特征參數(shù)作密鑰。要求軟件僅供某人使用,就要用人加密的密鑰,若是既要限制機器又要限制使用者,就得兩類密鑰都用上。
2.密鑰和密碼的匹配要求是,經過程序中指定的運算產生指定的結果,進而生成預定的數(shù)或串用于后續(xù)程序中。
密鑰和密碼在匹配時,有一方是主動的,另一方是被動的,比如,人加密方法中,用個人物理特征作密鑰,密鑰是主動的,而用系列號(S/N)作密鑰,密鑰可以是被動的,即由軟件設計者選設置密碼,再將密鑰告訴用用戶。
3.對計算機和網絡而言,密鑰、密碼本質上都是二進制的比特,卻可以有多種形式。在用字符作密碼時,避開ASCII小于32的控制碼免得干擾程序運行即可,并沒有可讀性要求。考慮到黑客用的基本工具軟件多為西方所開發(fā),反匯編對往往不把漢字等多字節(jié)字符的源碼顯示出來,因此含漢字的密碼比純西文,數(shù)字的密碼更為安全。
4.如何寫入和讀取密碼是程序設計的技巧,屬于“法無定法”。原則上,密碼分散在幾處,比集中在一處好;密碼放置在其它程序中,比放置在本程序中好;密碼在源程序編譯后再設置,比設置后再編譯好。
5.類似地,密鑰的讀取也和程序設計技巧有關,還可能和硬件設計有關,應該盡可能選取難以人為更改和復制的訊息作密鑰,此外還要考慮到使用方便。本發(fā)明對付挪用密鑰和偵破密鑰沒有什么長處,常用的由用戶從鍵盤輸入系列號的方法既不安全又不方便,屬于低性能的密鑰。
6.本發(fā)明并不代替“密碼-密鑰-加密”的措施,而是通過防止逃避以上措施,而達到更可靠的信息安全保障。
權利要求
1.一種信息安全方法,包括(1)讀取密碼與密鑰;(2)根據(jù)密碼與密鑰的處理結果運行后續(xù)程序,其特征在于所述步驟(2)采用下列步驟(1)將密碼與密鑰做運算;(2)利用運算結果做為后續(xù)程序的參數(shù)來運行程序。
2.如權利要求1所述的信息安全方法,其特征在于所述將密鑰與密碼做運算,是做數(shù)學運算或邏輯運算或兩者的結合。
3.如權利要求1或2所述的信息安全方法,其特征在于所述密碼是程序中設置的數(shù)據(jù)或程序可以調入的數(shù)據(jù)或兩者的結合。
4.如權利要求1或2所述的信息安全方法,其特征在于所述密碼放置于一處或分置于數(shù)處。
5.如權利要求3所述的信息安全方法,其特征在于所述密碼放置于一處或分置于數(shù)處。
6.如權利要求1所述的信息安全方法,其特征在于所述利用運算結果做為后續(xù)程序的參數(shù),是將運算結果直接作為后續(xù)程序的參數(shù),或將運算結果再做運算或轉換后,作為后續(xù)程序的參數(shù)。
7.如權利要求1或6所述的信息安全方法,其特征在于所述運算結果可以是一個數(shù),也可以是一組數(shù),還可以將一個多位數(shù)的運算結果截成若干段,形成多個運算結果。
8.如權利要求1或6所述的信息安全方法,其特征在于所述運算結果可以是數(shù)值,也可以轉換為字符,還可以把結果轉換為“名”。
9.如權利要求7所述的信息安全方法,其特征在于所述運算結果可以是數(shù)值,也可以轉換為字符,還可以把結果轉換為“名”。
全文摘要
本發(fā)明提供一種信息安全方法,其包含如下步驟:(1)讀取密碼與密鑰;(2)將密碼與密鑰做運算;(3)利用運算結果做為后續(xù)程序的參數(shù)來運行程序。本發(fā)明采用將密鑰與密碼的運算結果做為后續(xù)程序運行所需的參數(shù)的方法,于是密鑰和密碼就成了運行程序的動力,是運行程序的必不可少的部分,不能通過“殺去”、“繞過”之類的修改程序的手段來破解。本發(fā)明充分利用計算機的特點,從根本上改變了信息安全防范的思路,改善了安全防范的可靠性。
文檔編號G06F21/12GK1347035SQ0113216
公開日2002年5月1日 申請日期2001年11月9日 優(yōu)先權日2001年11月9日
發(fā)明者汪文虎 申請人:汪文虎