主題:雜亂大全07-資安與加密的那些事(5):結合對稱加密與非對稱加密(SSL/TLS)
前言:接續前幾篇,本篇簡介SSL的特性
叮嚀:
$
代表對CMD或terminal(終端機)下指令
tags: encrypt
,RSA
本篇重點:
- 簡介SSL/TLS
- 實作經驗
SSL/TLS
SSL/TLS簡介:
https://en.wikipedia.org/wiki/Transport_Layer_Security
傳輸層安全性協定(Transport Layer Security/TLS)及其前身安全通訊協定(Secure Sockets Layer/SSL)是一種安全協定,目的是為網際網路通訊提供安全及資料完整性保障。目前也是網站之間主要的交握加密方式
Google提供的TLS加密已切換至少2048位元
SSL/TLS協定的狀態
- SSL2.0已棄用
- SSL3.0已棄用
- TLS1.0-1999年制定
- TLS1.1-2006年制定
- TLS1.2-2008年制定
- TLS1.3-2018年制定
補充:
TLS1.2 vs 1.3
現行較快速的1.3版本交握的示意圖:
交握過程
通過交握,客戶端和伺服器協商各種參數用於建立安全連接:
當客戶端連接到支援TLS協定的伺服器要求建立安全連接並列出了受支援的密碼套件(包括加密演算法、雜湊演算法等),交握開始。
伺服器從該列表中決定密碼套件,並通知客戶端。
伺服器發回其數位憑證,此憑證通常包含伺服器的名稱、受信任的憑證頒發機構(CA)和伺服器的公鑰。
客戶端確認其頒發的憑證的有效性。
為了生成對談金鑰用於安全連接,客戶端使用伺服器的公鑰加密隨機生成的金鑰,並將其傳送到伺服器,只有伺服器才能使用自己的私鑰解密。利用亂數,雙方生成用於加密和解密的對稱金鑰。這就是TLS協定的交握,交握完畢後的連接是安全的,直到連接(被)關閉。如果上述任何一個步驟失敗,TLS交握過程就會失敗,並且斷開所有的連接。
應用於自架網站設定SSL加密
推薦購買的SSL憑證網站(比較便宜):
https://www.ssls.com/購買過程,利用OpenSSL 產生 CSR
1
openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.cs
填寫CSR 下載獲得的SSL CA
更換並啟動
(設定強制443 port)
- 設定與安裝請參考以下兩位,寫得很完整了:
- 搞笑的地方
當你全部完成設定之後
SSL證書供應商將會給你CA、CRT檔
但是他並不是讓你下載
因為怕被攻擊
所以他是用G-mail 傳遞給你
畢竟Google 的G-mail 不會不安全~對吧XD
小結語:
架設網站必定面對SSL/TLS,非常建議學習
後續:
接下來會討論PHP的幾項基礎設定並探討一些新型態的攻擊與漏洞
參考連結
對稱加密vs非對稱加密
https://academy.binance.com/zt/security/symmetric-vs-asymmetric-encryptionSSL/TLS的二三事:
https://reurl.cc/MvWAKKSSL、TLS:
https://www.websecurity.digicert.com/zh/hk/security-topics/what-is-ssl-tls-https
<追隨前輩們的腳步,不停往前。>
- 若有任何問題↓
- 請聯繫我:
liao86221@gmail.com
- 或填表: https://forms.gle/4FB5Tmtd9A7XcXjF8