SSH和SSL比较
一、SSH介紹
什么是SSH?
傳統(tǒng)的網(wǎng)絡(luò)服務(wù)程序,如:ftp、pop和telnet在本質(zhì)上都是不安全的,因為它們在網(wǎng)絡(luò)上用明文傳送口令和數(shù)據(jù), 別有用心的人非常容易就可以截 獲這些口令和數(shù)據(jù)。而且,這些服務(wù)程序的安全驗證方式也是有其弱點的, 就是很容易受到"中間人"(man-in-the-middle)這種方式的攻 擊。所謂"中間人"的攻擊方式, 就是"中間人"冒充真正的服務(wù)器接收你的傳給服務(wù)器的數(shù)據(jù),然后再冒充你把數(shù)據(jù)傳給真正的服務(wù)器。 服務(wù)器和你之間的數(shù) 據(jù)傳送被"中間人"一轉(zhuǎn)手做了手腳之后,就會出現(xiàn)很嚴(yán)重的問題。
SSH的英文全稱是Secure Shell。通過使用SSH,你可以把所有傳輸?shù)臄?shù)據(jù)進行加密,這樣"中間人"這種攻擊方式就不可能實現(xiàn)了, 而且也能夠防止DNS和IP欺騙。還有一個 額外的好處就是傳輸?shù)臄?shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸?shù)乃俣取?SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提 供一個安全的"通道"。
最初SSH是由芬蘭的一家公司開發(fā)的。但是因為受版權(quán)和加密算法的限制,現(xiàn)在很多人都轉(zhuǎn)而使用OpenSSH。 OpenSSH是SSH的替代軟件,而且是免費的,可以預(yù)計將來會有越 來越多的人使用它而不是SSH。
SSH是由客戶端和服務(wù)端的軟件組成的,有兩個不兼容的版本分別是:1.x和2.x。 用SSH 2.x的客戶程序是不能連接到SSH 1.x的服務(wù)程序上去的。OpenSSH 2.x同時支持SSH 1.x和2.x。
SSH的安全驗證是如何工作的
從客戶端來看,SSH提供兩種級別的安全驗證。
第一種級別(基于口令的安全驗證)只要你知道自己帳號和口令,就可以登錄到遠(yuǎn)程主機。所有傳輸?shù)臄?shù)據(jù)都會被加密, 但是不能保證你正在連接的服務(wù)器就是你想連接的服務(wù)器。可能會有別的服務(wù)器在冒充真正的服務(wù)器, 也就是受到"中間人"這種方式的攻擊。
第二種級別(基于密匙的安全驗證)需要依靠密匙,也就是你必須為自己創(chuàng)建一對密匙,并把公用密匙放在需要訪問的服務(wù)器上。 如果你要連接到SSH服務(wù)器 上,客戶端軟件就會向服務(wù)器發(fā)出請求,請求用你的密匙進行安全驗證。服務(wù)器收到請求之后, 先在你在該服務(wù)器的家目錄下尋找你的公用密匙,然后把它和你發(fā) 送過來的公用密匙進行比較。如果兩個密匙一致, 服務(wù)器就用公用密匙加密"質(zhì)詢"(challenge)并把它發(fā)送給客戶端軟件。 客戶端軟件收到"質(zhì) 詢"之后就可以用你的私人密匙解密再把它發(fā)送給服務(wù)器。
用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網(wǎng)絡(luò)上傳送口令。
第二種級別不僅加密所有傳送的數(shù)據(jù),而且"中間人"這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。 但是整個登錄的過程可能需要10秒。
二、SSL介紹(Secure socket Layer & Security Socket Layer)
一個應(yīng)用程序的安全需求在很大程度上依賴于將如何使用該應(yīng)用程序和該應(yīng)用程序?qū)⒁Wo什么。不過,用現(xiàn)有技術(shù)實現(xiàn)強大的、 一般用途的安全通常是可能的。認(rèn)證就是一個很好的示例。
當(dāng)顧客想從 Web 站點購買某個產(chǎn)品時,顧客和 Web 站點都要進行認(rèn)證。顧客通常是以提供名字和密碼的方式來認(rèn)證他自己。 另一方面,Web 站 點通過交換一塊簽名數(shù)據(jù)和一個有效的 X.509 證書(作為 SSL 握手的一部分)來認(rèn)證它自己。 顧客的瀏覽器驗證該證書并用所附的公用密鑰驗證簽 名數(shù)據(jù)。一旦雙方都認(rèn)證了,則交易就可以開始了。
SSL 能用相同的機制處理服務(wù)器認(rèn)證(就如在上面的示例中)和客戶機認(rèn)證。 Web 站點典型地對客戶機認(rèn)證不依賴 SSL - 要求用戶提供密碼是較容易的。而 SSL 客戶機和服務(wù)器認(rèn)證對于透明認(rèn)證是完美的, 對等機 - 如 p2p 應(yīng)用程序中的對等機之間一定會發(fā)生透明認(rèn)證。
安全套接字層(Secure Sockets Layer (SSL)) ,SSL 是一種安全協(xié)議,它為網(wǎng)絡(luò)(例如因特網(wǎng))的通信提供私密性。SSL 使應(yīng)用程序在通信時不用擔(dān)心被竊聽和篡改。 SSL 實際上 是共同工作的兩個協(xié)議:"SSL 記錄協(xié)議"(SSL Record Protocol)和"SSL 握手協(xié)議" (SSL Handshake Protocol)。"SSL 記錄協(xié)議"是兩個協(xié)議中較低級別的協(xié)議,它為較高級別的協(xié)議, 例如 SSL 握手協(xié)議對 數(shù)據(jù)的變長的記錄進行加密和解密。SSL 握手協(xié)議處理應(yīng)用程序憑證的交換和驗證。
當(dāng)一個應(yīng)用程序(客戶機)想和另一個應(yīng)用程 序(服務(wù)器)通信時,客戶機打開一個與服務(wù)器相連接的套接字連接。然后, 客戶機和服務(wù)器對安全連接進行協(xié)商。作為協(xié)商的一部分,服務(wù)器向客戶機作自我認(rèn) 證。客戶機可以選擇向服務(wù)器作或不作自我認(rèn)證。 一旦完成了認(rèn)證并且建立了安全連接,則兩個應(yīng)用程序就可以安全地進行通信。按照慣例,我將把發(fā)起該通信的 對等機看作客戶機, 另一個對等機則看作服務(wù)器,不管連接之后它們充當(dāng)什么角色。
名為 A 和 B 的兩臺對等機想安全地進行通 信。在我們簡單的 p2p 應(yīng)用程序的環(huán)境中,對等機 A 想查詢對等機 B 上的一個資源。 每個對等機都有包含其專用密鑰的一個數(shù)據(jù)庫(名 為 keystore)和包含其公用密鑰的證書。密碼保護數(shù)據(jù)庫的內(nèi)容。 該數(shù)據(jù)庫還包含一個或多個來自被信任的對等機的自簽名證書。 對等機 A 發(fā)起這 項事務(wù),每臺對等機相互認(rèn)證,兩臺對等機協(xié)商采用的密碼及其長度并建立一個安全通道。完成這些操作之后, 每個對等機都知道它正在跟誰交談并且知道通道是 安全的。 SSL (Secure socket Layer)安全套接層協(xié)議主要是使用公開密鑰體制和X.509數(shù)字證書技術(shù)保護信息傳輸?shù)臋C密性和完 整性, 它不能保證信息的不可抵賴性,主要適用于點對點之間的信息傳輸,常用Web Server方式。
安全套接層協(xié)議(SSL,Security Socket Layer)是網(wǎng)景(Netscape)公司提出的基于WEB應(yīng)用的安全協(xié)議,它包括:服務(wù)器認(rèn)證、 客戶認(rèn)證(可選)、SSL鏈路上的數(shù)據(jù)
完整性和SSL鏈路上的數(shù)據(jù)保密性。對于電子商務(wù)應(yīng)用來說,使用SSL可保證信息的真實性、 完整性和保密性。但由于SSL不對應(yīng)用層的消息進行數(shù)字簽 名,因此不能提供交易的不可否認(rèn)性,這是SSL在電子商務(wù)中使用的最大不足。 有鑒于此,網(wǎng)景公司在從Communicator 4.04版開始的所有瀏 覽器中引入了一種被稱作"表單簽名(Form Signing)"的功能, 在電子商務(wù)中,可利用這一功能來對包含購買者的訂購信息和付款指令的表單進行 數(shù)字簽名,從而保證交易信息的不可否認(rèn)性。綜上所述, 在電子商務(wù)中采用單一的SSL協(xié)議來保證交易的安全是不夠的,但采用"SSL+表單簽名"模式能夠 為電子商務(wù)提供較好的安全性保證。
轉(zhuǎn)載于:https://www.cnblogs.com/cioliuguilan/p/5541637.html
總結(jié)
- 上一篇: vim、g++、gdb及makefile
- 下一篇: Android的px、dp和sp