加密與安全

申請證書& ssh 服務基于key驗證

一、安全設計原則:

?使用成熟的安全系統
?以小人之心度輸入數據
?外部系統是不安全的
?最小授權
?減少外部接口
?缺省使用安全模式
?安全不是似是而非
?從STRIDE思考
?在入口處檢查
?從管理上保護好你的系統

常用安全技術:認證、授權、審計和安全通信。

二、密碼算法和協議:對稱加密、公鑰加密、單向加密和認證協議。

1、對稱加密算法:加密和解密使用同一個密鑰。

常見的對稱加密算法有:

DES:Data Encryption Standard,56bits
3DES:
AES:Advanced (128, 192, 256bits)
Blowfish,Twofish
IDEA,RC6,CAST5

特性:

1)、加密、解密使用同一個密鑰,效率高
2)、將原始數據分割成固定大小的塊,逐個進行加密

缺陷:

1)、密鑰過多
2)、密鑰分發
3)、數據來源無法確認

2、非對稱加密算法

公鑰加密:密鑰是成對出現。

公鑰:公開給所有人;public key
私鑰:自己留存,必須保證其私密性;secret key

特點:用公鑰加密數據,只能使用與之配對的私鑰解密;反之亦然
功能:
數字簽名:主要在于讓接收方確認發送方身份
對稱密鑰交換:發送方用對方的公鑰加密一個對稱密鑰后發送給對方
數據加密:適合加密較小數據
缺點:密鑰長,加密解密效率低下
算法:
RSA(加密,數字簽名),DSA(數字簽名),ELGamal

實現數字簽名:
?發送者
生成公鑰/密鑰對:P和S
公開公鑰P,保密密鑰S
使用密鑰S來加密消息M
發送給接收者S(M)
?接收者
使用發送者的公鑰來解密M=P(S(M))
結合簽名和加密
分離簽名

數字證書:

證書類似第三方機構,由AB都信任的機構頒發,CA頂級機構叫rootCA

 

1

3、單向散列
將任意數據縮小成固定大小的“指紋”
?任意長度輸入
?固定長度輸出
?若修改數據,指紋也會改變(“不會產生沖突”)
?無法從指紋中重新生成數據(“單向”)
功能:數據完整性
常見算式
md5: 128bits、sha1: 160bits、sha224
sha256、sha384、sha512
常用工具
?md5sum | sha1sum [ –check ] file
?openssl、gpg
?rpm -V

 

實驗:

一、使用gpg工具實現公鑰加密

在Centos7主機上用公鑰加密,在Centos6主機上解密
1、在Centos6主機上生成公鑰/私鑰對
gpg –gen-key

1
2、在Centos6主機上查看公鑰
gpg –list-keys

2

3、在Centos6主機上導出公鑰到pony.pubkey
gpg -a –export -o pony.pubkey

3
4、從Centos6主機上復制公鑰文件到需加密的centos7主機上
scp pony.pubkey 192.168.158.7:/root/.gnupg

4

5、在需加密數據的centos7主機上生成公鑰/私鑰對
gpg –list-keys
gpg –gen-key

5
6、在centos7主機上導入公鑰
gpg –import pony.pubkey
gpg –list-keys

6
7、用從centos6主機導入的公鑰,加密centos7主機的文件file,生成file.gpg
gpg -e -r?magedu?/etc/fstab
7

8、復制加密文件到centos6主機
scp fstab.gpg 192.168.158.6:/data

9、在hostA主機解密文件
gpg -d?fstab.gpg
gpg -o f1 -d fstab.gpg

8
10、刪除公鑰和私鑰
gpg –delete-keys magedu
gpg –delete-secret-keys magedu

實驗二、創建CA和申請證書

1、創建所需要的文件
touch /etc/pki/CA/index.txt 生成證書索引數據庫文件
echo 01 > /etc/pki/CA/serial 指定第一個頒發證書的序列號

1
2、 CA自簽證書
生成私鑰
cd /etc/pki/CA/
(umask 066; openssl genrsa -out? private/cakey.pem 4096)

2

自簽證書

openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

3

3、頒發證書

在需要使用證書的主機生成證書請求
給web服務器生成私鑰
(umask 066; openssl genrsa -out? /etc/pki/tls/private/test.key 2048)
生成證書申請文件
openssl req -new -key /etc/pki/tls/private/test.key? -days 365 -out etc/pki/tls/test.csr

4

將證書請求文件傳輸給CA

5
CA簽署證書,并將證書頒發給請求者
openssl ca -in /etc/pki/CA/test.csr –out? /etc/pki/CA/certs/test.crt -days 365

6
注意:默認國家,省,公司名稱三項必須和CA一致

實驗三、基于key認證

在centos6, centos7.4, centos7.5三臺主機上實現基于key認證的免密登錄。

實驗之前用ssh服務連接遠程主機需要登錄密碼

1

1、在centos6主機生成密鑰對
ssh-keygen

2

2、在centos6主機生成公鑰文件

ssh-copy-id 192.168.158.6

3

3、將.ssh復制遠程主機家目錄

scp? -pr /root/.ssh? 192.168.158.7:/root

.scp? -pr /root/.ssh? 192.168.158.75:/root

4

現在去連接遠程主機可以免密登錄了,并且三臺主機之間互聯都可以免密登錄。

5

78

至此實現了三臺主機之間的互聯免密登錄。

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/98863

(1)
ponypony
上一篇 2018-05-19
下一篇 2018-05-19

相關推薦

欧美性久久久久