什麽是SSH?
SSH:安全外殼協議\x0d\ I。SSH簡介\ x0d \什麽是SSH?\x0d\傳統的網絡服務程序(如ftp、pop和telnet)本質上是不安全的,因為它們在網絡上以明文形式傳輸密碼和數據,別有用心的人很容易攔截這些密碼和數據。而且,這些服務程序的安全驗證方法也有其弱點,即容易受到“中間人”的攻擊。所謂“中間人”攻擊模式就是“中間人”冒充真實服務器接收妳傳輸到服務器的數據,然後冒充妳將數據傳輸到真實服務器。服務器和妳之間的數據傳輸被“中間人”篡改後,就會出現嚴重的問題。\x0d\ SSH的英文全稱是Secure Shell。通過使用SSH,您可以加密所有傳輸的數據,這樣“中間人”攻擊就不可能發生,並且它還可以防止DNS和IP欺詐。還有壹個額外的好處是傳輸的數據是壓縮的,因此可以加快傳輸速度。SSH有很多功能。它不僅可以取代telnet,還可以為ftp、pop甚至ppp提供安全的“通道”。\x0d\ SSH最初由壹家芬蘭公司開發。然而,由於版權和加密算法的限制,許多人現在轉向OpenSSH。OpenSSH是SSH的替代軟件,而且是免費的。可以預計,將來會有越來越多的人使用它來代替SSH。\x0d\ SSH由客戶端和服務器的軟件組成,有兩個不兼容的版本:1.x和2.x .使用SSH 2.x的客戶端程序無法連接到SSH 1.x的服務程序OpenSSH 2.x同時支持SSH 1.x和2 . x . x0d \ SSH的安全驗證是如何工作的\x0d\從客戶端的角度來看,SSH提供了兩個級別的安全驗證。\x0d\第壹級(基於密碼的安全驗證)允許您登錄到遠程主機,只要您知道自己的帳戶和密碼。所有傳輸的數據都將被加密,但不能保證您要連接的服務器就是您要連接的服務器。可能有其他服務器冒充真實服務器,即受到“中間人”的攻擊。\x0d\第二級(基於密鑰的安全驗證)取決於密鑰,即您必須為自己創建壹對密鑰,並將公鑰放在需要訪問的服務器上。如果您想連接到SSH服務器,客戶端軟件將向服務器發送壹個請求,要求使用您的密鑰進行安全驗證。服務器收到請求後,首先在服務器的主目錄中查找您的公鑰,然後將其與您發送的公鑰進行比較。如果兩個密鑰匹配,服務器用公鑰加密“挑戰”並將其發送到客戶端軟件。收到“查詢”後,客戶端軟件可以用您的私鑰解密它並將其發送到服務器。\x0d\這樣,您必須知道自己鑰匙的密碼。但是,與第壹級相比,第二級不需要在網絡上傳輸密碼。\x0d\第二層不僅加密了所有傳輸的數據,而且“中間人”的攻擊模式也是不可能的(因為他沒有妳的私鑰)。但整個登錄過程可能需要10秒。\x0d\ II。SSL(安全套接字層& amp;安全套接字層)\x0d\應用程序的安全要求在很大程度上取決於它將如何使用以及它將保護什麽。然而,利用現有技術通常可以實現強大的通用安全性。認證就是壹個很好的例子。\x0d\當客戶想從網站購買產品時,客戶和網站都應該經過身份驗證。顧客通常通過提供自己的姓名和密碼來驗證自己的身份。另壹方面,網站通過交換壹段簽名數據和壹個有效的X.509證書(作為SSL握手的壹部分)來驗證自身。客戶的瀏覽器驗證證書並使用附加的公鑰驗證簽名數據。壹旦雙方通過認證,交易就可以開始了。\x0d\ SSL可以用相同的機制處理服務器身份驗證(如上例所示)和客戶端身份驗證。網站通常不依賴SSL進行客戶端身份驗證-要求用戶提供密碼更容易。然而,SSL客戶端和服務器身份驗證非常適合透明身份驗證,透明身份驗證肯定會發生在對等體之間,例如p2p應用程序中的對等體。\x0d\安全套接字層(SSL),SSL是壹種安全協議,為網絡(如Internet)上的通信提供隱私保護。SSL使應用程序能夠進行通信,而不用擔心被竊聽和篡改。SSL實際上是兩個協同工作的協議:SSL記錄協議和SSL握手協議。“SSL記錄協議”是兩個協議中較低的協議,它為較高的協議(如SSL握手協議)加密和解密數據的可變長度記錄。SSL握手協議處理應用程序憑證的交換和驗證。\x0d\當壹個應用程序(客戶端)想要與另壹個應用程序(服務器)通信時,客戶端打開與服務器的套接字連接。然後,客戶端和服務器協商安全連接。作為協商的壹部分,服務器向客戶端驗證自身身份。客戶端可以選擇是否向服務器驗證自己的身份。壹旦身份驗證完成並建立了安全連接,兩個應用程序就可以安全地進行通信。按照慣例,我將發起該通信的對等方視為客戶端,而將另壹個對等方視為服務器,而不考慮他們在連接後的角色。\x0d\兩個名為A和B的對等方希望安全通信。在我們簡單的p2p應用程序環境中,對等體A想要查詢對等體B上的資源..每個對等體都有壹個包含其私鑰的數據庫(名為keystore)和壹個包含其公鑰的證書。密碼保護數據庫的內容。該數據庫還包含壹個或多個來自可信對等方的自簽名證書。對等體A發起該事務,每個對等體相互認證,兩個對等體協商采用的密碼及其長度並建立安全通道。完成這些操作後,每個對等點都知道它在和誰通話,並且知道通道是安全的。SSL(安全套接字層)協議主要使用公鑰系統和X.509數字證書技術來保護信息傳輸的機密性和完整性。它不能保證信息的不可否認性,主要適用於點對點的信息傳輸,通常采用Web服務器的形式。\x0d\安全套接字層(SSL)是由Netscape提出的基於WEB應用程序的安全協議,它包括:服務器身份驗證、客戶端身份驗證(可選)、SSL鏈路上的數據\x0d\完整性和SSL鏈路上的數據機密性。對於電子商務應用程序,使用SSL可以確保信息的真實性、完整性和保密性。然而,由於SSL沒有對應用層的消息進行數字簽名,因此它不能提供交易的不可否認性,這是SSL在電子商務中的最大不足。有鑒於此,自Communicator版本以來,Netscape在所有瀏覽器中引入了壹個名為“表單簽名”的功能。在電子商務中,此功能可用於對包含買方訂購信息和付款指示的表單進行數字簽名,從而確保交易信息的不可否認性。綜上所述,使用單壹的SSL協議來確保電子商務中的交易安全是不夠的,但“SSL+表單簽名”的模式可以為電子商務提供更好的安全保障。\ x0d -。Secure Shell也稱為S S H,最初是U N I X系統上的壹個程序,然後它很快擴展到其他操作平臺。S S H是壹個很好的應用程序,正確使用時可以彌補網絡的漏洞。此外,S H is cool S S客戶端適用於多個平臺還有以下原因。幾乎所有的UNIX平臺——包括H P-U X、L i n u x、A I X、S o l a r i s、Digital UNIX、Linux、S C O和其他平臺——都可以運行SS H .此外,已經有壹些客戶端(其中壹些是測試版)可以在U N I X操作平臺之外運行,包括O S/2、V M S、B e O S、J a v a、Wi n d o w s 9 5/9 8和Windows NT。通過這種方式,您可以在幾乎所有平臺上運行S S H客戶端程序。非商業用途是免費的。許多S S H版本都可以獲得源代碼,只要不用於商業目的,都可以免費獲得。此外,U N I X版本還提供源代碼,這意味著任何人都可以修改它。但是,如果您選擇將其用於商業目的,則無論您使用什麽版本的S H,您都必須確認您已經註冊並獲得了相應的權限。S . S . H的大多數客戶端和守護程序都有壹些註冊限制。S S H通用公共許可證(G P L)的唯壹版本是l s h,它仍處於測試階段。通過I n t e r n e t傳輸密碼安全可靠這是S S H的公認優勢之壹。如果您查看訪問ISP(I n t e r n e t服務提供商)或大學的方法,您通常會使用Te l n e t或P O P郵件客戶端進程。因此,每當您想要訪問您的帳戶時,您輸入的密碼將以明碼形式發送(即它不受保護且直接可讀),這給了攻擊者竊取您帳戶的機會-最終您將為他的行為負責。支持應用程序。因為S S H的源代碼是開放的,所以在U N I X的世界裏得到了廣泛的認可。u x中的Li,其源代碼也是開放的,公眾可以免費獲得,同時也得到了類似的認可。這使得所有開發人員(或任何人)都可以通過補丁或b u g補丁來提高性能,甚至添加功能。這也意味著獲得和安裝S S H的第壹部分意味著它的性能可以在沒有原始創作者的直接技術支持的情況下持續改進。取代不安全的遠程應用程序。S S H旨在取代伯克利版本的r命令集;它也繼承了類似的語法。因此,用戶不會註意到使用S S H和R命令集之間的區別。妳還可以用它做壹些很酷的事情。通過使用S S H,您不必擔心在不安全的網絡中發送信息時被監視。您還可以使用P2P通道和Te l n e t模式創建虛擬專用網絡(VPN)。S S H還支持其他壹些身份驗證方法,如K e r b e r o s和安全身份證。\x0d\\x0d\但是由於版權和加密算法的限制,現在很多人轉向OpenSSH。OpenSSH是SSH的替代軟件,而且是免費的。可以預計,將來會有越來越多的人使用它來代替SSH。\x0d\\x0d\SSH由客戶端和服務器的軟件組成,有兩個不兼容的版本:1.x和2.x .使用SSH 2.x的客戶端程序無法連接到SSH 1.x的服務程序OpenSSH 2.x同時支持SSH 1.x和2.x. \ x0d \ x0d \ ssh主要由三部分組成:\ x0d \ x0d \傳輸層協議【SSH-TRANS】提供服務器身份驗證、機密性此外,它有時還提供壓縮功能。SSH-TRANS通常運行在TCP/IP連接上,也可以用於其他可靠的數據流。SSH-TRANS提供強大的加密技術、密碼主機認證和完整性保護。該協議中的身份驗證基於主機,並且該協議不執行用戶身份驗證。可以在該協議之上設計更高級別的用戶認證協議。\x0d\\x0d\用戶驗證協議【SSH-USERAUTH】用於向服務器提供客戶端用戶驗證功能。它運行在傳輸層協議SSH-TRANS上。當SSH-USERAUTH啟動時,它從下層協議接收會話標識符(來自第壹次密鑰交換中的交換散列H)。會話標識符唯壹地標識該會話,並且適合於標記以證明私鑰的所有權。SSH-USERAUTH還需要知道底層協議是否提供機密性保護。\x0d\\x0d\連接協議【SSH-CONNECT】將多個加密隧道劃分為邏輯通道。它運行在用戶認證協議上。它提供交互式登錄會話、遠程命令執行、轉發TCP/IP連接和轉發X11連接。\x0d\\x0d\建立安全傳輸層連接後,客戶端發送服務請求。用戶身份驗證完成後,將發送第二個服務請求。這允許新定義的協議與上述協議共存。連接協議提供了廣泛的通道,並且有標準的方法來建立安全的交互式會話外殼和轉發(“隧道技術”)專有TCP/IP端口和X11連接。\x0d\\x0d\通過使用SSH,您可以加密所有傳輸的數據,這樣“中間人”攻擊就不可能發生,並且它還可以防止DNS欺詐和IP欺詐。使用SSH還有壹個額外的好處,那就是傳輸的數據被壓縮了,因此可以加快傳輸速度。SSH有很多功能。它不僅可以取代Telnet,還可以為FTP、PoP甚至PPP提供安全的“通道”。\x0d\\x0d\SSH分為兩部分:客戶端部分和服務器部分。\x0d\\x0d\服務器是壹個惡魔,它在後臺運行並響應來自客戶端的連接請求。服務器壹般是sshd進程,提供遠程連接處理,壹般包括公鑰認證、密鑰交換、對稱密鑰加密和不安全連接。\x0d\\x0d\ Client包括ssh程序和其他應用程序,如scp(遠程復制)、slogin(遠程登錄)和sftp(安全文件傳輸)。\x0d\\x0d\它們的工作機制大致是本地客戶端向遠程服務器發送連接請求,服務器檢查應用的數據包和IP地址後將密鑰發送給SSH客戶端,本地客戶端將密鑰發送回服務器,從而建立連接。我剛才講的只是SSH連接的壹般過程。SSH 1.x和SSH 2.x在連接協議方面仍有壹些差異。\x0d\\x0d\SSH設計為在不使用超級服務器(inetd)的情況下獨立工作。盡管可以在inetd上通過tcpd運行SSH進程,但這完全沒有必要。啟動SSH服務器後,sshd運行並監聽默認端口22(您可以使用# ps -waux | grep sshd來檢查sshd是否已正確運行)。如果SSH沒有通過inetd啟動,SSH將壹直等待連接請求。當請求到來時,SSH守護進程將生成壹個子進程來處理這個連接。\ x0d \ x0d \ ssh:壹種新的MVC軟件開發模型,其中SSH(Struts,Spring,Hibernate)Struts控制流程,Spring執行業務流,Hibernate封裝數據庫操作。這種新的開發模式使我們的開發更加方便、快捷和清晰!