關(guān)于SSH,你了解多少?

說起電腦操作系統(tǒng),人們第一個(gè)想到的恐怕就是windows系統(tǒng),但其實(shí)還有很多操作系統(tǒng)深受人們喜愛,Linux就是其中一種。而說起Linux系統(tǒng),就不得不提及SSH,可能很多人對SSH還不太熟悉,那么今天我們就來簡單了解一下吧。

SSH

 

什么是SSH?

SSH(Secure Shell,安全外殼)是一種網(wǎng)絡(luò)安全協(xié)議,通過加密和認(rèn)證機(jī)制實(shí)現(xiàn)了設(shè)備之間的安全保障。

SSH

傳統(tǒng)遠(yuǎn)程登錄或文件傳輸方式,都使用明文傳輸數(shù)據(jù),存在很多的安全隱患。隨著人們對網(wǎng)絡(luò)安全的重視,這種方式已經(jīng)慢慢不被人接受。而SSH協(xié)議通過對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行加密和驗(yàn)證,在不安全的網(wǎng)絡(luò)環(huán)境中提供了安全的登錄和其他安全網(wǎng)絡(luò)服務(wù)。目前SSH協(xié)議已經(jīng)被全世界廣泛使用,大多數(shù)設(shè)備都支持SSH功能。

SSH是如何工作的?

SSH由客戶端和服務(wù)器組成,在整個(gè)通信過程中,為建立安全的SSH通道,會(huì)經(jīng)歷如下幾個(gè)階段:

  • 連接建立

SSH服務(wù)器在指定的端口偵聽客戶端的連接請求,在客戶端向服務(wù)器發(fā)起連接請求后,雙方建立一個(gè)TCP連接。

  • 版本協(xié)商

SSH協(xié)議目前存在SSH1.X(SSH2.0之前的版本)和SSH2.0版本。SSH2.0協(xié)議相比SSH1.X協(xié)議來說,在結(jié)構(gòu)上做了擴(kuò)展,可以支持更多的認(rèn)證方法和密鑰交換方法,同時(shí)提高了服務(wù)能力。SSH服務(wù)器和SSH客戶端通過協(xié)商確定最終使用的SSH版本號(hào)。

  • 算法協(xié)商

SSH支持多種加密算法,雙方根據(jù)各自支持的算法,協(xié)商出最終用于產(chǎn)生會(huì)話密鑰的密鑰交換算法、用于數(shù)據(jù)信息加密的加密算法、用于進(jìn)行數(shù)字簽名和認(rèn)證的公鑰算法以及用于數(shù)據(jù)完整性保護(hù)的HMAC算法。

  • 密鑰交換

服務(wù)器和客戶端通過密鑰交換算法,動(dòng)態(tài)生成共享的會(huì)話密鑰和會(huì)話ID,建立加密通道。會(huì)話密鑰主要用于后續(xù)數(shù)據(jù)傳輸?shù)募用埽瑫?huì)話ID用于認(rèn)證過程中標(biāo)識(shí)該SSH連接。

  • 用戶認(rèn)證

SSH客戶端向服務(wù)器端發(fā)起認(rèn)證請求,服務(wù)器端對客戶端進(jìn)行認(rèn)證。

SSH密鑰中的對稱加密和非對稱加密

提高安全性的基本方式就是加密,加密算法通過密鑰將明文轉(zhuǎn)換為密文進(jìn)行安全傳輸。SSH在工作過程中結(jié)合使用了對稱加密和非對稱加密兩種類型的算法,通過事先生成的SSH密鑰來保證信息傳輸?shù)陌踩浴?/p>

對稱加密算法

對稱加密算法使用同一個(gè)密鑰對數(shù)據(jù)進(jìn)行加密和解密。SSH連接建立過程中生成的會(huì)話密鑰就是對稱密鑰,該對稱密鑰是由客戶端和服務(wù)器端基于共享的部分信息和各自的私有數(shù)據(jù)使用密鑰交換算法分別生成的。因?yàn)閷ΨQ加密算法加解密的速度很快,所以適用于傳輸大量數(shù)據(jù)的場景。

非對稱加密算法

非對稱加密的發(fā)送和接收需要使用一對關(guān)聯(lián)的SSH密鑰,公鑰和私鑰。私鑰由生成的一方自己保管,公鑰可以發(fā)送給任何請求通信的其他人。發(fā)送方用收到的公鑰對自己的通信內(nèi)容進(jìn)行加密,只有接收方可以使用私鑰進(jìn)行解密獲取通信內(nèi)容。非對稱加密的私鑰不需要暴露在網(wǎng)絡(luò)中,安全性大大增加,但是加解密的速度比對稱密鑰慢得多。

SSH連接過程中的兩個(gè)階段使用了非對稱加密。一個(gè)是在密鑰交換階段,服務(wù)器和客戶端都生成了自己臨時(shí)的公鑰和私鑰,用于計(jì)算出同一個(gè)用于后續(xù)加密通信內(nèi)容的會(huì)話密鑰。另外一個(gè)就是在用戶認(rèn)證階段,利用只有匹配的私鑰可以唯一解密公鑰加密的內(nèi)容這一特點(diǎn),通過客戶端的公鑰私鑰對驗(yàn)證客戶端的身份。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。