第1章 网络安全概述
1.1 网络安全现状
1.1.1 网络发展
1.1.2 网络安全概念
1.1.3 网络安全现状
1.2 网络安全威胁
1.3 网络攻击
1.3.1 潜在的网络攻击者
1.3.2 网络攻击的种类
1.4 网络安全的特点及属性
1.4.1 网络安全特点
1.4.2 安全属性
1.4.3 如何实现网络安全
1.5 网络安全技术
1.5.1 网络安全基本要素
1.5.2 网络安全技术
本章小结
习题
第2章 数据加密与认证
2.1 密码学基础
2.1.1 加密的起源
2.1.2 密码学的基本概念
2.1.3 对称密钥算法
2.1.4 公开密钥算法
2.1.5 密码分析
2.2 数字签名与数字证书
2.2.1 电子签名
2.2.2 CA数字证书
2.3 认证技术
2.3.1 身份认证的重要性
2.3.2 身份认证的方式
2.3.3 消息认证——Hash算法
2.4 小型案例实训
2.4.1 加密应用——PGP
2.4.2 数字证书应用——Office市场的签名服务
本章小结
习题
第3章 常见网络攻击的方法与防护
3.1 网络攻击概述
3.1.1 网络攻击的分类
3.1.2 网络攻击的步骤
3.2 端口扫描
3.2.1 原理
3.2.2 工具
3.2.3 防护
3.3 口令攻击
3.3.1 原理
3.3.2 类型
3.3.3 工具
3.3.4 防护
3.4 网络监听
3.4.1 原理
3.4.2 工具
3.4.3 检测和防护
3.5 ARP欺骗
3.5.1 原理
3.5.2 工具
3.5.3 防护
3.6 缓冲区溢出
3.6.1 原理
3.6.2 方法
3.6.3 防护
3.7 拒绝服务攻击
3.7.1 原理
3.7.2 手段
3.7.3 检测和防护
3.8 小型案例实训
3.8.1 Office密码破解
3.8.2 Cain实现ARP欺骗
3.8.3 缓冲区溢出攻击
3.8.4 拒绝服务攻击
本章小结
习题
第4章 病毒分析与防御
4.1 认识计算机病毒
4.1.1 计算机病毒的概念
4.1.2 计算机病毒的特点和分类
4.1.3 计算机病毒的发展趋势
4.2 典型病毒
4.2.1 自动播放病毒
4.2.2 蠕虫病毒——熊猫烧香病毒
4.2.3 木马病毒——QQ粘虫病毒
4.2.4 木马病毒——敲竹杠木马
4.3 专杀工具的编写
4.3.1 专杀工具的编写——自动播放病毒
4.3.2 专杀工具的编写——熊猫烧香病毒
4.4 小型案例实训
4.4.1 蠕虫病毒分析
4.4.2 网页脚本病毒分析
4.4.3 木马的防杀与种植
本章小结
习题
第5章 防火墙技术
5.1 防火墙概述
5.1.1 防火墙的概念
5.1.2 防火墙的功能
5.1.3 防火墙的分类
5.2 防火墙的主要技术
5.2.1 包过滤技术
5.2.2 应用代理技术
5.2.3 状态检测技术
5.3 防火墙的体系结构
5.3.1 屏蔽路由器体系结构
5.3.2 双宿主机网关体系结构
5.3.3 被屏蔽主机网关体系结构
5.3.4 被屏蔽子网体系结构
5.4 小型案例实训
5.4.1 Windows防火墙应用
5.4.2 开源防火墙Linux应用
本章小结
习题
第6章 操作系统安全
6.1 操作系统安全概述
6.1.1 操作系统安全的概念
6.1.2 操作系统安全的评估
6.2 Windows安全技术
6.2.1 身份验证与访问控制
6.2.2 文件系统的安全
6.2.3 注册表的安全
6.2.4 审核与日志
6.3 Linux的安全技术
6.3.1 账号安全
6.3.2 文件系统的安全
6.3.3 Linux的日志系统
6.4 小型案例实训
6.4.1 NTFS权限设置
6.4.2 备份EFS密钥
本章小结
习题
第7章 Web安全防范
7.1 Web安全的基础内容
7.2 Web安全综述
7.2.1 Internet的脆弱性
7.2.2 Web安全问题
7.3 Web服务器的漏洞及配置防范
7.3.1 Web服务器存在的漏洞
7.3.2 Web服务器的安全配置
7.4 Web客户端的安全
7.4.1 浏览器本身的漏洞
7.4.2 ActiveX的安全性
7.4.3 Cookie的安全性
7.5 利用CA证书和SSL安全协议构建Web服务器的安全配置
7.5.1 SSL协议
7.5.2 HTTPS协议
7.6 小型案例实训
本章小结
习题
第8章 无线网络安全
8.1 无线网络基础
8.1.1 无线网络的发展
8.1.2 无线计算机网络的分类
8.1.3 无线局域网络的标准
8.1.4 无线网络设备
8.2 无线网络安全技术
8.2.1 SSID及其隐藏
8.2.2 WPAT WPA2
8.2.3 WAPI
8.2.4 MAC地址过滤
8.2.5 静态IP地址
8.2.6 WAPI
8.2.7 智能卡、USB加密卡、软件令牌
8.2.8 射频信号屏蔽
8.2.9 对无线接入点进行流量监控
8.3 无线网络入侵与防御
8.3.1 无线网络安全面临的挑战
8.3.2 无线网络入侵方式
8.3.3 无线入侵防御
8.3.4 无线入侵防御系统
8.4 WLAN非法接入点探测与处理
8.4.1 非法接入点的危害
8.4.2 非法接入点的探测方法
8.4.3 非法接入点的预防
8.5 小型案例实训
8.5.1 Windows 7无线网络安全配置
8.5.2 无线路由器的加密配置
8.5.3 某室内区域无线网络搭建
本章小结
习题
第9章 网络安全管理
9.1 网络安全管理的意义
9.2 风险分析与安全需求
9.2.1 系统风险分析
9.2.2 网络的安全需求
9.3 安全管理策略
9.3.1 制定安全策略的原则
9.3.2 安全策略内容
9.4 建立网络安全体系
9.4.1 物理安全
9.4.2 网络安全
9.4.3 系统、信息和应用安全
9.5 安全管理实施
9.5.1 安全管理原则
9.5.2 安全管理的实现
9.6 安全性测试及评估
9.6.1 网络安全测试
9.6.2 网络安全评估
9.7 信息安全管理标准
9.7.1 国际信息安全管理标准
9.7.2 如何实施
9.7.3 国内信息安全管理标准
9.8 小型案例实训
本章小结
习题
第10章 项目实践
实训1 数字证书与数字签名
任务1.1 使用生成证书
任务1.2 用CA证书签名、加密及发送安全电子邮件
实训2 Windows 2003 PKI应用实例
任务2.1 安装证书服务器
任务2.2 安装客户端证书
任务2.3 SSL通道建立
实训3 端口扫描与网络监听
任务3.1 使用SuperScan进行端口扫描
任务3.2 使用Sniffer工具进行网络监听
实训4 CA SessionWall的安装与配置
任务4.1 CA SessionWall的实时检测
任务4.2 在SessionWall-3中创建、设置审计规则
实训5 Windows系统VPN的实现
参考文献
第2章 数据加密与认证
【项目要点】
公钥和私钥密码体制。
数字签名。
数字证书。
身份认证。
【学习目标】
掌握密码学的有关概念。
了解常见的古典密码加密技术。
掌握对称加密算法和公开密钥算法在网络安全中的具体应用。
掌握数字签名技术、数字证书技术的实际应用。
掌握Hash算法的原理及应用。
掌握PGP加密系统的工作原理以及各种典型应用。
2.1 密码学基础
密码学是一门既古老又新兴的学科,它自古以来就在军事和外交舞台上担当着重要角色。长期以来,密码技术作为一种保密手段,本身也处于秘密状态,只被少数人或组织掌握。随着计算机网络和计算机通信技术的发展,计算机密码学得到了前所未有的重视并迅速普及和发展起来,它已经成为计算机安全领域主要的研究方向。
2.1.1 加密的起源
早在4000多年以前,在古埃及的尼罗河畔,一位擅长书写者在贵族的墓碑上书写铭文时有意用变形的象形文字而不是普通的象形文字来撰写铭文,这是史载的最早的密码形式。
罗马“历史之父”希罗多德以编年史的形式记载了公元前5世纪希腊和波斯间的冲突,其中介绍到正是由一种叫隐写术的技术才使希腊免遭波斯暴君薛西斯一世征服的厄运。薛西斯做了足足5年的战争准备,计划于公元前480年对希腊发动一场出其不意的进攻。但是波斯的蠢蠢野心被一名逃亡在外的希腊人德马拉图斯注意到了,他决定给斯巴达带去消息以告诫他们薛西斯的侵犯企图。可问题是消息该怎样送出而不被波斯士兵发现。他利用一副已上蜡的可折叠刻写板,先将消息刻写在木板的背面,再涂上蜡盖住消息,这样刻写板看上去没写任何字。最终希腊人得到了消息,并提前做好了战争准备,致使薛西斯的侵略妄想破灭。德马拉图斯的保密做法与中国古人有异曲同工之妙。中国古人将信息写在小块丝绸上,塞进一个小球,再用蜡封上,然后再让信使吞下这个蜡球以保证消息安全。
最早将现代密码学概念运用于实际的人是恺撒大帝(尤利乌斯·恺撒,公元前100年-前44年)。他不相信负责他和他手下将领通信的传令官,因此他发明了一种简单的加密算法将信件加密,后来被称为“恺撒密码(也称凯撒密码)”。当恺撒说:“Hw wx,Euxwh!”而不是“Et tu,Brute!”(“你这畜生!”)时,他的心腹会懂得他的意思。值得注意的是,大约2000年后,联邦将军A.S.约翰逊和皮埃尔·博雷加德在希洛战斗中再次使用过这种简易密码。恺撒密码是将字母按字母表的顺序排列,并且最后一个字母与第一个字母相连。加密方法是将明文中的每个字母用其后面的第3个字母代替,就变成了密文。一般,明文使用小写字母,密文使用大写字母。例如:
m e e t a t t o n i g h t
恺撒密码是
P H H W D W W R Q L J K W
以英文为例,恺撒密码的代替表如表2-1所示。
表2-1 恺撒密码代替表
千百年来,人们运用自己的智慧创造出形形色色的编写密码的方法,下面介绍几种简易的密码方案。
例如,给出密文
KCATTA WON
你能猜出它是什么意思吗?我们只要将每个单词倒过来读,就会迅速恢复明文
attack now
在美国南北战争时期,军队中曾经使用过下述“双轨”式密码,加密时先将明文写成双轨的形式,例如将attack now写成
a t c n w
t a k o
然后按行的顺序书写即可得出密文
ATCNWTAKO
解密时,先计算密文中字母的总数,然后将密文分成两半,排列成双轨形式后按列的顺序读出即可恢复明文。
在第一次世界大战期间,德国间谍曾经依靠字典编写密码。例如100-3-16表示某字典的第100页第3段的第16个单词。但是,这种加密方法并不可靠,美国情报部门搜集了所有德文字典,只用了几天时间就找出了德方所用的那一本,从而破译了这种密码,给德军造成了巨大损失。
上面介绍了几种简易的密码形式,这些早期的密码多数应用于军事、外交、情报等敏感的领域。由于军事、外交和情报等方面的需要,刺激了密码学的发展。密码编写得好与坏,有时会产生重大的、甚至决定性的影响。例如,第二次世界大战期间,英国情报部门在一些波兰人的帮助下,于1940年破译了德国直至1944年还自认为是可靠的Enigma密码系统,使德方遭受重大损失。
计算机的出现,大大地促进了密码学的变革,正如德国学者T.Beth所说:“突然,现代密码学从半军事性的角落里解脱出来,一跃成为通信科学一切领域中的中心研究课题。”由于商业应用和大量计算机网络通信的需要,人们对数据保护、数据传输的安全性越来越重视,这更大地促进了密码学的发展与普及。
密码学的发展大致可分以下几个阶段:
第一阶段:从古代到1949年。这一时期,密码学家往往凭直觉设计密码,缺少严格的推理证明。这一阶段设计的密码称为古典密码。
第二阶段:从1949—1975年。这一时期发生了两个比较大的事件:1949年信息论大师香农(C. E. Shannon)发表了《保密系统的信息理论》一文,为密码学奠定了理论基础,使密码学成为一门真正的科学;1970年由IBM研究的密码算法DES被美国国家标准局宣布为数据加密标准,这打破了对密码学研究和应用的限制,极大地推动了现代密码学的发展。
第三阶段:从1976年至今。1976年Diffie和Hellman发表的《密码学的新方向》一文开创了公钥密码学的新纪元,在密码学的发展史上具有里程碑的意义。
【知识拓展——比尔密码之谜】
1820年1月,一陌生人骑马来到弗吉尼亚林奇堡的华盛顿旅馆。陌生人自我介绍说他叫托马斯·杰弗逊·比尔。那年的3月底,他一声不响地离开了这家旅馆,给旅馆老板莫里斯留下了一个锁着的铁盒。
莫里斯直到1845年才打开那个盒子。他在里面发现了两封写给他的信和3张写满数字的纸。在信中,比尔详细叙述了他与他的伙伴在冒险活动中所发现的巨量黄金,并把它们藏在贝德福德县的布法德酒馆附近的一个山洞里。信中写道,那3张难以理解的文件如用特定的密钥破译出,就会揭示出隐藏处的确切地点、贮藏处具体所藏之物以及30个冒险家的姓名和地址。
盒子中的东西无疑勾起了莫里斯的好奇心。莫里斯在其一生余下的 19年中致力于发现财宝,但由于没有那份神秘文件的密钥而不能有任何进展。在他临终前的1863年,他把那只盒子的事告诉了詹姆斯·沃德。沃德起初同样对密码一筹莫展,直到他灵光一现,想到要用《独立宣言》作为密钥,从而破译了比尔密码的第二页,推断出下列一段文字:“我在离布法德约4英里处的贝德福德县里的一个离地面6英尺深的洞穴或地窖中贮藏了下列物品,这些物品为各队员——他们的名字在后面第三张纸上——公有。第一窖藏有1014磅金子,3812磅银子,藏于1819年11月。第二窖藏有1907磅金子,1288磅银子,另有在圣路易为确保运输而换得的珠宝……”
这段文字极大地激发起沃德的兴趣,他耗尽终生去破译其余密码,却一无所获。
20世纪60年代,一些密码分析界最富智慧的人组成了一个秘密协会——比尔密码协会,他们倾其知识和才智去发现那堆难以捉摸的财富。计算机科学家、电脑密码统计性分析的先驱卡尔·哈默就是该协会的一位著名成员,他对比尔文件中的数字的分布做了大量统计、试验,总结得出:这些数字并不是随意写出的,它一定隐含着一段英文信息。
虽然越来越多的数学家从事密码学研究,越来越多的巨型计算机被用来编制和破译密码,但一个半世纪前写成的比尔密码——它暗示在某个地方藏有1700万美元的财富,依然耗去了“美国最有能耐的密码分析家至少10%的精力”。时至今日,比尔密码仍然是一个谜。
【知识拓展——摩斯密码】
摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它由美国人艾尔菲德·维尔于1837年发明。摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用0和1两种状态的二进制代码,它的代码包括5种:点、划、点和划之间的停顿、每个字符间短的停顿(在点和划之间)、每个词之间中等的停顿以及句子之间长的停顿。