课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
加密算法是许多人在学习软件编程开发技术的时候需要重点掌握的一个编程概念,而本文我们就通过案例分析来简单了解一下,计算机网络加密与优化方法分享。
一、对称密钥加密和非对称密钥加密
对称秘钥加密
对称密钥加密(Symmetric-KeyEncryption),加密和解密使用同一密钥。
优点:运算速度快
缺点:无法安全地将密钥传输给通信方
非对称秘钥加密
非对称密钥加密,又称公开密钥加密(Public-KeyEncryption),加密和解密使用不同的密钥。
公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。
非对称密钥除了用来加密,还可以用来进行签名。因为私有密钥无法被其他人获取,因此通信发送方使用其私有密钥进行签名,通信接收方使用发送方的公开密钥对签名进行解密,就能判断这个签名是否正确。
优点:可以更安全地将公开密钥传输给通信发送方;
缺点:运算速度慢。
二、HTTPS如何优化
对于硬件优化的方向,因为HTTPS是属于计算密集型,应该选择计算力更强的CPU,而且好选择支持AES-NI特性的CPU,这个特性可以在硬件级别优化AES对称加密算法,加快应用数据的加解密。
对于软件优化的方向,如果可以,把软件升级成较新的版本,比如将Linux内核2.X升级成4.X,将openssl1.0.1升级到1.1.1,因为新版本的软件不仅会提供新的特性,而且还会修复老版本的问题。
对于协议优化的方向:
密钥交换算法应该选择ECDHE算法,而不用RSA算法,因为ECDHE算法具备前向安全性,而且客户端可以在三次握手之后,就发送加密应用数据,节省了1RTT。
将TLS1.2升级TLS1.3,因为TLS1.3的握手过程只需要1RTT,而且安全性更强。
对于证书优化的方向:
服务器应该选用ECDSA证书,而非RSA证书,因为在相同安全级别下,ECC的密钥长度比RSA短很多,这样可以提高证书传输的效率;
服务器应该开启OCSPStapling功能,由服务器预先获得OCSP的响应,并把响应结果缓存起来,这样TLS握手的时候就不用再访问CA服务器,减少了网络通信的开销,提高了证书验证的效率;
对于重连HTTPS时,我们可以使用一些技术让客户端和服务端使用上一次HTTPS连接使用的会话密钥,直接恢复会话,而不用再重新走完整的TLS握手过程。
常见的会话重用技术有SessionID和SessionTicket,用了会话重用技术,当再次重连HTTPS时,只需要1RTT就可以恢复会话。对于TLS1.3使用Pre-sharedKey会话重用技术,只需要0RTT就可以恢复会话。
这些会话重用技术虽然好用,但是存在一定的安全风险,它们不仅不具备前向安全,而且有重放攻击的风险,所以应当对会话密钥设定一个合理的过期时间。
三、WebSocket协议
websocket是一种浏览器与服务器进行全双工通信的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道,用来弥补HTTP协议在持久通信能力上的不足。
ws默认端口:80
wss默认端口:443
Websocket通过HTTP协议握手。
websocket的特点有哪些?
节省资源开销,HTTP请求每次都要携带完整的头部,此项开销显著减少了;
更强的实时性,由于协议是全双工通信,所以服务器可以主动给客户端推送数据,相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;
保持连接状态,能够记录用户状态,通信时可以省略部分状态信息,不像HTTP每次都需要携带用户认证信息;
更好的二进制支持,Websocket定义了二进制帧,相对HTTP,可以更轻松地处理二进制内容。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。