數據傳輸安全的要滿足的要求:
(1)消息的發送方能夠確定消息只有預期的接收方可以解密(不保證第三方無法獲得,但保證第三方無法解密)
(2)消息的接收方可以確定消息是由誰發送的(消息的接收方可以確定消息的發送方)
(3)消息的接收方可以確定消息在途中沒有被篡改過(必須確認消息的完整性)
對稱加密:
流程:
密鑰加密 在網絡中傳輸 逆運算解密
(發送方)明文 ---------------> 密文 ------------------> 目的主機 ---------------> (接收方)明文
特點:加密和解密過程都是用同一個密鑰
非對稱加密:
非對稱加密算法雙方均有兩個密鑰:公鑰和私鑰;
公鑰與私鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密
流程:
發送方:
(1)將消息進行散列運算,得到一個固定位數的消息摘要
(2)用自己的私鑰對消息摘要加密,得到數字簽名(認證模式:確保接收方能夠確認自己)
(3)使用接收方的公鑰對消息進行加密(加密模式:確保消息只能由期望的接收方解密)
(4)發送消息和消息摘要
接收方:
(1)使用發送方的公鑰對消息摘要進行解密(確認消息是由誰發送的)
(2)使用自己的私鑰對消息進行解密(安全地獲得實際應獲得的信息)
(3)將消息進行散列運算,獲得消息摘要
(4)將上一步獲得的消息摘要和第一步解密的消息摘要進行對比(確認消息是否被篡改)
數字證書生成流程:
(1)用戶首先產生自己的密鑰對,並將公共密鑰及部分個人身份信息傳送給認證中心
(2)認證中心在核實身份后,將執行必要的步驟,以確信請求確實由用戶發送而來
(3)認證中心將發給用戶一個數字證書,證書內包含用戶的個人信息和他的公鑰信息,同時還附有認證中心的簽名信息
數字證書由獨立的證書發行機構發布
SSH遠程登錄
不指定用戶登錄:ssh 192.168.0.11
指定用戶登錄:ssh -l root 192.168.0.11
ssh root@192.168.0.11
ssh登錄指定端口:ssh -p 12333 192.168.0.11
ssh -l root -p 12333 192.168.0.11
ssh -p 12333 root@192.168.0.11
另外修改配置文件/etc/ssh/sshd_config,可以改ssh登錄端口和禁止root登錄。改端口可以防止被端口掃描。
創建SSH key
$ ssh-keygen -t rsa -C "your_email@example.com"
代碼參數含義:
-t 指定密鑰類型,默認是 rsa ,可以省略。
-C 設置注釋文字,比如郵箱。
-f 指定密鑰文件存儲文件名。
用戶根目錄下生成的 .ssh 文件夾:
.ssh/…
id_rsa 生成的私鑰
id_rsa.pub 生成的公鑰
known_hosts 記錄已經訪問過計算機的公鑰,下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同, SSH會發出警告。
authorized_keys 用於保存所有允許以當前用戶身份登錄的SSH客戶端用戶的公鑰內容
免密登錄遠程主機:將本地生成的id_rsa.pub內容追加到遠程主機的authorized_keys文件中即可