密鑰交換
密鑰交換的倆種方式
-
公鑰交換
發送者通過使用接受者的公鑰來加密自己的私鑰,加密後的資料發送給接收者。接收者亦然來達到密鑰交換的目的
-
DH (Deffie-Hellman):生成對稱(會話)密鑰
第一步:A主機和B主機提前協商大素數P和整數g
第二步:A主機和B主機各生成随機數a和b
第三步:A主機通過計算g的a次方對P取餘,得出結果發送給B主機。B主機計算g的b次方對P取餘,得出結果發送給A主機
第四步:A主機和B主機通過計算[(g的b次方對P取餘)^a ]%p也就是g^ab%p生成密鑰來達到交換的目的
弊端
由于公鑰的公開性容易遭到不法分子冒充中間人同時欺騙雙方達到竊取資料的目的
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cGcq5CO4IjN5MjN2UjMxETM0YTMvwlMwEDMyIDMy8CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.jpg)
CA和證書
為了避免遭到不法分子冒充中間人同時欺騙雙方達到竊取資料的目的,在網絡中我們需要建構CA提供證書來加強服務端和用戶端之間資訊互動的安全性,以及證書運維相關服務。任何個體/組織都可以扮演 CA 的角色。
CA是證書的簽發機構是(PKI:Public Key Infrastructure )公共密鑰加密體系的核心。CA解決了公鑰不可靠的問題通過頒發證書確定主機收到的公鑰是可靠的。
用戶端也會對伺服器傳回的證書驗證
1、驗證域名、有效期等資訊是否正确;
2、判斷證書來源是否合法:每份簽發證書都可以根據驗證鍊查找到對應的根證書,作業系統、浏覽器會在本地存儲權威機構的根證書,利用本地根證書可以對對應機構簽發證書完成來源驗證;
3、判斷證書是否被篡改:需要與CA伺服器進行校驗;
4、判斷證書是否已吊銷,可用于第3步中,以減少與CA伺服器的互動,提高驗證效率。
以上條件完全滿足時才能證明證書的合法性
證書的作用
保密性 - 隻有收件人才能閱讀資訊。
認證性 - 确認資訊發送者的身份。
完整性 - 資訊在傳遞過程中不會被篡改。
不可抵賴性 - 發送者不能否認已發送的資訊。
保證請求者與服務者的資料交換的安全性。
HTTPS的通信
練習
[root@localhost date]# cat denydos.sh
#!/bin/bash
link=100
ss -tan | awk -F"[ :]+" '/^ESTAB/{print $(NF-2)}'| sort -nr | uniq -c | sort -nr|while read count ip;do
if [ $count -gt $link ];then
iptables -A INPUT -s $ip -j REJECT && echo "$ip is REJECT" >> /date/deny.log
fi
done
[root@localhost date]# chmod +x denydos.sh
[root@localhost date]# crontab -e
crontab: installing new crontab
[root@localhost date]# crontab -l
*/5 * * * * /date/denydos.sh
[root@localhost date]# awk -F: '{print $1}' /etc/passwd