网络安全-网络安全基础

一、 网络安全概述

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攻击,木马等

相关推荐
legend_jz2 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
未完结的牵挂11 分钟前
高质量代理池go_Proxy_Pool
网络安全
tangliang_cn22 分钟前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟23 分钟前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端
新知图书34 分钟前
Rust编程与项目实战-模块std::thread(之一)
开发语言·后端·rust
威威猫的栗子36 分钟前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
力透键背36 分钟前
display: none和visibility: hidden的区别
开发语言·前端·javascript
bluefox197937 分钟前
使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
开发语言·c#
弗锐土豆40 分钟前
工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程
java·opencv·安全·检测·面部
ö Constancy1 小时前
c++ 笔记
开发语言·c++