Secure Shell(SSH)簡介

來源:互聯網
上載者:User
談到網路安全訪問,相信大家首先想到的就是安全Shell,也就是Secure Shell,通常簡寫為SSH。這是因為SSH安裝容易、使用簡單,而且比較常見,一般的Unix系統、Linux系統、FreeBSD系統都附帶有支援SSH的應用程式套件組合。
  
  1、什麼是SSH ?
  
    傳統的網路服務程式,如FTP、Pop和Telnet在傳輸機制和實現原理上是沒有考慮安全機制的,其本質上都是不安全的;因為它們在網路上用明文傳送資料、使用者帳號和使用者口令,別有用心的人通過竊聽等網路攻擊手段非常容易地就可以截獲這些資料、使用者帳號和使用者口令。而且,這些網路服務程式的簡單安全驗證方式也有其弱點,那就是很容易受到"中間人"(man-in-the-middle)這種攻擊方式的攻擊。所謂"中間人"的攻擊方式,就是"中間人"冒充真正的伺服器接收你的傳給伺服器的資料,然後再冒充你把資料傳給真正的伺服器。伺服器和你之間的資料傳送被"中間人"一轉手做了手腳之後,就會出現很嚴重的問題。
    SSH是英文Secure Shell的簡寫形式。通過使用SSH,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止DNS欺騙和IP欺騙。使用SSH,還有一個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、Pop、甚至為PPP提供一個安全的"通道"。
    最初的SSH是由芬蘭的一家公司開發的。但是因為受著作權和密碼編譯演算法的限制,現在很多人都轉而使用OpenSSH。OpenSSH是SSH的替代軟體包,而且是免費的,可以預計將來會有越來越多的人使用它而不是SSH。
  最後,SSH在運行方式上也很有特色。不像其他的TCP/IP應用,SSH被設計為工作於自己的基礎之上,而不是利用封裝(wrappers)或通過Internet守護進程inetd。但是許多人想通過TCP封裝來運行SSH守護進程。雖然你可以通過tcpd(從inetd上運行啟動)來運行SSH進程,但這完全沒有必要。
  
  
  
  2、SSH協議的內容
  
    SSH協議是建立在應用程式層和傳輸層基礎上的安全性通訊協定,它主要由以下三部分組成,共同實現SSH的安全保密機制。
    傳輸層協議,它提供諸如認證、信任和完整性檢驗等安全措施,此外它還可以任意地提供資料壓縮功能。通常情況下,這些傳輸層協議都建立在連線導向的TCP資料流之上。
    使用者認證協議層,用來實現伺服器的跟用戶端使用者之間的身份認證,它運行在傳輸層協議之上。
    連線協定層,分配多個加密通道至一些邏輯通道上,它運行在使用者認證層協議之上。
    
    當安全的傳輸層串連建立之後,用戶端將發送一個服務要求。當使用者認證層串連建立之後將發送第二個服務要求。這就允許新定義的協議可以和以前的協議共存。連線協定提供可用作多種目的通道,為設定安全互動Shell會話和傳輸任意的TCP/IP連接埠和X11串連提供標準方法。
  
  
  
  3、SSH的安全驗證
  
    從用戶端來看,SSH提供兩種層級的安全驗證。
    
    第一種層級(基於口令的安全驗證),只要你知道自己的帳號和口令,就可以登入到遠程主機,並且所有傳輸的資料都會被加密。但是,這種驗證方式不能保證你正在已連線的服務器就是你想已連線的服務器。可能會有別的伺服器在冒充真正的伺服器,也就是受到"中間人"這種攻擊方式的攻擊。
    
    第二種層級(基於密匙的安全驗證),需要依靠密匙,也就是你必須為自己建立一對密匙,並把公有密匙放在需要訪問的伺服器上。如果你要串連到SSH伺服器上,用戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後,先在你在該伺服器的使用者根目錄下尋找你的公有密匙,然後把它和你發送過來的公有密匙進行比較。如果兩個密匙一致,伺服器就用公有密匙加密"質詢"(challenge)並把它發送給用戶端軟體。用戶端軟體收到"質詢"之後就可以用你的私人密匙解密再把它發送給伺服器。
    與第一種層級相比,第二種層級不需要在網路上傳送使用者口令。另外,第二種層級不僅加密所有傳送的資料,而"中間人"這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登入的過程可能慢一些。
  
  
  
  4、SSH的應用
  
    首先,SSH最常見的應用就是,用它來取代傳統的Telnet、FTP等網路應用程式,通過SSH登入到遠方機器執行你想進行的工作與命令。在不安全的網路通訊環境中,它提供了很強的驗證(authentication)機制與非常安全的通訊環境。實際上,SSH開發人員的原意是設計它來取代原UNIX系統上的rcp、rlogin、rsh等指令程式的;但經過適當封裝後,發現它在功能上完全可以取代傳統的Telnet、FTP等應用程式。
    傳統 BSD 風格的 r 系列指令(如 rcp,rsh,rlogin)往往都被視為不安全的,很容易就被各種網路攻擊手段所破解,幾乎所有找得到有關UNIX安全的書或檔案,都會一而再、再而三地警告系統管理者,留心r系列指令的設定,甚至要求系統管理者將r系列指令通通關閉。
    而用來替代r系列指令的SSH,則在安全方面做了極大的強化,不但對通訊內容可以進行極為安全的加密保護,同時也強化了對身分識別驗證的安全機制,它應用了在密碼學(Cryptography)中已發展出來的數種安全加密機制,如 Symmetric Key Cryptography,Asymmetric Key Cryptography, One-way Hash Function,Random-number Generation等,來加強對於身分識別驗證與通訊內容的安全保護。通訊時資料的加密有IDEA,three-key triple DES,DES,RC4-128,TSS,Blowfish 等數種多種安全密碼編譯演算法可供選擇,加密的key則是通過 RSA 進行交換的。資料的加密可以對抗IP spoofing,RSA這種非對稱性的加密機制則可用來對抗DNS spoofing與IP routing spoofing,同時RSA也可以進行對主機身份的驗證。
    其次,通過使用用SSH可以在本地主機和遠程伺服器之間設定"加密通道",並且這樣設定的"加密通道"可以跟常見的Pop應用程式、X應用程式、Linuxconf應用程式相結合,提供安全保障。
    SSH的"加密通道"是通過"連接埠轉寄"來實現的。你可以在本地連接埠(沒有用到的)和在遠程伺服器上啟動並執行某個服務的連接埠之間建立"加密通道"。然後只要串連到本地連接埠。所有對本地連接埠的請求都被SSH加密並且轉寄到遠程伺服器的連接埠。當然只有遠程伺服器上運行SSH伺服器軟體的時候"加密通道"才能工作。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.