SFTP和FTS協議的區別

FrankYou發表於2015-07-31

都是為FTP連線加密,協議非常相似。一個是藉助SSL協議加密,一個時藉助SSH協議加密。SSL是為HTTP/SMTP等加密設計的;SSH是為TELNET/FTP等加密、建立傳輸通道而設計的。
其實SSH建立傳輸通道就是為了加密和傳輸,而且這個通道是可以用來遠端登入。
如果只說它們的功能,通俗的講,SSH就像鋪管子,SSL就像打包裹,鋪管子和打包裹都會使資料安全,都是一個製作金鑰的過程,而因為SSH是一個管子所以它很適合FTP的安全傳輸。
其實,還是要從原理上總結一下。簡單的講:SFTP協議是SSH中的一條獨立的協議,利用SFTP伺服器就可以傳輸資料。
而FTPS是FTP-over-SSL的意思,即FTP藉助SSL協議加密傳輸,不但要用FTP伺服器還要用SSL協議加密。

 

從客戶端來看,SSH提供兩種級別的安全驗證。

 

第一種級別(基於口令的安全驗證)

 

只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但是不能保證你正在連線的伺服器就是你想連線的伺服器。可能會有別的伺服器在冒充真正的伺服器,也就是受到“中間人”這種方式的攻擊。

 

第二種級別(基於密匙的安全驗證)

 

需要依靠金鑰,也就是你必須為自己建立一對密匙,並把公用密匙放在需要訪問的伺服器上。如果你要連線到SSH伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後,先在該伺服器上你的主目錄下尋找你的公用密匙,然後把它和你傳送過來的公用密匙進行比較。如果兩個密匙一致,伺服器就用公用密匙加密“質詢”(challenge)並把它傳送給客戶端軟體。客戶端軟體收到“質詢”之後就可以用你的私人密匙解密再把它傳送給伺服器。

 

用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。

 

第二種級別不僅加密所有傳送的資料,而且“中間人”這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。但是整個登入的過程可能需要10秒。

 

相關文章