第七周就业班作业:

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

马哥N63第七周作业_客户端

马哥N63第七周作业_服务端_02