LInux上的加解密工具:OpenSSL,GPG(pgp协议)
- 加密算法和协议:
- 对称加密:加密和解密使用同一个密钥;(一对多的情况下不建议使用)
DES:DataEncryption Standard(54位,已被攻破)
3DES:升级版
AES:高级加密标准(128bits,192,258,384,512)
Blowfish , Twofish , IDEA , RC6 , CAST5
特性:
a. 加解密使用同一个密钥;
b. 将原始数据分割成固定大小的块,逐个进行加密;
缺陷:
a. 通信方增多时,密钥过多;
b. 密钥分发 - 公钥加密:密钥是成对出现的
公钥:公开给所有人;
私钥:自己留存,必须保存其私密性;(可用对称加密再次加密私钥文件)
特点:公钥加密私钥解,私钥加密公钥解;
常用领域:
身份认证(数字签名):主要让接收方确认发送方的身份
密钥交换:发送方用对方的公钥加密一个对称密钥,并发送给对方
数据加密(一般不使用,由于私钥太长导致效率过低)
算法:RSA,DSA,ELGamal - 单向加密:只能加密,不能解密,提取数据指纹
特性:定长输出,雪崩效应
算法:
md5:128bits
sha1:160bits
sha(224|256|384|512)
功能:完整性验证
- 对称加密:加密和解密使用同一个密钥;(一对多的情况下不建议使用)
https的过程+详解
http://blog.jobbole.com/110354/ 推导过程
http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html 详解
搬运一张原理图
-
https 过程图解
交换图解
一句话的总结
HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证安全,然而直接使用非对称加密的过程本身也不安全,会有中间人篡改公钥的可能性,所以客户端与服务器不直接使用公钥,而是使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。这样通过这些机制协商出一个对称加密算法,就此双方使用该算法进行加密解密。从而解决了客户端与服务器端之间的通信安全问题。
更详细:https://www.jianshu.com/p/b0979f0b04fa
签署证书步骤:
http://blog.51cto.com/1inux/1638154
http://blog.51cto.com/zebralinux/1540851
网友评论