一,
機密性:TCP/IP,明文傳輸(ftp,http,smtp,telent)
完整性:不能被篡改
身份驗證:確保建立會話是否是它
機密性:plaintext -->轉換規則-->ciphertext
轉換規則:(1)對稱加密
公鑰加密:
密鑰對:
公鑰:
私鑰:
發送
完整性:
轉換規則:(1)單向加密 ,提取數據特徵碼
輸入一樣:輸出必然相同
雪崩效應:
定長輸出:
不可逆:
密鑰交換:Diffie-Hellman協議 (Internet Key Exchange,IKE)
身份驗證:
公鑰加密算法很少用來加密數據,速度太慢
PKI:Public Key Infrastrucure
CA:Certificate Authority
x509,pkcs12 證書格式
公鑰,有效期
證書的合法擁有者
證書如何使用
CA信息
CA簽名的校驗碼
PKI : OpenGPG
TLS/SSL:x509 公鑰 與有效其
TLS/SSL Handshake
SSL:Secure Socket Layer
SSLv2,SSlv3
TLS:Transport Layer Secure v1 相當於SSLv3
SSL:
對稱加密:
DES: Data Encrption Standard ,56bit
3DES:三次DES
AES: Advance Encrption Standard
AES192,AES256,AES512
Blowfish:
Linux實現工具:OpenSSL 軟件
1)libcrypto:加密庫
2)libssl:TLS/SSL實現
基於會話的,實現了身份認證,數據機密和會話完整
3)Openssl:多用途命令行工具,實現私有證書頒發機構
很多子命令:
speed :算法速度測試
enc :加密
dgst:計算校驗碼
實現私有CA:
1生成一對密鑰
openssl genrsa 生成私鑰
(umask=077;openl genrsa –out file.key bit) 生成並指定權限
openssl –in file.key –pubout 提取公鑰
2生成自簽署證書
openssl req –new –x509 –key filename.key –out file.crt –day #
openssl x509 –text –in cacert.pem 查看證書信息
openssl rsa –in server.key –pubout 從私鑰得到公鑰
單向加密:
MD4
MD5 128
SHA1 160
SHA192,SHA256,SHA384
CRC-32 校驗
公鑰加密:
身份認證(簽名)
數據加密
密鑰交換
RSA :加密,簽名
DSA :簽名 美國安全局
ElGamal:商業
OpenSSH:
telnet ,TCP/23 遠程登陸
認證明文,數據傳輸明文
ssh:Secure SHell TCP/22
v1,v2.v1有缺陷,無法避免中間人***
客戶端:
linux:ssh
windows:一個圖形界面軟件,putty,不要綠色版。SecureCRT,SSHSecureShellClent.Xmanager
服務器端:
sshd:主機公鑰
基於口令:
基於密鑰:
netstat –tunlp
-r route
-t tcp
-u udp
-n portnum
-l listen
-p pid
客戶端:/etc/ssh/ssh_config
服務端:/etc/ssh/sshd_config
ssh -l Username remote_host ‘command’
username#(@)remote_host
-x 信任x11圖形界面
基於密鑰認證:
一臺主機爲客戶端:
1,生成一對密鑰
ssh-keygen –t 指定算法
-f 保存的密鑰文件
-N 指定密碼
2,將公鑰傳輸至服務器端用戶家目錄下的.ssh/authorized_keys
文件傳輸工具(ssh-copy-id,scp)
ssh-copy-id -i /path/to/pubkey username@remotehost
3,測試登陸
scp:基於ssh的遠程複製命令,可以實現在主機之間傳輸數據
scp [option] SRC DEST
總結:
1,密碼應該經常換
2,使用非默認端口
3,限制登錄客戶地址
4,禁止管理員直接登錄
5,僅允許有限制用戶登錄
6,使用基於密鑰的認證
7,禁止使用v1
嵌入式ssh軟件,dropbear 。。。。