《信息安全實驗教程》選擇信息安全實驗教學中最基本、最重要的內容作為切入點,深入到源代碼層面講解幾種典型密碼算法的原理,剖析各種信息安全技術實現的真實方式,旨在幫助讀者深入探究算法與技術的原理,掌握運用所學知識解決各種具體問題的基本方法,提高其編程能力!缎畔踩珜嶒灲坛獭贩譃槊艽a學實驗和網絡安全實驗兩大部分,密碼學實驗部分包括實驗1到實驗6,內容覆蓋古典密碼的加密與密碼分析、DES算法的加/解密原理及其差分分析和公鑰密碼算法的加/解密及信息隱藏等內容;網絡安全實驗部分由實驗7到實驗14組成,主要涉及常見的網絡攻擊技術(掃描、口令破解和嗅探DoS/DDoS攻擊等)內容。
信息安全的重要性不言而喻。隨著電子政務、電子商務的進一步普及,政府、企業以及各種社會機構對信息安全專業人才的需求逐漸從數量向質量過渡,以適應日益復雜的網絡應用環境。高等院校作為人才培養的基地,有義務向國家和社會輸送一批又一批既掌握扎實理論基礎、又具有較強動手能力的高素質專業人才。截至2009年,教育部共批準了70所高校設置信息安全類本科專業,其中的15所在2007年年底被教育部批準為“國家特色專業建設點”,從而能夠把信息安全專業作為國家特色專業來建設。
但信息安全專業人才的培養絕非易事,原因在于信息安全涉及密碼學、數學、計算機科學、通信工程和信息工程等多門學科的交叉,一方面知識體系龐雜、難于掌握,另一方面實踐性很強。在長期的教學實踐過程中,多數學;旧闲纬梢环N共識:合理、完善的實驗課程體系是幫助學生掌握理論體系、培養動手能力的有效途徑,并紛紛加大了對實驗室建設的投入,加強了實驗課程體系的建設。于是,各種各樣的實驗教材如雨后春筍般地涌現出來。毋庸置疑,每本教材都是對其編著者教學理念和教學經驗的總結,反映了不同學校對人才培養的側重點和不同訴求。
本書幾位編著者所在的北京郵電大學信息安全中心承擔著本校信息安全本科專業建設和教學的任務,并有幸入選教育部的“國家特色專業建設點”。在多年信息安全實驗教學過程中,幾位編著者根據社會需求和學生特點的變化不斷調整實驗內容和實驗教學方法,體會到實驗教學的難點在于如何實現理論基礎和動手操作的平衡:要么是學生的動手能力達不到用人單位的要求;要么是動手能力雖強,但只知其然、不知其所以然,缺乏創新能力。學生在走上工作崗位之后遇到的問題不可能都在上學期間由老師講授過,需要自己發揮主觀能動性,開展創新性思維尋求解決方案。要想具備這種能力,學生必須深刻理解各種信息安全技術和算法的基本原理,光靠“啃書本”不可能實現這一點,必須動手編程、調試程序和跟蹤程序運行過程,才能了解每一種算法背后的真正機制。
基于上述考慮,本教程重新梳理了信息安全實驗教學內容,結合源代碼和詳細的注釋講解算法(或技術)原理,引導學生深入到算法的實現過程中去理解其原理。由于篇幅的限制,不可能對所有的技術、理論和算法均進行深入的剖析,只能選擇一些典型的、影響較大的算法來分析,關鍵是對方法論的講解。這本質上是一種以點帶面的方法:學生只要深入理解了書中所講授的方法,同樣能夠舉一反三,自己去研究、理解其他可能遇到的問題。
作為實現編著者教學理念的載體,本教程有以下幾個鮮明的特色:
①把攻、防統一起來考慮問題。
信息安全問題往往涉及攻擊和防御這樣兩個矛盾的對立面:攻擊方考慮的是如何把自己的攻擊之矛打磨得無堅不摧,防御方則竭力去鑄造堅不可摧的盾。本教程在講解攻擊的時候,引導學生思考防御之策;而在講解防御的時候,也不得不思考攻擊之法。例如,對于古典密碼算法和DES密碼算法,不但要求學生掌握密碼編碼的算法,還要求他們能夠編程實現密碼分析的算法。
、诮Y合源代碼講解原理。
以最經典的密碼算法DES為例,按照算法的原理把從明文輸入到密文輸出之間的加密流程分解為一系列關鍵步驟,每一步的原理結合相應的C語言源代碼(含詳細的注釋)予以講解。這樣做的好處是,學生既理解了原理,又掌握了實現的方法。一旦遇到不同的應用需求,只需對現有的代碼做或多或少的修改即可。
、鄄捎密浖蛘唛_源軟件構件實驗環境。
學生們朝氣蓬勃、思維活躍,隨時隨地可能產生新的想法,實驗為他們提供了驗證自己想法的測試環境。本教程涉及的實驗僅依賴開源軟件,甚至多數情況下要求學生自己編寫程序,并不需要昂貴的設備作為支撐。這實際上也是在訓練學生掌握自己創造實驗條件的方法和技巧。
本教材在編寫過程中引用了來自互聯網的一些原理描述、源代碼及注釋,目的是服務于教學,為學生提供更優秀、更便于理解的教學素材和資源,作為正式出版物的參考文獻(書籍、學術論文及學位論文)在每一實驗的最后都做了標注。
本教材的編寫得到了所在靈創團隊的老師和研究生們的大力支持和協助,在此一并致謝!同時,由于編著者的水平有限,書中肯定存在這樣或那樣的問題,歡迎讀者在使用過程中予以批評指正。
編著者
2012年10月21日于北京
第一篇 密碼學實驗
實驗1 古典密碼學實驗
1.1 實驗目的
1.2 實驗原理
1.3 實驗環境
1.4 課堂實驗內容
1.5 課后實驗內容及實驗報告要求
1.6 思考題
參考文獻
實驗2 分組密碼學實驗
2.1 實驗目的
2.2 實驗原理
2.3 實驗環境
2.4 課堂實驗內容
2.5 課后實驗內容及實驗報告要求
2.6 思考題
參考文獻
實驗3 DES密碼分析實驗
3.1 實驗目的
3.2 實驗原理
3.3 實驗環境
3.4 課堂實驗內容
3.5 課后實驗內容及實驗報告要求
3.6 思考題
參考文獻
實驗4 RSA密碼實驗
4.1 實驗目的
4.2 實驗原理
4.3 實驗環境
4.4 課堂實驗內容
4.5 課后實驗內容及實驗報告要求
4.6 思考題
參考文獻
實驗5 信息隱藏實驗
5.1 實驗目的
5.2 實驗原理
5.3 實驗環境
5.4 課堂實驗內容
5.5 課后實驗內容及實驗報告要求
5.6 思考題
參考文獻
實驗6 數字簽名與可視化簽章實驗
6.1 實驗目的
6.2 實驗原理
6.3 實驗環境
6.4 課堂實驗內容
6.5 課后實驗內容及實驗報告要求
6.6 思考題
參考文獻
第二篇 網絡安全實驗
實驗7 網絡掃描實驗
7.1 實驗目的
7.2 實驗原理
7.3 實驗環境
7.4 課堂實驗內容
7.5 課后實驗內容及實驗報告要求
7.6 思考題
參考文獻
實驗8 網絡嗅探實驗
8.1 實驗目的
8.2 實驗原理
8.3 實驗環境
8.4 課堂實驗內容
8.5 課后實驗內容及實驗報告要求
8.6 思考題
參考文獻
實驗9 口令破解實驗
9.1 實驗目的
9.2 實驗原理
9.3 實驗環境
9.4 課堂實驗內容
9.5 課后實驗內容及實驗報告要求
9.6 思考題
參考文獻
實驗10 遠程控制實驗
10.1 實驗目的
10.2 實驗原理
10.3 實驗環境
10.4 課堂實驗內容
10.5 課后實驗內容及實驗報告要求
10.6 思考題
參考文獻
實驗11 DoS/DDoS攻擊與防范實驗
11.1 實驗目的
11.2 實驗原理
11.3 實驗環境
11.4 課堂實驗內容
11.5 課后實驗內容及實驗報告要求
11.6 思考題
參考文獻
實驗12 緩沖區溢出攻擊實驗
12.1 實驗目的
12.2 實驗原理
12.3 實驗環境
12.4 課堂實驗內容
12.5 課后實驗內容及實驗報告要求
12.6 思考題
參考文獻
實驗13 ARP欺騙攻擊實驗
13.1 實驗目的
13.2 實驗原理
13.3 實驗環境
13.4 課堂實驗內容
13.5 課后實驗內容及實驗報告要求
13.6 思考題
參考文獻
實驗14 訪問控制實驗
14.1 實驗目的
14.2 實驗原理
14.3 實驗環境
14.4 課堂實驗內容
14.5 課后實驗內容及實驗報告要求
14.6 思考題
參考文獻
附錄A 部分源代碼及注釋
A.1 對凱撒密碼進行頻度分析的源代碼
A.2 DES差分分析源代碼
A.3 針對文件的哈希算法源代碼
A.4 TFN2K源代碼
A.5 ARP Spoof源代碼
A.6 gina.dll原型代碼
A.7 Windows 2000下的SYN Flood程序
A.8 存在緩沖區溢出漏洞的服務端程序
A.9 緩沖區溢出漏洞攻擊程序
A.10 DoS攻擊程序
A.11 信息隱藏程序
A.12 DoS攻擊程序
A.13 本地用戶口令破解程序
A.14 網絡口令破解程序
附錄B 常見數字圖像格式及其代碼