請選擇 進入手機版 | 繼續訪問電腦版

施勢帆老師的教學網站

 找回密碼
 註冊
搜索
熱搜: 活动 交友 discuz
12
返回列表 發新帖
樓主: shie

網路安全 -- 作業十 PGP & Password Recovery

[複製鏈接]
1061B108103203 發表於 2021-5-4 11:20:17 | 顯示全部樓層
本帖最後由 1061B108103203 於 2021-5-4 11:35 編輯










本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103204 發表於 2021-5-4 11:20:51 | 顯示全部樓層
本帖最後由 1061B108103204 於 2021-5-4 11:29 編輯

1.
2.

3.

4.

5.


本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103235 發表於 2021-5-4 11:24:57 | 顯示全部樓層
本帖最後由 1061B108103235 於 2021-5-4 11:26 編輯

1.

2.

3.

4.





本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103211 發表於 2021-5-4 11:27:08 | 顯示全部樓層
本帖最後由 1061B108103211 於 2021-5-4 14:42 編輯

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103227 發表於 2021-5-4 11:28:14 | 顯示全部樓層




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103216 發表於 2021-5-4 11:35:49 | 顯示全部樓層

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103219 發表於 2021-5-4 11:41:37 | 顯示全部樓層
1.

2.

3.

4.

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103215 發表於 2021-5-4 11:41:57 | 顯示全部樓層




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103224 發表於 2021-5-4 22:55:27 | 顯示全部樓層
1.

2.


3.


4.



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
106B108103218 發表於 2021-5-5 21:08:37 | 顯示全部樓層
1.
2.
3.
4.

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103236 發表於 2021-5-10 14:51:28 | 顯示全部樓層

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
1061B108103228 發表於 2021-5-19 08:41:57 | 顯示全部樓層
1

2

3

4
1061B108103223 發表於 3 天前 | 顯示全部樓層
Authentication Phase

步驟 1–5 是構成 authentication 階段的基本步驟.

Step 1:
Client 送出了一個 client hello 至server端. 這個 hello 訊息包含了一些細節, 如其所支持的 SSL 之最高版本 (這個版號可以是sslv3, tls1.0, tls1.1, tls1.2.). 再來, 也包含了在這個 SSL 版本之下其所支援的所有 cipher suites (密碼套件). 所謂的 cipher suit 就是一種協議與演算法的組合, 這個組合會被用在該 SSL session中.
上圖就是一個 cipher suite 的範例, 可以看成是一個由六個部分所組成的字串:






  • 所使用的傳輸層協議: 其它如 SSL (當然現在幾乎都是TLS了)
  • 會話金鑰(session key)的交換演算法: 其它如 RSA, DH, DHE, 用於決定 client / server 之間在 handshake時要如何進行身份驗證
  • 憑證的 PKI 類型: 其它如 DSS(Digital Signature Standard)
  • 在對實際資料進行加密時所使用的對稱式密碼演算法(批次加密演算法): 其它如 RC4, 3DES, CAMELLIA, ARIA, DES40
  • 對稱式密碼演算法的操作模式: 其它如 CCM, GCM
  • 確保資料完整性的雜湊演算法(訊息鑑別碼演算法): 其它如MD5, SHA2

除了上述的部分, client hello 也包含了要使用哪種資料壓縮方法. 若之後的金鑰交換階段要採用RSA演算法, 則還會再生成一個隨機數, 用於金鑰交換階段生成對稱式金鑰用 (client’s random number).

Step 2:
當收到client hello之後, server 就會準備好一個 server hello 訊息並且將之送回去給 client. 這個訊息中包含了 SSL version, cipher suite, server 支援且同意的資料壓縮方法以及最重要的: Server 的 SSL certificate. 若之後的金鑰交換階段要採用RSA演算法, 則還會再生成一個隨機數, 用於金鑰交換階段生成對稱式金鑰用 (server’s random number).

Server hello 還有一個選填的欄位, 其作用是用來提醒 client 是否需要將 client 的憑證送回給 server. Client certificate 在公開網路中是很罕見的, 但在一些要求高安全性的環境中, 如國防通訊等, 這時候 server 就應該要認證 client.

在 server hello的尾聲, 會有一個 server hello done 的指令來表示這段資訊的結束.

Step 3:
接下來, 就輪到 client 驗證 server 的 SSL 憑證了, 瀏覽器會去看是哪個 CA 簽了這個憑證的, 然後去把這個 CA 的 public key 從瀏覽器的 cert store 中讀出來並且用來驗證憑證中的數位簽章(之前的文章提過, 此處憑證中的數位簽章是 CA 的數位簽章, 就是將網站擁有者的 public key 透過 CA 的 private key 加密後的結果). 若從數位簽章中解出來的 public key 跟 server 同時送來的 public key 是不吻合的, 就表示簽章是不合法的, 瀏覽器就會產生警告. 通常一個不合法的憑證就代表了可能會有 MITM 攻擊的出現.

Step 4:
若 server 有在 server hello 中要求 client 憑證的話, 就會有這一步的出現, 這時候 client 會將其憑證送給 server.

Step 5:
接續前一步驟, server 會在這步驗證 client 的憑證.

到這裡為止, 就算是完成 SSL handshake 裡的 authentication 階段了.

Key Exchange Phase

金鑰交換階段包含了上面流程圖中的第6步到第10步. 這階段最重要的, 就是要產生一個用來在 client 以及 server 之間當作 shared secret 的對稱式金鑰. 要生出這個金鑰有很多方法, 其中, RSA 與 Deffie Hellman 以算法是最常見的金鑰交換演算法.

RSA Key Exchange
首先來看一下透過 RSA 演算法取得金鑰的方式 (這曾經是最常使用的方式之一):

一開始 client 會先生成一個 random number, 並使用 server 的公鑰(包含在 server 寄過來的 SSL 憑證中的一部分) 來加密此 random number (這樣這個 random number 才不會被竊聽), 以作為所謂的 pre-master secret (a.k.a. PMS), 然後把這個 PMS 寄給 sever 端. 在資料傳輸階段進行加密的對稱式金鑰( master secret )就是透過 pre-master secret 以及前面提過的由 client/server 各自提供的 random numbers 所計算出來的. 這個計算的動作不管是在 client 還是 server 都會執行, 以取得共同的 shared key, 因此, master secret 是不會透過網路來傳輸的(因為兩邊都可以擁有計算出金鑰所需的所有元素). 事實上, master secret 是一個由三部分所組成的函數:

  • Pre-master secret
  • Client’s random number
  • Server’s random number

那為什麼要三個數字呢? 因為這樣生成的 secret 亂度才會夠高, 由於 SSL 憑證是靜態的, 所以導入適當的隨機因素以確保協商出來的 secret 之隨機性是有必要的. 在以 RSA 實作金鑰交換的流程中, pre-master secret 本身就是一個隨機數, 再加上在之前的 hello 過程中, 由 client/server 各別生出的隨機數, 就導出了一個具有足夠隨機性的 secret 了.

使用 RSA 作為金鑰交換機制的實作演算法有一個缺點就是其本身是不具有 Perfect Forward Secrecy (PFS)的. PFS 是安全通訊協定中的一個特性, 其可以保護過往的 session 不會在未來的時間點被破解(不論是 secret key 還是 password). 在使用 RSA 的場合下, 一旦攻擊者查出了 shared secret 之後, 其就有辦法解密所有的 SSL 通訊. 這也是為什麼現在比較常見的金鑰交換機制會改用 Deffie hellman 演算法(DH)來實作的原因之一, 因為
DH 演算法不需要像 RSA 一樣進行 PMS key 的交換. Client 以及 server 可以各自獨立地計算出PMS, 這也意味了在 DH 演算法中, 不需要利用 server 的 public key 來進行金鑰交換.

Diffie — Hellman Key Exchange
有時也簡稱為DH演算法, 是一種安全協定. 其可以讓雙方在完全沒有對方任何預先資訊的條件下通過public channel (unsafe channel) 建立起一個金鑰. 這個金鑰可以在後續的通訊中作為對稱金鑰來加密通訊內容. 雖然DH演算法本身是一個匿名(無認證)的金鑰交換協定, 它卻是很多認證協定的基礎, 並且被用來提供傳輸層安全協定的短暫模式中的完備的前向安全性 (forward secrecy) .

講白話一點, DH演算法就是在教你如何”安全地”告訴對方密碼而不用擔心密碼被竊聽. 通過在public channel交換一個資訊, 就可以建立一個可用於在public channel上安全通信的shared secret.

網址:https://medium.com/@clu1022/%E9%82%A3%E4%BA%9B%E9%97%9C%E6%96%BCssl-tls%E7%9A%84%E4%BA%8C%E4%B8%89%E4%BA%8B-%E4%B9%9D-ssl-communication-31a2a8a888a6

心得:這讓我學到如何利用演算法建立金鑰,利用金鑰來讓接收者能夠開啟檔案,其他人無法開啟


您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

小黑屋|手机版|Archiver|施勢帆老師的教學網站  

GMT+8, 2021-6-25 03:11 , Processed in 0.087393 second(s), 14 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表