SSH 安全外殼協議

2021-06-16 05:31:32 字數 4014 閱讀 5944

一、ssh介紹

什麼是ssh?

傳統的網路服務程式,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和資料,別有用心的人非常容易就可以截獲這些口令和資料。而且,這些服務程式的安全驗證方式也是有其弱點的,就是很容易受到「中間人」(man-in-the-middle)這種方式的攻擊。所謂「中間人」的攻擊方式, 就是「中間人」冒充真正的伺服器接收你的傳給伺服器的資料,然後再冒充你把資料傳給真正的伺服器。 伺服器和你之間的數 據傳送被「中間人」一轉手做了手腳之後,就會出現很嚴重的問題。

ssh的英文全稱是secure shell。通過使用ssh,你可以把所有傳輸的資料進行加密,這樣「中間人」這種攻擊方式就不可能實現了,而且也能夠防止dns和ip欺騙。還有乙個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。 ssh有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供乙個安全的「通道」。

最初ssh是由芬蘭的一家公司開發的。但是因為受版權和加密演算法的限制,現在很多人都轉而使用openssh.openssh是ssh的替代軟體,而且是免費的,可以預計將來會有越 來越多的人使用它而不是ssh。ssh是由客戶端和服務端的軟體組成的,有兩個不相容的版本分別是:1.x和2.x用ssh 2.x的客戶程式是不能連線到ssh 1.x的服務程式上去的。openssh 2.x同時支援ssh 1.x和2.x

ssh 主要有三部分組成:

傳輸層協議 [ssh-trans] 提供了伺服器認證,保密性及完整性。此外它有時還提供壓縮功能。 ssh-trans 通常執行在 tcp/ip連線上,也可能用於其它可靠資料流上。 ssh-trans 提供了強力的加密技術、密碼主機認證及完整性保護。該協議中的認證基於主機,並且該協議不執行使用者認證。更高層的使用者認證協議可以設計為在此協議之上。

使用者認證協議 [ssh-userauth] 用於向伺服器提供客戶端使用者鑑別功能。它執行在傳輸層協議 ssh-trans 上面。當 ssh-userauth 開始後,它從低層協議那裡接收會話識別符號(從第一次金鑰交換中的交換雜湊h)會話識別符號唯一標識此會話並且適用於標記以證明私鑰的所有權。 ssh-userauth也需要知道低層協議是否提供保密性保護。

連線協議 [ssh-connect] 將多個加密隧道分成邏輯通道。它執行在使用者認證協議上。它提供了互動式登入話路、遠端命令執行、** tcp/ip 連線和** x11 連線。

一旦建立乙個安全傳輸層連線,客戶機就傳送乙個服務請求。當使用者認證完成之後,會傳送第二個服務請求。這樣就允許新定義的協議可以與上述協議共存。連線協議提供了用途廣泛的各種通道,有標準的方法用於建立安全互動式會話外殼和**(「隧道技術」)專有 tcp/ip 埠和 x11 連線。

通過使用ssh,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止dns欺騙和ip欺騙。使用ssh,還有乙個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。ssh有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至為ppp提供乙個安全的"通道"。

ssh分為兩部分:客戶端部分和服務端部分。

服務端是乙個守護程序(demon),他在後台執行並響應來自客戶端的連線請求。服務端一般是sshd程序,提供了對遠端連線的處理,一般包括公共金鑰認證、金鑰交換、對稱金鑰加密和非安全連線。

客戶端包含ssh程式以及像scp(遠端拷貝)、slogin(遠端登陸)、sftp(安全檔案傳輸)等其他的應用程式。他們的工作機制大致是本地的客戶端傳送乙個連線請求到遠端的服務端,服務端檢查申請的包和ip位址再傳送金鑰給ssh的客戶端,本地再將金鑰發回給服務端,自此連線建立。剛才所講的只是ssh連線的大致過程,ssh 1.x和ssh 2.x在連線協議上還有著一些差異。

ssh的安全驗證是如何工作的?

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

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

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

用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。第二種級別不僅加密所有傳送的資料,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。 但是整個登入的過程可能需要10秒。

二、ssl介紹(secure socket layer & security socket layer)

乙個應用程式的安全需求在很大程度上依賴於將如何使用該應用程式和該應用程式將要保護什麼。不過,用現有技術實現強大的、 一般用途的安全通常是可能的。認證就是乙個很好的示例。當顧客想從 web 站點購買某個產品時,顧客和 web 站點都要進行認證。顧客通常是以提供名字和密碼的方式來認證他自己。 另一方面,web站點通過交換一塊簽名資料和乙個有效的x.509證書(作為 ssl 握手的一部分)來認證它自己。顧客的瀏覽器驗證該證書並用所附的公用金鑰驗證籤 名資料。一旦雙方都認證了,則交易就可以開始了。

ssl能用相同的機制處理伺服器認證(就如在上面的示例中)和客戶機認證。web站點典型地對客戶機認證不依賴ssl—要求使用者提供密碼是較容易的。而 ssl 客戶機和伺服器認證對於透明認證是完美的,對等機— 如p2p應用程式中的對等機之間一定會發生透明認證。

安全套接字層[secure sockets layer (ssl)],ssl 是一種安全協議,它為網路(例如網際網路)的通訊提供私密性。ssl使應用程式在通訊時不用擔心被竊聽和篡改。ssl實際上是共同工作的兩個協議:「ssl記錄協議」(ssl record protocol)和「ssl 握手協議」(ssl handshake protocol)。「ssl 記錄協議」是兩個協議中較低階別的協議,它為較高階別的協議,例如ssl握手協議對資料的變長的記錄進行加密和解密。ssl握手協議處理應用程式憑證的交換和驗證。當乙個應用程式(客戶機)想和另乙個應用程式(伺服器)通訊時,客戶機開啟乙個與伺服器相連線的套接字連線。然後,客戶機和伺服器對安全連線進行協商。作為協商的一部分,伺服器向客戶機作自我認證。客戶機可以選擇向伺服器作或不作自我認證。 一旦完成了認證並且建立了安全連線,則兩個應用程式就可以安全地進行通訊。按照慣例,我將把發起該通訊的對等機看作客戶機,另乙個對等機則看作伺服器,不管連線之後它們充當什麼角色。名為a和b的兩台對等機想安全地進行通訊。在我們簡單的p2p應用程式的環境中,對等機a想查詢對等機b上的乙個資源。每個對等機都有包含其專用金鑰的乙個資料庫(名為 keystore)和包含其公用金鑰的證書。密碼保護資料庫的內容。該資料庫還包含乙個或多個來自被信任的對等機的自簽名證書。對等機a發起這 項事務,每台對等機相互認證,臺對等機協商採用的密碼及其長度並建立乙個安全通道。完成這些操作之後,每個對等機都知道它正在跟誰交談並且知道通道是 安全的。ssl(secure socket layer)安全套接層協議主要是使用公開金鑰體制和x.509數字證書技術保護資訊傳輸的機密性和完 整性,它不能保證資訊的不可抵賴性,主要適用於點對點之間的資訊傳輸,常用web server方式。

安全套接層協議(ssl,security socket layer)是網景(netscape)公司提出的基於web應用的安全協議,它包括:伺服器認證、客戶認證(可選)、ssl鏈路上的資料完整性和ssl鏈路上的資料保密性。對於電子商務應用來說,使用ssl可保證資訊的真實性、完整性和保密性。但由於ssl不對應用層的訊息進行數字簽名,因此不能提供交易的不可否認性,這是ssl在電子商務中使用的最大不足。有鑑於此,網景公司在從communicator4.04版開始的所有瀏覽器中引入了一種被稱作「表單簽名(form signing)」的功能,在電子商務中,可利用這一功能來對包含購買者的訂購資訊和付款指令的表單進行數字簽名,從而保證交易資訊的不可否認性。綜上所述,在電子商務中採用單一的ssl協議來保證交易的安全是不夠的,但採用"ssl+表單簽名"模式能夠為電子商務提供較好的安全性保證。

SSH 安全外殼協議

1 ssh簡介 ssh 為 secure shell 的縮寫,中文名稱為安全殼協議。ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。ssh最初是unix系統上的乙個程式,...

ssh 安全外殼協議

ssh 為 secure shell 的縮寫,由 ietf 的網路工作小組 network working group 所制定 ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露...

ssh 安全外殼協議

ssh 為 secure shell 的縮寫,由 ietf 的網路工作小組 network working group 所制定 ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露...