安全目標:
機密性:明文傳輸的ftp, http,telnet 不安全
數據完整性:
身份驗證:
可用性:
安全技術:認證,授權,安全通信,審計
密碼算法和協議:對稱加密,公鑰加密,單向加密,認證協議
1、對稱加密:加密,解密使用同一個秘鑰,效率高
DES:Data Encrption Standard, 56bit
3DES:
AES:Advanced
Blowfish
缺點:秘鑰過多,分發問題,來源無法確認
gpg實現加密: gpg -c file –>file.gpg
解密:gpg -o file -d file.gpg
2、公鑰加密:非對稱加密
密鑰對:公鑰:P 私鑰:S 信息:M
M=S(P(M))
發送方用自己的私鑰加密數據,可以實現身份驗正
發送方用對方的公鑰加密數據,可以保證數據機密性
公鑰加密算法很少用來加密數據:速度太慢
公鑰加密:(加密/簽名)
數字簽名
數據加密
對稱密鑰交換
算法:RSA: 加密、簽名,DSA:簽名,ElGamal
gpg實現公鑰加密:
gpg –gen-key
3、單向加密:提取數據特征碼
輸入一樣:輸出必然相同
雪崩效應:輸入的微小改變,將會引起結果的巨大改變
定長輸出:無論原始數據是多在,結果大小都是相同的
不可逆:無法根據特征碼還原原來的數據
協商生成密碼:密鑰交換(Internet Key Exchange, IKE)
Diffie-Hellman協議:
A –> B p, g (大素數,生成數)
A: x B: y
A: g^x%p –> B
B: g^y%p –> A
g, p, g^x%p, g^y%p
A: (g^y%p)^x=g^yx%p
B: (g^x%p)^y=g^xy%p
單向加密算法:MD5 SHA1 SHA256
4、CA
PKI: Public Key Infrastructure
簽證機構CA: Certificate Authority
注冊機構:RA
證書吊銷列表:CRL
x509:
公鑰及期有效期限
證書的合法擁有者
證書該如何被使用
CA的信息
CA簽名的校驗碼..
5、OpenSSL: 開源
libcrypto: 加密庫
libssl: TLS/SSL的實現
基于會話的、實現了身份認證、數據機密性和會話完整性的TLS/SSL庫、
openssl: 多用途命令行工具
6、openssl實現私有CA:
1、生成一對密鑰
2、生成自簽署證書
openssl genrsa -out /PATH/TO/KEYFILENAME NUMBITS
openssl rsa -in /PATH/TO/KEYFILENAME -pubout
CA服務器:
1、vim /etc/pki/tls/openssl.cnf
dir=/etc/pki/CA
2、cd /etc/pki/CA
make certs newcerts crl
touch index.txt
echo 01 > serial
3、自簽證書
(umask 077; openssl genrsa -out private/cakey.pem 2048)
openssl req -x509 -new -key private/cakey.pem -out cacert.pem -days 3000
OpenSSL:
1、創建CA
自己生成一對密鑰;
生成自簽證書;
2、客戶端
生成一對密鑰;
生成證書頒發請求, .csr;
將請求發給CA;
3、CA端
簽署此證書;
傳送給客戶端;
OpenSSL: TLS/SSL, (libcryto, libssl, openssl)
9、OpenSSH:
telnet, TCP/23, 遠程登錄
認證明文
數據傳輸明文
ssh: Secure SHell, TCP/22 C/S
OpenSSH軟件包(開源)
客戶端:Linux: ssh
Windows: SecureCRT xshell
服務器端:sshd
openssh (ssh, sshd)
sshd: 主機密鑰
netstat
-t: tcp connections
-u: udp connections
-l: listening
-p: process
配置文件:
ssh (ssh_config)
sshd (sshd_config)
/etc/ssh
ssh:
ssh -l USERNAME REMOTE_HOST [‘command’]
ssh USERNAME@REMOTE_HOST
-p port
基于密鑰的認證:
一臺主機為客戶端(基于某個用戶實現):
1、生成一對密鑰
ssh-keygen
-t {rsa|dsa}
-f /path/to/keyfile
-N ‘password’
2、將公鑰傳輸至服務器端某用戶的家目錄下的.ssh/authorized_keys文件中
使用文件傳輸工具傳輸(ssh-copy-id, scp)
ssh-copy-id -i /path/to/pubkey USERNAME@REMOTE_HOST
總結:
1、密碼應該經常換且足夠復雜;
2、使用非默認端口;
3、限制登錄客戶地址;
4、禁止管理直接登錄;
5、僅允許有限制用戶登錄;
6、使用基于密鑰的認證;
7、禁止使用版本1
PKI
A –> B:
證書: 用戶信息,公鑰
頒發者的信息,簽名
證書有效期限
A發送方:
1、計算數據的特征碼(單向加密);
2、用自己的私鑰加密特征碼,并附加在數據后面;
3、生成一個臨時對稱密鑰;
4、用此密鑰結合某算法加密數據及加密后的特征碼;
5、對接收方的公鑰加密此對稱密鑰,并附加加密后的數據后面;
6、發送至接收方;
B接收方:
1、用自己的私鑰解密加密的對稱密鑰;
2、用對稱密鑰解密數據;
3、用對方的公鑰解密加密的特征碼;
4、用同樣的算法計算數據的特征碼,并與解密而來的特征碼進行比較;
A –> B:
SSL: Secure Socket Layer, SSLv2, SSLv3
TLS:Transport Layer Security, TLSv1
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86882
內容不錯,注意排版,繼續加油!