一、加密类型及相关算法
1、TCP/IP :安全
A -->>B
机密性:明文传输(ftp、http、smtp、telnet)
完整性:10 (100)
身份验证:
2、机密性:
plaintext --> 转换规则 --> ciphertext
ciphertext --> 转换规则 --> plaintext
3、数据完整性
4、单向加密算法:提取数据特征码
输入一样:输出必然相同
雪崩效应:输入的微小改变,将会引起结果的巨大改变
定长输出:无论原始数据是多长,结果大小都是相同的
不可逆:无法根据特性码还原原来的数据
5、协商生成密码: 密钥交换(Internet Key Exchange,IKE)
Diffie-Hellman:协议
6、公钥加密算法:非对称加密算法
密钥对:
公钥:P
私钥:s
发送方用自己的私钥加密数据,可以实现身份验证
发送方用对方的公钥加密数据,可以保证数据机密性
公钥加密算法很少用来加密数据,速度太慢
7、PKI:Public Key Infrastructure
CA:Certificate Authority
8、x509 ,pkcs12
x509:
公钥及其有效期限
证书的合法拥有者
证书该如何被使用
CA的信息
CA签名的校验码
二、加密算法
1、对称加密:
DES:Data Encrption Standard,56bit
3DES:
AES: Advanced
AES192,AES256, AES512
Blowfish
2、单向加密:
MD4
MD5
SHA1
SHA192, SHA256, SHA384
CRC-32
3、公钥加密:(加密/签名)
身份认证(数字签名)
数据加密
密钥交换
RSA:加密、签名
DSA:签名
ELGamal
4、OpenSSL:SSL的开源实现
libcrpto:加密库
libssl:TLS/SSL的实现
基于会话的、实现了身份认证、数据机密性和会话完整性的库
openssl:多用途命令行工具
实现私有证书颁发机构
5、openssl 实现私有CA:
(1)生成一对密钥
(2)生成自签署证书
openssl genrsa -out /PATH/TO/KEYFILEAE NUMBER
三、证书
1、创建CA
自己生成一对密钥
生成自签证书
2、客户端
生成一对密钥
生成证书颁发请求:.car
将请求发给CA
3、CA端:
签署此证书
传送给客户端:
openSSL : TLS/SSL , (libcryto,libssl,openssl ), TLS PKI
OpenSSH :
4、SSH
telnet ,TCP/23 ,远程登录
认证明文
数据传输明文
ssh:Secure SHell ,TCP/22
C/S
ssh --> SSH
OpenSSH (开源)
ssh(ssh_config)
ssd(sshd_config)
/etc/ssh
ssh:
ssh -l USERNAME REMOTE_HOST ['command']
ssh USERNAME@REMOTE_HOST
5、基于密钥的认证
一台主机为客户端(基于某个用户实现):
1.生成一对密钥
ssh-keygen
-t { rsa| dsa}
-f /path/to/keyfile
-N 'password'
2.将公钥传输至服务器端某用户的家目录下的.ssh/authorized_key文件中
使用文件传输工具传输(ssh-corp-id,scp)
ssh-corp-id -i /path/to/pubkey USERNAME@REMOTE_HOST
3.测试登录
6、scp:基于ssh的远程复制命令,可以实现在主机之间传输数据
scp [options] SRC DEST
REMOTE_MACHINE
USERNAME@HOSTNAME:/path/to/somefile
转载于:https://blog.51cto.com/5001660/2353532