友点企业网站,网站推广站,做网站的前端是做什么,wordpress小店主题首先了解一下http协议的变迁。 http1.0默认短连接#xff0c;1.1默认长连接并且可以管道传输#xff0c;但是存在队头阻塞问题#xff1b; https就是在tcp和http之间加了SSL/TLS层。 http2也是安全的#xff0c;改进是hpack二进制和编码压缩减小体积#xff0c;stream没有…首先了解一下http协议的变迁。 http1.0默认短连接1.1默认长连接并且可以管道传输但是存在队头阻塞问题 https就是在tcp和http之间加了SSL/TLS层。 http2也是安全的改进是hpack二进制和编码压缩减小体积stream没有队头阻塞了TCP层还有以及服务器主动推送功能 http3把TCP变成udp了 并且在上层用QUIC协议保证可靠传输速度更快了并且QUIC,TLS在一层可以合并所以连接只需要1RTT就够了基于连接id还可以实现连接迁移。
SSL/TLS tls是升级版的ssl,ssl到3.0之后就改名tls1.0了。ssl分成两层ssl记录协议和ssl握手协议。记录协议主要负责对tcp的数据进行封装压缩加密相当于表示层了。握手协议就是常说的https的四次握手过程建立连接协商秘钥协商加密算法不过四次握手还涉及到CA证书的验证。ssl叫习惯了
tls的改进点在于HMAC算法保证更安全的MAC功能更多的告警代码支持的加密算法不同。
到现在看来https包含了ssl/tls然后ssl协议里面又会涉及到CA证书的验证过程保证双方的可靠性。以及加密和数字摘要保证消息不被监听和篡改。 关于加密算法 对称加密算法加密解密用一种DES,DES3等等但是因为有可能对称秘钥传输过程会被窃取所以不安全 非对称加密公钥加密私钥解密。如RSA由于私钥不会传输所以信息无法被窃取。但是速度慢所以一般用来对秘钥进行加密的。 四次握手大致过程: hello打招呼把密码列表版本号以及随机数给服务端服务端也会生成随机数确定密码列表给额客户端中间有CA证书验证过程保证服务端合法的后两次就是客户端利用服务端的公钥加密一个随机数利用这三个随机数生成对称秘钥然后尝试加密消息并消息摘要看看行不行。
CA: 是一个颁发数字证书的权威机构。比如GlobalSign、DigiCert 和 GoDaddy。一般浏览器使用的CA证书都是存在于浏览器和操作系统的所以可以保证CA证书的安全。 CA作用 确认服务端可靠并且里面的公钥可以把三个随机数生成对称秘钥然后和服务端私钥结合实现数据加密作用。 C证书链式结构每个CA有几个子 CA信任链所以编程时如果浏览器没有再到操作系统找根证书链不然耗时。 CA证书有什么 有不同的格式有的是可编辑的PEM,二进制的DEM. 其中X.509就是可编辑中的一种。 具体的CA证书采用的是X509格式的。主要包含以下三个文件 keycsrcrt。 key是服务器的私钥不传输用于加密解密的。 csr是签名请求文件用于给CA让它签名签名才有效 crt:签名后或者自签名rusttls的证书包括服务器公钥服务器的id信息以及签名人的信息。
具体rusttls怎么实现签名的 1、certify的库主要就是利用内部算法生成一个CA机构然后把客户端服务端的csr给CA签名。得到 crt文件存到一个目录中。 2.根据前面得到的 证书生成clientconfig,serverconfig; 3、利用内2部的connect函数就可以把stream转换成tlsstream。实际上就是from into trait
在开发测试环境中常见的ssl证书生成的开源工具有openssl,rusttls等。我用的后者相比openssl,编译连接简单速度快。