01 前言
感谢大家对上一篇文章《一步一步开发SSL在线工具》的关注,发现除了工作,写代码,在掘金上分享内容也是一件很快乐的事情,这篇文章结合自己写SSLeye的部分功能,谈下自己对SSL安全的浅显看法,大佬绕路,勿喷^-^
目前互联网中的https一般都是单向SSL认证,也有双向认证的;什么是单向、双向认证,不做冗余阐述,请自行度娘~ 本文主要从https网站搭建的过程来阐述其SSL的安全性,主要点包括:
(1)、证书申请
(2)、服务器SSL配置
(3)、SSL链路检测
(4)、漏洞与升级
02 证书申请
当前市面上数字证书的品牌很多,国内直销和代理证书的公司也很多,至于选择哪一个公司、哪一种品牌的证书,其实主要考虑证书客户端(app、浏览器)的兼容性和售后服务,反正证书个人觉得有点贵,买不起*-*,到现在SSL在线工具(www.ssleye.com)没有启用Https,泪奔...
证书的申请主要包括:
(1)、向证书公司提交生成的证书请求文件(CSR)
(2)、证书公司对CSR进行签名生成签名证书
(3)、证书公司向客户反馈生成的证书链(客户证书、中间证书、根证书)
安全要求:
1、用户应自行生成证书请求文件(CSR),因为生成证书请求文件的同时,也生成了私钥;用户保存好私钥,向证书公司只提供证书请求文件,至于为什么,不要明说,因为你不可能证书请求文件和私钥都给别人吧,怕怕怕~~
2、在生成证书请求文件时,选择加密算法、加密强度和签名算法时;如RSA算法,加密强度应>=2048,签名算法》=SHA1,不建议使用不安全的算法算法和签名算法,如RSA1024、MD5等。
3、建议生成CSR时,对私钥进行加密,保证私钥的安全性。
如通过SSLeye-CSR生成,制作证书请求文件如下:
然后将生成的证书请求文件(CSR)提交给证书公司即可。
小提示:证书的合成顺序是:用户证书、中间证书、根证书,通过文件编辑器按照顺序编辑好保存。
03 服务器SSL配置
服务器SSL配置主要强调在配置SSL时,应避免使用不安全的协议和加密套件,以及是否启用相关的其他增强型安全功能。
安全要求:
(1)、SSL协议应至少使用TLS1.0及以上,出于老版本浏览器兼容性原因,适当启用SSL3.0,禁止使用SSL2.0。
(2)、避免使用不安全的加密套件,包括:NULL、anonymous、EXPORT、RC4、MD5、PSK、ADH。
(3)、加密套件中选择的加密强度应>=128bits。
(4)、更高级别的安全性要求,如支持ATS标准、HSTS、CAA、防止降级攻击、正向保密等。
小提示:3DES算法似乎也被ssllabs标记为弱加密算法。
04 SSL链路检测
待服务器SSL配置完成后,可通过SSL相关检测工具对配置进行核查,检查是否使用不安全SSL协议和加密套件。
SSLeye-协议与套件模块,可检测服务器支持的SSL协议和加密套件,如检测掘金如下:
小提示:SSLeye目前不支持TLS1.3协议的检测,后续再升级吧...
04 漏洞与升级
SSL漏洞造成的原因很多,其中不安全的协议和加密套件占了不少部分。因此,Https网站上线前,应对SSL常见漏洞进行扫描,若发现漏洞应及时修复。
网站管理员应坚持每天关注SSL安全资讯,及时发现SSL 0day漏洞并迅速修复,升级OpenSSL版本,PS,不知道“heartbleed”漏洞多少人深夜在升级Openssl。
目前,SSLcve支持9种SSL漏洞检测,后续更降级攻击检测、ROBOT漏洞扫描。
小提示:ssllabs是鼻祖级SSL检测网站,推荐^-^,PS:SSLeye不是抄袭~~~
05 后续
后续也不知道写什么,有想法小伙伴的欢迎留言……