本書以網絡安全程序設計基礎和主要技術為核心內容。重點介紹密碼學編程,基于OpenSSL開發包的網絡安全編程,網絡掃描器設計,防火墻設與實現,入侵檢測設計與實現以應用系統安全編程。
本書從網絡空間安全的必要性以及對創新人才培養的需求出發,闡述網絡安全程序設計的編程基礎與核心技術,對每個技術的講述包括基本概念、基本原理以及編程實例,將基礎知識與編程實踐結合,這對啟發學生的思考以及提升動手能力是十分重要的。從而,更能深入理解每種安全機制的實質,也有助于學生理論聯系實際地根據實際應用掌握網絡安全編程技術。
前言
隨著互聯網應用的日益廣泛,圍繞網絡信息的獲取、使用、傳輸引發的安全問題越來越顯得重要,網絡空間安全也上升為國家戰略,實踐能力是網絡空間安全創新人才培養的核心之一。本書是為高等學校的本科生、研究生提供的網絡安全程序設計教材。網絡空間安全涉及數學、計算機科學與技術、信息與通信工程等多個學科,已形成了一個相對獨立的教學和研究領域。網絡安全程序設計對學生的要求相對比較高,需要高級語言編程、操作系統、計算機網絡、密碼學與信息安全等基礎知識以及一些工具軟件的應用。本書從網絡空間安全的必要性以及對創新人才培養的需求出發,闡述網絡安全程序設計的編程基礎與核心技術,對每個技術的講述包括基本概念、基本原理及編程實例,將基礎知識與編程實踐結合,這對啟發學生的思考以及提升動手能力是十分重要的。從而學生更能深入理解每種安全機制的實質,也有助于學生理論聯系實際地根據實際應用掌握網絡安全編程技術。全書共8章。第1章概要介紹網絡空間安全的必要性、網絡空間安全對人才培養的新要求以及網絡安全程序設計相關知識; 第2章介紹網絡安全編程基礎,包括Socket編程以及VC 網絡安全編程; 第3章闡述密碼學基礎知識,基于經典密碼算法的安全編程實例; 在此基礎上,第4章講述基于網絡安全開發包OpenSSL的編程實踐; 第5章介紹網絡掃描器的設計,包括ICMP掃描、TCP掃描、木馬掃描等基本原理與編程實現; 第6章介紹了防火墻技術以及基于包過濾技術的防火墻實現; 第7章介紹入侵檢測系統原理、技術與實現; 第8章介紹兩種實際應用系統編程,包括基于OpenSSL的安全Web服務器設計實現及安全電子郵件編程。本書的建議學時為48學時,其中課堂講解部分為24學時,上機實驗24學時。根據各專業的不同教學需求,以上學時安排和內容可根據實際需要進行調整。本書由李紅嬌擔任主編與統稿工作,李晉國、李婧擔任副主編。李紅嬌負責編寫第1~4章。第5章和第6章內容由李婧負責編寫,第7章和第8章內容由李晉國負責編寫。許智、陳晶晶、郭政偉參與了本書的編輯及程序代碼調試工作。本書由上海電力學院顧春華教授主審。本教材編寫得到了上海市信息安全管理重點實驗室開放課題(編號AGK2015005)以及上海市科委地方能力建設項目(No.15110500700)資助。在編寫過程中,也參考了一批技術文獻、著作、教材及網絡資源,為本書的編寫奠定了寶貴的基礎,在此一并表示衷心的感謝。由于編者水平有限,書中難免有疏漏和不足之處,懇請專家和讀者批評指正。編者2016年12月于上海
目錄
第1章緒論
1.1網絡空間安全的必要性
1.1.1技術層面
1.1.2網絡安全與國家戰略
1.2網絡空間安全學科研究的主要內容
1.3網絡空間安全對人才培養的新要求
1.3.1我國網絡空間安全面臨的形勢
1.3.2網絡空間安全一級學科
1.3.3網絡空間安全創新人才培養體系
1.4網絡安全程序設計基礎知識
1.4.1網絡協議
1.4.2操作系統
1.4.3網絡安全組成
1.4.4網絡安全開發包
1.5本書內容安排
小結
思考題
第2章網絡安全編程基礎
2.1套接字編程
2.1.1套接字概念
2.1.2連接過程
2.1.3基本套接字
2.1.4典型過程圖
2.2WinSock編程相關函數
2.2.1Win32 API 相關套接字常用函數
2.2.2基于消息套接字編程相關函數
2.2.3MFC常用函數
2.2.4TCP套接字相關函數
2.2.5UDP套接字相關函數
2.2.6編寫套接字通信
2.3Visual C 網絡安全編程
2.3.1獲取系統實時信息
2.3.2進程處理
2.3.3線程處理
2.3.4定時器處理
2.3.5注冊表處理
2.3.6獲取網絡接口信息
小結
思考題
第3章密碼學編程
3.1密碼學基本概念
3.1.1對稱密碼
3.1.2公鑰密碼
3.1.3哈希函數
3.1.4數字簽名
3.1.5隨機數與偽隨機數
3.2基于SHA1算法的文件完整性校驗
3.2.1SHA1算法
3.2.2基于SHA1的文件完整性檢驗
3.3基于RSA算法實現數據加解密
3.3.1RSA算法原理
3.3.2基于RSA算法實現數據加解密
小結
思考題
第4章基于OpenSSL的網絡安全編程
4.1OpenSSL 概述
4.1.1背景技術
4.1.2OpenSSL的特點
4.1.3OpenSSL的功能
4.1.4OpenSSL支持的算法
4.1.5OpenSSL應用程序
4.1.6OpenSSL的Engine機制
4.1.7OpenSSL安裝方法
4.2OpenSSL EVP編程
4.2.1概述
4.2.2源碼結構
4.2.3對稱算法以及base64編碼編程
4.2.4公鑰算法編程
4.2.5哈希摘要算法
4.2.6消息鑒別碼HMAC
4.2.7簽名和驗證算法
小結
思考題
第5章網絡掃描器設計
5.1基本知識
5.1.1端口
5.1.2端口掃描
5.2ICMP掃描
5.2.1ICMP協議
5.2.2ICMP掃描過程
5.3TCP掃描
5.3.1TCP協議
5.3.2TCP掃描過程
5.3.3TCP掃描分類
5.4UDP掃描
5.5木馬掃描
5.6漏洞掃描
5.6.1漏洞掃描技術
5.6.2漏洞掃描分類及技術
5.7實例編程端口掃描實現
5.7.1ICMP掃描實現
5.7.2TCP掃描實現
5.7.3UDP掃描實現
5.7.4木馬掃描實現
5.7.5隱秘掃描實現
小結
思考題
第6章防火墻設計與實現
6.1防火墻技術
6.1.1防火墻概念
6.1.2防火墻的技術原理
6.1.3防火墻的應用
6.1.4防火墻的局限性
6.2實例編程實現包過濾防火墻
6.2.1基于協議的數據包過濾實現
6.2.2基于源IP地址的數據包過濾實現
6.2.3基于TCP通信目的端口過濾實現
6.2.4包過濾防火墻的編程實現
小結
思考題
第7章入侵檢測模型設計與實現
7.1入侵檢測技術
7.1.1入侵檢測的基本原理
7.1.2入侵檢測的主要分析模型和方法
7.1.3入侵檢測系統的體系結構
7.1.4入侵檢測系統的發展
7.2實例編程基于KDD數據集及KMeans建立入侵檢測模型
7.2.1KDD CUP 99數據集
7.2.2KMeans算法原理
7.2.3KMeans算法代碼實現
小結
思考題
第8章應用系統安全編程
8.1基于OpenSSL的安全Web服務器程序
8.1.1基礎知識
8.1.2基于OpenSSL的安全Web編程實現
8.2安全電子郵件編程
8.2.1基礎知識
8.2.2編程訓練實現安全電子郵件傳輸
小結
思考題
參考文獻