114 司法特考三等 檢察事務官類科電子資訊組 計算機網路 考古題詳解
第 一、 題25 分
在網路資料傳輸中,TLS(安全的 TCP 連線,Transport Layer Security)為補強 TCP 以納入安全性服務(如機密性、完整性等)的常用協定,試說明 TLS 的各階段(如連線握手、產生金鑰、資料傳輸等階段)運作過程。
登入後即可作答並保存紀錄。
核心觀念
TLS(Transport Layer Security)位於應用層與 TCP 之間,為 TCP 連線加入身分驗證、機密性與完整性保護。TCP 本身只提供可靠的位元組串流,並不負責確認通訊對象身分,也不會加密或驗證資料內容。
TLS 的典型運作可分為:
- 握手階段:協商 TLS 版本與密碼套件、驗證伺服器身分,並建立共享祕密。
- 金鑰衍生階段:由共享祕密導出雙向傳輸所需的工作金鑰。
- 安全資料傳輸階段:以對稱式密碼保護應用資料,並確保資料完整性與傳輸順序。
- 連線結束階段:以 TLS 訊息正常關閉安全連線。
解題方法:依「協商、驗證、建鑰、傳輸、關閉」說明
一、連線握手與參數協商
用戶端先送出 ClientHello,通常包含支援的 TLS 版本、密碼套件、隨機值,以及支援的擴充功能。伺服器回覆 ServerHello,選定連線使用的版本與密碼套件,並提供伺服器端隨機值及金鑰交換所需參數。
密碼套件決定連線採用的密碼學機制,例如金鑰交換方式、認證方式,以及資料保護演算法。TLS 1.3 將可選機制與握手流程加以簡化,且不再支援 RSA 金鑰傳輸等舊式金鑰交換方式。
二、伺服器身分驗證與金鑰交換
伺服器傳送其 憑證(Certificate),用戶端檢查憑證鏈、有效期間、用途及伺服器名稱等資訊,以確認憑證是由可信任的憑證機構簽發,且符合所連線的伺服器身分。
雙方接著執行協商好的金鑰交換。現代 TLS 常使用(橢圓曲線)Diffie–Hellman 暫時金鑰交換,例如 ECDHE。雙方交換公開參數後,各自計算出相同的共享祕密;被竊聽者即使取得交換的公開參數,也不能據此直接算出共享祕密。採用暫時金鑰交換可提供前向保密:伺服器長期私鑰日後外洩,也不會因此直接還原過去已記錄的連線內容。
需要用戶端身分驗證時,伺服器也可要求用戶端提供憑證並證明持有相應私鑰;一般網站連線則常只驗證伺服器。
三、產生金鑰與確認握手
第 二、 題25 分
TCP 為網路傳輸層中相當重要的客戶端與伺服端之間的連線協定。在 TCP 連線的過程中,客戶端與伺服端會分別處於相互搭配的一連串不同狀態,以順利完成由連線建立至連線結束的生命週期。請說明 TCP 連線生命週期中,客戶端與伺服端經歷的一連串相互搭配狀態序列。
登入後即可作答並保存紀錄。
核心觀念
本題考 TCP 連線在建立、資料傳送與正常關閉時,客戶端(主動開啟連線的一方)與伺服端(被動等待連線的一方)如何依序轉換狀態。TCP 的狀態名稱以 RFC 793 所定義者為準;本題不涉及法條。
解題方法:依連線生命週期排列狀態
一、連線建立:三向交握
伺服端先建立監聽端點;客戶端主動發起連線。三個封包的旗標與狀態變化如下:
| 步驟 | 封包方向與旗標 | 客戶端狀態 | 伺服端狀態 |
|---|---|---|---|
| 連線前 | — | CLOSED | LISTEN |
| 1 | 客戶端送出 SYN | SYN-SENT | LISTEN |
| 2 | 伺服端回覆 SYN+ACK | SYN-SENT | SYN-RECEIVED |
| 3 | 客戶端回覆 ACK | ESTABLISHED | SYN-RECEIVED |
| 4 | 伺服端收到最後的 ACK | ESTABLISHED | ESTABLISHED |
三向交握完成後,雙方進入 ESTABLISHED,即可進行雙向資料傳輸。
二、資料傳送
連線建立後,客戶端與伺服端都維持在 ESTABLISHED。TCP 可雙向傳送資料;若應用程式一方先完成傳送,該端便可主動關閉連線。
三、連線正常關閉:四次揮手
以下以客戶端先關閉連線為例。TCP 是全雙工協定,每個方向都要分別關閉,因此通常需要四個控制步驟:
| 步驟 | 封包方向與旗標 | 客戶端狀態 | 伺服端狀態 |
|---|---|---|---|
| 關閉前 | — | ESTABLISHED | ESTABLISHED |
| 1 | 客戶端送出 FIN | FIN-WAIT-1 | ESTABLISHED |
| 2 | 伺服端回覆 ACK | FIN-WAIT-1,收到確認後進入 FIN-WAIT-2 | CLOSE-WAIT |
第 三、 題25 分
考量以下網路架構,並假設子網路之間使用的是可提供實體至網路層服務的路由器 R1 與 R2 進行資料交換。
🖼️【此處有附圖,請對照原卷】
(一)若從主機 E 傳送 IP 封包給主機 F,主機 E 是否會要求路由器 R1 協助轉送該封包,請說明其原因。(10 分)
(二)假設主機 E 想要傳送 IP 封包給主機 B,若 E 的 ARP 表格中沒有 B 的 MAC 位址,則 E 是否執行 ARP 查詢以尋找 B 的 MAC 位址,請說明其原因。(15 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查 IP 封包的下一跳判斷與 ARP 的解析對象。主機先依自己的 IP 位址、子網路遮罩及路由表,判斷目的主機是否位於同一子網路:
- 目的主機在同一子網路:直接在區域網路傳送封包,並以 ARP 取得目的主機的 MAC 位址。
- 目的主機在不同子網路:將封包交給路由器的介面(通常是預設閘道),並以 ARP 取得該閘道介面的 MAC 位址。
ARP 用來解析同一區域網路上的下一跳 MAC 位址;路由器不會轉送 ARP 廣播。
解題方法
先依圖判定主機所在子網路:E、F 位於子網路 3;A、B 位於子網路 1。E 連接子網路 3 的區域網路,該子網路透過 R1 與其他子網路交換資料。因此,判斷 E 要解析誰的 MAC 位址,關鍵是看目的主機是否與 E 同網段。
(一)E 傳送 IP 封包給 F
E 與 F 同在子網路 3,屬於同一子網路。E 判定目的 IP 位址為本地目的地後,直接在子網路 3 傳送封包,不必請求 R1 轉送。
若 E 尚未取得 F 的 MAC 位址,E 會在子網路 3 發出 ARP 查詢,以取得 F 的 MAC 位址。取得後,E 將 IP 封包裝入目的 MAC 位址為 F 的乙太網路訊框,由交換器在區域網路內轉送。R1 不參與這次主機間的轉送。
第 四、 題25 分
在計算機網路中,錯誤偵測技術一般運用循環冗餘檢查(cyclic redundancy check, CRC)編碼技術。
(一)假設有待傳送資料 、位元產生器 以及位元數 ,請說明 CRC 編碼的計算過程,並計算此待傳送資料 的 CRC 編碼。(15 分)
(二)請說明 CRC 編碼可以檢測出哪些資料錯誤。(10 分)
登入後即可作答並保存紀錄。
核心觀念
CRC(循環冗餘檢查)把位元串視為二元多項式,所有運算都在模 2 下進行:加法等同 XOR,沒有進位;減法也等同 XOR。若產生器 的最高次項為 ,則產生器長度為 ,CRC 餘數長度為 位元。
編碼時先在資料 後附加 個 0,再以 做模 2 除法。所得餘數附加在 後,形成 CRC 碼字;接收端以同一個 除碼字,餘數為 0 表示未檢出錯誤。
解題方法與計算
本題 、,而 。因此先在 後補上 3 個 0:
以 進行模 2 長除法。每次遇到目前最高位為 1,就將對齊後的 與被除數 XOR;最高位為 0 時,則往右移至下一個 1:
餘數取最後 3 位,因此:
將餘數附加在原始資料後,CRC 編碼為: