摘要:隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)在人們的生活中應(yīng)用的越來越廣泛。尤其當(dāng)這種應(yīng)用還逐漸包括了資金的支付、商務(wù)信息的傳送等等方面的時(shí)候,這些網(wǎng)絡(luò)上傳遞著的信息就很容易被不法分子乘機(jī)利用,為自己謀取個(gè)人不正當(dāng)?shù)睦??;谶@種情況,人們研發(fā)了數(shù)字證書技術(shù),以此來為網(wǎng)絡(luò)之中傳輸?shù)臄?shù)據(jù)保駕護(hù)航。數(shù)字證書技術(shù)的應(yīng)用能夠讓用戶在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)得到有效的保護(hù),使得不法分子難以通過網(wǎng)絡(luò)將數(shù)據(jù)進(jìn)行截取并修改。本文將基于C#語(yǔ)言,利用SqlServer技術(shù),介紹數(shù)字證書的應(yīng)用系統(tǒng),即數(shù)字證書管理系統(tǒng),為闡述數(shù)字證書在網(wǎng)絡(luò)安全中的應(yīng)用進(jìn)行一個(gè)具體實(shí)現(xiàn)。
關(guān)鍵詞:數(shù)字證書;網(wǎng)絡(luò)安全;數(shù)字證書管理系統(tǒng)
1引言
網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,使得我們大踏步地進(jìn)入了一個(gè)前所未有的信息化時(shí)代。在信息化的時(shí)代背景下,人與人之間依靠網(wǎng)絡(luò)這一新型媒介進(jìn)行信息傳遞的數(shù)量、頻率和速度都有了超大規(guī)模的提高。隨著網(wǎng)絡(luò)逐步成為人們傳遞和獲取信息的主流媒介,信息在網(wǎng)絡(luò)上進(jìn)行傳遞時(shí)的安全與否就成了人們?nèi)諠u關(guān)心的話題。
隨著信息化建設(shè)的展開,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為了各行各業(yè)不可或缺的效率助手,也為現(xiàn)在的交流、溝通、資金的流動(dòng)提供了更快捷方便的模式。但是,網(wǎng)絡(luò)卻經(jīng)常是不安全的,在網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)往往存在著被截獲、修改的可能。而被截獲修改后的數(shù)據(jù)一旦被有心之人拿去加以利用,則可能產(chǎn)生不可預(yù)料的后果。而本文就是基于數(shù)字證書實(shí)現(xiàn)一個(gè)數(shù)字證書的應(yīng)用管理系統(tǒng),來體現(xiàn)數(shù)字證書應(yīng)用到網(wǎng)絡(luò)安全中的作用。
2數(shù)字證書的概念
Hash算法具備“通過私鑰對(duì)一段數(shù)據(jù)進(jìn)行加密后,只有對(duì)應(yīng)的公鑰能夠進(jìn)行解密,通過公鑰進(jìn)行加密后,只有配對(duì)的私鑰才能解密”的特性,而數(shù)字簽名就是基于的這個(gè)原理,來對(duì)待傳遞的信息摘要進(jìn)行加密。
用戶A能夠在自己的電腦上通過自己的私鑰對(duì)要傳輸?shù)臄?shù)據(jù)進(jìn)行加密,而接收到數(shù)據(jù)的用戶B可以利用用戶A的公鑰對(duì)A發(fā)送的數(shù)據(jù)進(jìn)行簽名校驗(yàn),從而判斷該段數(shù)據(jù)是否是用戶A發(fā)送的,并且該段數(shù)據(jù)沒有被經(jīng)過修改。
3系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)的設(shè)計(jì)思想
管理性軟件都是通過計(jì)算機(jī)將人從繁瑣、重復(fù)、枯燥的工作、生活中解脫出來,便于人們處理更多的其他有意義的事情。所以,其管理類軟件需要遵循以下幾點(diǎn)特性:
完整性:即設(shè)計(jì)的程序其在功能上是完善的,不同的模塊之間彼此是獨(dú)立的但是同時(shí)也是相互關(guān)聯(lián)的。其程序最終能實(shí)現(xiàn)最后的管理類工作。
簡(jiǎn)單性:一個(gè)優(yōu)秀的系統(tǒng)必須具備操作簡(jiǎn)單,容易上手。所以,程序的設(shè)計(jì)應(yīng)該盡量遵循主流的軟件的設(shè)計(jì)方式,能夠讓用戶即使第一次使用也能夠快速熟悉系統(tǒng)。
穩(wěn)定性:開發(fā)的系統(tǒng)應(yīng)該運(yùn)行穩(wěn)定,不會(huì)因?yàn)樘厥獾那闆r就導(dǎo)致程序崩潰,即使出現(xiàn)異常,也應(yīng)該能夠?qū)㈠e(cuò)誤的異常暴露出來。
3.2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)在程序的實(shí)現(xiàn)上,采用的是將界面、應(yīng)用邏輯、數(shù)據(jù)庫(kù)處理、數(shù)據(jù)庫(kù)連接操作等進(jìn)行相關(guān)的封裝,這種封裝能夠在開發(fā)中將相關(guān)的功能集中在同樣的類模塊中,從而實(shí)現(xiàn)更方便的處理。
程序主要包括表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層。其中,表現(xiàn)層主要是接收用戶的操作處理,獲取用戶操作的動(dòng)作或輸入結(jié)果。而業(yè)務(wù)層則是對(duì)用戶的操作或輸入的數(shù)據(jù)進(jìn)行邏輯處理,處理完后,將相關(guān)數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中。最終,數(shù)據(jù)庫(kù)將對(duì)應(yīng)的結(jié)果反饋到界面。
3.3系統(tǒng)詳細(xì)設(shè)計(jì)
系統(tǒng)在設(shè)計(jì)上主要分為了證書申請(qǐng)、申請(qǐng)管理、證書管理、證書應(yīng)用模塊。模塊在業(yè)務(wù)層都是彼此獨(dú)立的。但是,在數(shù)據(jù)層都通過相同的處理接口進(jìn)行相應(yīng)的處理。而界面則根據(jù)不同的功能進(jìn)行不同的顯示。下面將對(duì)每個(gè)模塊進(jìn)行詳細(xì)介紹。
3.3.1 證書申請(qǐng)
證書申請(qǐng)就是申請(qǐng)的用戶通過填寫相關(guān)的個(gè)人信息,最終提交到數(shù)據(jù)庫(kù)后臺(tái),最終用于證書生成的輸入信息。
證書申請(qǐng)主要是用戶輸入相關(guān)的申請(qǐng)信息,其申請(qǐng)的信息如果格式正確,就會(huì)被寫入數(shù)據(jù)庫(kù)中,為證書生成提供數(shù)據(jù)。
3.3.2 申請(qǐng)管理
證書申請(qǐng)管理是對(duì)用戶申請(qǐng)的證書進(jìn)行生成或拒絕的管理,其具體處理邏輯如圖。
證書生成時(shí),首先通過讀取數(shù)據(jù)庫(kù)中的申請(qǐng)信息,然后調(diào)用C#中makecert.exe進(jìn)程,實(shí)現(xiàn)證書的生成。當(dāng)證書生成后,通過查詢到證書存儲(chǔ)區(qū)域查詢出相關(guān)的證書信息保存到X509Store對(duì)象中,然后通過Export將證書導(dǎo)出為.cert文件。最終,將導(dǎo)出的結(jié)果保存到數(shù)據(jù)庫(kù)中,用于證書的管理和應(yīng)用。
3.4.3證書管理
證書的管理主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中證書的激活以及廢除。其主要操作是通過更新數(shù)據(jù)庫(kù)證書的狀態(tài),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中證書的廢除和激活。對(duì)證書的管理只是將該證書的狀態(tài)是否可用更新到數(shù)據(jù)庫(kù)中。
3.4.4證書應(yīng)用
對(duì)于生成的證書,要應(yīng)用到實(shí)際中,但是該系統(tǒng)只是模擬了證書的應(yīng)用,實(shí)現(xiàn)了對(duì)利用證書實(shí)現(xiàn)了對(duì)數(shù)據(jù)的加密,然后利用證書實(shí)現(xiàn)了對(duì)數(shù)據(jù)的解密校驗(yàn)。
4結(jié)論
論文系統(tǒng)介紹了數(shù)字證書在網(wǎng)絡(luò)安全中的應(yīng)用。其主要包括如下:
首先,從系統(tǒng)原理著手。分析了數(shù)字證書系統(tǒng)的基本原理和背景。從而從設(shè)計(jì)的角度,采用模塊化的思想,對(duì)系統(tǒng)前期進(jìn)行了細(xì)致的分析和設(shè)計(jì)。
然后,根據(jù)前期已經(jīng)進(jìn)行的設(shè)計(jì)和分析,采用了C#開發(fā)語(yǔ)言,其代碼實(shí)現(xiàn)上采用分層的處理邏輯,利用C#相應(yīng)的控件,并結(jié)合Windows API的編程,最終實(shí)現(xiàn)了系統(tǒng)的具體功能。
與此同時(shí),在系統(tǒng)的設(shè)計(jì)上盡量多地去考慮了用戶操作,使得系統(tǒng)功能更加明確,用戶操作更加簡(jiǎn)便。在實(shí)現(xiàn)上,對(duì)每一步操作進(jìn)行返回值的判斷與處理,讓系統(tǒng)能夠盡早發(fā)現(xiàn)錯(cuò)誤而對(duì)用戶進(jìn)行提示,防止出現(xiàn)無法返回的錯(cuò)誤。
限制于自身的開發(fā)經(jīng)驗(yàn)以及完成周期,整個(gè)系統(tǒng)肯定還是存在著一些需要打磨改進(jìn)的方面。除去界面以及一些處理邏輯的優(yōu)化,在系統(tǒng)的可擴(kuò)展性和運(yùn)行效率上還有可以雕琢的地方。
參考文獻(xiàn):
[1]施昊華,張朝輝編著.UML面向?qū)ο蠼Y(jié)構(gòu)設(shè)計(jì)與應(yīng)用[M].國(guó)防工業(yè)出版社,2013.
[2](美)NadirGulzar著,陳曉燕,丁炎炎譯.實(shí)用J2EE應(yīng)用程序體系結(jié)構(gòu)[M].清華大學(xué)出版社,2013.
[3]鄺孔武,王曉敏編著.信息系統(tǒng)分析與設(shè)計(jì)[M].清華大學(xué)出版社,2012.
[4](美)JamesRumbaugh等著,姚淑珍,唐發(fā)根等譯.UML參考手冊(cè)[M].機(jī)械工業(yè)出版社,2011.
[5]楊玨等編著.JSP網(wǎng)絡(luò)開發(fā)技術(shù)[M].人民郵電出版社,2011.
作者簡(jiǎn)介:張圣龍(1996.08.24)男,漢,湖北荊州,武漢東湖學(xué)院計(jì)算機(jī)應(yīng)用技術(shù)。