文本处理和加密安全
Posted 终究是想不起来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本处理和加密安全相关的知识,希望对你有一定的参考价值。
1、解决DOS攻 击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频 率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
file=/server/scripts/netstat.log
tmp_file=/server/scripts/tmp.txt
#netstat -ant |awk -F[ :]+ /ESTABLISHED/print $6 |sort |uniq -c
awk -F[ :]+ /ESTABLISHED/print $6 $file |sort |uniq -c >$tmp_file
while read line
do
cnt=`echo $line|awk print $1`
ip=`echo $line|awk print $2`
if [ $cnt -ge 100 -a `iptables -nL |grep -wc $ip` -eq 0 ]
then
iptables -I INPUT -s $ip -j DROP
fi
done <$tmp_file
2、描述密钥交换的过程
- 服务器产生公私钥
- 将公私钥发送给CA
- CA生成客户端浏览器公私钥
- CA使用客户端浏览器的私钥对共服务器的公钥进行加密,得到证书,返回给服务器
- CA将证书发给客户端
- 服务器发送公钥与证书给客户端
- 客户端利用公钥对证书解密,对比服务端公钥,确认来源无误
- 客户端生成随机密码,保存在本地,然后使用服务端公钥加密
- 将加密的密码返回给服务端
- 服务端使用私钥解密得到客户端密码
- 此时完成了密码交换工作
- 此后进行的所有数据交换都会事先使用这个密码进行对称加密,如DES,3DES。
- 总结:对密钥进行非对称加密,后使用密钥进行对称加密
3、https的通信过程
HTTPS通信主要包括几个节点,发起请求、验证身份、协商秘钥、加密会话,具体流程如下(此例子只有客户端对服务端的单向验证):
1、客户端向服务端发起建立HTTPS请求。
2、服务器向客户端发送数字证书。
3、客户端验证数字证书,证书验证通过后客户端生成会话密钥(双向验证则此处客户端也会向服务器发送证书)。
4、服务器生成会话密钥(双向验证此处服务端也会对客户端的证书验证)。
5、客户端与服务端开始进行加密会话。
第一步:客户端向服务端发起请求
(1)客户端生成随机数R1 发送给服务端;
(2)告诉服务端自己支持哪些加密算法;
第二步:服务器向客户端发送数字证书
(1)服务端生成随机数R2;
(2)从客户端支持的加密算法中选择一种双方都支持的加密算法(此算法用于后面的会话密钥生成);
(3)服务端生成把证书、随机数R2、会话密钥生成算法,一同发给客户端;
第三步:客户端验证数字证书。
(1)验证证书的可靠性,先用CA的公钥解密被加密过后的证书,能解密则说明证书没有问题,然后通过证书里提供的摘要算法进行对数据进行摘要,然后通过自己生成的摘要与服务端发送的摘要比对。
(2)验证证书合法性,包括证书是否吊销、是否到期、域名是否匹配,通过后则进行后面的流程
(3)获得证书的公钥、会话密钥生成算法、随机数R2
(4)生成一个随机数R3。
(5)根据会话秘钥算法使用R1、R2、R3生成会话秘钥。
(6)用服务端证书的公钥加密随机数R3并发送给服务端。
第四步:服务器得到会话密钥
(1)服务器用私钥解密客户端发过来的随机数R3
(2)根据会话秘钥算法使用R1、R2、R3生成会话秘钥
第五步:客户端与服务端进行加密会话
(1)客户端发送加密数据给服务端
发送加密数据:客户端加密数据后发送给服务端。
(2)服务端响应客户端
解密接收数据:服务端用会话密钥解密客户端发送的数据;
加密响应数据:用会话密钥把响应的数据加密发送给客户端。
(3)客户端解密服务端响应的数据
解密数据:客户端用会话密钥解密响应数据
4、使用awk以冒号分隔获取/ettc/passwd文件第一列
awk -F: print $1 /etc/passwd
以上是关于文本处理和加密安全的主要内容,如果未能解决你的问题,请参考以下文章
用户登录模块进行必要的安全处理(MD5加密加盐和传输过程加密)
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段