SSH是一種用於安全訪問遠程服務器的網絡協議;
SSH(Secure Shell)安全外殼協議,是一種加密的網絡傳輸協議,可在不安全的網絡中網絡服務提供安全的傳輸環境。它通過在網絡中創建安全隧道來實現 SSH 客戶端和服務器之間的連接;
最早的時候,互聯網通信都是明文通信,一旦被截獲,內容就會被暴露;
1995年,芬蘭學者 Tatu Ylonen 設計了 SSH 協議,將登錄信息全部加密,成為互聯網安全的一個基本解決方案,迅速在全世界獲得推廣,目前已經成為所有操作系統的標准配置;
SSH 是一種協議, 存在多種實現,既有商業實現,也有開源實現(OSSH,OpenSSH)。本文使用的自有軟件 OpenSSH, 畢竟它是目前最流行的 SSH 實現,而且是所有操作系統的默認組件;
明文plaintext
指傳送方(一般指客戶端)想要接受方(一般指服務端)獲得的可讀信息
密文ciphertext
指明文進過加密后所產生的信息
秘鑰key
指用來完成加密、解密、完整性驗證等密碼學應用的密碼信息,是明文轉換為密文或密文轉換為明文的算法需要的參數
私鑰 指私有的秘鑰
公鑰 指公開的秘鑰
對稱加密
對稱加密就是加密或解密使用的是同一個秘鑰。比較常用的對稱加密算法有 AES,DES等;
對稱加密的優點是加解密效率高,速度快。
對於服務端而言,它和每個客戶端都要有一個秘鑰,龐大的客戶端數目導致秘鑰數目多,而且一旦機器被登錄,所有的秘鑰都泄露,所以缺點是秘鑰的管理和分發比較困難,不安全。
非對稱加密
非對稱加密需要一對秘鑰來進行加密和解密,公開的秘鑰叫公鑰,私有的秘鑰叫私鑰。
注意公鑰加密的信息只有私鑰才能解開(加密過程),私鑰加密的信息只有公鑰才能解開(驗簽過程)。
非對稱加密的優點是安全性更高,秘鑰管理比較方便,每個服務器只要維護一對公私鑰即可。缺點是加解密耗時長,速度慢。不過對於現在的計算機而言,這點成本可以忽略不計。
中間人攻擊
中間人攻擊的英文全稱是 Man-in-the-middle attack,縮寫為 MITM。在密碼學和計算機安全領域中是指攻擊者與通訊的兩端分別創建獨立的聯系,並交換其所收到的數據,使通訊的兩端認為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話並插入新的內容。在許多情況下這是很簡單的(例如,在一個未加密的 Wi-Fi 無線接入點的接受范圍內的中間人攻擊者,可以將自己作為一個中間人插入這個網絡)。其具體的時序圖如下:
受到中間人攻擊的關鍵原因是客戶端不知道服務端的公鑰真假,服務端也不知道客戶端的公鑰真假。所以破解這個問題的關鍵是如何相互認證;