如何保障https网站SSL/TLS的安全性?

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 后续

    后续也不知道写什么,有想法小伙伴的欢迎留言……


你可能感兴趣的:(如何保障https网站SSL/TLS的安全性?)