常见网络攻击方式和加密算法学习手册

第一章 常见网络攻击

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();

创建一个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推荐为公钥数据加密标准。

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

AI+安全,是机遇亦是挑战 | FIT 2019议题前瞻「前沿安全神盾局」

从“互联网+”到“AI+”,信息化时代向新的阶段进化。2018年,人工智能的发展逐渐落到实处,少了许多浮夸和空谈。网络安全战略意义的升级,“网络安全+AI”已经...

15520
来自专栏FreeBuf

美国运通印度分公司数据库曝光,致70万人信息泄露

10月23日,Mongo数据库曝出漏洞,通过这个漏洞,任何人都能对数据库进行查看、编辑操作。

13120
来自专栏FreeBuf

为什么说不要用VLAN、VPC解决东西向隔离问题

作为一个严谨的、有着职业操守的安全从业人员,首先我要摸着良心说:技术没有好坏,评价一个技术,我们主要看它能否在某些场景下很好的解决特定问题。而基于我们多年来的运...

42420
来自专栏黑白安全

为保 5G 订单华为接受英国要求:提升网络安全性

网易科技讯12月7日消息,据金融时报报道,英国安全官员曾要求华为解决在其设备和软件中发现的严重风险,为了避免被未来的英国5G电信网络拒之门外,华为宣称已经接受这...

13340
来自专栏耕耘实录

常见的几种网络设备

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

22820
来自专栏Debian社区

TSLv 1.3 网络安全标准通过 带来更安全的网络环境

互联网工程师近日通过了一个安全框架,它将使网络上的加密连接更快,更耐窥听。它被称为 Transport Layer Security version 1.3(T...

7310
来自专栏Debian社区

176Gbps – 新一代Wi-Fi 802.11ay来了

802.11ac是当今最流行的Wi-Fi无线标准,不过,为了提高速度、吞吐量、降低功耗,IEEE 802.11ax/ad/ay先后应运而生。其中802.11ax...

11310
来自专栏lgp20151222

RPC框架设计思路

1.要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以...

8720
来自专栏耕耘实录

一分钟在Linux环境下创建一台SFTP服务器(含账户创建)

FTP是比较常见的一种服务了,很多公司都会有可能使用到FTP服务器,本文将以最简洁的办法使用系统自带的ssh软件在1分钟内搭建一台使用方便的FTP服务器。 ...

28230
来自专栏FreeBuf

外媒调查:政府官员需要完成基本的网络安全培训吗?

前段时间 FreeBuf 报道了一则关于日本网络安全部长从没使用过电脑的消息?虽然大部分人觉得有点讽刺意思,但确实也存在一定的探讨价值。网络安全部长连计算机都不...

13220

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励