108 年 國立清華大學資訊安全研究所《資訊安全概論》
第 1 題3 分
Part I (75%) Please select one correct answer according to the question (3 points/each).
- Which of the following correctly defines SQL injection?
(a) Modifying a database query statement through false input to a function
(b) The process by which application programs manipulate strings to a base form
(c) Inputs to web applications that are processed by different parsers
(d) Character code sets that all Multilanguage capability
登入後即可作答並保存紀錄。
SQL Injection 是一種常見的網頁應用程式安全漏洞。它發生在應用程式未能妥善過濾使用者輸入,並將其直接嵌入到 SQL 查詢語句中。攻擊者可以透過構造惡意的 SQL 語句,來繞過驗證、竊取資料,甚至修改或刪除資料庫內容。
選項分析:
(a) 這是對 SQL Injection 的正確描述。攻擊者利用輸入的「偽」值,改變了原本預期的資料庫查詢語句的邏輯。
第 2 題3 分
- Which of the following correctly describes cross-site scripting (XSS)?
(a) Overflowing the allocated storage area to corrupt a running program
(b) Attempting to break a cryptographic system
(c) Exploiting the trust a site has in the user's browser
(d) Exploiting the trust a site has for the site
登入後即可作答並保存紀錄。
Cross-Site Scripting (XSS) 是一種網頁安全漏洞,它允許攻擊者將惡意腳本(通常是 JavaScript)注入到受信任的網站中。當其他使用者瀏覽包含這些惡意腳本的網頁時,這些腳本就會在他們的瀏覽器中執行。XSS 的核心在於利用網站對其自身內容的信任,以及使用者瀏覽器對網站內容的信任。
第 3 題3 分
- Which of the following correctly describes cross-site request forgery (XSRF)?
(a) Attacking a system by sending malicious input and relying upon the parsers
and execution elements to perform the requested actions
(b) An enhanced data cryptographic encapsulation method
(c) Attacking a system by sending script commands and relying upon the parsers
and execution elements to perform the requested actions
(d) Attempting to break a cryptographic system
登入後即可作答並保存紀錄。
核心觀念
Cross-Site Request Forgery(XSRF/CSRF,跨網站請求偽造)是指攻擊者誘使「已登入某網站的受害者」在不知情下送出請求,使目標網站誤以為該請求是受害者本人所發出。
其攻擊成立通常依賴:
- 受害者已登入目標網站。
- 瀏覽器會自動附帶 Cookie、Session ID 等認證資訊。
- 攻擊者製造連結、表單或其他請求,誘使瀏覽器送至目標網站。
- 目標網站缺乏 CSRF Token、Origin/Referer 驗證等防護。
例如受害者已登入銀行網站,攻擊者在惡意網頁放入轉帳表單。受害者載入該網頁後,瀏覽器可能自動帶上銀行 Cookie,導致銀行執行受害者未主動發起的操作。
解題方法
判斷 XSRF 的關鍵,是確認選項是否描述「偽造已登入使用者的請求」,而不是單純的惡意輸入、腳本執行或密碼破解。
XSRF 的核心不是:
- 注入惡意資料給直譯器;
- 在受害網站執行 JavaScript;
- 破解密碼或加密演算法。
本題四個選項均未明確提到「利用受害者既有身分與認證狀態,偽造請求」。因此依標準定義,本題沒有正確選項。
選項分析
(a) Attacking a system by sending malicious input and relying upon the parsers and execution elements to perform the requested actions
此描述主要是「注入攻擊」(Injection),例如 SQL Injection、OS Command Injection。攻擊者將惡意資料送入系統,利用解析器或直譯器將資料解讀成指令並執行。
XSRF 的重點不是讓解析器執行惡意輸入,而是讓受害者的瀏覽器代為送出帶有合法認證資訊的請求,因此此選項錯誤。
第 4 題3 分
- When examining a packet capture from your network, you notice a large number of packets with the URG, PUSH, and FIN flags set. What type of traffic are you seeing in that packet capture?
(a) Botnet control channel
(b) Smurf attack
(c) Xmas attack
(d) Replay attack
登入後即可作答並保存紀錄。
TCP 協議的報頭中包含各種標誌位(flags),用於控制連接的建立、數據傳輸和連接的終止。URG (Urgent), PSH (Push), 和 FIN (Finish) 標誌位的組合在某些特定的攻擊中會被利用。
Xmas Tree Scan (或稱 Xmas attack) 是一種 TCP 端口掃描技術,它會設置 TCP 報頭中的 FIN, PSH, 和 URG 標誌位,而忽略 SYN, ACK, RST 等其他通常的標誌位。目標是通過觀察目標主機對這種異常報文的響應(或不響應)來判斷端口的開放狀態。這種掃描方式會讓防火牆或 IPS 系統難以辨識,因為它組合了通常不會一起設置的標誌位。
第 5 題3 分
- The Smurf attack is an example of what kind of attack?
(a) DDoS
(b) Ransomware
(c) SQL injection
(d) Clickjacking
登入後即可作答並保存紀錄。
Smurf attack 是一種分散式阻斷服務 (Distributed Denial-of-Service, DDoS) 攻擊。它的原理是攻擊者向一個大型的網路(通常是通過廣播地址)發送大量的 ICMP Echo Request (ping) 請求,並將源 IP 地址偽造成受害者的 IP 地址。網路中的所有主機都會響應這些請求,將 ICMP Echo Reply (pong) 報文發送給受害者,從而導致受害者因流量過載而無法正常工作。
選項分析:
(a) DDoS (Distributed Denial-of-Service) 攻擊是指利用多個被感染的電腦(殭屍網路)同時對目標系統發起攻擊,使其無法響應合
第 6 題3 分
- Your antivirus solution has detected malware on one of your computers. The AV
program tells you the malware is located in a certain directory, but when you go to
remove the malware you discover that the directory does not exist. This is most
likely an example of:
(a) A Trojan horse
(b) An armored virus
(c) A transient virus
(d) A mobile malware infection
登入後即可作答並保存紀錄。
題目描述的情況是,防毒軟體偵測到惡意軟體,並指出了其位置(一個目錄),但當使用者前往該目錄時,卻發現該目錄不存在。這種現象最可能與「暫存性病毒」或「瞬時性病毒」(Transient Virus) 有關。
暫存性病毒是一種在記憶體中運行,並且不會將自身永久安裝到硬碟上的惡意軟體。它可能在執行過程中暫時創建某些檔案或目錄來存放其元件或進行操作,一旦程式終止,這些臨時創建的檔案或目錄就會被刪除。防毒軟體在掃描時可能偵測到記憶體中的惡意程式碼,但當使用者檢查檔案系統時,由於程式已結束運行,其臨時創建的目錄已消失。
選項分析:
(a) Trojan horse (木馬程式) 通常會偽裝成合法程式,並在安裝後執行惡意行為,一般會將檔案或目錄安裝在系統中,不會在執行後自動消失。
第 7 題3 分
- Which of the following is not a best practice for secure router configuration?
(a) Disabling each, CHARGEN, and other simple services
(b) Disabling IP source route
(c) Enabling Telnet access
(d) Enabling logging
登入後即可作答並保存紀錄。
路由器安全配置的目標是最小化攻擊面,並確保只有必要的服務在運行。以下是對各選項的分析:
(a) 禁用不必要的服務(如 echo, chargen, daytime, discard 等)是安全配置的標準做法。這些簡單的服務通常沒有安全價值,反而可能被用於資訊洩露或 DoS 攻擊。
(b) 禁用 IP 源路由 (IP source routing) 也是一個安全建議。IP 源路由允許數據包的發送者指定數據包在網絡中經過的路由器路徑。禁用它有助於防止某些類型的路由欺騙攻擊。
第 8 題3 分
- When enabling port security on a switch interface, traffic is usually restricted
based on:
(a) IP address
(b) Source port
(c) Protocol
(d) MAC address
登入後即可作答並保存紀錄。
Port Security 是一種用於交換機(Switch)的安全功能,它允許管理員限制連接到交換機端口的設備數量,並指定哪些設備(基於 MAC 地址)被允許連接。當啟用 Port Security 後,交換機端口會記錄第一個連接設備的 MAC 地址。之後,只有具有相同 MAC 地址的設備才能通過該端口通信。如果一個具有不同 MAC 地址的設備嘗試連接,交換機端口將會被禁用或丟棄該設備的流量,從而防止未授權設備的接入。
第 9 題3 分
- You've been asked to help configure a router that is used to connect a remote
branch office to your corporate headquarters. The router will need to be managed
remotely from the corporate headquarters. Which of the following protocols
would you recommend be used to manage the remote router?
(a) HTTP
(b) Telnet
(c) SSH
(d) SNMP
登入後即可作答並保存紀錄。
遠程管理路由器時,安全性是首要考量。題目要求推薦一個用於遠程管理路由器的協議,並且需要從企業總部進行管理。
選項分析:
(a) HTTP (Hypertext Transfer Protocol) 主要用於網頁瀏覽,雖然一些設備可能提供基於 HTTP 的 Web 管理界面,但它本身不加密通信,傳輸的數據(包括認證信息)是明文的,不夠安全。
(b) Telnet (Telecommunication Network) 是一種遠程登錄協議,但它以明文形式傳輸所有數據,包括用戶名和密碼。這使得 Telnet 極易受到竊聽攻擊,因此在現代網絡中已被視為不安全。
第 10 題3 分
- What does LEAP do?
(a) Modernizes Wi-Fi with a new encryption cipher
(b) Provides TLS support for Wi-Fi authentication under Windows
(c) Provides a lightweight mutual authentication protocol for clients and uses
dynamic WEP keys
(d) Forces Cisco devices to use WPA2
登入後即可作答並保存紀錄。
LEAP (Lightweight Extensible Authentication Protocol) 是由 Cisco 開發的一種無線網絡身份驗證協議,主要用於 Cisco 的無線接入點(AP)和用戶端設備。它是一種基於 EAP (Extensible Authentication Protocol) 的協議,特別設計用於簡化身份驗證過程。
LEAP 的主要特點是:
- 輕量級 (Lightweight):相較於其他 EAP 方法,LEAP 的開銷較小。
- 可擴展 (Extensible):可以集成到現有的網絡基礎設施中。
- 用戶端和 AP 之間的相互認證 (Mutual Authentication):LEAP 進行雙向認證,確保用戶端和接入點都是合法的。
第 11 題3 分
- Why is the buffer overflow such a popular attack?
(a) It is easy to accomplish over the internet.
(b) Attackers can use it to break any encryption.
(c) The same code will work on any system.
(d) It can provide arbitrary code execution.
登入後即可作答並保存紀錄。
緩衝區溢位 (Buffer Overflow) 攻擊是一種常見且影響深遠的安全漏洞。它發生在程式試圖將數據寫入一個固定大小的緩衝區時,但寫入的數據量超過了緩衝區的容量。這會導致額外的數據溢寫到相鄰的內存區域,有可能覆蓋重要的控制信息,如返回地址。
選項分析:
(a) 雖然網路可以作為攻擊媒介,但「容易在網路上完成」並不是緩衝區溢位之所以流行的根本原因。它依賴於目標系統的程式碼漏洞。
(b) 緩衝區溢位本身不能直接「破解」加密算法。它主要用於控制程式流程,進而可能執行惡意代碼,但不是直接破解加密。
第 12 題3 分
- What makes a website vulnerable to SQL Injection?
(a) Poorly filtered input fields
(b) A website that has a Microsoft SQL database powering it.
(c) Overly long text input boxes
(d) Low password strength requirements
登入後即可作答並保存紀錄。
SQL Injection (SQL 注入) 是一種常見的網頁安全漏洞,發生在應用程式未能妥善過濾使用者輸入的數據,並將其直接併入到 SQL 查詢語句中。攻擊者可以利用此漏洞注入惡意的 SQL 代碼,從而操控資料庫。
選項分析:
(a) Poorly filtered input fields (過濾不當的輸入欄位):這是 SQL Injection 最主要且最直接的原因。當網站的輸入欄位(如搜尋框、登錄表單、URL 參數等)沒有對使用者輸入進行充分的驗證和過濾(例如,沒有對特殊字符進行轉義或移除),攻擊者就可以在此輸入惡意 SQL 代碼。
(b) 網站使用 Microsoft SQL Server 資料庫本身並不會直接導致 SQL Injection 漏洞。
第 13 題3 分
- Why is cross-site scripting successful?
(a) It uses a different memory register every time.
(b) Its code runs in an encrypted state.
(c) It uses zero-day vulnerabilities.
(d) It folds malicious code in with verified content from a compromised site.
登入後即可作答並保存紀錄。
Cross-Site Scripting (XSS) 是一種網頁安全漏洞,攻擊者將惡意腳本(通常是 JavaScript)注入到受信任的網站中。當其他使用者瀏覽包含這些惡意腳本的網頁時,這些腳本就會在他們的瀏覽器中執行。
選項分析:
(a) 「使用不同的記憶體暫存器」與 XSS 的成功機制無關。
(b) 「代碼在加密狀態下運行」與 XSS 的成功機制無關。XSS 腳本是嵌入在網頁中的,通常是可讀的(或經過混淆,但不是加密)。
(c) 「使用零日漏洞」可能增加 XSS 攻擊的成功率或隱蔽性,但並非 XSS 成功的根本原因。
第 14 題3 分
- Why is free Wi-Fi, such as in coffee shops, a popular target for session hijacking?
(a) The unsecured Wi-Fi allows an attacker to place malicious files on the user's
machine.
(b) The site uses a captive portal.
(c) Unsecured Wi-Fi allows the attacker to sniff the wireless session for a user's
session cookie.
(d) The user does not engage VPN over wireless.
登入後即可作答並保存紀錄。
Session hijacking(會話劫持)是指攻擊者竊取使用者在網頁應用程式中的有效會話標識符(Session ID),並利用它來冒充該使用者。免費 Wi-Fi 網絡(如咖啡店提供的)之所以成為會話劫持的熱門目標,主要是因為它們通常是「不安全」的(unsecured),意味著數據在傳輸過程中未經加密。
選項分析:
(a) 雖然不安全的 Wi-Fi 可能會讓攻擊者更容易進行中間人攻擊,從而攔截或修改數據,但「放置惡意文件」本身不是會話劫持的直接原因,而是其他類型的攻擊。
(b) Captive portal (強制門戶) 是指用戶連接到 Wi-Fi 後,需要通過一個登錄頁面進行身份驗證或接受條款才能上網。這與會話劫持的機制無關,有時反而可能增加一層安全措施。
第 15 題3 分
- Which of the following tools or methods is most likely to show you which servers
in your server farm allow anonymous access to shares, have TCP port 80 open,
and are running an old version of PHP?
(a) Protocol analyzer
(b) Port scanner
(c) Vulnerability scanner
(d) Baseline review
登入後即可作答並保存紀錄。
題目要求找出能夠同時顯示伺服器允許匿名訪問共享、TCP 端口 80 開放以及運行舊版本 PHP 的工具或方法。這是一個多條件的掃描需求,旨在發現潛在的安全風險。
選項分析:
(a) Protocol analyzer (協議分析器,如 Wireshark) 主要用於捕獲和分析網絡流量,檢查數據包的內容和協議。雖然它可以用來檢查特定端口的流量或發現某些協議的行為,但它不是設計來主動掃描多個伺服器以查找特定配置或漏洞的。
(b) Port scanner (端口掃描器,如 Nmap) 主要用於識別目標主機上哪些 TCP/UDP 端口是開放的。它可以顯示 TCP 端口 80 是否開放,但它無法直接識別「匿名訪問共享」或「運行舊版本 PHP」這些更深層次的配置或軟件版本信息。
第 16 題3 分
- Why is DES no longer considered effective?
(a) It only works with public keys.
(b) Its key-space is too small.
(c) It was replaced by the one-time pad method.
(d) It was replaced by RSA.
登入後即可作答並保存紀錄。
DES (Data Encryption Standard) 是一種對稱加密算法,曾經是美國的標準。然而,隨著計算能力的提升,DES 的安全性已經嚴重不足。
選項分析:
(a) DES 是一種對稱加密算法,它使用相同的密鑰進行加密和解密。它不依賴於公鑰或私鑰。
(b) Its key-space is too small (其金鑰空間太小):DES 使用 56 位有效密鑰。在現代計算機的處理能力下,通過暴力破解(brute-force attack)在合理的時間內找到密鑰是可行的。例如,通過大規模的分布式計算,可以在幾天甚至幾小時內破解 DES。
第 17 題3 分
- What does SSL depend on for authentication?
(a) The SHA-256 hash
(b) The client's digital signature
(c) Hierarchy of trust established by the root CA
(d) The private key password
登入後即可作答並保存紀錄。
SSL/TLS (Secure Sockets Layer/Transport Layer Security) 協議在建立安全連接時,需要對伺服器(以及可選的用戶端)進行身份驗證。這種驗證機制依賴於一個信任體系。
選項分析:
(a) SHA-256 是一種哈希算法,用於確保數據的完整性,而不是用於身份驗證本身。雖然哈希函數在數字簽名等認證機制中會被用到,但它不是 SSL 認證的直接依賴對象。
(b) The client's digital signature (用戶端的數字簽名):在某些 SSL/TLS 配置中,用戶端也可以使用數字簽名進行身份驗證(客戶端證書認證)。但這不是 SSL 認證的「普遍」依賴。更常見的是伺服器認證。
第 18 題3 分
- What is unique characteristics of one-time pads?
(a) Unbreakable
(b) 4096-bit symmetric keys
(c) Provides Integrity
(d) Vulnerable to weak keys
登入後即可作答並保存紀錄。
One-time pad (OTP) 是一種理論上絕對安全的加密方法,其安全性基於香農的資訊理論。
選項分析:
(a) Unbreakable (不可破解):這是 OTP 最獨特的特性。如果 OTP 的密鑰滿足以下條件:
1. 密鑰是真正隨機生成的。
2. 密鑰的長度至少與明文一樣長。
3. 密鑰僅使用一次,並且在密鑰使用後被銷毀。
4. 密鑰的保密性得到嚴格保護。
則基於 OTP 加密的密文是理論上不可破解的。任何密文都可能對應無限多個明文和密鑰的組合,攻擊者無法從密文中推斷出任何關於明文的信息。
(b) 4096-bit symmetric keys:OTP 的密鑰長度與明文長度相同,可能很長,但不一定就是 4096 位。而且,OTP 的安全與其「僅使用一次」的原則相關,而不是密鑰的固定比特數。
第 19 題3 分
- Which cipher depends on the difficulty in factoring problem?
(a) RSA
(b) ECC
(c) AES
(d) SHA-256
登入後即可作答並保存紀錄。
這題考查的是公鑰密碼學中不同算法的數學基礎。
選項分析:
(a) RSA (Rivest–Shamir–Adleman):RSA 算法的安全性基於一個數學難題:大數分解問題 (Integer Factorization Problem)。也就是說,將一個非常大的合數分解成其兩個質因數是極其困難的。RSA 利用這個難題來構建公鑰和私鑰。
(b) ECC (Elliptic Curve Cryptography, 橢圓曲線密碼學):ECC 的安全性基於橢圓曲線上的離散對數問題 (Elliptic Curve Discrete Logarithm Problem, ECDLP)。
第 20 題3 分
- What factor is not the security goal ?
(a) Non-repudiation
(b) Availability
(c) Confidentiality
(d) Integrity
登入後即可作答並保存紀錄。
核心觀念
本題考查資訊安全的三大核心目標,通常稱為 CIA Triad:
- Confidentiality(機密性):只有經授權的使用者可以存取資訊。
- Integrity(完整性):資訊不可遭未授權竄改、刪除或破壞,內容必須保持正確。
- Availability(可用性):經授權的使用者在需要時,能正常取得資訊與服務。
因此,判斷各選項是否屬於 CIA 三大安全目標即可。
解題方法
本題直接將選項與 CIA 三大目標比對:
不屬於上述三者的選項,就是本題所問的答案。
選項分析
(a) Non-repudiation(不可否認性)
不可否認性是指通訊或交易完成後,參與者不能否認自己曾經發送、接收或執行該行為。例如,數位簽章可用來證明文件確實由特定私鑰持有者簽署。
它屬於資訊安全的重要安全服務,但不在 CIA 三大核心目標之中,因此是本題答案。
第 21 題3 分
- How does a block cipher handle plaintext input?
(a) It divides the input into predefined lengths, and pads the remainder to maintain
a set length.
(b) It generates a key of the same length as the input and encrypts the text.
(c) It uses a hash algorithm to reduce the input to match the current key.
(d) It encrypts it only to the private key.
登入後即可作答並保存紀錄。
Block cipher (分組密碼) 是一種對稱加密算法,它將明文分割成固定大小的數據塊(稱為分組),然後對每個數據塊獨立地進行加密。
選項分析:
(a) It divides the input into predefined lengths, and pads the remainder to maintain a set length. (它將輸入分割成預定義的長度,並對剩餘部分進行填充以維持一個固定的長度。):這是分組密碼處理明文輸入的標準方式。由於分組密碼一次處理一個固定大小的塊,如果最後一個明文塊的長度不足以填滿一個完整的塊,就需要進行填充 (padding),以確保每個塊的長度都符合分組密碼的要求。常見的填充方案有 PKCS#7 等。
第 22 題3 分
- When you get an SSL certificate from a web page, what kind of cipher is used?
(a) One-time pad
(b) Symmetric
(c) Asymmetric
(d) All of the above
登入後即可作答並保存紀錄。
核心觀念
本題考查 SSL/TLS 憑證與密碼學類型的關係。
SSL 憑證主要包含網站的公開金鑰,以及憑證授權中心(CA)的數位簽章。公開金鑰密碼學具有「公開金鑰」與「私密金鑰」成對的特性,屬於非對稱式密碼系統(Asymmetric Cryptography)。
在 TLS 通訊中:
- 憑證與握手階段:使用非對稱式密碼學進行身分驗證與金鑰交換。
- 握手完成後的資料傳輸:通常使用對稱式密碼學加密,因為速度較快。
因此,題目問的是「取得 SSL 憑證時所涉及的密碼類型」,重點應判斷為非對稱式密碼學。
解題方法
先抓住題目關鍵字「SSL certificate」。憑證的核心用途是:
- 證明網站身分。
- 提供網站的公開金鑰。
- 由 CA 使用數位簽章簽署,防止憑證遭竄改。
數位簽章與公開金鑰的驗證都屬於非對稱式密碼學。例如:
- 網站使用私密金鑰產生簽章。
- 使用者以憑證中的公開金鑰驗證簽章。
所以本題應選擇非對稱式密碼。
選項分析
(a) One-time pad
第 23 題3 分
- When would non-repudiation be important to your application?
(a) An attacker breaks the encryption algorithm.
(b) A collaborative user makes changes to a document that need to be securely
tracked.
(c) One user adds a new user to the system.
(d) A user wants to provide his files from snooping during transmission.
登入後即可作答並保存紀錄。
核心觀念
本題考查資訊安全的五大目標之一:不可否認性(non-repudiation)。
不可否認性是指:使用者完成某項行為後,日後不能否認該行為確實由自己發生。例如:
- 寄件者不能否認自己曾簽署或傳送某份文件。
- 使用者不能否認自己曾修改某段資料。
- 交易雙方都能提出可信證據,證明交易的來源、內容與時間。
實作不可否認性通常會結合:
- 數位簽章
- 公開金鑰密碼系統
- 憑證
- 安全稽核紀錄
- 時間戳記
其中,數位簽章可同時驗證資料完整性與簽署者身分,並提供事後追究責任的依據。
解題方法
判斷各選項描述的安全需求,是否涉及「證明某位使用者確實做過某件事,且事後不能否認」。
若重點是:
- 防止內容被偷看:屬於機密性。
- 防止內容被竄改:屬於完整性。
- 確認使用者身分:屬於鑑別。
- 限制使用者能做什麼:屬於存取控制。
- 證明某人曾執行某行為,且不能事後否認:屬於不可否認性。
本題中,只有「安全追蹤文件修改者」直接涉及行為歸屬與責任認定,因此選擇 (b)。
選項分析
(a) An attacker breaks the encryption algorithm.
攻擊者破解加密演算法,代表加密機制失效,主要影響的是資料的機密性(confidentiality)。攻擊者可能因此解讀傳輸或儲存中的資料,但這個情境本身沒有涉及證明誰執行了某項行為。
因此,(a) 錯誤。
(b) A collaborative user makes changes to a document that need to be securely tracked.
第 24 題3 分
- Diffie-Hellman is representative of what branch of cryptography?
(a) Symmteric
(b) Asymmteric
(c) Steam Cipher
(d) Hash function
登入後即可作答並保存紀錄。
Diffie-Hellman 密鑰交換算法是一種用於在不安全的通信渠道中,讓兩個對加密一無所知的參與者能夠協商生成一個共享的秘密密鑰的協議。
這個協議的關鍵在於它不直接進行加密或解密,而是通過公開交換一些數值來計算出一個共享的秘密。這個過程依賴於離散對數問題的難度。
選項分析:
(a) Symmteric (對稱加密):對稱加密使用相同的密鑰進行加密和解密。Diffie-Hellman 算法不是一種對稱加密算法,它是一種密鑰交換協議。
(b) Asymmteric (非對稱加密):非對稱加密使用一對密鑰(公鑰和私鑰)。
第 25 題3 分
- Which port does Telnet use?
(a) UDP port 22
(b) TCP port 22
(c) UDP port 23
(d) TCP port 23
登入後即可作答並保存紀錄。
Telnet (Telecommunication Network) 是一種基於 TCP 的應用層協議,用於提供一個遠程登錄和命令執行服務。它在網絡通信中使用一個標準的端口號。
選項分析:
(a) UDP port 22:UDP 是一種無連接的傳輸層協議,而 Telnet 是面向連接的,使用 TCP。端口 22 是 SSH (Secure Shell) 的標準端口。
第 26 題5 分
- (5%) What is Steganography?
登入後即可作答並保存紀錄。
Steganography (隱寫術) 是一種將秘密信息隱藏在非秘密的載體(如圖像、音頻、視頻文件,甚至文本)中的技術。其主要目的是在隱藏信息的同時,不引起接收者或觀察者的注意。與密碼學 (Cryptography) 不同,密碼學的目的是使信息無法被未授權者讀取(通過加密),而隱寫術的目的是使信息的「存在」本身被隱藏起來。
隱寫術的關鍵在於:
- 載體 (Carrier):用於隱藏秘密信息的非秘密文件或數據。
- 秘密信息 (Secret Message):需要被隱藏的數據。
第 27 題5 分
- (5%) In GF(2⁸), find the inverse of (x⁵) modulo (x⁴+x³+x+1)
登入後即可作答並保存紀錄。
核心觀念
本題考查有限域 上的多項式模運算,以及乘法反元素的求法。
要求 modulo
就是尋找多項式 ,使得
由於係數在 中,所有加法皆為 XOR,因此
嚴格而言,題目寫作 ,但模多項式的次數為 ,且
並非不可約多項式,因此此處應理解為在 中進行模多項式運算。雖然模環不是域,但 與模多項式互質,所以仍然存在反元素。
解題方法
先將 對 取模。
由
可得
因為在 中,移項與加法相同。
兩邊乘以 :
再代入 :
第 28 題5 分
- (5%) List the parameters (block size, key size, and the number of rounds) for the
three AES versions.
登入後即可作答並保存紀錄。
核心觀念
本題考查對稱金鑰區塊加密標準(Advanced Encryption Standard, AES)的基本規格參數。
AES 是由 NIST 於 2001 年發布的標準(FIPS 197),其基礎為 Rijndael 演算法。AES 標準中嚴格定義了三種版本(AES-128、AES-192、AES-256),各版本主要差別在於金鑰長度以及對應的安全回合數(Number of rounds, )。
需熟記的三個關鍵參數定義如下:
- 區塊大小(Block Size, ):AES 處理明文與密文的基本單位。在標準規範中固定為 128 位元(bits),即 16 位元組(bytes),表示為 4 個 32-bit words()。
- 金鑰大小(Key Size, ):AES 支援三種長度:128 位元()、192 位元()、256 位元()。
- 回合數(Number of Rounds, ):加密演算時執行的狀態轉換輪數。依據金鑰長度的不同, 分別為 10、12、14 輪。
解題方法
本題為標準記憶題與簡答題,切入點為逐一列出三種 AES 版本(AES-128、AES-192、AES-256)所對應的規格:
- 確認區塊大小:三種版本的區塊大小皆相同,均為 128 bits(16 bytes)。
- 確認金鑰大小:名稱中的數字即為金鑰長度(128 bits、192 bits、256 bits)。
- 推導或列出回合數:
依據 FIPS 197 規範,回合數計算關係式為: 其中 (以 32-bit word 為單位):- AES-128:
- AES-192:
- AES-256:
整理成表格作答最能展現條理性,清楚不易漏分。
第 29 題5 分
- (5%) How to use SQL injection to successfully bypass the following login SQL
command? Why?
SELECT * FROM users WHERE (name='userName') and (pw='password');
登入後即可作答並保存紀錄。
題目給出的 SQL 查詢語句是:
SELECT * FROM users WHERE (name='userName') and (pw='password');
這個語句的目的是從 users 表中查找符合指定用戶名 (userName) 和密碼 (password) 的記錄。在 SQL Injection 攻擊中,攻擊者會試圖構造惡意的輸入,來改變查詢語句的邏輯,從而繞過驗證。
攻擊思路:
攻擊者需要找到輸入 userName 或 password 的地方,並注入 SQL 代碼來改變 WHERE 子句的判斷條件。
常見的注入方式是利用 SQL 語句的特性,例如:
- 使用單引號
'來結束字串。 - 使用註解符號
--或#來忽略後續的 SQL 代碼。 - 利用 OR 邏輯來繞過條件。
假設攻擊者可以控制 userName 的輸入值,並在其中注入 SQL 代碼。
注入方式 1:繞過密碼驗證
攻擊者可以在 userName 欄位輸入:
' OR '1'='1
然後,SQL 查詢會變成:
SELECT * FROM users WHERE (name='' OR '1'='1') and (pw='password');
由於 '1'='1' 永遠為真,整個 WHERE 子句的 OR 部分會變成真。即使 name 的實際值不匹配,只要 OR '1'='1' 為真,整個條件就為真。
這樣,查詢就會返回所有 users 表中的記錄(假設 password 欄位也存在,但由於 OR '1'='1' 的存在,它可能變得不那麼重要,取決於 SQL 語句的解析順序和語義)。
如果攻擊者能注入 ' OR '1'='1' --,那麼後面的 and (pw='password') 和分號都會被註解掉,查詢會變成 SELECT * FROM users WHERE (name='' OR '1'='1') --,這會返回所有用戶的記錄。
注入方式 2:直接登錄(如果知道用戶名)
如果攻擊者知道一個合法的用戶名,例如 admin,他可以嘗試注入:
admin' --
或者
admin' #
這樣,userName 的值就變成了 admin',後面的部分被註解掉。
查詢變成:
SELECT * FROM users WHERE (name='admin') and (pw='password');
如果攻擊者能夠操縱 userName 的輸入,並注入 admin' --,那麼 name='admin' 部分就成立了,而密碼驗證部分被忽略。
第 30 題5 分
- (5%) What is the vulnerability of the following C code? Why? What is commonly
called for the vulnerability?
int main()
{
char buf[0x20];
setvbuf(stdout, 0, 2, 0);
printf("Input...:");
read(0, buf, 100);
return 0;
}
登入後即可作答並保存紀錄。
這段 C 程式碼存在一個嚴重的安全漏洞。
程式碼分析:
char buf[0x20];:聲明了一個字符數組buf,其大小為0x20,即 32 個字節。setvbuf(stdout, 0, 2, 0);:這個函數用於設置標準輸出緩衝區。這裡的參數0, 2, 0可能有特定含義,但它與主要的漏洞無關。printf("Input...:");:提示用戶輸入。read(0, buf, 100);:這是漏洞的核心。read()函數是一個系統調用,用於從文件描述符讀取數據。0:表示標準輸入 (stdin)。buf:表示將讀取的數據存儲到buf數組中。100:表示最多從標準輸入讀取 100 個字節的數據。
漏洞的產生原因:
read() 函數被調用的第三個參數(100)指定了最多讀取的字節數,而 buf 數組的實際大小只有 32 個字節 (0x20)。
如果用戶輸入的數據超過 32 個字節,但少於或等於 100 個字節,read() 函數仍然會將這些數據讀入 buf 數組。
由於 buf 數組只有 32 個字節的空間,當輸入數據超過 32 個字節時,多餘的數據就會溢出到 buf 數組之後的內存區域。
漏洞的後果:
這種溢出可能會覆蓋緊鄰 buf 數組的其他重要內存數據,例如: