网站上传图片要求,广告网站模板下载 迅雷下载安装,那个网站可以做学历认证,企业开展网站建设1. SSL与TLS
SSL/TLS是一种密码通信框架#xff0c;他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码#xff0c;消息认证码#xff0c;公钥密码#xff0c;数字签名#xff0c;伪随机数生成器等#xff0c;可以说是密码学中的集大成者。
TLS…1. SSL与TLS
SSL/TLS是一种密码通信框架他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码消息认证码公钥密码数字签名伪随机数生成器等可以说是密码学中的集大成者。
TLS协议和SSL协议是一脉继承的TLS是从SSL3.0的基础上发展而来两者的关系如下 TLS/SSL位于OSI七层模型中的会话层或表示层是介于传输层与应用层之间的一种协议。 当前最常用的Https协议就是由 Http TLS 加密结合的协议。
2. 密码学相关理论
加密
数据每时每刻都在互联网中传输从而实现各个终端对数据的获取需求。刚开始的时候数据都是明文传输的每个TCP包中包裹着终端每次请求的数据。这种包被传输链路中某个节点监听后就会造成数据泄露因此网景公司提出了SSL协议于Web的安全传输。
可以看到加密后传输协议隐藏为TLS传输的内容变成了乱码。 服务器发送该加密报文客户端解密后就可以得到原来的内容。
密钥
数据的加密是通过密钥进行的通过密钥明文被加密成密文。密钥非为对称加密密钥和非对称加密密钥这个在之后详细介绍。密钥为一段随机生成的数通常以 .pem或者 .key文件保存可以使用Openssl生成。
OpenSSL
openssl是一个开源密码学工具可以生成密码、创建CA证书、加解密等我们系统的加解密也是基于这个开源软件尽心开发的openssl的基本指令如下
//生成一个2048位的密钥
$ openssl genrsa -out server.key 2048 //根据私钥生成公钥
$ openssl req -new -key server.key -out server.csr -config csr.conf//使用CA证书对公钥进行认证
$ openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf//使用pkcs12将公钥与私钥加密打包
$ openssl pkcs12 -export -out server.pfx -in server.crt -inkey server.key openssl的使用可以参考网上的文章
OpenSSL的基本使用教程(一_openssl lite使用教程-CSDN博客
3. 对称加密
对称加密是指加密解密都是使用同一个密钥。服务器使用该密钥进行加密经过传输后客户端使用该密钥解密。该方式效率高但存在安全隐患。
服务器在传输报文之前首先需要将密钥以明文的方式传输给客户端如果此时密钥被黑客得到那么之后的所有密文都不具有加密效果。
为了解决这个问题研究人员进一步提出了非对称加密。
4. 非对称加密
非对称加密具有一个密钥对公钥和私钥理论上来说公钥和私钥并不区分便于区分将保存在本地的那个叫做私钥将需要传输给对方的那个叫做公钥。
数据经过私钥加密后只能由对应的公钥解密同样数据经过公钥加密后只能由对应的私钥解密。
那么只要客户端拥有服务器的公钥通过公钥加密报文服务器用自己的私钥解密就可以实现对传输过程的加密。
非对称加密的效率比较低因此实际使用的场景并不多。
以Https为例其传输的过程为
1.服务器拥有公钥 cer1私钥key1客户端拥有对称加密钥匙 key2
2.服务器将 cer1 明文发送给客户端
3.客户端使用 cer1 对自己的 key2 进行加密同时传输给服务器 key2cer1
4.服务器使用key1对收到的 key2cer1 进行解密得到key2
5.之后服务器与客户端使用 key2 进行对称加密
该过程仍然存在风险黑客可以通过中间人假冒向客户端发送自己的公钥从而得到最后的对称密钥。
通过保证公钥的正确性即可检验出黑客假的公钥 cer2 因此提出了CA认证只有经过CA认证的公钥才是安全的公钥。
5. CA证书与电子签名验证 为了保证公钥的正确性防止黑客使用自己的公钥冒充服务器公钥截取客户端生成的对称密钥使用CA机构对公钥进行签名可通过CA证书验证来证明公钥的正确性。
CA机构是权威的第三方机构本身具有自己的CA公钥与CA私钥CA公钥是发给全体互联网成员的可以将其称为CA证书。
服务器需要将自己的 公钥以及认证信息经过HASH加密后发改CA机构CA机构使用CA私钥对提交的信息进行加密这就得到了带有数字签名的数据。
在使用时使用CA公钥对带有数字签名的数据解密得到经HASH后的数据同时将公钥以及认证信息 经过HASH加密后与CA解密后的数据比对验证电子签名的安全性。