HTTPS协议
一、网络安全涉及问题
1、数据机密性
在网络传输数据信息时,对数据的加密是至关重要的,否则所有传输的数据都是可以随时被第三方看到,完全没有机密性可言。
2、数据完整性
网络传输数据的完整性,也是安全领域中需要考虑的重要环节,如果不能保证传输数据的完整性,那传输过程中的数据就有可能被任何人所篡改,而传输数据双方又不能及早的进行发现。
3、身份验证问题
网络中传输数据时,很有可能传输的双方是第一次建立连接,进行相互通讯,既然是第一次见面沟通,如何确认对方的身份信息,的确是我要进行通讯的对象呢? 如果不是正确的通讯对象,在经过通讯后,岂不是将所有数据信息发送给了一个陌生人。
二、解决如上问题
针对以上几个问题,可以用以下几种数据加密方式来解决(每种数据加密方式又有多种不同的算法实现):
数据加密方式 描述 主要解决的问题 常用算法 对称加密 指数据加密和解密使用相同的密钥 数据的机密性 DES, AES 非对称加密 也叫公钥加密,指数据加密和解密使用不同的密钥--密钥对儿 身份验证 DSA,RSA 单向加密 指只能加密数据,而不能解密数据 数据的完整性 MD5,SHA系列算法 对称加密
对称加密算法,如其名,就是使用同一个秘钥进行加密和解密。 优点是速度较快,适合对数据量比较大的数据进行加密。 缺点是密钥的保存方式需要保证,一旦加密或者解密的哪一方泄漏了密钥,都会导致信息的泄漏。 常用的对称加密算法有:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AES。
非对称加密
非对称加密,加密,解密,必须使用一个公开的公钥(public key)一个必须保护好的私钥(private key)。 公钥、私钥、成对出现,通过公钥加密的数据,只能用该私钥解密。
三、HTTPS协议
HTTPS协议不是单独的协议,而是基于HTTP+SSL或者HTTP+TLS的组合协议。 SSL 的全名是 Secure Sockets Layer 安全套接字层 TSL (Transport Layer Security) 安全传输层协议
作用
不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 (1) 窃听风险(eavesdropping):第三方可以获知通信内容。 (2) 篡改风险(tampering):第三方可以修改通信内容。 (3) 冒充风险(pretending):第三方可以冒充他人身份参与通信。 SSL/TLS协议是为了解决这三大风险而设计的,希望达到: (1) 所有信息都是加密传播,第三方无法窃听。 (2) 具有校验机制,一旦被篡改,通信双方会立刻发现。 (3) 配备身份证书,防止身份被冒充。 互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度。 而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL/TLS协议变得异常复杂。
HTTPS解析流程
1. 服务端有一对儿数字证书,包含私钥、公钥,也被称为CA证书,这个证书由专门的证书服务商提供,受互联网信任。(也可以自己创建CA证书,但是没人认。。) 2. 客户端发起https://请求,默认端口443 3. 服务端接收到请求后自动将自己的CA证书发给客户端 4. 客户端收到CA证书后,浏览器自动判断,是否在有效期内,是否受互联网信任,信任就是小绿锁,否则就是红色大叉。 5. 客户端如果验证证书通过、此时会【生成一个随机数】通过公钥对随机数加密 6. 客户端将这个【公钥加密后的随机数】发给服务端 7. 服务端接到这个【公钥加密后的随机数】后,使用自己的随机数解密,确认建立连接,后续的所有数据交互,通过这个随机数实现数据【对称加密】。
四、HTTPS证书实践
证书类型与区别
DV、免费、个人证书 OV、企业级证书 EV、银行等高安全证书 DV类型证书:中文全称是域名验证型证书,证书审核方式为通过验证域名所有权即可签发证书。此类型证书适合个人和小微企业申请,价格较低,申请快捷,但是证书中无法显示企业信息,安全性较差。在浏览器中显示锁型标志。 OV类型证书:中文全称是企业验证型证书,证书审核方式为通过验证域名所有权和申请企业的真实身份信息才能签发证书。目前OV类型证书是全球运用最广,兼容性最好的证书类型。此证书类型适合中型企业和互联网业务申请。在浏览器中显示锁型标志,并能通过点击查看到企业相关信息。支持ECC高安全强度加密算法,加密数据更加安全,加密性能更高。 EV类型证书:中文全称是增强验证型证书,证书审核级别为所有类型最严格验证方式,在OV类型的验证基础上额外验证其他企业的相关信息,比如银行开户许可证书。EV类型证书多使用于银行,金融,证券,支付等高安全标准行业。其在地址栏可以显示独特的EV绿色标识地址栏,最大程度的标识出网站的可信级别。支持ECC高安全强度加密算法,加密数据更加安全,加密性能更高。
DV证书购买注意事项
1. 一个通配符证书只支持二级域名 2. DV证书最多买3年,不支持续费,只能买新的 3. DV证书到期后浏览器告警不安全 4. 微信小程序、苹果商店等已经全面要求必须https 5.证书提前买,别突然到期了网站挂了,
通过openssl命令检测证书过期时间
脚本监控证书过期时间 server_name=www.apecome.com # 获取网站的证书有效期 ssl_time=$(echo | openssl s_client -servername ${server_name} -connect ${server_name}:443 2>/dev/null | openssl x509 -noout -dates|awk -F '=' '/notAfter/{print $2}') # 转换时间戳 ssl_unix_time=$(date +%s -d "${ssl_time}") # 获取今天时间戳 today=$(date +%s) # 计算剩余时间 let expr_time=($ssl_unix_time-$today)/24/3600 echo "${server_name} 该ssl证书剩余时间:$expr_time"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性