网络安全系列之网络攻击方式和加密算法

举报
yd_273762914 发表于 2020/12/02 23:31:49 2020/12/02
【摘要】 第一章 常见网络攻击 1.1、XSS攻击 1.1.1 XSS简介 XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表 (Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS 跨站脚本攻击也就是在网站里嵌入恶意脚本程序,当用户打开网站时,窃取Cookie,盗取信息 1.1.2 X...

第一章 常见网络攻击

1.1、XSS攻击

1.1.1 XSS简介

XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),为不跟层叠样式表
(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

跨站脚本攻击也就是在网站里嵌入恶意脚本程序,当用户打开网站时,窃取Cookie,盗取信息

1.1.2 XSS攻击方式

1、URI参数传递

2、表单提交参数

1.1.3 解决方案

1、继承HttpServletRequestWrapper,然后重写(@Override)getParameter()、getHeader()等等方法。

2、文件上传不走HttpServletRequestWrapper,需要继承CommonsMultipartResolver,重写方法

1.2、CSRF攻击

1.2.1 CSRF简介

CSRF全称是跨站请求伪造(cross site request forgery),CSRF伪装受信任用户,向第三方平台发送恶意请求

案例:比如你曾经在浏览器访问过银行A的网站,所以浏览器是有保存Cookie的,Cookie并没有过期,这时,你不小心登录一个恶意的论坛网站还是什么网站,你访问了链接(其实链接后面加的是窃取Cookie,调银行A网站转账API),这时候,如果网站安全性验证不过的话,就会窃取金钱的恶意操作

1.2.2 解决方案

1、设置Cookie为HttpOnly

我们知道CSRF是通过窃取Cookie来发送恶意请求的,所以我们可以为Cookie设置HttpOnly属性,这样JavaScript或者Applet就不可以恶意发送请求了

2、添加Token验证

竟然Cookie有被恶意窃取的可能性,那么我们或许可以另辟新径,我们可以在访问请求时加上Token,服务端再进行验证,Token验证通过则可以访问,否则限制访问,当然这个Token不可以放在Cookie里

3、添加Referer识别

学习HTTP协议的你可能知道,在HTTP的请求头里有个参数叫Referer,这个参数其实就是记录了请求的来源地址

案例:针对刚才的银行转账窃取案例,我们或许可以这样改造,我们可以再增加一个验证的工程,不给直接调用转账接口,我们在这个验证工程里加入Referer识别的。这时候,CSRF攻击的话,肯定得在非银行A官网的服务器发送请求,我们改造之后,这个请求会先发送到验证工程这里,这时候解析请求,获取Referer属性进行识别,发现不是银行A官网的地址,这时候直接拦截,拒绝访问。

1.3、SQL注入攻击

1.3.1 SQL注入简介

所谓SQL注入攻击就是将一些恶意SQL执行指令伪装成SQL参数传给DBMS,然后执行恶意攻击

1.3.2 解决方案

1、使用预编译语句
学习JDBC都知道这个语句

Statement st = (Statement) conn.createStatement();

  
 
  • 1

创建一个Statement对象,看起来是没啥问题,可是对黑客来说这就是SQL注入的一个很好的代码缺陷了
创建Statement对象后,之后我们就是要执行SQL,执行时候是这样的,是将SQL发送给DBMS编译然后再执行的,Statement没有编译的方法。不过PreparedStatement就不一样了,PreparedStatement继承Statement接口,有预编译的方法,编译SQL之后呢,在发送给DBMS执行

2、必要的加密
预防SQL注入有时候是有必要进行一些加密措施的,比如用户密码这些重要信息,我们可以MD5加密一下,避免明文保存。

1.4、DDos攻击

1.4.1 DDos攻击简介

DDos(Distributed Denial of Service),即分布式拒绝服务攻击,DDos攻击是基于Dos发展来的。

什么是Dos呢?首先简单介绍一下Dos,Dos就是利用信任的客户端向服务端频繁发送请求,从而达到服务器处理不过来,请求超时。所以Dos其实就是一对一的,在邮件设施还不太好的情况是有效的,对于性能极佳的服务器压根不管用了,所以就有了DDos,分布式拒绝服务攻击。

DDos攻击过程大概是怎么样的呢?

竟然是分布式,首先黑客可能会通过程序控制大量的计算机,然后通过这个计算机群在同一个时间,发送大量的请求到目标服务器,从而达到服务器处理不过来,请求超时的情况。

1.4.2 DDos常用方式

下面简单介绍一下两种DDos攻击的方式SYN Flood和DNS Query Flood

【SYN Flood】

SYN Flood是DDos的一种攻击方法,SYN Flood是互联网最经典的攻击方式之一。这个攻击是通过TCP连接建立的,攻击前先建立TCP连接,这个需要对TCP的三次握手和四次挥手协议有一定了解,其攻击过程大概如图,图来自互联网
这里写图片描述

【DNS Query Flood】

DNS Query Flood攻击从名称其实可以猜测出和DNS有关的了,首先简单介绍一下DNS,DNS(Domain Name System)是位于应用层的协议,负责域名解析服务,DNS通过域名查找IP地址,或逆向从IP地址反向查找域名。

然后DNS Query Flood攻击是怎么做到的呢?

攻击过程大致为:

通过程序控制,向目标服务器的DNS服务器,发送大量的域名解析请求,不过这些域名基本是随机生成的,比如改下端口什么的。

DNS服务器接收到域名之后,先去缓存里查找是否有这个域名,然后发现没有,之后,DNS服务器就会向上层的DNS服务器递归查询了,指导向上查询了全球13台根DNS服务器。这时候肯定会出现域名解析超时的情况。

第二章 常用加密算法

2.1 数字摘要算法

2.1.1 数字摘要算法简介

所谓数字摘要其实就是通过一个Hash函数获取指导长度的摘要字段,这段字段也可以叫做数字指纹,然后解密时,通过验证摘要也即数字指纹。大概过程如图
这里写图片描述

2.1.2 常用数字摘要算法

MD5:也即信息摘要算法5,Message Digest Algorithm 5,是数字摘要算法的一种实现,Md5由Md4、Md3、Md2改进而来,其摘要长度为128位

SHA:SHA也即安全散列算法(Secure Hash Algorithm),SHA-1算法生成的摘要信息的长度为160位,由于生成的摘要信息更长,运算的过程更加复杂

2.2 对称加密算法

2.2.1对称加密过程

对称加密过程大致分为加解密过程,加密过程就是明文和密钥通过特定加密算法进行封装之后,变成密文,发送给数据接收方,数据接收方,同样用相同的算法的逆过程进行界面,用相同的密钥去匹对。
这里写图片描述

2.2.2常见对称加密算法

DES算法全称数据加密标准(Data Encryptin Standard),属于对称加密算法。

明文按64位进行分组,密钥长64位,但事实上只有56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文和56位的密钥按位替代或交换的方法形成密文。

AES算法全称高级加密标准(Advanced Encryption Standard),由DES算法发展而来,设计有三个密钥长度:128,192,256位,比DES算法的加密强度更高,更为安全。

2.3 非对称加密算法

2.3.1 非对称加密过程

非对称加密算法和对称加密算法类似,不过就是分为了公钥和私钥,加密过程可以用公钥,也可以用私钥,解密过程同理。
这里写图片描述

2.3.2 常见非对称加密算法

RSA算法:够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。

算法设计基本来自简单的数论事实:将两个大素数相乘十分容易,但反过来想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

文章来源: smilenicky.blog.csdn.net,作者:smileNicky,版权归原作者所有,如需转载,请联系作者。

原文链接:smilenicky.blog.csdn.net/article/details/80384317

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。