密碼學基礎與應用

驗證TLS的憑證時,除了確認簽章鏈與有效期間,也要確認所要連線的主機名稱是否包含在憑證的SAN(主體別名)中。這項確認不可或缺的理由,正確的是下列何者?

  1. A攻擊者對於自己擁有的其他網域名稱,也能從受信任的憑證機構取得正規的憑證
  2. B若不確認主機名稱,通訊本身就不會被加密
  3. C主機名稱不一致的憑證,其簽章鏈一定會在中途斷掉,因此原本就無法通過驗證
查看答案與解析

正確答案:A. 攻擊者對於自己擁有的其他網域名稱,也能從受信任的憑證機構取得正規的憑證

即使憑證的簽章正確且未過期,若不確認它是「哪個網域名稱的憑證」就沒有意義。攻擊者對自己擁有的網域名稱,只要證明自己管理該網域,就能取得正規的憑證。因此,不確認主機名稱的用戶端,會把出示該憑證的偽造伺服器當成真的。在自行使用TLS的程式中,停用主機名稱驗證就直接使用的錯誤,是有名的漏洞成因。

  • A. 正確。簽章鏈正確,與它是連線對象的憑證,必須分別確認。
  • B. 即使不確認主機名稱,也會進行加密。但對方是偽造的也無法察覺,等於與偽造者進行加密通訊。
  • C. 攻擊者取得的正規憑證,簽章鏈也能正確追溯。正因如此,才必須確認主機名稱。
練習這個領域 前往領域頁面

密碼學基礎與應用的其他題目

  1. 關於憑證透明度(Certificate Transparency,CT)機制的說明,正確的是下列何者?
  2. TLS 1.3(RFC 8446)相對於TLS 1.2的變更,正確的是下列何者?
  3. TLS 1.3的加密套件 TLS_AES_128_GCM_SHA256 所指定之內容的組合,正確的是下列何者?
  4. 關於TLS 1.3的0-RTT(使用先前連線取得的預先共用金鑰,把「早期資料」與第一則訊息一起傳送的方法)的注意事項,正確的是下列何者?
  5. 關於相互TLS(mTLS)的說明,正確的是下列何者?

這個領域的比較