网络安全高级软件编程技术
基本信息
内容简介回到顶部↑
本书的作者队伍是由南开大学计算机系、国家计算机病毒应急处理中心的人员组成。作者在总结多年网络安全科研与教学实践经验的基础上,设计了12个“近似实战”的网络安全软件设计与编程训练的课题。训练课题覆盖了从密码学在网络通信中的应用,网络端口扫描、网络嗅探器、网络诱骗、网络入侵检测、安全web、防火墙,到linux内核网络协议栈程序加固、网络病毒与垃圾邮件的检测与防治技术。训练课题接近研究的前沿,覆盖了网络安全研发的主要领域与方向。完成网络安全训练课题的操作系统选择为linux,完成训练课题不限定任何特殊的硬件环境与编程语言。通过在linux环境中完成网络安全软件的设计与编程训练,提高读者研发具有自主知识产权的网络安全技术和产品的能力。
本书可以作为计算机、信息安全、软件工程、通信工程、电子信息及相关专业的硕士与工程硕士研究生、博士研究生的教材或参考书,以及本科计算机专业,信息安全专业高年级学生网络安全教材或参考书,也可作为网络安全高级软件编程人才的培训教材与研发工作参考手册。
本书可以作为计算机、信息安全、软件工程、通信工程、电子信息及相关专业的硕士与工程硕士研究生、博士研究生的教材或参考书,以及本科计算机专业,信息安全专业高年级学生网络安全教材或参考书,也可作为网络安全高级软件编程人才的培训教材与研发工作参考手册。
作译者回到顶部↑
目录回到顶部↑
第1章 网络安全课程内容、编程训练要求与教学指导
1.1 网络安全技术的特点
1.2 网络安全形势的演变
1.3 网络安全技术研究的基本内容
1.4 网络安全技术领域自主培养人才的重要性
1.5 网络安全软件编程课题训练的基本内容与目的
1.6 网络安全软件编程课题训练教学指导
第2章 linux网络协议栈简介
2.1 linux网络协议栈概述
2.2 linux网络协议栈中报文发送和接收流程导读
第3章 基于des加密的tcp聊天程序
3.1 本章训练目的与要求
3.2 相关背景知识
3.3 实例编程练习
3.4 扩展与提高
第4章 基于rsa算法自动分配密钥的加密聊天程序
4.1 编程训练目的与要求
4.2 相关背景知识
4.3 实例编程练习
4.4 扩展与提高
1.1 网络安全技术的特点
1.2 网络安全形势的演变
1.3 网络安全技术研究的基本内容
1.4 网络安全技术领域自主培养人才的重要性
1.5 网络安全软件编程课题训练的基本内容与目的
1.6 网络安全软件编程课题训练教学指导
第2章 linux网络协议栈简介
2.1 linux网络协议栈概述
2.2 linux网络协议栈中报文发送和接收流程导读
第3章 基于des加密的tcp聊天程序
3.1 本章训练目的与要求
3.2 相关背景知识
3.3 实例编程练习
3.4 扩展与提高
第4章 基于rsa算法自动分配密钥的加密聊天程序
4.1 编程训练目的与要求
4.2 相关背景知识
4.3 实例编程练习
4.4 扩展与提高
前言回到顶部↑
计算机网络是21世纪社会数字化、网络化与信息化的基础。与电力系统、通信系统一样,计算机网络已经成为支持现代社会整体运行的基础设施,人们须臾不能离开。但是,我们必须清醒地认识到:计算机网络是一把高悬在全人类头上的双刃剑。人类社会对计算机网络的依赖程度越高,网络安全就显得越重要。网络安全是网络技术研究中的一个永恒主题。
网络安全是一个充满活力与机遇的领域。网络安全技术研究与教育要注意以下10个方面的问题:
(1)人类创造了网络虚拟社会的繁荣,也制造了网络虚拟社会的问题。网络安全是现实社会问题在网络虚拟社会中的反映。
(2)当前网络的3大公害是:网络攻击、网络病毒与垃圾邮件。网络威胁的趋利性特征已经凸现,网络犯罪的专业化与黑色产业链正在逐步形成。
(3)在“攻击一防御一新攻击一新防御”的循环中,网络攻击技术与网络反攻击技术相互影响、相互制约,共同发展、演变和进化。目前网络攻击的目的已经从最初好奇、玩世不恭与显示技艺高超,发展到经济利益驱动的有组织犯罪,甚至是恐怖活动。同时,网络攻击已经延伸到政治与军事等领域。
(4)正如现实世界危害人类健康的各种“病毒”,像SARS与甲型H1N1流感病毒一样,它只会随着时间在演变,不可能灭绝。只要人类存在,就一定会存在危害人类健康的病毒。同样,只要网络存在,计算机与网络病毒就一定会存在。网络是传播计算机病毒的重要渠道。计算机病毒也会伴随着计算机与网络技术的发展而演变,不可能停止和灭绝。病毒是计算机与网络永远的痛。
(5)随着互联网用户数量的剧增,网络广告的经济效应日益显现,在经济利益驱动下,垃圾邮件正呈现日趋严重的态势,已经造成了巨大的经济损失与社会问题。当前,网络攻击、病毒与垃圾邮件呈现出相互渗透、相互利用的趋势。如何检测、遏制网络攻击、病毒与垃圾邮件的蔓延已经成为网络安全最重要的研究课题。
(6)密码学是网络安全研究的一个重要的工具,但是它并不能解决所有的问题。密码学涉及的是数字、公式与逻辑。数学是完美的,而现实社会却无法用数学准确描述。数学是精确和遵循逻辑规律的,而计算机和网络安全涉及的是人,人与人之间的关系以及人和机器之间的关系。人是有欲望的,是不稳定的,甚至是难于理解的。网络安全性存在于计算机硬件与软件、网络以及人的身上。
(7)网络安全是一个系统的社会工程。网络安全的研究泼及技术、文化、道德与法制环境等多个方面。网络安全性是一个链条,它的可靠程度取决于链条中最薄弱的环节。同时实现网络安全性是一个过程,不是任何一个产品可以替代的。在加强网络安全技术研究的同时,必须加快网络法制的建设,加强人们网络法制观念与道德的教育。
(8)网络安全问题已经上升到国家安全的战略地位。由于计算机网络与互联网已经应用于现代社会的政治、经济、文化、教育、科学研究与社会生活的各个领域,因此说“发达国家和大部分发展中国家都是运行在网络之上”,这已经不会让人们感到吃惊了。社会生活越依赖于网络,网络安全必然会成为影响社会稳定、国家安全的重要因素之一。我国政府高度重视网络安全技术的研发与政策法规的制定。
(9)自主研发网络安全技术、发展网络安全产业,建立自主可控的信息安全体系是关系到社会稳定与国家安全的重大问题。每个国家必须立足于本国,研究网络安全技术,培养专门人才,发展网络安全产业,才能构筑本国的网络与信息安全防范体系。哪个国家不高度重视网络与信息安全的技术研究与人才培养,必将在未来的国际竞争中处于被动和危险的境地。
(10)支撑和服务我国信息社会、信息产业的网络安全产品与服务的核心技术必须由我国的技术专家掌握。这是事关国家安全、社会稳定、产业健康发展的重要保障因素。
从事网络安全与信息安全专业的技术人员可以分为工程师、高级工程师与专家等多个层次,社会对各个层次人才的需求都非常强烈。大学教育如果只能培养使用网络安全产品的人才是远远不够的。现在我国网络安全产品的研发很多是在国外公开的网络安全开源软件上进行改进。这种方法从表面上看是一条“捷径”,能够“立竿见影”,可以很快见“成效”,但是我们必须清醒地认识到这是一种“短视”的行为,并且存在巨大和潜在的危机,对于要真正形成具有我国自主知识产权的网络安全产业是非常不利的。
创新是一个民族的灵魂,而在网络与信息安全领域培养具有创新能力的高水平人才,产生创新性研究成果,开发具有自主知识产权的产品尤为重要。作为是多年从事网络安全技术研究与教育的教师和科研工作者,大家深知自己的责任重大,同时也深刻地认识到当前我国网络安全课程的教学水平还远不能满足国家与社会的要求。在网络安全教学过程中,教学内容与当前技术的发展水平、理论教学与实际工作能力的培养差距明显。这些问题将严重地制约网络安全人才的培养质量与学生的就业竞争力,从长远发展看也将严重地制约具有自主知识产权的技术与产品的发展。大学在对高层次信息安全专门人才的培养上必须要正视这个问题,要下苦功夫从基础开始,培养能够产生创新思想与具备研发能力的专门人才。
本书具有如下几个特点:
(1)作者队伍是由南开大学信息技术科学学院计算机系、国家计算机病毒应急处理中心的人员组成的,具有多年信息安全科研工作、我国计算机病毒应急处理工作,以及本科、硕土与博士研究生教学的实践经验。作者通过总结多年来信息安全科研工作、计算机病毒应急处理工作以及本科、硕士与博士研究生教学工作实践经验,参考国内外知名信息安全技术研究部门与企业相关资料、文献的基础上,构思了全书的写作思路,设计了12个“近似实战”的网络安全软件设计与编程训练的课题。
(2)网络安全软件编程训练课题可以分为:密码学及应用、网络安全常规技术、当前研究热点课题的综合训练等3个部分。训练课题覆盖了从密码学在网络通信中的应用,网络端口扫描、网络嗅探器、网络诱骗、网络入侵检测、安全Web、防火墙,到Linux内核网络协议栈程序加固、网络病毒与垃圾邮件的检测与防治技术。训练课题接近学科研究的前沿,覆盖了网络安全研究的主要方向。
(3)完成网络安全训练课题的操作系统环境选择为Linux,完成训练课题不需要限定特殊的硬件环境和编程语言。这样做的目的是希望能够充分利用Linux开源软件的优势,通过在Linux环境中完成网络安全软件的设计与编程训练,提高读者研发具有自主知识产权的技术与产品的能力。
(4)从研究生和高级人才培养的角度,应该强调“研究型”与“自主型”的学习方式。对于研究生教学过程来说,学生应该变被动的“听课、做笔记”转向主动、研究地学习和提高。从任课教师与导师角度应该强调“因材施教”。不同基础和不同需求的读者可以根据个人的基础、学习与工作的需要,选读其中的某些章节,完成其中部分课题的编程任务。
与本书作为姊妹篇的是《计算机网络高级软件编程技术》。这两本软件编程训练教材的写作风格是统一的,只是训练的目的和重点不同。《计算机网络高级软件编程技术》训练的目的是帮助读者掌握设计与开发网络应用系统的能力;《网络安全高级软件编程技术》训练的目的是帮助读者掌握设计与开发网络安全系统的能力。《计算机网络高级教程》与《计算机网络高级软件编程技术》、《网络安全高级软件编程技术》构成了一套计算机及相关专业研究生关于网络理论研究、网络应用系统与网络安全系统设计、编程能力培养的系列教材。
网络安全是一个充满活力与机遇的领域。网络安全技术研究与教育要注意以下10个方面的问题:
(1)人类创造了网络虚拟社会的繁荣,也制造了网络虚拟社会的问题。网络安全是现实社会问题在网络虚拟社会中的反映。
(2)当前网络的3大公害是:网络攻击、网络病毒与垃圾邮件。网络威胁的趋利性特征已经凸现,网络犯罪的专业化与黑色产业链正在逐步形成。
(3)在“攻击一防御一新攻击一新防御”的循环中,网络攻击技术与网络反攻击技术相互影响、相互制约,共同发展、演变和进化。目前网络攻击的目的已经从最初好奇、玩世不恭与显示技艺高超,发展到经济利益驱动的有组织犯罪,甚至是恐怖活动。同时,网络攻击已经延伸到政治与军事等领域。
(4)正如现实世界危害人类健康的各种“病毒”,像SARS与甲型H1N1流感病毒一样,它只会随着时间在演变,不可能灭绝。只要人类存在,就一定会存在危害人类健康的病毒。同样,只要网络存在,计算机与网络病毒就一定会存在。网络是传播计算机病毒的重要渠道。计算机病毒也会伴随着计算机与网络技术的发展而演变,不可能停止和灭绝。病毒是计算机与网络永远的痛。
(5)随着互联网用户数量的剧增,网络广告的经济效应日益显现,在经济利益驱动下,垃圾邮件正呈现日趋严重的态势,已经造成了巨大的经济损失与社会问题。当前,网络攻击、病毒与垃圾邮件呈现出相互渗透、相互利用的趋势。如何检测、遏制网络攻击、病毒与垃圾邮件的蔓延已经成为网络安全最重要的研究课题。
(6)密码学是网络安全研究的一个重要的工具,但是它并不能解决所有的问题。密码学涉及的是数字、公式与逻辑。数学是完美的,而现实社会却无法用数学准确描述。数学是精确和遵循逻辑规律的,而计算机和网络安全涉及的是人,人与人之间的关系以及人和机器之间的关系。人是有欲望的,是不稳定的,甚至是难于理解的。网络安全性存在于计算机硬件与软件、网络以及人的身上。
(7)网络安全是一个系统的社会工程。网络安全的研究泼及技术、文化、道德与法制环境等多个方面。网络安全性是一个链条,它的可靠程度取决于链条中最薄弱的环节。同时实现网络安全性是一个过程,不是任何一个产品可以替代的。在加强网络安全技术研究的同时,必须加快网络法制的建设,加强人们网络法制观念与道德的教育。
(8)网络安全问题已经上升到国家安全的战略地位。由于计算机网络与互联网已经应用于现代社会的政治、经济、文化、教育、科学研究与社会生活的各个领域,因此说“发达国家和大部分发展中国家都是运行在网络之上”,这已经不会让人们感到吃惊了。社会生活越依赖于网络,网络安全必然会成为影响社会稳定、国家安全的重要因素之一。我国政府高度重视网络安全技术的研发与政策法规的制定。
(9)自主研发网络安全技术、发展网络安全产业,建立自主可控的信息安全体系是关系到社会稳定与国家安全的重大问题。每个国家必须立足于本国,研究网络安全技术,培养专门人才,发展网络安全产业,才能构筑本国的网络与信息安全防范体系。哪个国家不高度重视网络与信息安全的技术研究与人才培养,必将在未来的国际竞争中处于被动和危险的境地。
(10)支撑和服务我国信息社会、信息产业的网络安全产品与服务的核心技术必须由我国的技术专家掌握。这是事关国家安全、社会稳定、产业健康发展的重要保障因素。
从事网络安全与信息安全专业的技术人员可以分为工程师、高级工程师与专家等多个层次,社会对各个层次人才的需求都非常强烈。大学教育如果只能培养使用网络安全产品的人才是远远不够的。现在我国网络安全产品的研发很多是在国外公开的网络安全开源软件上进行改进。这种方法从表面上看是一条“捷径”,能够“立竿见影”,可以很快见“成效”,但是我们必须清醒地认识到这是一种“短视”的行为,并且存在巨大和潜在的危机,对于要真正形成具有我国自主知识产权的网络安全产业是非常不利的。
创新是一个民族的灵魂,而在网络与信息安全领域培养具有创新能力的高水平人才,产生创新性研究成果,开发具有自主知识产权的产品尤为重要。作为是多年从事网络安全技术研究与教育的教师和科研工作者,大家深知自己的责任重大,同时也深刻地认识到当前我国网络安全课程的教学水平还远不能满足国家与社会的要求。在网络安全教学过程中,教学内容与当前技术的发展水平、理论教学与实际工作能力的培养差距明显。这些问题将严重地制约网络安全人才的培养质量与学生的就业竞争力,从长远发展看也将严重地制约具有自主知识产权的技术与产品的发展。大学在对高层次信息安全专门人才的培养上必须要正视这个问题,要下苦功夫从基础开始,培养能够产生创新思想与具备研发能力的专门人才。
本书具有如下几个特点:
(1)作者队伍是由南开大学信息技术科学学院计算机系、国家计算机病毒应急处理中心的人员组成的,具有多年信息安全科研工作、我国计算机病毒应急处理工作,以及本科、硕土与博士研究生教学的实践经验。作者通过总结多年来信息安全科研工作、计算机病毒应急处理工作以及本科、硕士与博士研究生教学工作实践经验,参考国内外知名信息安全技术研究部门与企业相关资料、文献的基础上,构思了全书的写作思路,设计了12个“近似实战”的网络安全软件设计与编程训练的课题。
(2)网络安全软件编程训练课题可以分为:密码学及应用、网络安全常规技术、当前研究热点课题的综合训练等3个部分。训练课题覆盖了从密码学在网络通信中的应用,网络端口扫描、网络嗅探器、网络诱骗、网络入侵检测、安全Web、防火墙,到Linux内核网络协议栈程序加固、网络病毒与垃圾邮件的检测与防治技术。训练课题接近学科研究的前沿,覆盖了网络安全研究的主要方向。
(3)完成网络安全训练课题的操作系统环境选择为Linux,完成训练课题不需要限定特殊的硬件环境和编程语言。这样做的目的是希望能够充分利用Linux开源软件的优势,通过在Linux环境中完成网络安全软件的设计与编程训练,提高读者研发具有自主知识产权的技术与产品的能力。
(4)从研究生和高级人才培养的角度,应该强调“研究型”与“自主型”的学习方式。对于研究生教学过程来说,学生应该变被动的“听课、做笔记”转向主动、研究地学习和提高。从任课教师与导师角度应该强调“因材施教”。不同基础和不同需求的读者可以根据个人的基础、学习与工作的需要,选读其中的某些章节,完成其中部分课题的编程任务。
与本书作为姊妹篇的是《计算机网络高级软件编程技术》。这两本软件编程训练教材的写作风格是统一的,只是训练的目的和重点不同。《计算机网络高级软件编程技术》训练的目的是帮助读者掌握设计与开发网络应用系统的能力;《网络安全高级软件编程技术》训练的目的是帮助读者掌握设计与开发网络安全系统的能力。《计算机网络高级教程》与《计算机网络高级软件编程技术》、《网络安全高级软件编程技术》构成了一套计算机及相关专业研究生关于网络理论研究、网络应用系统与网络安全系统设计、编程能力培养的系列教材。
序言回到顶部↑
未来的社会是信息化的社会,计算机科学与技术在其中占据了最重要的地位,这对高素质创新型计算机人才的培养提出了迫切的要求。计算机科学与技术已经成为一门基础技术学科,理论性和技术性都很强。与传统的数学、物理和化学等基础学科相比,该学科的教育工作者既要培养学科理论研究和基本系统的开发人才,还要培养应用系统开发人才,甚至是应用人才。从层次上来讲,则需要培养系统的设计、实现、使用与维护等各个层次的人才。这就要求我国的计算机教育按照定位的需要,从知识、能力、素质三个方面进行人才培养。
硕士研究生的教育须突出“研究”,要加强理论基础的教育和科研能力的训练,使学生能够站在一定的高度去分析研究问题、解决问题。硕士研究生要通过课程的学习,进一步提高理论水平,为今后的研究和发展打下坚实的基础;通过相应的研究及学位论文撰写工作来接受全面的科研训练,了解科学研究的艰辛和科研工作者的奉献精神,培养良好的科研作风,锻炼攻关能力,养成协作精神。
高素质创新型计算机人才应具有较强的实践能力,教学与科研相结合是培养实践能力的有效途径。高水平人才的培养是通过被培养者的高水平学术成果来反映的,而高水平的学术成果车要来源于大量高水平的科研。高水平的科研还为教学活动提供了最先进的高新技术平台和创造性的工作环境,使学生得以接触最先进的计算机理论、技术和环境。高水平的科研也为高水平人才的素质教育提供了良好的物质基础。
为提高高等院校的教学质量,教育部最近实施了精品课程建设工程。由于教材是提高教学质量的关键,必须加快教材建设的步伐。为适应学科的快速发展和培养方案的需要,要采取多种措施鼓励从事前沿研究的学者参与教材的编写和更新,在教材中反映学科前沿的研究成果与发展趋势,以高水平的科研促进教材建设。同时应适当引进国外先进的原版教材,确保所有教学环节充分反映计算机学科与产业的前沿研究水平,并与未来的发展趋势相协调。
中国计算机学会教育专业委员会在清华大学出版社的大力支持下,进行了计算机科学与技术学科硕士研究生培养的系统研究。在此基础上组织来自多所全国重点大学的计算机专家和教授们编写和出版了本系列教材。作者们以自己多年来丰富的教学和科研经验为基础,认真研究和结合我国计算机科学与技术学科硕士研究生教育的特点,力囱使本系列教材对我国计算机科学与技术学科硕士研究生的教学方法和教学内容的改革起引导作用。本系列教材的系统性和理论性强,学术水平高,反映科技新发展,具有合适的深度和广度。同时本系列教材两种语种(中文、英文)并存,三种版权(本版、外版、合作出版)形式并存,这在系列教材的出版上走出了一条新路。
相信本系列教材的出版,能够对提高我国计算机硕士研究生教材的整体水平,进而对我国大学的计算机科学与技术硕士研究生教育以及培养高素质创新型计算机人才产生积极的促进作用。
硕士研究生的教育须突出“研究”,要加强理论基础的教育和科研能力的训练,使学生能够站在一定的高度去分析研究问题、解决问题。硕士研究生要通过课程的学习,进一步提高理论水平,为今后的研究和发展打下坚实的基础;通过相应的研究及学位论文撰写工作来接受全面的科研训练,了解科学研究的艰辛和科研工作者的奉献精神,培养良好的科研作风,锻炼攻关能力,养成协作精神。
高素质创新型计算机人才应具有较强的实践能力,教学与科研相结合是培养实践能力的有效途径。高水平人才的培养是通过被培养者的高水平学术成果来反映的,而高水平的学术成果车要来源于大量高水平的科研。高水平的科研还为教学活动提供了最先进的高新技术平台和创造性的工作环境,使学生得以接触最先进的计算机理论、技术和环境。高水平的科研也为高水平人才的素质教育提供了良好的物质基础。
为提高高等院校的教学质量,教育部最近实施了精品课程建设工程。由于教材是提高教学质量的关键,必须加快教材建设的步伐。为适应学科的快速发展和培养方案的需要,要采取多种措施鼓励从事前沿研究的学者参与教材的编写和更新,在教材中反映学科前沿的研究成果与发展趋势,以高水平的科研促进教材建设。同时应适当引进国外先进的原版教材,确保所有教学环节充分反映计算机学科与产业的前沿研究水平,并与未来的发展趋势相协调。
中国计算机学会教育专业委员会在清华大学出版社的大力支持下,进行了计算机科学与技术学科硕士研究生培养的系统研究。在此基础上组织来自多所全国重点大学的计算机专家和教授们编写和出版了本系列教材。作者们以自己多年来丰富的教学和科研经验为基础,认真研究和结合我国计算机科学与技术学科硕士研究生教育的特点,力囱使本系列教材对我国计算机科学与技术学科硕士研究生的教学方法和教学内容的改革起引导作用。本系列教材的系统性和理论性强,学术水平高,反映科技新发展,具有合适的深度和广度。同时本系列教材两种语种(中文、英文)并存,三种版权(本版、外版、合作出版)形式并存,这在系列教材的出版上走出了一条新路。
相信本系列教材的出版,能够对提高我国计算机硕士研究生教材的整体水平,进而对我国大学的计算机科学与技术硕士研究生教育以及培养高素质创新型计算机人才产生积极的促进作用。








点击看大图






加载中...

