<
网络安全
>
上一篇

Dhcp协议详解与探讨
下一篇

Leetcode

网络安全实践与认知

写在前边:

我很郁闷,学了一个安全的专业,本科专业信息安全,在英国的专业是网络安全与人智能,但是我真的对安全方面有什么了解么,答案是没有的,我没有什么勇气去找一个关于安全的工作,也没勇气去打一个关于安全的竞赛,甚至我连一个关于机器学习的竞赛都做不好,学的东西不知道怎么用,去哪用。

这段时间找工作,实习面试,求职面试等等,痛定思痛自己真的理解什么,会什么,想做什么,能够做什么,我拍了一个大概的方向,第一个方向是软件开发,自己写网站,写应用的前端,利用Amazon Web Service 去搭建软件的后端,可以说比较了解,因此就业方向可以走向前端开发;第二个是C/C++工程师,能够把本科学的东西捡起来,然后继续去学习新的东西去应聘,应该来说是把旧的捡起来,新的学一点,最近就一直刷算法题,什么工作不去考算法呢是吧;第三个是网络安全,那一个学安全的学生,我告诉面试官我不懂安全,那我懂啥,话讲出来我都觉得很可笑,所以这个是我来写这篇学习文档的最重要的原因,读书五年,你开发是会一点,安全也要会吧,我选择了网络安全这个大方向;第四个是机器学习了,现在所有人都在学机器学习,反正多学一点没有错是吧?最近也在做这方面的事情。

加油,积累是慢慢来的,我相信如果我认真去改变,那一定会有所改变,至少没有之前那么差是吧?


[TOC]


1.1 开始吧-网络安全

1.1.1 了解一下常用的框架以及网站设计思想

1.1.1.1 RESTFUL

在CGI时期,前后端通常是没有做严格区分的,随着解耦和的需求不断增加,前后端的概念开始变得清晰。前端主要指网站前台部分,运行在PC端、移动端等浏览器上展现给用户浏览的网页,由HTML5、CSS3、JavaScript组成。后端主要指网站的逻辑部分,涉及数据的增删改查等。

此时,REST (Representation State Transformation) 逐渐成为一种流行的Web架构风格。

REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征:

1.1.2 常用网络安全的相关概念

背景知识

网络安全的一个通用定义指网络信息系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的破坏、更改、泄露,系统能连续、可靠、正常地运行,服务不中断。网络安全简单的说是在网络环境下能够识别和消除不安全因素的能力。

网络安全在不同环境和应用中有不同的解释,例如系统运行的安全、系统信息内容的安全、信息通信与传播的安全等。

网络安全的基本需求包括可靠性、可用性、保密性、完整性、不可抵赖性、可控性、可审查性、真实性等。其中三个最基本的要素是机密性 (Confidentiality)、完整性 (Integrity)、可用性 (Availability)。 CIA 信息安全的必备要素。

网络安全的主体是保护网络上的数据和通信的安全,数据安全性是指软硬件保护措施,用来阻止对数据进行非授权的泄漏、转移、修改和破坏等,通信安全性是通信保护措施,要求在通信中采用保密安全性、传输安全性、辐射安全性等措施。

系统的脆弱性

信息系统本身是脆弱的,信息系统的硬件资源、通信资源、软件及信息资源等都可能因为可预见或不可预见甚至恶意的原因而可能导致系统受到破坏、更改、泄露和功能失效,从而使系统处于异常状态,甚至崩溃瘫痪。

硬件资源的脆弱性主要表现为物理安全方面的问题,多源于设计,采用软件程序的方法见效不大。

软件的脆弱性来源于设计和软件工程实施中遗留问题,如设计中的疏忽、内部设计的逻辑混乱,没有遵守信息系统安全原则进行设计等。

1.2 计算机网络知识

1.2.1 常用网络的相关概念

计算机网络由通信子网和资源子网组成。其中通信子网负责数据的无差错和有序传递,其处理功能包括差错控制、流量控制、路由选择、网络互连等。

其中资源子网是计算机通信的本地系统环境,包括主机、终端和应用程序等, 资源子网的主要功能是用户资源配置、数据的处理和管理、软件和硬件共享以及负载 均衡等。

协议涉及到三个要素,分别为:

1.2.2 相关网络协议

1.2.2.1 UDP

1.2.2.2 TCP

TCP三次握手

三次握手(Three-Way Handshake)是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

第一次握手客户端将标志位 SYN 置为1,随机产生一个值 seq=s ,并将该数据包发送给服务端,客户端进入 SYN_SENT 状态,等待服务端确认。

第二次握手服务端收到数据包后由标志位 SYN=1 知道客户端请求建立连接,服务端将标志位 SYN 和 ACK 都置为1ack=s+1,随机产生一个值 seq=k ,并将该数据包发送给客户端以确认连接请求,服务端进入 SYN_RCVD 状态。

第三次握手客户端收到确认后,检查ack值是否为s+1ACK标志位是否为1,如果正确则将标志位 ACK 置为1,ack=k+1,并将该数据包发送给服务端,服务端检查ack值是否为k+1,ACK标志位是否为1,如果正确则连接建立成功,客户端和服务端进入 ESTABLISHED 状态,完成三次握手。

断开四次挥手

断开一个TCP连接时,需要客户端和服务端发送四个包。

第一次挥手: 用户端发送一个 FIN,用来请求关闭客户端和服务端的数据传送,客户端进入到 FIN_WAIT_1的状态。

第二次挥手:服务端接收到一个 FIN 之后,发送一个 ACK 到客户端,确认收到序号+1,服务端进入到 CLOSE_WAIT的状态。

第三次挥手:服务端发送一个 FIN,发送一个ACK给客户端,用来关闭服务端到客户端的数据传送,服务端进入 LAST_ACK 状态。

第四次挥手:客户端收到一个FIN之后,客户端进入到 TIME_WAIT 的状态,接着发送一个ACK给服务器,确认收到的序号+1,服务端 CLOSED状态,完成四次挥手。

img

img

1.2.2.3 HTTP

WWW中使用的是HTTP

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

流量劫持常用的手段有如下:

Hub 嗅探

MAC 欺骗 MAC 冲刷 ARP 攻击 DHCP 钓鱼 DNS 劫持 CDN 入侵 路由器弱口令 路由器 CSRF PPPoE 钓鱼 蜜罐*** WiFi 弱口令 WiFi 伪热点 WiFi 强制断线 WLAN 基站钓鱼

Top
Foot