第七周就业班作业:
1、解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频
率每隔5分钟。防火墙命令为:iptables -A INPUT -s IP -j REJECT
暂时还没研究出来
2、描述密钥交换的过程
1)网站服务器先基于“非对称加密算法”,随机生成一个“密钥对”(为叙述方便,称之为“k1 和 k2”)。因为是随机生成的,目前为止,只有网站服务器才知道 k1 和 k2。
2)网站把 k1 (私钥)保留在自己手中,把
k2(公钥) 用(明文)的方式发送给访问者的浏览器。因为 k2 是明文发送的,自然有可能被偷窥。不过不要紧。即使偷窥者拿到 k2,也(很难)根据 k2 推算出 k1(这一点是由“非对称加密算法”从数学上保证的)。
3)浏览器拿到 k2 之后,先(随机生成)第三个对称加密的密钥(简称 k)。然后用 k2 加密 k,得到 k'(pre-master key)(k' 是 k 的加密结果)浏览器把 k' 发送给网站服务器。由于 k1 和 k2 是成对的,所以只有 k1 才能解密 k2 的加密结果。因此这个过程中,即使被第三方偷窥,第三方也(无法)从 k' 解密得到 k
4)网站服务器拿到 k' 之后,用 k1 进行解密,得到 k。至此,浏览器和网站服务器就完成了密钥交换,双方都知道 k,而且(貌似)第三方无法拿到 k,然后,双方就可以用 k 来进行数据双向传输的加密。
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