跳到主要內容

SSH1 vs SSH2 深度剖析:從單體架構到模組化設計的安全協定演進

SSH1 vs SSH2:一場安全協定的世代革命

SSH1 已是廢棄的歷史遺跡,SSH2 才是現行唯一可信標準。理解兩者差異,是每位工程師必備的資安基礎。

SSH1:單體架構的致命缺陷

SSH1 採單體式協定設計,將驗證、加密、連線功能緊耦合為一體,無法個別替換元件。金鑰交換強制使用 RSA,演算法固定不可協商。完整性校驗僅依賴 CRC-32,這並非加密雜湊函式,導致攻擊者可在不被察覺的情況下竄改封包內容,即所謂的插入攻擊(Insertion Attack)。此外,SSH1 缺乏工作階段重鑰機制,長時間連線中同一把金鑰持續使用,大幅提升 MITM 中間人攻擊的成功率。這些結構性缺陷無法透過修補解決,最終導致 SSH1 遭到全面淘汰。

SSH2:模組化分層的現代標準

SSH2 由 RFC 4251 系列規範定義,採三層模組化架構:傳輸層(Transport)、使用者驗證層(User Auth)、連線層(Connection)各自獨立運作。金鑰交換支援可協商演算法,包含 Diffie-HellmanECDH,提供前向保密性(Forward Secrecy)。完整性校驗升級為 HMAC-SHA2,從根本杜絕封包竄改風險。SSH2 更支援工作階段重鑰(Rekeying),定期更換加密金鑰降低暴露風險,並透過連線多工(Multiplexing)在單一 TCP 連線上同時承載多個邏輯通道,兼顧安全與效能。

# 強制使用 SSH2 並指定安全金鑰交換演算法
ssh -o Protocol=2 \
    -o KexAlgorithms=curve25519-sha256 \
    -o MACs=hmac-sha2-256 \
    user@host

💡 重點整理

  • SSH1 的 CRC-32 校驗非加密機制,允許封包插入攻擊。
  • SSH2 的 HMAC-SHA2 提供可驗證的訊息完整性保護。
  • SSH2 支援 ECDH 金鑰交換,確保前向保密性。
  • SSH2 模組化設計使演算法可獨立升級,無需改動整體協定。

SSH1 的單體架構是其滅亡的根因,SSH2 的模組化設計才使安全協定得以持續演進。任何仍啟用 SSH1 的系統,都應立即停用。

📚 參考文獻

  1. RFC 4251 – The Secure Shell (SSH) Protocol Architecture,IETF 官方規範:https://datatracker.ietf.org/doc/html/rfc4251
  2. NIST SP 800-53 Rev. 5 – SSH 相關安全控制指引:https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final

⚠️ 本文內容基於撰寫時的最新資訊,實際應用時請參考官方文件的最新版本。

留言