网络安全-网络安全基础

一、 网络安全概述

TCP/IP协议定义了一个对等的开放性网络,使得连接到这个网络中的所有用户都可能面临来自网络中的恶意的破坏和攻击。这些攻击通过网络通信协议、网络应用协议甚至物理传输链路来实现。主要针对于软件和硬件进行攻击。那在互联网上如何保证自己的安全呢?

二、 TCP/IP 协议技术

了解网络中的基础模型。为更简单有效的了解网络,我们将网络分层进行详细的解读。目前广为人知的网络模型为OSI模型和TCP/IP模型。这两个模型的提出大大降低了网络学习和分析的难度。

1. OSI 模型

OSI(Open System Interconnect Reference Model),开放式互联参考模型。1984年,由ISO发布了著名的ISO/IEC 7498标准,定义了网络互联的7层框架。

OSI模型设计的目的是成为一个所有的销售商都能实现的开放网络模型,来克服使用众多私有网络模型所带来的困难和低效性。他是网络技术的基础。

1.1 OSI 模型的优点

l 提供设备间的兼容性和标准接口,使各个厂商能够设计除互操作的网络设备,促进标准化工作,加快数据通信网络发展。

l 采用分层体系结构,各层可以独立修改或扩容,分层设计有助于将问题化繁为简,由助于学习、理解和分析网络结构

1.2 OSI 七层模型

1.3 数据的封装和解封装

封装

是指网络节点要将传送的数据用特定协议头打包来传送数据,同时在某些层进行数据处理时,也会在数据尾部加上报文

解封装

和封装相反

OSI 七层模型中每一层都会对数据进行封装,以保证数据能够正确无误的到达目的地,被终端接收和执行

网络数据处理的流程:

2 TCP/IP 模型

2.1 TCP/IP 模型协议各层作用

TCP/IP 协议每一层都有对应的相关协议,且均为达成某一网络功能而设计

2.2 应用层协议

HTTP(超文本传输协议):用于访问WWW服务器的各种网页

FTP(文件传输协议):用于文件接收和发送

DNS(域名服务系统):实现主机域名和IP的转换

2.3 传输层协议

TCP(传输控制协议):为应用程序提供可靠的面向连接的服务

UDP(用户数据协议):不可靠,属于无连接通信,可靠性由应用层负责

2.4 网络层协议

IP(互联网协议):IP和路由协议协同工作,寻找能够将数据包传送的最短路径,提供无连接,不可靠的服务

ARP(地址解析协议):把已知的IP地址解析为MAC地址

ICMP(网际控制消息协议):定义网络层控制和传递消息的功能

IGMP(网际组管理协议):用于组播成员管理

2.5 网络接入层协议

逻辑链路控制子层(LLC)

介质访问控制子层(MAC)

2.6 套接字

套接字(Socket)是支持TCP/IP的网络通信的基本操作单元,是通信双方的一种约定,用套接字中的相关函数来完成通信过程,一个套接字由相关的五元组构成

通信过程中使用源套接字来表示TCP/IP会话的源端点,用目的套接字来表示目的端点。

三、 TCP/IP 协议安全

1. IPv4 安全隐患

IPv4设计之初,首先应用于研究环境,针对少量的、可信的用户群体。没有考虑网络安全的因素。随着TCP/IP的广泛应用,很多安全风险的问题逐渐显现。

  • 不提供认证服务
  • 明文传输,不提供数据保密性服务
  • 不提供数据完整性保护
  • 不提供抗抵赖服务

2. TCP/IP 协议栈常见的威胁

物理层:

物理破坏,线路侦听

数据链路层:

MAC地址欺骗,MAC地址泛洪,ARP欺骗等

网络层:

IP地址欺骗,Smurf攻击,ICMP泛洪攻击,地址扫描等

传输层:

TCP欺骗,DOS,DDOS,端口扫描攻击

应用层:

漏洞,缓冲区溢出攻击,病毒,web攻击,木马等

相关推荐
小灰灰搞电子1 分钟前
C++ boost::container 详解:高性能容器库完全指南
开发语言·c++·boost
Brilliantwxx4 分钟前
【C++】 C++11 知识点梳理(上)
开发语言·c++
飞天狗1114 分钟前
零基础JavaWeb入门——第4课:表单处理 —— 浏览器怎么把数据发给服务器
java·开发语言·前端·后端·servlet
多彩电脑11 分钟前
向AIDE(安卓设备上的Android Studio)导入aar库
android·java·开发语言·androidx
江屿风20 分钟前
C++图论基础单源最短路-常规版dijkstra算法/堆优化版dijkstra算法/bellman-ford 算法/spfa 算法流食般投喂
开发语言·c++·笔记·算法·图论
摇滚侠22 分钟前
MyBatis 入门到项目实战 MyBatis 逆向工程 62
java·开发语言·mybatis
ch.ju27 分钟前
Java Programming Chapter 4——Multi-level inheritance
java·开发语言
Molesidy30 分钟前
【Linux】【C++】Linux下的C++编程以及基于GDB的VSCode的C++调试
开发语言·c++
techdashen30 分钟前
用 Rust 真正发出 Ping:FFI 类型、newtype 与 MaybeUninit
开发语言·后端·rust
塵觴葉34 分钟前
基于Lua协程的简单任务管理
开发语言·lua