《网络安全》课程教案
Network Security & Privacy
主要内容:
第一部分 网络安全综述(第1章)
第二部分 密码学基础(第2章~第4章)
第三部分 网络安全应用(第5章~第7章)
第四部分 系统安全机制(第8章~第11章)
第五部分 代码安全(第12章~第14章)
第六部分 其它安全主题(第16章~第17章)
课程安排:
共18周,每周2次课,4学时
(其中包含实验4次,每次2组)
所用教材:
《网络安全与保密》 胡建伟 编 西安电子科技大学出版社
讲授内容:
理论部分:
第一周
教学要点:
1 网络安全的基本概念
2 网络安全的目标
3 网络安全与协议层次的关系
教学要求:
1 掌握网络安全的目标及措施
2 能够举出网络安全的实例并简要说明
3 掌握不同协议层次上的网络安全问题
讲授内容:
1.1 基本概念
例子 保护私人住所
挂窗帘 à 防止外人偷窥
加锁 à 防小偷
养狼狗 à 拒绝不受欢迎之客
安装警报系统,摄像头 à 检测不速之客
电围墙,篱笆,门卫 à 审查
安全应考虑的问题的两方面(矛盾与统一):安全威胁、被保护物品的价值
安全措施的目标:Access Control,Authentication,Integrity,Accountability,Privacy
职业前景:网络安全管理;网络安全软件设计开发;网络律师;网上监管专家
与网络安全有关的著名公司:Symantec(赛门铁克)、Microsoft、Kaspersky、Redhat、McAfee Versign……
国外著名公司漏洞统计数据;漏洞实例分析
区分:远程管理(控制)软件vs黑客软件,木马
常见网络安全用语,俗语说明:木马(trojan),特洛伊、肉鸡
隐私、言论自由、版权
1.2 网络拓扑与安全
什么是拓扑
网络按照基本拓扑的分类:星型、总线型、环型
其他:网状,不规则型
拓扑与网络安全的关系
星型网的优势:所有两个节点间通信只定义了一条路径
网络(特指中间节点)处于固定的物理位置,易确保物理安全
TCP/IP 协议进行通信;因特网上的安全隐患
按照TCP/IP的协议层次,安全隐患问题分以下来讨论
网际层、传输层、应用层、
CERT/CC:Computer Emergency Response Team/Coordination Center
http://www.cert.org
1,网际层: 伪造(假冒)IP地址 伪造(假冒)ARP 伪造(假冒)路径控制信息
恶意使用(假冒)源路由
利用IP/ICMP数据包的DoS攻击(非授权使用)
2,传输层: 预测(假冒)TCP初始序号
利用TCP/UDP数据包的DoS攻击(非授权使用)
3,应用层: 扫描/搜索(非授权使用)
DNS(Domain Name Service:域名服务)欺骗(假冒)
窃听用户认证信息(窃听)
攻击程序缺陷(非授权使用)
代理服务器的非法使用(非授权使用)
利用电子邮件进行的DoS攻击(非授权使用)
病毒与木马
1.3 网络安全的层次结构(Hierarchy of Network Security)
物理安全 安全控制 安全服务
1.4 网络安全威胁
1.4.1 网络威胁的类型
窃听、假冒、重放、流量分析、破坏完整性
1.4.2 威胁的动机(Motives)
工业间谍、财政利益、报复或引人注意、恶作剧、无知
第二周
教学要点:
1 网络攻击及其分类
2 客户服务器的工作模式及其特点
教学要求:
1 掌握主动攻击与被动攻击的区别并能举例说明
2 能够针对客户和服务器进行区分并能编程
讲授内容:
1.5 网络攻击
“攻击”的定义
任何非授权行为
法律定义:入侵行为完全完成且入侵者已经在目标网络内部。
本课程:可能使一个网络受到破坏的所有行为都被认为是攻击。
网络攻击的两大分类
被动攻击(Passive Attacks):攻击者监视所有信息流以获得某些秘密
形式:窃听、流量分析 最难被检测到
主动攻击(Active Attacks):攻击者试图突破你的安全防线
形式:假冒、重放、欺骗、消息篡改、拒绝服务等
对网络的被动攻击和主动攻击
1.7 基本安全技术
防火墙(Firewall),加密(Encryption),身份认证(Authentication),数字签名(Digital Signature),内容检查(Content Inspection)
1.5 网络攻击
“攻击”的定义:任何非授权行为
法律定义:入侵行为完全完成且入侵者已经在目标网络内部。
本课程:可能使一个网络受到破坏的所有行为都被认为是攻击。
有关对网络的被动攻击和主动攻击的词汇:
Normal Flow; Interception;Interruption; Modification;Fabrication;
Model for Network Security;Network Access Security Model;
***应用层的客户-服务器方式
在 TCP/IP 的应用层协议使用的是:客户-服务器方式
计算机的进程(process)就是运行着的计算机程序。
为解决具体应用问题而彼此通信的进程称为“应用进程” 。
应用层的具体内容就是规定应用进程在通信时所遵循的协议。
客户和服务器的区分
客户(client)和服务器(server)都是指通信中所涉及的两个应用进程。
客户-服务器方式所描述的是进程之间服务和被服务的关系。
客户是服务请求方,服务器是服务提供方。
客户软件的特点:在进行通信时临时成为客户,但它也可在本地进行其他的计算。
被用户调用并在用户计算机上运行,在打算通信时主动向远地服务器发起通信。
可与多个服务器进行通信。
不需要特殊的硬件和很复杂的操作系统。
服务器软件的特点 :专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
在共享计算机上运行。当系统启动时即自动调用并一直不断地运行着。
被动等待并接受来自多个客户的通信请求。
一般需要强大的硬件和高级的操作系统支持。
客户进程和服务器进程使用 TCP/IP 协议进行通信
功能较强的计算机可同时运行多个服务器进程
1.6 网络安全模型
考虑信息系统的四方模型:
Sender(发信者)、Receiver(收信者)、Enemy(敌人)、Boss(监控管理方)
1.8 安全漏洞
信息系统的安全漏洞主要有三个方面 :
1)OS à操作系统 2)Network à计算机网络 3)DBMS à数据库管理系统
补充内容:
星号(*)密码的破解;一个电影网站的破解录像;网络嗅探器sniffer;Java编程初步
第三周
教学要点:
1 对称密码系统的特点和代表算法
2 古典密码的例子:凯撒密码
3 DES算法描述
教学要求:
1 区分对称密码系统和非对称密码系统
2 针对古典密码编程实现
3 了解DES算法的特点及使用方法
讲授内容:
2.1 前 言
传统的密钥加密解密系统都是对称密钥密码系统。
加密和解密使用同一把密钥
从最早的凯撒密码到使用最多的DES,以及下一代密码算法Rijndael
1976年,Diffie 和Hellman发表论文“New Direction in Cryptography”,从而出现了非对称密钥密码系统
密钥加密系统的几个部分:
M(Message) à 消息空间, C(Cipertext) à 密文空间
K(Key) à 密钥空间 E(Encryption Algorithm) à 加密算法
D(Decryption Alorithm) à 解密算法
它们满足EK1(M)=C DK2(C)=M DK2(EK1(M))=M
两种密钥算法体制
对称密钥算法:K1 ßàK2 也叫秘密密钥算法,单一密钥算法
非对称密钥算法K1 ß/àK2 也叫公开密钥算法
2.1.2 古典密码
替换密码 例:凯撒密码
置换密码 例:纵行置换密码
凯撒密码----简介
凯撒密码 是罗马扩张时期由Julius Caesar 创造的,用于加密通过信使传递的作战指令。 它把字母表中的字母移动一定位置而实现加密。
如向右移动2位,则A变成C,B变成D … X变成Z Y变成 Z变成?
凯撒密码----分析
字母表总共有26个字母
用凯撒密码加密,如果明文字符串是“Hello”,移动2位则变为密文
如何解密?只要将字母向相反方向移动同样位数即可
这里移动的位数“2”是加密和解密共用的密钥
凯撒密码---编程思路
Step1:读取要加密的字符串、密钥
Step2:取出字符串中的每个字符
Step3:对每个字符进行移位
这里采用Java编程实例说明:Step1 Step2 Step3 编译并运行程序
加密:Java Caesar 明文 密钥
解密:Java Caesar 明文 -密钥
这里明文指“要加密的字符串”;密钥指“移动的位数”
***DES(数据加密标准):最通用的对称密码体制算法:DES--Data Encryption Standard
密钥长度为56位,分组长度64位,需要进行16轮加密迭代的对称密钥加密分组算法。
对称密码算法的两种类型:
分组密码:一次处理一块输入,每个输入块声称一个输出块,典型例子:DES算法
流密码:对输入元素连续处理,同时产生连续单个输出元素。典型例子:A5算法
2.2.4 DES的工作模式
ECB (Electronic Codebook) 电子密码本 CBC (Cipher Block Chaining) 密码分组链接
CFB (Cipher Feed back) 密文反馈 OFB (Output Feed back) 输出反馈
有关DES的破解
早期官方的得出了十分乐观的结论;Diffie,Hellman等修改了他们的估计;计算机科学家Tanenbaum指出,即使没有这种专用机,也可以用穷举法破译DES。
2.3 A 5算法 序列密码简介
2.4 其它对称密码算法
2.4.1 IDEA
IDEA即国际数据加密算法,它的原型是PES,对PES改进后的新算法称为IPES,并于1992年改名为IDEA(International Data Encryption Algorithm)。
补充内容
Word密码的破解;网络嗅探器sniffer;Java编程初步
第四周
教学要点:
1 单向散列函数原理与应用
2 单向散列函数安全性分析
教学要求:
1 理解和掌握单向散列函数的原理和常用算法
2 了解密码破解的原理和防范与应用
讲授内容:
单向散列函数的原理和应用场合
单向散列函数:
散列值是由单向散列函数产生的。所谓的单向散列函数(Hash Function,又称哈希函数、杂凑函数),是将任意长度的消息M映射成一个固定长度散列值h的函数:h=H(M)
其中,h的长度为m。
单向散列函数算法MD5和SHA-1的算法描述
MD5的前景
在2004国际密码学会议(Crypto’2004)上, 王小云 教授公布了破解MD5算法的研究成果,引起了密码学界轰动。但这里MD5算法的破解对实际应用的冲击要远远小于它的理论意义,不会造成PKI、数字签名安全体系的崩溃。
MD5的安全性问题
MD5的两种常用的应用场合为:单向变换用户口令;对信息进行签名
单向散列函数的强度体现在它能把任意的输入随机化到什么程度,并且能产生输出。
对MD5的普通直接攻击(野蛮攻击)穷举可能的明文产生和H(m)相同的结果
对MD5的生日攻击:用概率来指导散列冲突的发现
其它对MD5的攻击:微分攻击被证明对MD5的一次循环有效,但对全部4次循环无效。
有一种成功的MD5攻击,不过是它对MD5代码本身作了手脚,属于crack而不是hack
口令长度和信息论:根据传统信息论,英语每个8-bit字母的信息熵为1.3bits(来源于英语语法的规律性这个事实,字母出现的概率不等造成了熵的减小,如果26个字母出现的概率均等,信息熵会增至4.7bits)。
密码系统的选择与密码攻击
对于一个密码系统来说,如果新的密码系统的强度依赖于攻击者不知道算法的内部机理,那这密码注定会失败。最好的算法是那些已经公开的,并经过世界上最好的密码分析家们多年的攻击,但还是不能破解的算法。
密码攻击
密码分析攻击分类(都假设密码分析者知道所用的加密算法的全部知识)
唯密文攻击(cipher text only) 已知明文攻击(known plain text)
选择明文攻击(chosen plain text) 选择密文攻击(chosen cipher text)
自适应选择明文/密文攻击(chosen text)选择密钥攻击(chosen key)
软磨硬泡攻击(Rubber-hose)
补充内容
黑客字典介绍;Java编程初步;远程控制举例;VMWare介绍
虚拟机软件介绍:VMWare
虚拟机软件可以在一台电脑上模拟出来若干台PC,每台PC可以运行单独的操作系统而互不干扰,实现一台电脑“同时”运行几个操作系统,还可以将这几个操作系统连成网络。
VMWare的使用:
Guest OS,模拟的硬件,可以使用ISO文件作为光盘,运行模式
网络设置方式:Bridged方式,NAT方式
第五周
教学要点:
1 公钥密码体制的原理和代表算法RSA和Diffie-Hellman
2 Diffie-Hellman算法的安全性分析
3 数字签名介绍
教学要求:
1 理解和掌握RSA算法和Diffie-Hellman
2 理解防范Diffie-Hellman攻击的方法
3 了解数字签名的分类与应用
讲授内容:
公钥密码体制的历史和发展,参考文献
公钥密码系统原理:基于陷门单向函数的概念。单向函数是易于计算但求逆困难的函数,
公钥密码系统的应用:通信保密、数字签名、密钥交换
密钥交换
通信双方交换会话密钥,以加密通信双方后续连接所传输的信息。一般,每次逻辑连接使用一把新的会话密钥,用完就丢弃。例如:Diffie-Hellman密钥交换
公开密钥算法RSA的描述
选择两个不同的大素数p和q(一般都为100位左右的十进制数字),计算乘积:n=pq
和欧拉函数值:φ (n)=(p−1)(q−1)
随机取一整数e,1<e<φ (n),且e和φ (n)互素。此时可求得d以满足:
ed==1 modφ(n) 则 d = e–1 modφ(n)
这样可以把e和n作为公开密钥,d作为私人密钥。其中,p、q、φ(n)和d就是秘密的陷门(四项并不是相互独立的),这些信息不可以泄露。
RSA加密消息m时(这里假设m是以十进制表示的),首先将消息分成大小合适的数据分组,然后对分组分别进行加密。每个分组的大小应该比n小。
设ci为明文分组m加密后的密文,则加密公式为
ci=mie (mod n)
解密时,对每一个密文分组进行如下运算:
mi=cid (mod n)
加/解密方案的可行性证明可以参考参考资料。
RSA应用举例:选p=5,q=11,则
n=pq=55,φ (n)=(p−1)(q−1)=40
于是明文空间为在闭区间[1, 54]内且不能被5和11整除的数。选择e=7,则d=23。由加/解密公式可以得到加密表如表4-1所示。
4.2 Diffie-Hellman密钥交换
算法概述
Diffie-Hellman算法的安全性在于在有限域上计算离散对数非常困难。
(1)Alice和Bob协商一个大素数p及p的本原根a,a和p可以公开;
(2)Alice秘密产生一个随机数x,计算X=ax mod p,然后把X发送给Bob;
(3)Bob秘密产生一个随机数y,计算Y= ay mod p,然后把Y发送给Alice;
(4)Alice计算k=Yx mod p;
(5)Bob计算k'=Xy mod p。
k和k'是恒等的,因为k= Yx mod p=(ay)x mod p=(ax)y mod p= Xy mod p= k'
则k和k'即为秘密密钥。
4.2.2 针对Diffie-Hellman算法的中间人攻击
4.2.3 认证的Diffie-Hellman密钥交换---针对中间人攻击
4.2.4 三方或多方Diffie-Hellman
4.3 数字签名
数字签名的基本概念
数字签名与传统签名的比较
数字签名的分类
数字签名的方式:直接数字签名;仲裁数字签名
安全性: 无条件安全的数字签名; 计算上安全的数字签名
可签名次数:一次性的数字签名; 多次性的数字签名
数字签名算法:普通数字签名算法EIGamal RSA DSS/DSA
其他:不可否认的数字签名算法;群签名算法;盲签名算法
补充内容:Java实现的RSA加密和解密;Java实现的Diffie Hellman密钥分配
第六周 ~ 第九周
教学要点:
1 TCP/IP相关网络体系结构及协议复习
2 漏洞扫描与端口扫描
3 各种协议漏洞及其防范方法介绍
教学要求:
1 理解和掌握TCP/IP网络基础知识中有关网络安全的内容
2 理解和掌握端口扫描的作用和应用
3 了解协议的漏洞分析方法,掌握防范方法及工具应用
讲授内容:
TCP/IP协议栈
通常被认为是一个四层协议系统。
UDP和TCP的对比
UDP:面向无连接,传送数据前不需先建立连接,不可靠,只提供“尽最大努力服务”
但实现简单,速度快,开销小
TCP:面向连接,传送数据前建立连接,传送结束后释放连接,复杂性和开销都比UDP大
但能提供可靠的全双工信道
有关运输层: 端口的概念
端口就是运输层服务访问点 TSAP。
端口是用来标志应用层的进程。
端口号:端口使用16bit的端口号进行标志。端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。分为两类:
一类是所谓的熟知端口 ,数值为0~1023—>常用熟知端口(well-known port)
其他的端口都属于一般端口,用来随时分配给请求通信的客户进程。
互联网地址
IP 地址是在全世界范围是惟一的 32 bit 的标识符。
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。
常用的三种类别的 IP 地址的使用范围
协议封装
TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP Segment)。
IP传给网络接口层的数据单元称作IP分组(IP Datagram)。
更准确地说,IP和网络接口层之间传送的数据单元应该是包(Packet)。包既可以是一个IP数据报,也可以是IP数据报的一个片(Fragment)。
通过以太网传输的比特流称作帧(Frame)。
以太网数据帧的物理特性是其长度必须在46~1500字节之间
IP协议
网际协议IP是TCP/IP的核心,IP协议是不可靠的协议。
IP数据包中含有发送它的主机的IP地址(源地址)和接收它的主机的IP地址(目的地址)。
TCP协议
TCP数据包中包含序列号和应答号;排序;重传。
用三次握手建立 TCP 连接
TCP 连接释放的过程
TCP 的正常的连接建立和关闭
TCP的有限状态机模型
补充:IP和地理位置的对应关系;IP数据库;VisualRoute等软件介绍
漏洞扫描相关知识与端口扫描软件PortScanner,SuperScan简介
扫描(scan)就是对计算机系统或者其他网络设备进行安全相关的检测,以找出安全隐患和可被黑客利用的漏洞。扫描软件是一把双刃剑.
扫描的种类 分为三类:
第一类 数据库安全扫描器;
第二类 操作系统安全扫描器;
第三类 网络安全扫描器(针对子网络服务、应用程序、网络设备和网络协议等)。
端口扫描(Port Scan)
常用的端口扫描技术:
TCP connect()扫描;TCP SYN扫描;TCP FIN扫描;IP段扫描;TCP反向ldent扫描
扫描器举例:X-SCAN
TCP会话劫持(TCP Hijack)
攻击者截获和重定向客户与服务器之间的数据流,使之经过攻击者的机器。
对于客户和服务器来说,它们都认为是在直接进行通信。
TCP会话劫持涉及的具体手段:去同步(Desynchronization)
常用攻击手段分析:
信任与认证(常见于Unix/Linux);伪造IP地址及其原理;
序列号猜测;利用TCP定时器漏洞实现的攻击;
UDP协议
ARP/RARP协议
IP包是被封装在以太网帧内的。以太网有它自己的地址方案,它采用的是48比特的惟一硬件(MAC)地址。以太网头包含源和目的硬件地址。
地址解析协议 ARP原理
ARP 高速缓存的作用:缓存中毒; 常见ARP攻击原理与防范
ARP应当注意的问题:攻击一般局限于局域网内部
DDoS/ DoS拒绝服务攻击原理: 目前出现最多,也是最难防范的攻击,
常见DDos攻击工具Trinoo,TFN : UDP Flood攻击,Ping Flood,
Smurf攻击,伪造源IP,特殊ICMP数据包通讯.
其他常见流行攻击工具与攻击手段分析:
结论:攻击手段不断变化,隐蔽性更强,应不断学习提高以跟上网络安全技术发展
第十周
教学要点:
1 VPN的作用和应用场合
2 IPSec的作用和协议的规范
教学要求:
1 了解VPN的应用
2 理解IPSec的内容和配置
讲授内容:
VPN的安全考虑
实现VPN之前,我们不仅应看到其带来的好处,同时应清楚其存在的潜在安全威胁,
常见VPN应用环境
VPN通常用于三种网络环境。
远程接入
VPN安全策略
是网络安全策略的一个子集,相对来说它要更细节化(Granular)
VPN数据安全性
VPN 协 议
VPN是基于隧道(Tunneling)的技术。
VPN隧道对要传输的数据用IP协议进行封装,这样可以使数据穿越公网(Internet)。
IPSec的引入:
补充:在网络的不同层次上的保密及特点。针对网络的分层结构,保密层次也分为:
应用层、传输层、网络层、数据链路层。
应用层有PGP、Kerberos和Secure Shell等
传输层有TLS, SSL等。
网络层,即IP层主要有IPSEC等。
数据链路层,专有线路连接,是速度快,但实现难度大,如银行的ATM提款机。
IPV4数据报与IPv4的缺陷,IPv6
IPSec协议
IPSec是一套开放的,基于标准的安全体系结构提供了大量安全特性
IPSec的要点
两个通信协议:AH , ESP
两种操作模式:传输模式,隧道模式
一个密钥交换管理协议:IKE
两个数据库:安全策略数据库SPD,安全关联数据库SAD
IPSec的体系结构
IPSec数据包信息格式,因特网密钥管理协议
习题:
当使用隧道方式时,构造了新的外部IP首部。对于IPv4和IPv6,指出外部分组中的每一个外部IP首部字段和扩展首部与内部分组的相应字段或扩展首部的关系。即指出哪些外部值是从内部值得来的,哪些值是独立于内部值构造出来的。
第十一周
教学要点:
1 SSL的作用和原理
2 配置和使用SSL/TLS
教学要求:
1 熟悉SSL/TLS中的术语和概念
2 能够为Web服务器配置安全通信
讲授内容:
传输层安全SSL和TLS
SSL(Secure Sockets Layer)/TLS的历史和发展,各版本 与发展阶段,对应关系
SSL协议体系结构简述
SSL的组成
SSL协议包括两个子协议:SSL记录协议和SSL握手协议
SSL的三大功能
认证服务器身份,认证客户端身份,使用公钥加密技术产生共享秘密信息
建立加密的SSL连接
连接和会话的概念和区别
会话状态包含的元素
连接状态包含的元素
SSL记录协议
SSL记录协议的操作过程
改变密码规范协议:最为简单的协议
告警协议:类似TCP/IP协议里ICMP协议的地位和作用
握手协议
SSL中最复杂的部分就是握手协议。
握手协议的组成
什么是密码组(Cipher Suite)
SSL握手协议的步骤
安全HTTP通信
SSL最为普遍的用法是实现浏览器和WWW服务器之间的安全Web HTTP通信。
HTTPS可以运行在不同的服务器端口,缺省情况为443。
通过为IIS配置安全通信理解SSL的应用(在实验中体现)
第十二周 ~ 第十三周
教学要点:
1 防火墙的原理、特点、分类和应用
2 包过滤技术和代理技术在防火墙中的应用
教学要求:
1 理解防火墙的原理以及网络中的作用
2 能够为合适的网络安全情况选择合适的防火墙技术
讲授内容:
网络安全整体框架(拓扑图说明)
防火墙的概念、原理
不可信网络 VS 可信任网络
防火墙的发展
防火墙的实现形式:软件防火墙,硬件防护墙,个人防火墙
实例:CheckPoint NetScreen、NAI、Zone Alarm,瑞星个人防火墙 ICS ICF ipchains iptables Linux上的的移动防火墙 说明其各属于哪类防火墙
防火墙技术(层次)
包过滤型防火墙 应用网关型防火墙 电路级网关防火墙
状态检测型防火墙 自适应代理型防火墙
防火墙体系结构
双重宿主主机体系结构;被屏蔽主机体系结构;被屏蔽子网体系结构。
防火墙领域的前沿技术
传统防火墙的缺点
包过滤技术:最原始的防火墙。
判断主要依据数据域① IP地址② 协议类型③ TCP/UDP头信息④ 分片字段
创建包过滤器的规则的几个原则
危险的服务: Telnet,NetBIOS 网络文件系统(NFS) 网络信息服务(NIS) X窗口
服务器TCP/UDP端口过滤,端口过滤规则创建,UDP端口过滤
FTP带来的困难:FTP正常模式原理 FTP被动模式的原理:
无状态操作和有状态检查
包过滤器的优缺点
堡垒(Bastion)主机
堡垒主机的概念,堡垒主机的特点,堡垒主机可提供的服务
使用堡垒主机要保证安全型应该考虑的问题
防火墙中的代理技术
比较:包过滤与代理服务器的区别
代理服务器的优缺点,传统代理与透明代理,代理的其他服务如NAT等
习题:
1 如果说防火墙相关的技术主要有三种,它们是?
2 如果说防火墙的体系结构主要有三种,它们是?
3 一台在Internet上的计算机,为什么会出现无法访问内网的WWW服务器?(从防火墙设置考虑)
4 简单的防火墙过滤规则设置为什么会无法使用FTP?
5 下面哪种防火墙规则更安全和有效?为什么?
1)禁止所有服务,只开启有限服务 2)开启所有服务,禁止不安全服务
第十四周
教学要点:
安全编程中的缓冲区溢出和格式化字符串
教学要求:
理解安全编程原理及防范,并在个人编程中避免此类问题
讲授内容:
解决三个问题:什么是安全编程?为什么要进行安全编程?如何进行安全编程?
着重分析两类安全编程问题1)缓冲区溢出(Buffer Overflow) 2)格式化字符串(Format String)
缓冲区溢出
程序例子 运行结果
缓冲区溢出攻击方式
编写正确的代码建议
利用CPU技术防止缓冲区溢出
格式化字符串
攻击方式与缓冲区溢出类似,也是通过覆盖缓冲区来达到攻击的目的的,
利用格式化函数,如printf()的格式化字符串%n来覆盖缓冲区的。
导致格式化字符串漏洞的原因
利用格式化字符串漏洞可实现的攻击方式
针对格式化字符串漏洞提出一些安全建议。
其他安全编程问题:条件竞争 、临时文件、动态内存分配和释放
实验部分:
实验一 远程控制原理与实践(DameWare)
实验目的:
1, 通过DameWare的使用理解远程控制的常用操作和模式
2, 掌握远程控制类木马的防治措施
实验内容及步骤:
1, 下载和安装DameWare NT Utilities
2, 使用DameWare截取远程桌面并控制(要求保存成功控制的截图),注意,请在相临的机器互相控制测试,不要对本机进行测试。
3, 设置DameWare使得远程主机不出现任何提示,体会网络木马攻击的方式。
4, 基于VC++的带有远程控制功能的源代码分析(课后,选做内容)
5, 将简单的具有C/S功能的Java程序加入简单远程控制功能,如远程运行命令(课后,选做内容)
常见问题及解决:
1,总是弹出“找不到网络路径”错误提示对话框,无法远程登录进行维护
解决方法:在注册表编辑器中依次展开
“HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Lan manServer/Parameter”找到“AutoShareServer”和“AutoShare Wks”这两个键,然后将它们删除,这样就可以重新启用“ADMIN$”默认隐藏共享了,最后重启文件服务器系统。
实验问题:
1, 在上面实验步骤中需要“截图”的位置把实验结果截图保存。
2, 根据你的理解,谈谈远程控制软件和木马有何区别和联系?
实验二 网络数据包的抓取和分析(Sniffer)
实验目的:
1, 理解被动攻击与网络数据截取的原理
2, 熟悉常用抓包工具SnifferPro的使用,为后续课程打基础
实验内容及步骤:
1, 安装SnifferPro4.5
2, 熟悉Sniffer的使用界面
3, 配置数据包过滤器(Filter)
4, 抓取数据包并分析
5, Sniffer实例分析:使用Email或FTP客户端进行网络通信并抓取用户密码 (要求保存截获用户名/密码的截图)
6, 基于Java的抓包软件的安装与使用(课后,选做内容)
实验问题:
1, 在上面实验步骤中需要“截图”的位置把实验结果截图保存。
2, 谈谈你对网络数据包监听类软件有哪些作用?还有哪些你知道的此类软件?
实验三 使用SSL为Web服务器配置安全通信
实验内容:
1, 熟悉IIS的配置
2, 掌握SSL的作用和在IIS上的配置方法
3, 了解SSL如何实现Web站点的安全
实验步骤:
1, 配置IIS,建立测试网页。
2, 配置SSL,步骤如下:
参照另一文件:“为IIS配置数字证书及安全通信.doc”
3, 用Ethereal测试,分析和比较实验前后,网络上传输的信息的变化。
实验结果(截图):
用Https访问原有站点,浏览器右下角出现锁状图标。
实验问题:
1, SSL是一种工作在哪个层次上的安全协议?
2, 在本例中数字证书是可以修改的,实际应用中如何保证其身份认证的有效性?
实验四 网络防火墙(ZoneAlarm)的使用和攻防测试
实验内容:
1, 了解防火墙的分类和常见防火墙
2, 掌握ZoneAlarm的安装和配置
3, 掌握针对几种类型的网络攻击的攻防
实验步骤:
1, 下载并安装ZoneAlarm Pro 6.1
2, 配置ZoneAlarm使得允许特定类型的程序(及其端口)访问外部网络或被外网访问,并了解二者间的差别。
3, 配置ZoneAlarm使得记录通过防火墙的IP及事件日志,并打开查看。
4, 利用SynFlood攻击进行测试,在未启用ZoneAlarm防火墙时,测试被攻击主机的结果(无法正常访问网络);
5, 利用SynFlood攻击进行测试,在启用ZoneAlarm防火墙时,测试被攻击主机的结果(ZoneAlarm弹出提示,正确选择后,可以正常访问网络);
实验结果(截图):
被SynFlood.exe攻击时ZoneAlarm弹出的提示画面
实验问题:
1, 可信任网络和不可信任网络有何区别?
2,防火墙的优点和弱点各是什么?试各列举二点。