网络安全自学笔记05 - 网络协议基础与攻击
一、ARP协议
1、ARP协议概念
1、什么是ARP
- address resollution protocol,地址解析协议。
- 将一个已知的IP地址解析成MAC地址
- ARP协议通过IP地址向MAC地址的转换,解决网际层和网络访问层的衔接问题(网际层是TCP/IP协议簇四层模型中的底层,是数据链路层和物理层的整合)
- 由于IP地址和MAC地址定位方式不同,ARP协议成为数据传输的必备协议,主机发送信息前,必须通过ARP协议获取目标IP地址对应的MAC地址,才能正确的发送数据包。
2、为什么需要ARP协议
- 在网络访问层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过MAC地址进行定位,然后才能进行数据包发送。而在网络层中和传输层中,计算机之间是通过IP地址定位目标主机,对应的数据报只包含目标主机的IP地址,而没有MAC地址。因此,在发送之前需要根据IP地址获取MAC地址,然后才能将数据包发送到正确的目标主机,而这个获取过程是通过ARP协议完成的
3、ARP工作基本流程
- ARP工作流程分为两个阶段。一个是ARP请求(ARP广播)过程,另一个是ARP响应过程
- 主机A以广播形式向网络中所有主机发送ARP请求,请求中包含了目标IP地址如192.168.1.2,主机B收到请求,发现自己就是主机A要找的主机,返回响应,相应包中包含主机的MAC地址。则其他主机收到默认将丢弃
- 当主机A发送广播时不知MAC地址则用6组0进行填充
2、ARP报文的格式
- 以太网目的地址:是ARP请求的目的以太网地址,为全1时代表广播地址
- 以太网源地址:是发送ARP请求的以太网地址
- 帧类型:是后面的数据类型,ARP请求和ARP应答的这个值为0x0806
- 硬件类型:表示硬件地址的类型,硬件地址不只以太网一种,当为以太网类型时此值为1
- 协议类型:表示要映射的协议地址类型,要对IPv4地址进行映射,此值为0x0800
- 硬件地址长度和协议地址长度:MAC地址占6字节,IP地址占4字节
- op code:操作类型字段,值为1,表示进行ARP请求,值为2,表示进行ARP应答,值为3,表示进行RARP请求,值为4,表示进行RARP应答
- 发送端以太网地址:发送端ARP请求或应答的硬件地址,这里是以太网地址,和以太网源地址相同
- 发送端IP地址:发送ARP请求和应答的IP地址
- 目的以太网地址:目的端的硬件地址
- 目的IP地址:目的端的协议地址
3、ARP缓存
- 为了避免重复发送ARP请求,每一太主机都有一个ARP告诉缓存。当主机的到ARP响应后,将目标主机的IP地址和物理地址存入本机ARP缓存中,并保留一定时间(两分钟),只要在这个时间范围内,下次请求MAC地址时,直接查询ARP缓存,而无需再发送ARP请求
1、使用ARP命令
windows系统中使用
arp -a #显示当前ARP项 arp -d #清空ARP缓存,包括静态绑定 arp -s IP地址 MAC地址 #添加静态绑定
思科设备上使用
show arp #查看ARP缓存表 clear arp-cache #清除ARP缓存 arp IP地址 MAC地址 #绑定静态ARP
4、ARP 攻击与欺骗
1、原理
(1)ARP攻击原理
- 首先明确ARP攻击发送的是ARP应答,但是ARP应答中的MAC地址为虚假地址,所以在其他主机想要通信时,会将目的的MAC地址设置成此虚假MAC地址导致无法正常通讯。
(2)ARP欺骗原理
- ARP欺骗攻击
- 目的不是为了让被攻击主机无法访问互联网,而是让被攻击主机访问互联网时的数据发送给攻击者,由攻击者将数据发送给网关,所以被攻击主机和网关收到的都是真实的MAC地址(攻击者的MAC地址)
(3)ARP防御手段
- 绑定静态ARP
- 使用ARP防火墙
2、使用kali linux攻击
arpspoof
apt-get -y install dsniff #安装
(1)ARP攻击
arpspoof -i eth0 -t 192.168.1.188 192.168.1.1
# -i 使用的接口
# -t 攻击主机目标地址 攻击主机网关地址
(2)ARP欺骗
echo 1 >> /proc/sys/net/ipv4/ip_forward #末尾添加1,表示开启流量转发arpspoof -i eth0 -t 192.168.1.188 192.168.1.1#主机和网关地址可以调换,从而监控进或出流量
5、driftnet工具
driftnet工具负责显示某个网卡的流量转换成图片(ARP欺骗转发流量)
apt-get -y install driftnet driftnet -i eth0
二、ICMP协议
1、ICMP协议概念
(1)什么是ICMP
- internet control message protocol,控制报文协议。
- 它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户的数据传递起着重要的作用
- ICMP协议属于网络层协议,封装在传输层与网络层之间
2、ICMP报文格式
- ICMP报文包含在IP数据报文中,IP头部就在ICMP报文的前面
- ICMP头部中的类型域用于说明ICMP报文的作用及格式,此外还有一个代码域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面
- type:报文类型
- Code:类型代码
- Cchecksum:校验和
- [Cchecksum status:Good] :校验和状态
- Iddentifier(BE):标识符大端
- Iddentifier(LE):标识符小端
- Sequence Number(BE):序列号大端
- Sequence Number(LE):序列号小端
- Data:数据字段
(1)13种ICMP报文类型
类型 | 代码 | 目的不可达 | 处理方法 |
---|---|---|---|
0 | 0 | 回显应答 | 用户进程 |
3 | 0 | 网络不可达 | 无路由到达主机 |
3 | 1 | 主机不可达 | 无路由到达主机 |
3 | 2 | 协议不可达 | 链接被拒绝 |
3 | 3 | 端口不可达 | 链接被拒绝 |
3 | 4 | 需要进行分片但设置了部分片比特DF | 报文太长 |
3 | 5 | 源站选路失败 | 无路由到达主机 |
3 | 6 | 目的网络不认识 | 无路由到达主机 |
3 | 7 | 目的主机不认识 | 无路由到达主机 |
3 | 8 | 源主机被隔离(已废弃) | 无路由到达主机 |
3 | 9 | 目的网络被强制禁止 | 无路由到达主机 |
3 | 10 | 目的主机被强制禁止 | 无路由到达主机 |
3 | 11 | 由于服务类型TOS,网络不可达 | 无路由到达主机 |
3 | 12 | 由于服务器类型TOS,主机不可达 | 无路由到达主机 |
3 | 13 | 由于过滤,通信被强制禁止 | (忽略) |
3 | 14 | 主机越权 | (忽略) |
3 | 15 | 优先权终止生效 | (忽略) |
类型 | 代码 | 类型 | 处理方法 |
4 | 0 | 源站被抑制 | TCP由内核处理,UDP则忽略 |
类型 | 代码 | 重定向 | 处理方法 |
5 | 0 | 对网络重定向 | 内核更新路由表 |
5 | 1 | 对主机重定向 | 内核更新路由表 |
5 | 2 | 对服务类型和网络重定向 | 内核更新路由表 |
5 | 3 | 对服务类型和主机重定向 | 内核更新路由表 |
类型 | 代码 | 类型 | 处理方法 |
8 | 0 | 回显请求 | |
9 | 0 | 路由通告 | 用户进程 |
10 | 0 | 路由请求 | 用户进程 |
类型 | 代码 | 超时传输 | 处理方法 |
11 | 0 | 期间生存时间为0 | 用户进程 |
11 | 1 | 在数据报组装期间生存时间为0 | 用户进程 |
12 | 0 | 坏的IP首部(包括各种差错) | 协议不可用 |
12 | 1 | 缺少必须的选项 | 协议不可以 |
13 | 0 | 时间戳请求 | 内核产生应答 |
14 | 0 | 时间戳应答 | 用户进程 |
15 | 0 | 信息请求(已作废) | |
16 | 0 | 信息应答(已作废) | |
17 | 0 | 地址掩码请求 | 内核产生应答 |
18 | 0 | 地址掩码应答 | 用户进程 |
3、ICMP重定向
(1)ICMP重定向攻击原理
- ICMP重定向是报文是ICMP控制报文中的一种,在特定的情况下,当路由器检测到一台机器使用非优化路由器的时候,他会向该主机发送一个ICMP重定向报文,请求主机改变路由器。路由器也会把初始数据报向他的目的转发
4、ICMP攻击
(1)使用kali linux攻击
netwox
#安装netwox,icmp是netwox其中一种模块 apt-get install -y netwox
(2)ICMP攻击
#实施重定向,指定网关使用86模块
netwox 86 -g 192.168.1.1
三、TCP协议
1、TCP协议概念
(1)什么是TCP
- 传输层提供了主机应用程序之间的端到端的服务
- 数据传输之前必须先建立链接,数据传输完成之后,必须释放连接
- 仅支持单播传输:每条传输连接只有两个端点,只能进行点对点的连接,不支持多播和广播的传输方式,UDP是支持的
- 在TCP协议中,通过三次握手建立链接。通信结束后,还需要断开连接。如果在发送数据包时,没有正确被发送到目的地时,将会重新发送数据包
(2)基本功能与服务
1)基本功能
- 分割与重组数据
- 按端口号寻址
- 连接管理
- 差错控制和流量控制,纠错的功能
2)传输层提供的服务
- 传输连接服务:通常,对话会层要求每个传输连接,传输层都要在网络层上建立相应的连接
- 数据传输服务:强调提供面向连接的可靠服务(很晚OSI才开始定制无连接服务的有关标准)
2、TCP报文段
- TCP源端口:原计算机上的应用程序的端口号
- TCP目的端口:目标计算机的应用程序端口号
- 序号:它表示本报文段所发送的数据的第一个字节的编号。在TCP连接中所传送的字节流的每一个字节偶会按照顺序编号。当SYN标记不为1时(这是当数据分段第一个字母序号),如果STN的值时1时,这个字段的值就是初始序列值(ISN),用于对序列号进行同步,这时,第一个字节的序列号比这个字段的值大1,也就是ISN加1
- TCP确认号:它表示接收当期望收到发送方下一个报文段的第一个字节数据的编号。其值是接收计算机即将进行接收到的下一个序列号,也就是下一个接收到的字节的序列号加1
- TCP首部长度:数据偏移是指数据段中的“数据”部分启示出距离TCP数据段起始处的字节偏移量,其实这里的“数据偏移”也是在确定TCP数据段部分的长度。
- 保留:为TCP将来的发展预留空间,目前必须全部为0
- URG:表示本报文段中发送的数据是否包含紧急数据。URG=1时表示紧急数据。当URG=1时,后面的紧急指针字段才有效
- ACK:表示前面的确认号字段是否生效。1为生效。TCP规定,连接建立后必须为1
- PSH:告诉对方收到该报文段后是否立即把数据推送给上层。如果值为1,表应当吧数据交给上层,而不是缓存起来
- RST:表示是否重新链接。如果是1,说明TCP连接出现了严重问题,如主机崩溃,必须释放连接,然后重新链接
- SYN:在建立连接时使用,用来同步序号,当SYN=1,ACK=0时,表示这是一个请求建立连接的报文,当SYN=1,ACK=1时,表示对方同意建立连接。SYN=1说明这是一个请求建立连接的报文,只有在前两次握手中SYN才为1
- FIN:标记数据是否发送完毕。当为1时,表示数据已经发送完成
- 窗口大小:它表示ACK Number 开始还可以接收多少字节的数据量,也表示当前接收端的接收窗口还有多少剩余空间。该字段可以用于TCP的流量控制
- 校验和:它用于确认传输的数据是否有损坏。发送端基于数据内容校验生成一个数值,接收端根据接收的数据校验生成一个值,两个值必须相同,才能证明数据是有效的,如果不同则丢掉这个数据包。
- 紧急指针:仅当URG控制为1时才有意义。它指出本数据段中为紧急数据的字节数。
- 选项:长度不定,但必须是32bits的倍数
3、TCP半关闭状态
- TCP连接只有一方发送了FIN,另一方没有发出FIN包,仍然可以在一个方向上正常发送数据
4、TCP半连接状态
- 发生在TCP3次握手中。如果客户端向服务器发起TCP请求,服务端也正常情况进行相应,但是客户端不进行第三次握手,这就是半连接。半连接会造成服务器分配的内存资源一直耗着(连接多了就是SYN洪水攻击的原理)
5、常用的TCP端口号及其功能
- 21端口:FTP,FTP服务器所开放的控制端口
- 22端口:SSH,为远程登录会话和其他网络服务提供安全性的协议
- 23端口:Telnet,用于远程登录,可以远程控制管理目标计算机
- 25端口:SMTP,SMTP服务器开放的端口,用于发送邮件
- 53端口:DNS,DNS服务器开放的端口
- 80端口:HTTP,超文本传输协议
- 100端口:POP3,用于接收邮件
- 143端口:IMAP4,用于在线查看邮件
- 443端口:HTTPS,HTTP+SSL(TLS),提供安全的HTTP通道
- 3306端口:MySQL,MySQL服务器开放的默认端口
- 3389端口:远程桌面协议
6、SYN Flood攻击与防御
(1)使用kali linux攻击
- hping3
(2)SYN Flood攻击
hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --fand-source 192.168.1.188
# -c 10000发送的数据包数量
# -d 120 发送到目标机器的每个数据包大小
# -S 只发送SYN数据包
# -w 64 TCP窗口大小
# -p 80 目的端口
# --fiood 尽可能的快速发送数据包,不需要考虑显示入站回复。洪水攻击模式
# --rand-source 使用随机性的源头IP地址
# 192.168.1.188 目标IP地址或域名
(2)SYN Flood防御
- 使用TCP代理
- TCP源探测
四、UDP协议
1、概念
- 用户数据报协议
- UDP的定语是为了在互联的计算机网络环境中提供分钟交换计算机通信的数据报模式,该协议假设使用IP作为底层协议,该协议以最小的协议机制为应用程序提供了向其他程序发送消息的过程
- 该协议是面向事物的,不保证传输和复制保护。需要有序可靠传输数据流的应用程序该使用传输控制协议
2、UDP特点
- 没有各种连接:在传输数据前不需要建立连接,也避免了后续的断开连接
- 不重新排序:对到达顺序混乱的数据包不进行重新排序
- 没有确认:发送数据包无需等待对方确认。因此,使用UDP协议可以随时发送数据,但不保证数据能否成功被主机接收
3、报文段
- 源端口:通常包含发送数据报应用程序所使用的UDP端口,接收端利用这个字段的值作为发送相应的目的地址,这个字段是可选的,所以发送端的应用程序不把自己写的端口号写到字段中,接收端就不能发送响应
- 目的端口:接收端上UDP软件使用的端口
- 长度:表示UDP数据报长度,包含UDP和UDP数据的长度
- 校验和:可以校验数据在传输中是否被损坏
4、常用的UDP端口号
端口 | 协议 | 说明 |
---|---|---|
53 | DNS | 域名系统 |
69 | TFTP | 简单文件传输协议 |
111 | RPC | 远程过程调用 |
123 | NTP | 网络时间协议 |
161 | SNMP | 简单网络管理协议 |
5、UDP flood攻击
(1)使用kali linux攻击
- hping3
(2)UDP Flood攻击
hping3 -q -n --rand-source --udp -p 53 --flood 192.168.1.188 -d 10000
#-q 安静模式
#-n 数字化输出,象征性输出主机地址
#--rand-source 随机源地址
#--udp UDP模式
#-p 目标端口
#--flood 尽快发送数据包,不显示回复
# -d 发送数据报大小
3、UDP Flood防御
- 静态过滤:直接丢弃位于黑名单中的IP地址发出的流量,或者直接让白名单的IP地址发出的流量通过
- 畸形报文过滤:通过利用协议栈漏洞的畸形报文攻击
- 扫描窥探报文过滤:过滤探测网络结构的扫描型报文和特殊控制报文
- 源合法性认证:基于应用来认证报文源地址的合法性,这些应用支持协议交互。清晰设备通过发送源探测报文及检查相应报文来防范虚假源或攻击发出的攻击和流量
- 基于会话防范:基于会话来防御并发链接、新建链接或异常超过阈值的连接耗尽类攻击
- 特征识别过滤:主要靠指纹学习和抓包来获得流量特征,防范僵尸攻击或代理发起的流量攻击,区别正常用户的访问行为
- 其中抓包分析是指对异常攻击流量抓包以生成抓包文件,通过对抓包文件进行解析和提取指纹,能够获取流量特征
流量整形:流量经过此各分层过滤后,流量依然很大,超过用户实际带宽,此时采用流量整形技术,确保用户网络带宽可用
五、DHCP协议
1、概念
- DHCP动态主机配置协议
- 随着互联网用户的急速的增长,也加快了IPv4的地址的耗尽,各种各样的技术随之产生,从而应对IPv4地址的耗尽,DHCP就是一个典型的协议,使用户动态进行获取IP地址,在用户下线时,地址进行回收,提供给其他人使用
- 由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址、子网掩码、网关、DNS等
- DHCP的好处:减少管理员 的工作量、避免输入错误的可能性、避免IP冲突、提高了IP地址的使用率、方便客户的配置
- DHCP分配方式
- 自动分配:分配到一个IP地址后永久使用(固定配置)
- 手动分配:由DHCP服务器管理员专门指定IP地址(在服务器上进行IP/MAC绑定)
- 动态分配:使用玩后释放IP,供其他客户机使用
2、DHCP原理
- DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机68号端口
- 交互过程
- DHCP客户机以广播的方式发出DHCP disvober报文。
- 所以的DHCP server都能够接收到DHCP 客户机发送的DHCP discover报文,所有的DHCP server都会给出响应,想DHCP客户机发送一个DHCP offer报文
- DHCP offer报文中“Your(client) IP Address”字段就是DHCPserver能够提供给DHCP客户机使用的IP地址,且DHCP server会将自己的IP地址放在option字段中以便DHCP客户机区分不同的DHCPserver。DHCPserver在发出此报文后会存在一个已分配IP地址的记录
- DHCP客户机只能处理其中的一个DHCP offer报文,一般的原则是DHCP客户机处理最先受到的DHCPoffer报文
- dhcp客户机会发出一个广播的DHCP request报文,在选项字段中加入选中的DHCPserver的IP地址和需要的IP地址
- DHCPserver收到DHCPrequest报文后,判断安选项字段中的IP地址是否与自己的地址相同。如果不同,DHCP server不做任何处理只清楚相应IP地址的分配记录;如果相同,DHCP server就会向DHCP客户机相应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息
3、DHCP欺骗攻击与防御
(1)原理
- 伪造真实的DHCP服务器向主机分配IP,如果有DHCP服务器,用先收到的server的offer来获取IP
(2)使用kali linux攻击
- Yersinia
(3)DHCP欺骗防御
- 配置信任端口
- 合适MAC地址,避免DHCP攻击耗尽IP地址
六、DNS协议
1、概念
- DNS 域名系统
- 由于主机与主机之间靠IP地址进行交互,由于IP地址的记忆相对较难,这是就需要将主机名解析对应的IP地址。在早期解决这一问题使用hosts文件,hosts文件里面主要记录的是主机名与ip地址的对应关系
- 当如果hosts文件中记录的对应关系和DNS服务器上维护的对应关系冲突时,主机首先是去找自己本地的hosts文件中的对应关系,再次请求DNS解析
- DNS服务器作为域名和地址相互映射的分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
2、命名空间
- 根域(全世界只有13台根域服务器)
- 顶级域(主要用于区分域名的用途)
- 组织域
- com 商业
- edu教育、学校
- org 社会非营利性组织
- 国家/地区域名
- cn 中国
- hk 香港
- us 美国
- uk 英国
- 组织域
- 二级域名(一般情况下去申请域名,都是申请二级域名)
七、HTTP协议
1、概念
- HTTP 超文本传输协议,用于万维网服务器传输超文本到本地浏览器的协议
- HTTP基于TCP/IP来传递数据
2、万维网服务
- internet上广泛应用的一种信息服务技术
- 采用客户机/服务器架构(C/S)
- 客户机通过浏览器可以观看到服务器上的图形化页面,浏览器/服务器(B/S)
3、万维网服务软件
- Apache(多平台)
- IIS(Windows平台)
- tomcat(多平台)
- Nginx(多平台)
4、HTTP原理
- HTTP工作与客户端/服务器构架上。浏览器作为HTTP客户端通过URP服务器及WEB服务器发送所有请求
- URL即统一资源定位符,用来唯一地表示万维网中的某一个文档。URL由协议、主机和端口(默认80)及文件名三个部分构成
- WEB服务器根据收到的请求向客户端发送响应信息
5、HTTP缺点
- HTTP的明文数据传输
- HTTP在传输客户端请求和服务器相应时,唯一的数据完整性验证就是报文头里本次传输数据的长度,而对内容是否被篡改不做确认
6、HTTP特性
- HTTP是无连接的:无连接是限制每次连接组织处理一个请求。服务器处理完客户端的请求并收到客户端的应答后即断开连接。采用这种方式可以节省传输时间
- HTTP是媒体独立的:只要客户端和服务器知道如何处理数据内容,任何数据都可以通过HTTP发送。
- HTTP是五状态的:是指协议对于事物处理没有记忆能力,如果后续需要处理前面的信息必须重传,这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要提供信息时它的应答就较快
7、请求方法
- GET:获取资源。支持版本1.0、1.1
- POST:传输实体主体。支持版本1.0、1.1
- PUT:传输文件。支持版本1.0、1.1
- HEAD:获得报文首部。支持版本1.0、1.1
- DELETE:删除文件。支持版本1.0、1.1
- OPTIONS:询问支持的方法。支持版本1.1
- TRACE:追踪路径。支持版本1.1
- CONNECT:要求用隧道协议连接代理。支持版本1.1
- LINK:建立和资源之间的联系。支持版本1.1
- UNLINE:断开连接关系。支持版本1.1
8、 HTTP状态码
- 1**:信息,服务器收到请求,需要请求者继续执行操作
- 2**:成功,操作被成功接收并处理
- 200:成功相应
- 204:请求处理成功,但是没有资源可以返回
- 206:对资源某一部分进行相应,由Content-Range指定范围的实体内容
- 3**:重定向,需要进一步操作以完成请求
- 301:永久性重定向,该状态码表示请求的资源已经重新分配URL,以后应该使用资源现有的URL
- 302临时性重定向。改状态码表示请求的资源已被分配了URL,希望用户(本次)能使用新的URL访问
- 303:该状态码表示由于请求的资源存着另一个URL,应该使用GET方法定向请求资源
- 304:该状态码表示客户端发送附带条件的请求时,服务器允许请求访问的资源,但未满足条件
- 305:临时重定向。该状态码与302Found有着相同的意义
- 4**:客户机错误,请求语法错误或无法完成请求
- 400:该状态码表示请求报文中有语法错误。当发生错误时,需修改请求的内容后再次发送请求
- 401:该状态码表示发送的请求需有要通过HTTP认证的认证信息
- 403:该状态码表明对请求资源的访问被服务器拒绝了
- 404:该状态码表示服务器无法找到请求的资源
- 5**:服务器错误,服务器再处理请求的过程中发生了错误
- 500:该状态码表明服务器端在执行时发生了错误
- 503:该状态码表明服务器暂时出于负载或正在停机维护,现在无法请求
八、HTTPS
1、概念
- HTTPS(全程:Hyper Text Transfer Protocol Over SecureSocket Layer)
- 在HTTP基础上增加了身份验证与加密通讯方法
2、TLS技术
- 传输层安全协议,TLS1.0与SSL3.0保持一致,目前常用版本TSL1.2
- 设计目标
- 保密性:通过加密encryption实现,所有信息都加密传输,第三方无法窃听
- 完整性:通过MAC校验机制,一旦被篡改,通信双方会立刻发现
- 认证:双方认证,双方都可以配备证书,防止身份被冒充
- 互操作、通用性:根据公开的RFC,任何符合RFC的软件都可以互操作,不受限任何专利技术
- 可扩展性:通过扩展机制TLSS_EXT可以添加功能,有大量的新功能,都是通过扩展添加的
- 高效率:通过session cache,恰当部署cache之后,TLS的效率很高
3、加密算法
1、对称加密算法
- 加密的秘钥和解密的秘钥相同
- 缺陷:秘钥传输风险。秘钥多难管理
- 常见的对称加密算法
- DES/3DES算法:DES加密采用的是分组加密的算法,使用56位秘钥加密64位明文,最后产生64位密文。3DES用两个秘钥对数据进行3次加密/解密运算。
- AES算法:AES为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。高级加密标准,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES标准的一个实现是Rijndael算法。
- RC算法
- IDEA算法
2、非对称加密算法
- 加密和解密使用的不是同一个秘钥(公钥、私钥),两个秘钥之间存在着相互依存关系,用其中任一个秘钥加密的信息只能用另一个秘钥进行解密,及用公钥加密,用私钥解密就可以得到明文
- 非对称加密算法比较复杂对于大规模数据进行加密,过程影响相率
- 常见得到非对称加密算法
- Elgamal:Elgamal由Taher Elgamal与1985年发明,其基础是Diffie-Hellman秘钥交换算法,后者使通信双方能通过公开信来推到出只有他们知道的秘钥
- RSA:有RSA公司发明,是一个支持变长秘钥的公共秘钥算法,需要加密的文件快的长度也是可以变得,非对称算法
- ECC
- Rabin
3、PKI体系
- 公钥基础设施
- 通过使用公钥技术和数字签名来确保信息安全
- 由公钥加密技术、数字证书、CA、RA组成
- 数字证书用于用户的身份验证
- 认证机构CA是PKI的核心,负责管理PKI中所有用户的数字证书的生成发布验证和撤销
- RA接收用户的请求,负责将用户的有关申请信息存档备案,并存储在数据中,等待审核并将审核通过的证书请求发送给证书颁发机构,RA分担了CA的部分任务,使管理变得更方便
- 公钥加密技术就是使用非对称加密算法进行加密
- PKI体系能够实现的功能
- 身份验证
- 数据完整性
- 数据机密性
- 操作不可否认性
- 身份认证技术
- 身份认证:通过标识和鉴别用户的身份,防止攻击者假冒合法用户来获取访问权限。
- 身份认证技术:是在网络中确认操作者身份的过程而产生的有效解决方法
- 应用场景:
- Alice先用Hash函数,生成信件的摘要
- Alice再使用自己的私钥,对这个摘要加密,生成“数字签名”
- Alice将这个前面,附在信件下面,一起发给Bob
- Bob收信后,去下数字签名,用Alice的公钥解密,得到信件的摘要。由此证明,这封信确实是Alice发出的。完成身份认证
- Bob再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信从未被修改过。完成数据完整性验证
- 数字证书
- 证书用于保证秘钥的合法性
- 证书的主体可以是用户、计算机、服务等
- 证书格式遵循x.509标准
- 数字证书包含信息
- 使用这的公钥值
- 使用者标识信息(如名词和电子邮件)
- 有效期(证书的有效时间)
- 颁发者的信息
- 颁发者的数字签名
- 数字证书由全为公正的第三方机构及CA签发
4、数据传输案例
- 第一步:Alice将原始数据通过hash算法得出摘要信息,使用的私钥对信息摘要进行签名得到数字签名
- 第二步:Alice将原始数据信息和数字签名和自己的证书通过对称加密算法的秘钥进行加密得到加密信息
- 第三步:Alice使用Bob的公钥对对称加密算法的秘钥进行加密得到秘钥信件
- 第四步:Alice将加密信息和秘钥信封通过公网传输给Bob
- 第五步:Bob收到Alice发送的加密信息和秘钥信封
- 第六步:Bob首先将秘钥信封通过Bob的私钥进行解密,得到对称加密算法的秘钥
- 第七步:Bob使用对称加密算法的秘钥将加密信息进行解密得到原始信息、Alice的数字签名和Alice的证书
- 第八步:Bob使用相同的hash算法对原始信息进行计算得到信息摘要
- 第九步:Bob根据Alice的证书中的Alice的公钥将Alice的数字签名进行解密得到Alice计算的信息摘要
- 第十步:Bob通过自己计算的信息摘要和Alice计算的信息摘要进行对比
4、CA(Certificate Authority)
- CA的核心功能是颁发和管理数字证书
- CA的作用
- 处理证书的申请
- 发放证书
- 更新证书
- 接收最终用户数字证书的查询、撤销
- 产生和发布证书吊销列表
- 数字证书归档
- 秘钥归档
- 历史数据归档
九、邮件收发协议
1、概念
- 电子邮件是一种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。通过网络的电子邮件系统,用户可用非常低廉的价格非常高快的方式,与世界任何一个角落的网络用户联系
- 电子邮件可用是文字、图像、声音等多种形式
2、常见的电子邮件协议
- SMTP:简单邮件传输协议,默认端口号25,主要用于传输电子邮件(一般用于发送邮件)
- POP3:邮局协议第3版,默认端口号110,主要用于下载接收邮件
- IMAP4:忘记消息访问协议第4版,默认端口号143,主要用于在线查看邮件
3、SMTP状态码
十、FTP协议
1、概念
FTP文件传输协议
基于传输层TCP,默认端口号(20号端口一般用于传输,21号端口用于传输控制信息)
如果采用主动模式,传输端口是20号
如果采用被动模式,传输端口需要客户端和服务器协商决定
主动模式(port方式)
- 建立链接使用21号端口,客户端通过次通道向服务器发送port命令,服务器使用20号端口主动向客户端发起连接(主动模式不安全)
被动模式(pasv方式)
- 建立链接使用21号端口,客户端通过次通道向服务器发送pasv命令,服务器收到后随机打开一个高端端口(大于1024的端口),服务器在指定的范围的某个端口被动等待客户机连接
传输文本时的传输模式
- 文本模式:ASCLL模式,以文本数列传输
- 二进制模式:以二进制数据传输(用于传输视频、图片、程序等)
2、服务器和客户端
- 客户端程序
- serv-U
- filezlla server(开源)
- vsftpd(linux)
- windows server IIS(FTP发布服务)
- 客户端程序
- 命令行:ftp 192.168.1.188
- 浏览器:ftp://192.168.1.188
- 资源管理器:ftp://192.168.1.188
- 第三方工具
- flashFXP
- filezlla client
- cuteftp
- xftp
网络安全自学笔记05 - 网络协议基础与攻击相关推荐
- 计算机网络协议第一章,网络协议基础知识
序 我计划开发一个系列专栏,将自己在网络方面的积累完善成一个系列知识,让读者的监督和拍砖督促自己并提高自己.如果在读本人的系列文章得到些许收获,那对我来说是更大的收获. 本系列的阅读应该不 ...
- JavaSE自学笔记Real_008(多线程基础)
JavaSE自学笔记Real_008(多线程基础) 线程的优先级设置(priority) 线程的优先级用数字表示,范围是1到10(在范围之外会报错) Thread.MIN_PRIORITY = 1 T ...
- TCP IP 网络协议基础入门
文章目录 1 TCP IP 简介 2 链路层介绍 3 IP网际协议 4 网络层其他协议 5 传输层:UDP协议 6 传输层:TCP协议 7 应用层协议 每层承担的任务不一样,各层的协议的工作方式也不一 ...
- Linux(b站视频兄弟连)自学笔记第十章——shell基础
Linux(b站视频兄弟连)自学笔记第十章--shell基础 概述 Shell是什么? Shell的分类 Linux支持的Shell 脚本的执行方式 echo输出命令 第一个脚本 脚本执行 Bash的 ...
- [网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了Procmon软件基本用法及文件进程.注册表查看,这是一款微软推荐的系 ...
- 网络安全自学笔记+学习路线(超详细)
01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 "红队"."渗透测试" 等就是研究攻击技术,而"蓝队".&quo ...
- 网络安全自学笔记04 - 路由器技术
路由器技术概念 一.路由器工作在网络层 1.网络层功能 定义了基于IP协议的逻辑地址 连接不同的媒介类型 选择数据通过网络的最佳路径 网络层传输的数据单元是IP数据包 2.网络层的IP数据报 版本:I ...
- [网络安全自学篇] 二十七.Sqlmap基础知识、CTF实战及请求参数设置(一)
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Shodan搜索引擎的基本用法及Python命令行.本篇文章详细讲解了S ...
- [网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Powershell基础入门知识,涉及基础概念.管道和重定向.执行外部命 ...
最新文章
- javascript中实现读取指定格式的日期(format)
- python的none是什么-python中的null与none有什么区别
- 统一沟通成本节约数据表
- Lunx运维监控_shark巨菜_基础篇
- 这5部不容错过的超高评价纪录片,带你领略地球的魅力!
- 【Java从0到架构师】SQL 多表查询
- mybatis基础总结02 -配置详解
- chap8_2 Fresnel in OGRE
- 专科python应届生工资多少-Python这么火热,本科应届生薪资这么高?
- Leetcode 242. 有效的字母异位
- linux 清空history以及记录原理
- PMP知识点速记——4.1制定项目章程
- 极光推送入门教程-后端
- 卡方检验python程序_卡方检验及其python实现
- Coding and Paper Letter(三十)
- Python 机器学习工具库
- 打破双亲委派的几种方式
- Flex Programming Tricks 1
- 信息资源管理【四】之 信息资源内容管理
- IDEA设置背景颜色和字体