ssh 為 secure shell 的縮寫,由 ietf 的網路小組(network working group)所制定;ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。簡單來說ssh是一種加密的用於遠端登入的協議。
對稱加密的原理非常簡單,假如計算機a要傳送一段文字給計算機b,但是又不想讓別人知道,最簡單的辦法就是,使用一大段密碼進行加密,讓別人不知道什麼意思,這裡術語就叫金鑰,然後加密過後的文字通過網路傳送給計算機b之後,計算機b為了讀懂這段文字,這時就需要之前的金鑰進行解密,如下圖:
然而這裡存在乙個問題,萬一別人通過網路傳輸或者其他手段把金鑰給擷取了,就涼了,所以這裡需要乙個複雜一點的非對稱加密。
既然把金鑰傳輸給別人不安全,那我們就要避免這個問題,首先計算機a和計算機b,分別擁有兩個東西,叫做公鑰和私鑰,這兩個東西有什麼用呢,簡單來說這兩個東西是配套來使用的,一段文字通過公鑰加密後,需要通過私鑰解密才能看到,公鑰就像鎖,而私鑰就像鑰匙,現在計算機a擁有一把鎖和鑰匙,計算機b也擁有一把鎖和鑰匙,需要注意的是這兩個東西是配套使用的,也就是只有自己的鑰匙能開自己的鎖。然後我們需要怎麼做呢,原理很簡單,計算機a和計算機b把自己的公鑰複製乙份,傳送給對對方,也就是交換公鑰,需要加密資料的時候就用對方的公鑰解密,然後傳送給對方,然後對方就用自己的金鑰解密。如下圖:
注:梯形為客戶端公鑰和私鑰,長方形為伺服器端公鑰和私鑰
公鑰的交換過程也略微有點複雜,我們先來看個圖:
簡單來講一下這個過程
1.首先客戶端建立乙個連線
2.伺服器端將自己的公鑰還有乙個會話的id發回給客戶端,現在客戶端得到了伺服器端的公鑰
3.客戶端把自己的公鑰(客戶端公鑰)和會話id做乙個異或運算,得到乙個結果,然後把結果用伺服器端的公鑰加密發給伺服器端
4.伺服器端拿到那串東西後,用自己的私鑰(伺服器端私鑰)解密得到那個結果,然後再和會話id做異或運算,這樣伺服器端也得到了客戶端的公鑰
linux利用ssh遠端登入,一般有兩種方式,一種是需要密碼的,一種是不需要輸入密碼的,現在我們先來討論下利用前面的原理如何實現,先看下圖:
如上圖所示,客戶端想登入到伺服器端怎麼辦呢
1.先做乙個公鑰交換,具體過程像上面那樣
2.不是需要輸入密碼嗎,那我就先把密碼用伺服器端的公鑰加密一波在發出去給伺服器端
3.伺服器端得到加密後的密碼後用自己的私鑰(伺服器私鑰)解密一波就知道是不是正確了,然後密碼正不正確得搞個反饋回去,這個反饋呢伺服器端用客戶端的公鑰加密一波,再發回去給客戶端
4.客戶端拿到這個加密後的反饋,就直接用自己的私鑰(客戶端私鑰)解密一下就完事
免密登入是怎麼做的呢,我們先來看個圖:
1.首先不必做公鑰交換了,在登入請求之前我需要將客戶端的公鑰發給伺服器端
2.現在客戶端發起乙個登入請求
3.伺服器端怎麼做呢,先隨機生成一串東西,然後用客戶端的公鑰進行加密,發給客戶端
4.客戶端拿到這串解密後的東西後用自己的私鑰(客戶端私鑰)解密一下,如無意外,會得到原來的字串,然後再把這個解密後的字串發給伺服器端
5.伺服器端拿到這串字串後和自己之前生成的字串比對一下,看是不是一樣,一樣的話就是自己人了,把登入反饋回去
SSH協議中的對稱加密和非對稱加密
ssh 為 secure shell 的縮寫,由 ietf 的網路小組 network working group 所制定 ssh 為建立在應用層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。簡單來...
對稱加密 非對稱加密
區別在於加密金鑰和解密金鑰是否一樣,一樣則是對稱加密,不一樣則是非對稱加密。對稱加密計算量小,但若不同的客戶端使用不能的金鑰時,伺服器的複雜大。常用的對稱加密包括 des 3des aes des 3des使用的架構為feistel。des金鑰長度為56位,3des相容des,可設定3個56位密碼,...
對稱加密 非對稱加密
1 對稱加密 對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用作解密金鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,金鑰較短,且破譯困難,除了資料加密標準 des 另乙個對稱金鑰加密系統是國際資料加密演算法 idea 它比des的...