2014年9月16日 星期二

SSH 加密技術介紹

來源:http://blog.yam.com/mingrass/article/17327933
相關:[教學] CentOS 6.3 設定 – (1) 基本調效與 SSH 連線
還記得在第十一章介紹過的遠端連線指令 telnet 及 ssh 吧 ! 由於 telnet 在資料傳輸過程的不安全,因此都鼓勵大家使用 ssh。那要提供 SSH 服務來給 Client 端做遠端連線時,當然就要架設 SSH Server 了。

 SSH 可以取代傳統的 r 指令 (rsh、rlogin、rcp)、finger 及 telnet 這一類較不安全的連線工具。使用 SSH (Secure SHell),可讓我們所傳輸的資料都事先經過加密,因此 Client 端可以使用 scp 指令在兩台電腦間很安全的複製資料,也可以使用 sftp 指令來安心的存取 ftp 服務。

SSH 協定的版本
 SSH 協定目前有 SSH1 ( SSH protocol version 1 ) 及 SSH2 ( SSH protocol version 1 ) 兩種版本,當然現在的主流是 SSH2,因為它提供了比 SSH1 更安全的資料傳輸。

 在 SSH 上頭,常見到的加密演算法有 RSA、DSA 及 Diffie-Hellman 等。SSH1 主要是使用 RSA 的加密技術,而 SSH2 除了 RSA 以外,還有 DSA 及 Diffie-Hellman 等等。

SSH 加密流程

SSH1 加密技術
˙ Client 向 SSH Server 的 22 port 做出連線請求。
˙ Server 傳送 public key 給 Client:
關於這個地方,您需先了解什麼是 host key pair 及 server key pair。
host key pair 是指存在於 SSH Server 上的一對公鑰 (host public key) 及私鑰 (host private key)。
server key pair 是指在每次 SSH 服務啟動時,所隨機產生的一對公鑰 (server public key) 及私鑰 (server private key),且這個 server key 預設每小時會更換一次。
而 SSH Server 所回應給 Client 的 public key,就是指 host public key 及 server public key。
˙ Client 端比對 host public key:
Client 端對 SSH Server 所傳送過來的 host public key 進行比對,如果與 ~/.ssh/known_hosts 檔案內容相符,則繼續進行下一步,否則會詢問您是否要接受這個 key,此時輸入 yes 就對了。
當 使用者第一次與 Server 做連線時,由於之前並沒有取得這個 key,因此會詢問您是否要接受 Server 所傳來的 host public key,那萬一先前已做過連線,現在還是看到這個訊息,這就表示 Server 上的 host public key 與 Client 的 known_hosts 比對不符合的結果,比如像 Server 的 SSH 套件重新安裝過後就會有這種情形發生。那萬一您遇到的狀況是在 key 比對不符後,直接拒絕您連線,這該怎麼辦呢 ? 很簡單,只要把 Client 的 ~/.ssh/ 目錄下的 known_hosts 檔刪除後,再與 Server 做連線,以重新取得 host public key 就行了。
˙ Client 隨機產生一個 256 bit 的亂數 (session key):
當第三步驟通過後,Client 隨即產生這個亂數,並使用剛剛從 Server 那裡所得到的那兩把 key 來一起做加密,完成後就傳回給 Server。
˙ Server 使用 private key 來解密。
˙ 爾後就透過這 session key 來作對稱式的加密使用。
˙ Client 端開始進行認證,通過後,SSH 連線正式建立起來。
SSH2 加密技術
˙ Client 向 SSH Server 的 22 port 做出連線請求。
˙ Server 傳送 host public key 給 Client:
在 SSH2 裡,sshd daemon 啟動時,並不會產生 server key,所以只會傳送 host public key 給 Client。
˙ Client 端比對 host public key:
與 SSH1 的做法相同,不再贅述。
˙ 使用 Diffie-Hellman 的演算法來產生 session key,以作為連線加密使用。
˙ Client 端開始進行認證,通過後,SSH 連線正式建立起來。

【下列文章您可能也有興趣】

沒有留言: