Linux 之加密类型,CA,Openssl,Openssh

时间:2021-09-07 15:50:01

TCP/IP:安全
A------->B
机密性:明文传输(ftp,http,smtp,telnet),被窃听
完整性:消息被篡改
身份验证:你访问的主机就是你真实要访问的那台,而不是钓鱼网站

机密性:
加密,即转换规则。算法不变,密钥规则要变。
对称加密:加密和解密的密钥是一致的

完整性:
单向加密算法:提取数据特征码
输入一样:输出必定一样
雪崩效率:输入的微小改变,将会引起结果的巨大改变
定长输出:无论原始数据是多大,结果大小都是相同的
不可逆:无法根据特征码还原原来的数据

协商生成密码:密钥交换(Internet Key Exchange,IKE)
Diffie-Hellman协议
A: p(大质数),g(生成数)
A:x(只有A知道)
B: y(只有B知道)
A: 传输g^x%p--->B
B: 传输g^y%p--->A
A: 收到以后计算(g^y%p)^x=g^y^x%p
B: 收到以后计算(g^x%p)^y=g^x^y%p

公钥加密算法:非对称加密算法
密钥对:
公钥:p
私钥:s
发送方用自己的私钥加密数据,可以实现身份验证
发送方用对方的公钥加密数据,可以保证数据机密性

PKI:Public Key Infrastructure(基础)
CA:Certificate Authority

CRL:证书吊销列表

x509,pkcs12等证书格式
x509:公钥及其有效期限,
证书的合法拥有者,
证书改如何被使用,
CA的信息
CA签名的校验码

PKI:TLS/SSL:x509的证书格式

PKI:OpenGPG:

SSL:Secure Socket Layer(安全的套接字层),网景公司研发
嵌套在应用层和传输层之间。应用程序在到达传输层之前调用SSL模块的话就会被加密。
TLS:Transport Layer Security,更为开放,不为任何公司所有。

OSI七层模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
TCP/IP四层模型:网络接口层,网间层,传输层,应用层

对称加密:
DES:Data Encrption Standard,56bit
3DES:
AES:Advanced Encrption Standard,128bit
AES192,AES256,AES512
Blowfish:

加密工具:openssl,gpg

单向加密(定长输入):
MD4,MD5,SHA1,SHA192,SHA256,SHA384,SHA512,CRC-32

公钥加密(非对称加密):
身份认证
数据加密
密钥交换
RSA:加密、签名
DSA:签名
ElGamal:

OpenSSL: SSL的开源实现
libcrypto:加密库
libssl:TSL/SSL的实现(基于会话的、实现了身份认证、数据机密性和会话完整性的库)
openssl:多用途命令行工具(实现私有证书颁发机构)

Openssl实现私有CA:
1、生成一对密钥
公钥是源自私钥,从私钥提取的。
生成私钥:openssl genrsa -out KEYFILENAME NUMBITS
提取公钥:openssl rsa -in KEYFILENAME -pubout

2、生成自签署证书


Openssh:
1.基于口令的传输
2.基于密钥的传输

基于密钥的认证:
1.生产一对密钥
2.将公钥传输至服务器端某用户的.ssh/authorized_keys文件中
3.测试登陆

[hadoop@saltstack1 .ssh]$ ssh-copy-id -i id_rsa.pub root@192.168.144.50
10
root@192.168.144.50's password:
Now try logging into the machine, with "ssh 'root@192.168.144.50'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[hadoop@saltstack1 .ssh]$ ssh -l root 192.168.144.50
Last login: Wed Nov 30 12:34:29 2016 from saltstack1
[root@saltstack2 ~]# exit
logout