加密常见的算法,
对称的加密算法,(加密解密用的同一把秘钥)
非对称的加密算法,(通讯双方可能用4把钥匙,各有两把钥匙,公钥私钥,公钥加密的只能用私钥解密,公钥公开的)
即可实现数据加密通讯(用对方公钥加密用,网络中的人就算截获,也不能解开密码)
实现一个指令下发很多人,收到指令后,能确认发件的人事你,(作战部队确认是上司发过来的)
如何确认只能用自己的私钥加密,解密就只能用你的公钥解密,反过来证明数据来源
哈希算法(单向散列)数据加密好形成了摘要
数据处理成摘要
是一种不可逆的加密方式
可以实现数据的完整性检查,数据发生变化哈希值就变化,摘要就变化
实际情况下,都是组合使用
**都实现需要用,
数据用哈希算法处理,算出摘要,摘要用自己私钥签名,再和数据组合到一块,
再用对称秘钥加密,再用对方的公钥对对称秘钥进行加密
**
上面这种方法,仍然有漏洞让黑客入侵
因为公钥是公开的就无法确认拿到的公钥是否就是对方的公钥
如何实现可信的公钥安全交换
a和b都信任ca
就都拿到了ca的公钥
还可以由更高级的ca来给下一级ca授权
最高级ca自己给自己签名,每个人都有跟的公钥,这些跟的公钥实际上有很多内置在软件中,互联网上著名的跟的ca
比如12306原来自己给自己搭的跟CA,会跳出此网站不可信任,后来买了windows权威ca就不跳转提示
在控制台security查看证书
个人搭建https要购买证书
*泛域名证书,www.magedu.com申请的证书只能用于这个域名(study.magedu.com这个就使用不了)
泛域名就可以 .magedu.com这个域名都可以使用
淘宝就是用的泛域名证书,有效期一般都是1年,跟ca的一般证书时间比较长
、
证书可以导出生成的文件,里面有信息,和公钥
放到linux查看是什么样子
**PKI公共的秘钥体系,基于公钥私钥的体系来实现的
CA颁发机构
RA注册机构,能申请信息,但是不能颁发整数据
CRL记录谁颁发的证书被吊销了
被吊销列表也可以被看到
CA颁发了哪些证书 需要存储的一个数据库里 **
记录了被吊销证书的列表
证书在保存的时候有标准,x.509
主体名称就是给谁颁发的
证书有很多种类型,有服务器用的,给用户用的,证书授权机构的用的,子ca
ssl secure socket layer安全套接层
tsl transport layer security传输层安全性
重放保护
数据安全,传输中截获数据是解密不了的
认证,验明你的身份
实现数据的完整性检查
防重放:用户密码放在数据报文里,会被第三方截获,然后重新发给网站,网站核实用户密码正确,就重新登录了,这样就可以绕过网站 的检查,让用户登录成功
同样的数据包再发就过期了
tcp协议的分层,tcp,udp
应用层的数据到达ssl/tls封装头部,就算被截获,也看不到数据,之能看到ip地址,
TLS是很多小协议的组合
上层应用协议有httpd协议,telnet协议
上层用httpd协议,下层用tls协议加密,就叫https协议
https如何实现中间通讯安全、
第一步,客户端向服务器发消息,hello
,服务器回复hello,会把自己的证书发到客户端
(证书包含CA签名过的公钥,CA信息描述,有效期,淘宝的公钥)
客户端由于信任ca有ca公钥,就可以把数据解开,拿到淘宝公钥,
一般客户端会在自己的浏览器生成一个对称秘钥,用淘宝的公钥加密,发给淘宝,淘宝解开得到对称秘钥
进行支付宝转账,可能会要求你加证书,就是客户端证书,验证客户端证书,安装证书就需要,短信验证什么,就验明就是你本人
openssl这个软件就是实现ssl的实现方式
目录和工具很重要,之前用来生成随机数
enc加密。ca证书,req申请证书
**base64编码,用可见易读的 a-z A-Z 0-9 / + 表示编码 64 **
16进制,011000=24 010110=22
0-25 是A-Z
26-52是a-z
53-61是0-9
62是+
63/
salt 加点盐,造成的加密都不一样,
=是无效数据凑数的,
加密
man enc 看帮助
解密,-o可以生成文件