RSA和AES 的區別, 及ssh工作原理


1. AES 對稱加密

(1)加密方和解密方適用同一個秘鑰

(2)加密解密的速度比較快,適合數據比較長時使用

(3)秘鑰傳輸過程不安全,而且秘鑰管理也麻煩

2.RSA 非對稱加密

(1)算法強度復雜,其安全性依賴於算法與秘鑰

(2)加密解密的速度遠遠低於對稱加密算法,不適用於數據量較大的情況

(3)非對稱加密算法有兩種密鑰,其中一個是公開的,所以在密鑰傳輸上不存在安全性問題,使得其在傳輸加密數據的安全性上又高於對稱加密算法。

 

3. RSA + AES

SSH即利用的RSA+AES

(1)RSA被用來在會話初始化階段為通信雙方進行會話秘鑰的協商。

(2)由於非對稱加密的計算量開銷比較大,因此一旦雙方的會話秘鑰協商完成,后續的加密都將采用AES加密進行

使用tcpdump+wireshark抓包並查看ssh建聯過程如下:

 

 

SSH的實現:

(1)基於口令的認證:

第一次登錄的時候,client要對server的公鑰進行認證。(https中可以通過CA進行公正,可是SSH的publish key和private key都是自己生成的,沒法公正,只能通過Client端自己對公鑰進行確認),確認的信息提示如下

 

 

 Client輸入確認輸入yes之后

 

 

該host已被確認,並被追加到文件known_hostszhong ,然后就需要輸入密碼, 進行驗證之后就登陸成功了。

(2)基於公鑰認證

口令認證,每次登陸都需要輸入密碼。基於公鑰認證,不需要輸入口令密碼,但是需要Client端手動copy public key到Server端。然后進行認證

 

1.生成秘鑰操作:ssh-keygen是用於生產密鑰的工具

 

 

       ~/.ssh中的四個文件:

       

    • id_rsa:保存私鑰
    • id_rsa.pub:保存公鑰
    • authorized_keys:保存已授權的客戶端公鑰
    • known_hosts:保存已認證的遠程主機ID

  四個角色的關系

  

 

  注意:一台主機可能既是Client,也是Server。所以會同事擁有authorized_keys和known_hosts

 

       1.Client將自己的公鑰存放在Server上,追加在文件authorized_keys中。

2.Server端接受到Client端的請求后,會在authorized_keys中匹配到Client的公鑰pubkey,並生成隨機數R

用Client的公鑰對該隨機數加密得到pubKey(R),然后將加密后信息發送給Client

3.Client通過私鑰解密得到R。然后對 R 和本次會話SessionKey利用MD5生成摘要Digest1,發給Server端

4.Server端也會對R 和SessionKey利用同樣算法生成Digest1

5.Server端比對Digest1和Digest2是否相同,完成認證過程

 

 

(3)ssh工具

a.server端:sshd,端口22

b.client端:ssh user@host

 

c.批量執行:pssh

pssh - 在過個主機上並行運行命令

pscp - 把文件並行復制到多個主機上

prsync - 通過rsync協議吧文件高效並行復制到多個主機上

pslurp - 把文件並行地從多個遠程主機復制到中心主機上

pnuke - 並行地在多個遠程主機上殺死進行

 

(4)SSH和HTTPS的區別

a. SSH的原理和HTTPS差不多,都是基於TCP和非對稱加密進行的應用層協議

b. HTTPS通過數字證書和數字證書認證中心來防止中間人攻擊

    SSH服務器的公鑰沒有人公正,只能通過Client人工確認Server端的公鑰指紋來確認身份

 

(5)總結

本文涉及到的SSH,主要指遠程登錄

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM