参考资料1
密码:对文本进行编码,使偷窥者无法识别的算法;
密钥:改变密码行为的数字化参数;密码参数;
公钥:公开
私钥:只有主机知道
加解密: 对称加密,非对称加密;
对称加密:加密和解密使用相同的密钥;缺点是发送者和接收者在进行通信之前要有一个共享的保密密钥,这会导致需要保密的密钥过多;DES,AES;
非对称加密: 加解密使用不同的密钥;密钥成对,一个是公钥,一个是私钥;加密内容的长度不能超过公钥的长度;
摘要算法:采用hash函数将需要加密的明文转换成一串固定长度的密文;
数字签名技术:
(1)将摘要信息用发送者私钥加密,与原文一起传送给接收者;接收者只有用发送者的公钥才能解密摘要信息;
(2)然后用hash函数将收到的原文产生一个摘要信息,与解密的摘要信息进行对比,相同,则说明信息完整,在传输过程中没有被修改;否则说明信息被修改过;
签名作用:
(1)签名可以证明是作者编写了这条报文,因为只有作者才有私有密钥;
(2)签名可以防止报文被篡改;
证书:
数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式;又CA机构颁发;
证书签发:
(1)对证书内容进行hash;
(2)使用CA的私钥RSA加密;
待签名内容 -> 哈希 -> 数字摘要 -> CA私钥加密 -> 数字签名
证书校验:
数字签名 -> CA公钥解密 -> 数字摘要1
待签名内容 -> 哈希 -> 数字摘要2
比较「数字摘要1」和「数字摘要2」是否相等
概念:以安全为目标的HTTP通道,是HTTP的安全版,即在HTTP下加入SSL层;
作用:
内容加密:建立一个信息安全通道,确保信息传输安全
身份认证:确认网站真实性
数据完整性:防止内容被第三方篡改和冒充
劣势:
需要进行非对称加解密,且需要三次握手,首次连接比较慢;
不允许在本地有https缓存,但是可以通过相关的http首部可以实现缓存;
http与https区别:
(1)https需要到CA申请证书;
(2)http是明文传输的超文本传输协议,https是具有安全性SSL加密传输协议;
(3)端口不一样:http 80端口,https 443端口
SSL握手过程:
()Client端向Server端的443端口发出请求,带上随机数client_random和支持的加密方式列表
Server端返回随机数server_random ,选择的加密方式和服务器证书链
Client端验证这个证书是否合法,如果非法则提示用户是否“继续接受这个不可信的网站”,如果合法则使用证书中的公钥加密premaster secret发送给服务端
Server端使用私钥解密premaster secret,然后通过client_random,server_random 和premaster secret 生成master secret,用于对称加密后续通信内容。
Sever端用master secret加密最终需要返回的网站内容
Client端也用相同的方式生成这个master secret解密收到的消息
Session恢复:
对话中断,如何恢复连接
(1)Session id:每次对话有一个编号(Session id),如果对话中断,下次重连的时候,客户端只要给出这个编号,且服务端保存了这个编号,通信双方可以使用已经存在的对话密钥,而不必重新生成;
缺点在于session ID往往只保留在一台服务器上。所以,如果客户端的请求发到另一台服务器,就无法恢复对话。
(2)Session ticket:客户端发送一个上次对话中服务器发送过来的Session ticket,这个Session ticket是加密的,其中包含对话的主要信息,比如对话密钥,加密算法,只有服务器才能解密,当服务器收到Session ticket,解密之后就不需要重新生成对话密钥了;