信息安全之网络安全防护

先来看看计算机网络通信面临的威胁:

  • 截获——从网络上窃听他人的通信内容
  • 中断——有意中断他人在网络上的通信
  • 篡改——故意篡改网络上传送的报文
  • 伪造——伪造信息在网络上传送

截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击

网络基础知识

 

IOS网络七层模型

从下到上:
物理层:传输的是比特流,网卡位于这层。
数据链路层:本层传输的是帧;本层主要定义了如何格式化数据,错误检测。交换机位于本层
网络层:本层传输的是数据包,路由器位于本层。本层协议是IP协议(Internet Protocol Address),主要功能是路由选择最短路径,将数据包从发送端路由到接收端
传输层:协议有TCP(传输控制协议)/UDP(用户数据报协议);主要是控制重传、数据分割之类的,主要是解决数据之间的传输,和传输质量。是IOS最核心的一层,其中TCP协议是最重要的协议
会话层:不同机器之间建立会话
表示层:解决不同系统之间的语法问题
应用层:应用网络中发送数据:需要注意Http协议(超文本传输协议),Https(超文本传输安全协议)

TCP/IP四层模型
与IOS七层模型相同,从下往上依次为:链路层(物理层+数据链路层),网络层(IP),传输层(TCP),应用层(应用层+表示层+会话层)(HTTP)。

TCP/IP 、 HTML、端口、URL、、、

网络安全威胁

社会工程、嗅探、钓鱼、拒绝服务、远程控制、

网络安全防护

虚拟专用网络、防火墙

无线局域网防护 

无线局域网概述、安全管理

案例

查看端口信息:netstat -ano

 查看指定端口信息:netstat -aon|findstr "80"(注意是英文双引号。)

 嗅探攻击

基于ARP欺骗的嗅探技术)

ARP:Address Resolution Protocol 地址解析协议。

ARP:Address Resolution Protocol 地址解析协议。RARP:Reverse Address Resolution Protocol 逆向地址解析协议。不同的网络,如以太网,令牌网...,在数据链路层都有不同的寻址机制。在以太网的局域网中,一台主机和另外一台主机通信发包,是根据48bit的以太网地址来确定目的接口的,设备驱动程序从不检查IP数据报中的目的IP地址。地址解析协议(ARP)为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层48bit地址的转换。RFC 826[Plummer1982]是ARP规范描述文档。ARP为IP地址到对应的硬件地址之间提供动态映射。RARP是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或X终端),它需要系统管理员进行手工设置。ARP通信过程解析:(1).比如在一个局域网上,一台主机A(192.168.0.12)要访问机器B(192.168.0.11)。他会发送一份称作ARP请求的以太网数据帧给以太网上的每个主机(广播包)。ARP请求数据帧中包含目的主机的IP地址,意思就是:“如果你是这个IP地址的拥有者,请回答你的硬件地址。”(2).目的主机收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。(非广播)(3).收到ARP应答后,系统的ARP缓存便会记录MAC-IP的对应信息(ARP攻击点),在CMD里打arp -a便可查询现在机器的ARP缓存情况。现在IP数据报现在就可以传送了。在ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。知道主机的IP地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。值得注意:arp协议是不可靠和无连接的,通常即使主机没有发出arp请求,也会接受发给它的 arp回应,并将回应的mac和ip对应关系放入自己的arp缓存中。此外,内核为2.4.x的linux系统在arp实现中,考虑到了arp欺骗,不会接受未经请求的arp回应,因此直接向这种系统发送arp reply也是无效的,不过,有意思的是虽然它不会接受未经请求的arp reply,但是只要接收到arp的request,它就会更新自己的arp缓存。ARP协议

 ARP协议

自从交换机成为架设局域网的主流设备后,ARP攻击有了新的用途:用ARP欺骗辅助嗅探!原理很简单,先看看下面两幅图:

  

  左图是正常通信时,两台机器数据流向。右图是B被A机器ARP欺骗后,两台机器的数据流向,着重看右图,B被ARP欺骗后,数据的流向改变了,数据先是发给了A,然后再由A转发给网关;而从网关接收数据时,网关直接把发给B的数据转发给了A,再由A转发给B,而A的自己的数据流向是正常的。现在B的数据全部要流经A,如果A要监听B是易于反掌的事情了。

  再简单说说这个ARP欺骗的过程吧,也就是怎么实现改变B的数据流向:

  1).现在架设A的IP地址是192.168.1.11,MAC地址是:11-11-11-11-11-11;B的IP地址是192.168.1.77,MAC地址是77-77-77-77-77-77;网关IP地址是192.168.1.1,MAC地址是:01-01-01-01-01-01。

  2).A发送ARP欺骗包(ARP应答包)给B,告诉B:我(A)是网关,你把访问外网的数据发给我(A)吧!ARP欺骗包如下:

  SrcIP: 192.168.1.1 ,SrcMAC:11-11-11-11-11-11

  DstIP: 192.168.1.77 ,DstMAC:77-77-77-77-77-77

  3).A发送ARP欺骗包(ARP应答包)给网关,告诉网关:我(A)是机器B,结果网关把所有给B的数据都发到A那里了。ARP欺骗包如下:

  SrcIP: 192.168.1. 77,SrcMAC:11-11-11-11-11-11

  DstIP: 192.168.1. 1,DstMAC:01-01-01-01-01-01

  4).机器A有一个辅助用的转发软件,它负责把“网关->B”和“B->网关”的数据包转发。

至此,ARP欺骗的辅助任务完成了,接下来就是用你的嗅探器进行偷窥了

  这里有几点值得注意一下的:

  1).ARP欺骗包每隔一段时间要发一次,否则网关和B的ARP缓存会更新!

  2).ARP欺骗完成后,网关的ARP记录会有两记录的MAC地址是相同的,分别是:192.168.1.11(11-11-11-11-11-11)和192.168.1.77(11-11-11-11-11-11),这样可能会比较明显,嗯~可以把A自己在网关的ARP缓存改了:192.168.1.11(01-10-01-10-01-10,乱写一个),但这样会有两个问题:一个是这个MAC是乱写的,局域网内根本没有这个MAC地址的机器,根据交换机的工作原理,网关发给192.168.1.11这IP的机器的数据将会被广播。第二个是,此刻你(A)的正常与外界通信的能力将会丧失。可以权衡考虑一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/290744.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI智能分析网关智慧食安监管系统方案

3.15晚会刚过不久,淀粉肠的“屈辱”终于得以洗清,但某些品牌奶茶、梅菜扣肉、预制菜等等,生产过程仍是触目惊心。如何提升食品安全管理水平,保障食品从生产到消费环节的质量和安全?TSINGSEE青犀智利用智能分析网关V4Ea…

旺店通·旗舰奇门与金蝶云星空对接集成销售出库单查询连通销售出库新增(WDT 线下销售出库单对接(关联)-ok-不适用)

旺店通旗舰奇门与金蝶云星空对接集成销售出库单查询连通销售出库新增(WDT 线下销售出库单对接(关联)-ok-不适用) 源系统:旺店通旗舰奇门 慧策最先以旺店通ERP切入商家核心管理痛点——订单管理,之后围绕电商经营管理中的核心管理诉求&#xf…

Nginx(Docker 安装的nginx)配置域名SSL证书

1.首先确保Linux环境上已经安装了docker(可参考Linux安装Docker-CSDN博客) 2.通过docker 安装nginx(可参考Linux 环境安装Nginx—源码和Dokcer两种安装方式-CSDN博客) 3.安装SSL证书 3.1 在宿主机中创建证书目录并上传证书&…

使用Docker Compose一键部署前后端分离项目(图文保姆级教程)

一、安装Docker和docker Compose 1.Docker安装 //下载containerd.io包 yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm //安装依赖项 yum install -y yum-utils device-mapper-persistent-data l…

OpenGL的MVP矩阵理解

OpenGL的MVP矩阵理解 右手坐标系 右手坐标系与左手坐标系都是三维笛卡尔坐标系,他们唯一的不同在于z轴的方向,如下图,左边是左手坐标系,右边是右手坐标系 OpenGL中一般用的是右手坐标系 1.模型坐标系(Local Space&…

软件设计师:10-面向对象

一、面向对象 二、对象和消息 属性:也叫成员变量、状态 消息:对象名.方法名(传入你想要传递的参数) 三、方法重载 方法名相同(同名),但是参数个数或者参数类型不同叫方法重载 四、封装…

SpringBoot+Prometheus+Grafana实现应用监控和报警

一、背景 SpringBoot的应用监控方案比较多&#xff0c;SpringBootPrometheusGrafana是目前比较常用的方案之一。它们三者之间的关系大概如下图&#xff1a; 关系图 二、开发SpringBoot应用 首先&#xff0c;创建一个SpringBoot项目&#xff0c;pom文件如下&#xff1a; <…

分布式数据库技术的演进和发展方向

前言 这些年大家都在谈分布式数据库&#xff0c;各大企业也纷纷开始做数据库的分布式改造。那么&#xff0c;所谓的分布式数据库到底是什么&#xff1f;采用什么架构&#xff1f;优势在哪&#xff1f;为什么越来越多企业选择它&#xff1f;分布式数据库技术会向什么方向发展&a…

C/C++ 内存管理

1、C/C内存分布 首先我们来了解在一个程序中&#xff0c;代码主要存储在哪些地方&#xff1b; 1.栈&#xff1a;又叫堆栈&#xff0c;其中一般存储非静态局部变量、函数参数、返回值等&#xff0c;栈的增长是向下的。 2.内存映射段&#xff1a;是高效的 I/O 映射方式&#xff0…

华为2023年年度报告启示:技术工程师应该如何成长?

华为2023年年度报告显示了公司在面对复杂环境与挑战时的稳健发展&#xff0c;以及在技术创新、生态构建、社会责任等方面取得的显著成就。对于技术工程师而言&#xff0c;这份报告不仅是华为战略与成果的全景展示&#xff0c;更是蕴含了对未来技术趋势的洞见以及对工程师职业发…

前端性能优化:掌握解决方案

课程介绍 我们常说性能永远是第一需求&#xff0c;作为一个前端工程师&#xff0c;不管使用什么框架&#xff0c;不管从事什么类型的网站或应用开发&#xff0c;只要是项目被用户使用&#xff0c;性能优化就永远是你需要关注的问题。通常情况下&#xff0c;工程师们在深入了解…

云原生(七)、Kubernetes初学 + 裸机搭建k8s集群

Kubernetes简介 Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源的容器编排平台&#xff0c;最初由Google设计和开发&#xff0c;现在由Cloud Native Computing Foundation&#xff08;CNCF&#xff09;维护。它旨在简化容器化应用程序的部署、扩展和管理。 Kube…

Unity类银河恶魔城学习记录11-7 p109 Aplly item modifiers源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili ItemData_Equipment.cs using System.Collections; using System.Collecti…

如何检查电脑的最近历史记录?这里提供详细步骤

如果你怀疑有人在使用你的计算机,并且你想查看他们在做什么,下面是如何查看是否有访问内容的痕迹。 如何检查我的计算机的最近历史记录 要检查计算机的最近历史记录,应该从web浏览器历史记录开始,然后移动到文件。但是,可以修改或删除浏览器历史记录,也可以隐藏Windows…

牛角工具箱源码 轻松打造个性化在线工具箱,附带系统搭建教程

这是一款在线工具箱程序&#xff0c;您可以通过安装扩展增强她的功能 通过插件模板的功能&#xff0c;您也可以把她当做网页导航来使用~ &#x1f38a; 环境要求 PHP > 7.2.5 MySQL > 5.7 fileinfo扩展 使用Redis缓存需安装Redis扩展 去除禁用函数proc_open、putenv、s…

C语言:文件操作

前言&#xff1a;为什么使用文件? 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运行程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进行持久…

day22.二叉树part08

day22.二叉树part08 235.二叉搜索树的最近公共祖先 原题链接 代码随想录链接 思路&#xff1a;因为本题是二叉搜索树&#xff0c;利用它的特性可以从上往下进行递归遍历树&#xff0c;这里需要理解一点就是如果遍历到的一个节点发现该节点的值正好位于节点p和节点q的值中间…

基于 SymPy 的反函数求解

原文&#xff1a;https://blog.iyatt.com/?p14396 例一 f(x) 2x 3 这个函数很简单&#xff0c;可以看出它的反函数是&#xff08;令 yf(x) &#xff09;&#xff1a;$$x\frac{y-3}{2}$$ 使用 SymPy 求解可以采用这样的思路&#xff1a; 已知函数 f(x)2x3, 令 y f(x), 即构…

FMEA与智能机器人:提升机器人可靠性与安全性的关键

随着科技的飞速发展&#xff0c;智能机器人已经深入到我们生活的方方面面&#xff0c;从工业生产到家庭服务&#xff0c;从深海探险到太空探索&#xff0c;处处都有它们的身影。然而&#xff0c;随着应用的日益广泛&#xff0c;机器人系统的复杂性和不确定性也在增加&#xff0…

【JavaEE】Thread类中run和start的区别

文章目录 先说结论Run方法Start方法 先说结论 当你想要创建一个新的线程并执行某些任务时&#xff0c;你应该重写run方法以提供任务的具体实现&#xff0c;并通过调用start方法来启动新线程 run方法包含了线程应该执行的代码&#xff0c;但直接调用它并不会启动新的线程。 s…