第一章 计算机网络基础知识
一、电子邮件e-mail的安全
- ISP:Internet Service Provider
- 互联网服务提供商
- 美国:AT&T、Verzion,等等
- 中国:电信、移动、联通等
- ISP:为非网络用户提供基本的网络服务服务
- 企业、单位、区域网络
- 无线,移动网络
- 家用网络
- 通讯协议(protocol):发送和接收通信信息的所有细节
- 例:TCP IP HTTP Skype Ethernet
- 结构:连接网络的网络
- 网络结构松散
- 有大规模的公共因特网和局域内网
- 网络标准
- RFC:Request for comment
- IETF:Internet Engineering Task Force
二、计算机网络服务
- 支持分散应用的通信结构
- 网络浏览(web)、通话网络协议(VoIP)、电子邮件(email)、网络游戏(games)、电商(e-bussiness)、文件共享(file sharing)、云服务(cloud computing),等等等等
- 提供两大类数据传输服务服务
- 可靠传输(reliable data transfer):TCP
- 尽力传输(best effort data transfer):UDP
- 因特网 = 网络的网络
三、网络协议的分层结构
- 五层模型自上而下
- 应用层:支持网络应用协议和程序的运行,如:FTP、SMTP、HTTP
- 传输层:管理手法双方数据包传输的协议,如:TCP、UDP
- 网络层:存储和转发数据包,如:IP、routing、protocols
- 数据链路层:管理数据包点对点之间的发布和接收,如:Ethernet、802.11(WIFi)、PPP
- 物理层:bits,‘’on the wire‘’
四、 网络数据包的传输过程
- message:信息
- segment:数据段
- frame:数据帧
- datagram:数据报
第二章 网络安全研究的问题是什么?
为什么计算机网络不安全?
- 网络安全技术和研究面临哪些问题?
- 如何攻击计算机网络?
- 如何防御我们的网络?
- 如何设计贝佛念佛机的网络结构?
- 最初的计算机网络没有考虑安全问题
- 最早网络的设想是:控制网络的都是一群新的过的朋友
- 网络层面的每一层都需要出现安全措施
网络安全技术需要提供的服务
- 数据的机密性:只有发出人和真正的接收人才能理解网络信息的内容
- 发出人加密信息
- 接收方解密信息
- 双方的真实性:发出人和接收人需要确定彼此的真实性
- 数据的完整性:发出人和接收人都需要保证数据的完整性,数据(在传输和收到后)没有恶意修改
- 网络服务的可用性:确保用户和网络终端能够连接和使用网络服务
三、网络安全讨论场景设置
- 网页服务器和用户浏览器应用
- 银行服务器和用户终端
- 域名服务器
- 路由表之间的交换
黑客攻击网络安全的可能手段是什么?
- 监听
- 恶意添加
- 假冒
- 劫持
- 阻断服务
- 网络包监听
- 局域网一般通过广播(共享)式媒介传播信息
- 通过在共享媒体上监控计算机网络,所有通过监控端口的数据包都可以获得
- IP伪造地址:一个在IP发出端地址的地址
- 录播攻击:截获终端用户敏感信息,然后播放截获原始数据包
- 从处理器的角度来看,当收到北路功德密码时,酒店将被视为发送此信息hi真正的密码所有者
- 阻断服务:黑客持续攻击和消耗服务器的计算资源,但网络服务瘫痪
- 选择目标
- 可连接到目标服务器的终端
- 控制被攻入的终端攻击目标服务器群,使其瘫痪
五、网络恶意软件
- 木马程序:隐藏在正式软件中的窃听程序
- 病毒:传输的网络文件中含有病毒。一旦被用户激活,接收方终端将被感染,其他终端和用户可以通过网络自我复制和感染
- 蠕虫: 传输的网络文件有自己的蠕虫,蠕虫可以自我激活和复制,通过网络感染其他终端和用户
第三章 编码解码学
一、编码解码的基本概念
- 基本概念
- 鉴别认证
- 信息完整性
- 简单加密法
- 单维替换代码:用一组字符替换另一组 ,并规定相应的关系-凯撒密码
- 多维替代码:M1,M2,……;每个维代码都有自己的相应规则,多维对应遵循一定的循环排列顺序——维吉尼亚密码
- 密钥:n替代编码规则和n个规则的循环排列顺序
二、攻击编码技术的方法
- 攻击者只有密文:两种方法:
- 强制分析:试试所有可能的密钥
- 统计分析方法:根据密文中字幕的概率判断密钥
- 攻击者有原文
- 选择原文攻击
- 密钥:
- 加密解密算法通常是公共知识
- 只有密钥才是真正的秘密
- 公共密钥加密算法
- 一对密钥需要使用
- 共享密钥加密算法
- 只需要一把密钥
- 哈希函数法:
- 不需要任何密钥
三、共享密钥加密法
- 两种共享密钥加密方法
- 流加密:一个比特加密数据
- 区块加密
- 流加密:将原文中的每个比特与密钥流中的每个比特结合(求异或)计算出相应密文的比特位—RC4
- 块加密:将数据信息分为k比特长信息块,然后以信息块为单位进行加密;加密时的一对应关系是以k比特长字符串为单位
- 区块链加密(CBC):CBC产生自己的随机数
- 当前块的加密结果取决于上一块的密文
- 如何加密第一个块:开始(IV)–是随机块,IV不一定是隐秘的
- 对每个信息进行更改IV
- 如果输入块相同,密文也相同,因为算法相同
- 共享密钥加密代表算法
- DES:数据加密标准
- AES:高级数据加密标准
- DES简介
- 输入:64个原文块;56个共享密钥
- 区块加密和算法CBC的概念
- 首先进行初始排列
- 然后操作相同的算法16次,每次使用不同的48比特密钥
- 最后一次终结排列
- 获得64位密文
四、公共密钥加密法
- 需要一对钥匙
- RSA算法
- 余数定理:x mod n = x除n的余数
- (x mod n) ( ( ( ( (d)))))mod n = a ( ( ( ( (d))))) mod n
- RSA:基本认知
- 每一条信息都是一组比特字符串
- 一个比特字符串可以被(唯一的)一个整数表达
- 所以对字符串加密就相当于对一个证书加密
- RSA:创造”公共/私有“密钥对
- 选择两个比较大的质数p,q
- 计算n= pq ,z=(p-1)(q-1)
- 选择e(e小于n)e和z没有公约数(e和z互质)
- 选择d以致cd-1可以被z整除
- 用RSA算法加密解密 0. 有了RSA算法得出的密钥对(n,e)和(n,d)
- 对一段原文信息m加密,即做如下计算:c = m ( ( ( ( (e))))) mod n
- 对一段密文c进行解密,即做如下计算:m = c ( ( ( ( (d))))) mod n
- 生成钥匙对
- 必须先找到大质数p和q
- 方法:先做猜想,然后去试
- 求幂在计算上是及其费时的
- DES的计算至少比RSA快100倍
五、鉴别认证
- 目标:发送方需要向接收方确定发是发送方本人
- 认证算法4.0
- 目标:避免录播攻击
- nonce:一个临时生成的一次性使用的数字信息
- 认证算法5.0:用nonce和公共密钥结构做认证
- 认证算法5.0:安全漏洞
- 中间人攻击
六、信息完整性
- 信息完整性检测
- 目的:是通讯双方可以明确判断所动的信息完整无误
- 内容没有被篡改
- 信息发出方都是发出方本人
- 信息没有被录播
- 信息的顺序没有被打乱
- 信息摘要:
- 函数H()将任意长度的一段字符输入处理后,输出一段固定长度的字符串;这个固定长度的字符串输出被称为信息摘要
- H()是一个多对一函数
- H()主要是哈希函数
- 函数H()应有特性
- 容易计算
- 不可逆,无法通过H(m)反推出m
- 结果尽可能唯一
- 结果近乎随机
- 目的:是通讯双方可以明确判断所动的信息完整无误
- 综合校验码(checksun)
- 有哈希函数的特征
- 可以产生一组固定长度的字符输出
- 是多对一函数
- 不同的输入信息,输入到同一个函数里有可能得到相同的输出
- 信息认证码(MAC)
- 对发出方进行认证
- 鉴别信息完整性
- 无需加密
- 被称为金钥哈希函数
- 哈希消息认证
- 一个比较重要的信息认证标准
- 修补了一定的安全漏洞
- 运行过程:
- 把一段收发方共享的秘密代码加到待传信息上
- 兑现接了秘密代码的代传信息做哈希函数处理,得到信息摘要
- 把秘密代码再次衔接到信息摘要上
- 对衔接了秘密代码的信息摘要再次做哈希函数处理
- 实际应用中的哈希函数算法
- MD5
- 四部过程计算出128位的信息摘要
- 通过一个由 MD5计算出的128位信息摘要x,很难反向计算出原始信息m
- SHA-1
- 生成160位的信息摘要
- MD5
- 电子签名
- 通过电子手段实现的类似手写体签名的技术
- 电子签名技术需要使用公共密钥结构,实现信息认证类似的效果,从而认证签字的发出人就是签字者
- 可确认、并无法伪造
- 电子签名 = 签了字的“信息摘要”
- 数字证书的认证机构
- CA:数字证书认证机构:将公钥和其相应通讯实体进行绑定、
- E需要像数字证书认证机构注册其公钥
- E向CA提供身份证明
- CA建立一个证书用以绑定E和其公钥
- 这个证书十一CA的私钥签署的E的公钥,即CA签字说明“这个就是E的公钥”
- 总结
- 主要标准:X.509(RFC 2459)
- 证书内容包括:
- 发正方
- 被认证个体的名字、网络地址、域名、等等
- 被认证个体的公钥
- 电子签名(发正方的私钥签名)
- 公共密钥框架
- 有电子证书、证书认证机构
- 结构比较复杂
第四章 网络安全协议
一、电子邮件E-mail的安全
二、传输协议(TCP)的安全和隐秘套接字(SSL)
- 隐秘套接字协议
- 比广泛使用的安全网络协议
- 几乎被所有浏览器和网站服务器支持
- https
- 每年通过SSL协议的网络交易以亿万美元计
- 协议设计:Woo 1994
- 协议实现:Netscape
- 衍生协议:传输层安全协议TLS
- 提供的服务
- 保密性
- 信息完整性
- 认证
- 最初目的:
- 电商网上交易的信息安全需求
- 网址的真实性认证
- 跟新产品提供商做交易的手续最简化
- 比广泛使用的安全网络协议
- SSL和TCP
- SSL被应用在应用层和数据链路层之间
- 更高一层要求是:收发双方需要随时交换新的信息,并且信息是双向的
- 最简SSL协议设计
- 收发双方握手
- 密钥衍生
- 反复使用一个密钥很不安全
- 数据传输
- 终断连接
- SSL加密算法库
- 加密算法库
- 公共密钥算法
- 共享密钥算法
- 哈希函数算法
- SSL支持加密算法库中的多种算法
- 收发双方协商:什么步骤使用何种加密孙发
- 普通SSL共享密钥算法
- DES
- 3DES
- RC2
- RC4
- SSL公共密钥算法
- RSA
- 加密算法库
- SSL协议:握手阶段的功能
- 对服务器认证
- 建立密钥
- 对用户进行认证
- 用户端给服务器发出一系列算法以及用户端nounce
- 服务器在用户端发出的算法库中选择适当算法;并发挥所选算法&电子证书&服务器端的nounce
- 用户端对服务器电子证书做认证后,揭密湖服务器的公钥,生成pre-master-secret,并用服务器的公钥对pre-master-secret进行加密,之后发给服务器
- 用户端和服务器各自独立的,用pre-master-secret、nounce、和实现设定的算法计算加密密钥和MAc密钥
- 用户端在每一条握手的信息里都附上信息认证码
- 服务端对所有握手信息发一次信息认证码
- 密钥衍生
- 用户端nounce,服务器nounce,pre-master-secret一起被输入一个虚拟随机函数,函数随机生成master secret
- master secret和新的nounces被遗弃输入到另一个随机数生成函数,输出密钥段
- key block被分割处理,产生下列密钥:
- 用户MAC密钥
- 服务器MAC密钥
- 用户数据加密密钥
- 服务器数据加密密钥
- 用户初始向量
- 服务器初始向量
三、网络层安全 IPsec
- 网络层的机密性:对两个网络层设备而言
- 发出方对网络层数据报加密,这些加密内容可能是
- TCP or UDP协议包
- ICMP协议信息
- ospf协议信息
- 所哟有从一个网络设备发到另一个网络设备的数据必须被保护起来,不让攻击者随意获得
- 将数据用一层坛子保护起来
- 发出方对网络层数据报加密,这些加密内容可能是
- VPN
- 一个单位办公室之间的网络信息流通过已有的因特网进行传输
- 但在数据发入到因特网之前进行加密
- 从逻辑上分工有的因特网数据和单位内部私密数据
- IPsec所提供的服务
- 数据完整性
- 发出方认证
- 防范录播攻击
- 信息隐蔽性
- 两种不同的协议可供选择
- AH—鉴定文件头协议
- 对信息做出发出方身份认证以及数据完整性检查,但不提供保密性
- ESP–封装安全协议
- 对信息做出发出方身份认证、数据完整性检查、并提供保密措施
- AH—鉴定文件头协议
- IPsec终端传输模式(transfer mode)
- IPsec数据包被连接的网络设备的两个终端进行处理
- IPsec隧道模式(tunnel mode)
- 路由器上加IPsec
- 安全联盟(SA):
- 在发送数据之前,从发出段到接收端建立安全联盟
- 安全联盟施旦行的:有一方向另一方提出,非双向
- 发出方和接收方分别保存和更新对SA的链接状态信息
- 类似于:TCP连接两端的中断处理器保持TCP的链接状态信息
- IP本身是无状态协议;但IPsec是保持状态信息协议
- 在发送数据之前,从发出段到接收端建立安全联盟
- 安全联盟数据库(SAD)
- 网络中断在安全联盟数据库中保存SA的状态信息,并在需要用到此信息时到SAD中查找
-
enchilada的内容
- IPsec序列号
- 对一个新的SA,发出方初始设置序列号位0
- 每次有数据报通过SA传输时
- 发出方将相应的序列号加1
- 并把新的序列号放入到报头中的序列号域
- 目的
- 防止攻击者通过监听进行录播攻击
- 当重复收到相同序列号的数据报时,可以判断 将多余的数据报忽略以减小对顾问武器资源的消耗
- 方法
- 接收方做重复序列号的检查
- 并不记录所有收到的数据报,二十对一个窗口中的数据报进行检查
- 安全规则数据库
- 规则规定:对于一个网络层数据报,发出方需要周到他是否要用IPsec
- 同时需要知道用哪个SA
- SPD里的信息规定受到一个网络层数举报时做些什么以及怎么做
- IPsec安全吗?
- 基本层面比较安全
- IKE:对加密算法、密钥、SPI值进行信息交换协调
- IPsec的通讯双方可以是两个网络终端、一对路由器/防火墙或者一个网络终端和一个路由器的组合
第五章 无线网络安全
一、WEP的设计与问题
- Wired Equivalent Privacy(WEP)设计 、
- 共享密钥编码算法
- 保证信息私密性
- 终端认证
- 数据完整
- 自我同步:单独加密每一个数据帧
- 拿到加密过的数据帧和密钥可以将数据帧解密,即使后续数据帧有丢失,也不影响解密结果
- 高效
- 既可以在硬件中也可以在软件中实现
- 共享密钥编码算法
- 数据流的共享编码算法
- 将密钥流的每一个字节和原文的每一个字节整合计算出密文字节
- WEP uses RC4
- 数据流编码和数据独立性
- 目标:每一个数据帧独立加密
- 如果对数据帧n+1,用户从数据帧演变的密钥六进行加密,那么数据帧之间的加密就无法独立
- WEP的方法:对美一帧数据重新通过共享密钥和新的IV生成密钥流
- WEP加密算法:
- 发出方计算ICV
- 收发方共有一个104位的共享密钥
- 发出方创建一个24位的IV,并将其接入到104位的共享密钥中,从而获得一个128位的新密钥
- 发出方同时附上一个8比特长的keyID
- 将128位的密钥输入到位随机函数中得到密钥流
- 加你个数据帧中的数据和ICV一起用RC4算法加密
- 将B个字节的密钥流和数据&ICV的组合进行或处理
- 将IV和key加到上一步之前,生成数据帧的payload
- 将上一步中生成的payload打包成802.11数据帧
- 用nounce进行终端认证
- WEP终端认证
- 并不是所有AP都做终端认证,即使他支持AP
- AP在信号帧中标记是否需要终端认证
- 终端认证在AP和无线终端建立连接之前完成
- 对802.11 WEP的攻击
- 安全漏洞
- 24-比特IV,每一帧一个IV,意味着IV值迟早会被重复使用
- 并且IV的传输未经加密,IV值的重复使用很容易被发现
- 非常不安全的协议,已经被淘汰
- 安全漏洞
二、802.11i 改进机制
- 扩展的认证协议EAP
- 终端用户设备到认证服务器的协议
第六章 防火墙及攻防系统
一、防火墙概念及目的
- 防火墙
- 使用防火墙的原因
- 防止阻断服务攻击
- SYN flooding:goon攻击者同时建立很多TCP,一次耗尽服务器软硬件资源,是真正的需求连接无法建立
- 防止内部数据的非法盗用和篡改
- 如:攻击者可以攻入一个电商的网页服务器,并修改其网页内容
- 只允许和发链接通过防火墙进入内网
- 内网应该只被有权限的设备和用户连接
- 防止阻断服务攻击
二、三种防火墙
- 三种防火墙
- 无状态记录的数据包过滤
- 有状态记录的数据包过滤
- 基于应用的网关设置
- 无状态记录过滤
- 内网通过路由器防火墙连接外网
- 路由器对数据包一个个济宁筛选,基于一下信息决定是否转发:
- 发出方IP地址,接收方IP 地址
- TCP/UDP发出方和接收方的端口号
- ICMP信息类别
- TCP SYN和ACK比特位的设置
- 有可能漏过一些没有意义的网包
- 权限控制列表(ACL)
- 一个权限控制条件表,以(action,condition)的格式对进入内网数据报进行筛查
- 有状态记录过滤
- 对每一个TCP连接都跟踪其状态信息
- 实时监测建立(SYN),断开(FIN)信息:从而判断进入和离开内网的网包是否合理
- 对很久呆滞的连接进行切断处理
- 完善ACL,使其包含状态信息
- 应用网关
- 不光根据IP/TCP/UDP信息,而且根据应用层信息进行网包筛查
- 要求所有用户通过网关建立telnet连接
- 对有权限的用户,网管为其宪法目标终端建立telnet连接,之后此链接的所有网报都通过网关转发
- 路由器将拦截所有非网关转发的telnet连接
- 防火墙及网关的局限性
- IP spooling:路由器无法判断一组数据包是否真来自于自称的发出方
- 如果有多i各应用需要过滤处理,那么每一个应用都需要一个应用网关
- 用户端应用软件需要知道如何连接网关
- 过滤器一般对UDP网包要么使用所有过滤规则,要么完全不设置规则
三、IDS(入侵防御系统)介绍
- 对网络包进行过滤
- 只对TCP/IP协议数据“头区间”进行分析
- 对连接与连接之间的相关性不做检查
- IDS:入侵防御系统
- 更深入的数据包检查:同时检查协议包的数据段内容
- 检查属于不同网络连接的数据包的相关性
- port scanning
- DoS attack
- 多个IDSs:在不同网络位置同时安防不同类别的IDS检测系统