HTTPS协议原理

钟明宏 1月前 ⋅ 17 阅读

SSL(Secure Socket Layer,安全套接层协议)是建立在HTTP传输协议之上的,它不但通过加密保证传输的安全性,而且还可以通过获得认证证书CA保证客户端连接的服务器是安全的。

SSL所使用的技术

  • Hash编码是使用Hash(散列)算法从任意长度的消息中计算Hash值的一个过程,Hash值可以说是消息的指纹,或者说是摘要,对于不同的消息几乎存在不同的Hash值,如果存在相同的可以采用开链法避免,在SSL通信过程中,可以对消息的Hash值进行加密,确保传递的消息在传输过程中没有被修改
  • 分对称加密或称之为公钥贾加密使用数学上的相关的两个数值来对信息进行编码,其中一个数字称为公钥,另一个称为私钥。公钥加密信息可以用私钥解密,私钥加密的信息可以用公钥解密。由于公钥可以大面积发放,因此公钥加密在SSL通信中应用于对秘钥的加密或者进行数字签名

对称加密和非对称加密的区别在于:对称加密中,加密信息和解密信息使用的同样的秘钥。因此改秘钥无法公开,一旦知道其密码,加密完全失效,但是其具有加密、解密快速,方便的特点

数字证书

数字证是互联网通信中标志各方身份信息的一系列数据,提供了一种在Internet上验证你的身份,它由一个权威机构-CA机构,又称证书授权中心发行。数字证书包含公钥秘钥的拥有者、公开密钥的文件、名称、证书授权中心的数字签名。

数字证书的基本功能

  • 信息的保密性
  • 交易中身份的确定性
  • 不可否认性
  • 不可修改性

SSL协议通信流程 TIM截图20200410182305.png

SSL协议由SSL记录协议和SSL握手协议两部分组成

SSL记录协议

在SSL协议中,所有的传输数据都被封装在记录中,记录由记录头和长度不为0的记录数据组成的。所有的SSL通信包括握手消息、安全空白记录和应用数据都使用SSL记录层,记录协议包含了记录头和记录数据格式的规定

SSL握手协议 SSL握手协议层包括SSL握手协议(SSL handshake protocol)、SSL密码参数协议(SSL change cipher spec protocol)、应用数据协议(application data protocol) 和SSL报警协议(SSL alert protocol).握手协议层的这些协议用于SSL管理信息的交换,允许应用协议传送数据之前相互验证,协商加密算法和生成秘钥等。

TLS 和 SSL 的差异

  • 版本号:TLS记录格式和SSL记录格式相同,但版本号的值不同。TLS的版本使用的版本号为SSLv3.1
  • 报文鉴别码:SSLv3.0 和TLS 的MAC算法和MAC的范围不同.TLS使用了RFC-2014定义的HMAC算法。SSLv3.0使用了了相似的算法,两者差别在于SSLv3.0中,填充字节与秘钥之间采用的是连接运算。而HAMC算法采用的异或运算。但是两者的安全程度是相同的
  • 伪随机函数:TLS 使用了称之为PRF的伪随机函数来将密钥扩展成数据块,
  • 报警代码:TLS还补充定义了很多报警代码,比如解密失败(decryption_failed)、记录溢出(record_overflow)、未知CA(unknown_ca)、拒绝访问(access_denied)等
  • 密文族与客户证书:TLS不支持Fortezza密钥交换、加密算法和客户证书
  • certificate_verify 和 finished 消息:在计算MD5 和SHA-1散列码时,计算的输入有少许差别
  • 加密计算:在计算主密值时采用的方式不同
  • 填充:用户数据加密之前需要添加的填充字节,在SSL中填充后的数据长度可以是密文块长度的最小整数倍。而在TLS中,填充后的数据长度可以是密文块长度的任意整数倍。最大为255字节,这种方式可以防止基于读报文长度进行分析的攻击

全部评论: 0

    我有话说: