返回顶部
首页 > 资讯 > 精选 >SSL和TLS的部署方法
  • 748
分享到

SSL和TLS的部署方法

2023-06-17 06:06:31 748人浏览 泡泡鱼
摘要

这篇文章主要讲解了“SSL和TLS的部署方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SSL和TLS的部署方法”吧!在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥

这篇文章主要讲解了“SSL和TLS的部署方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SSL和TLS的部署方法”吧!

在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥来防止攻击者进行模拟攻击。同样重要的是拥有一个有效和强大的证书,它会授予私钥来代表一个特定的主机名。

对于大多数网站都来说,由2048位RSA密钥提供的安全性就已经足够了。 由于RSA公钥算法应用广泛,从而使得它成为安全的默认选择。对于2048位的RSA密钥来说,能够提供大约112位密钥。如果你想要更高的安全性, RSA密钥则不能很好地进行扩展。比如,要获得128位的密钥,就需要3072位的RSA密钥,这显然运行较慢。椭圆曲线数字签名算法ECDSA显示为你提供了更好的安全性和更好的性能。以ECDSA256为例,,ECDSA密钥提供了128位的密钥。

如何保护私钥

(1)要在具有足够熵的可信计算机上生成私钥。

(2)从一开始就要为密钥设置密码保护,以防止在存储到备份系统中时受到攻击。私钥密码在实际运行中不会有太大的安全保障,因为威胁者完全可以随时从进程内存中检索密钥。利用硬件设备(硬件安全模块或HSM),即使在服务器受损的情况下也可以保护私钥,但是这些设备是昂贵的,因此仅适用于对安全有严格安全性要求的机构。

(3)被攻击后,撤销旧证书并生成新密钥。

(4)每年更新证书,建议你的设备可以自动执行此过程,因此具有较短使用周期的证书在实践中更为安全。

(5)除非特殊情况,否则每当获得新证书时,就应该生成相应的新私钥。

确保证书覆盖所使用的网站

确保你的证书覆盖你所使用的网站,避免无效的证书警告。

即使你只有一个域名,你也应确保证书与www前缀有关,例如,example.com和www.example.com。安全的WEB服务器的每个DNS名称都应该配置一个有效的证书。还有就是,访问私钥的人越少越好。

可靠的CA获取证书

选择CA时,请注意以下5方面:

(1)所有CA的安全状态都要经过定期审核;

(2)选择以CA为主业务且提供各种功能支持的机构;

(3)你选择的CA应提供证书吊销列表(CRL)和在线证书状态协议(OCSP)撤销的支持;

使用强大的证书签名算法

证书安全性取决于用于签署证书的私钥的强度及签名中使用的哈希函数的强度。原来大多数证书都依赖于SHA1散列函数,不过现在已经证实这是不安全的。因此,目前的趋势是正在向SHA256转型。截止2016年底,SHA1证书将不再被网站支持。

TLS服务器的配置

使用完整的证书链

无效的证书链会让服务器证书无效并导致浏览器发出安全警告,在大多数SSL和TLS部署中,只有服务器证书需要两个或多个证书来建立完整的信任链。

使用安全协议

SSL/TLS系列中有五种协议:SSL  2,SSL  3,TLS 1.0,TLS 1.1和TLS 1.2。

SSL2和SSL3已经非常过时了,建议不要使用。从理论上来讲,TLS  1.0也不应该被使用,但在实践中经常被使用。截至目前,TLS  1.1和 1.2都还没有什么安全问题,但只有 1.2提供了现代的加密算法。

所以TLS 1.2应该是被使用的主要协议,因为它是仅有可提供现代认证加密(也称为AEAD)的版本。

选择加密套件

加密套件是用于在SSL/TLS握手期间协商安全设置的算法的组合。在ClientHello和ServerHello消息交换之后,客户端发送优先级列表的密码支持套件。然后,服务器使用从列表中选择的密码套件进行响应。加密套件为以下组合:

密钥交换算法(RSA,DH,ECDH,PSK);

认证算法(RSA,DSA);

批量加密算法(AES,Camellia,ARIA);

消息认证码算法(SHA-256);

不过有几个过时的加密原语必须禁止使用:

(1)匿名Diffie-Hellman(ADH)套件不提供身份验证。

(2)NULL加密套件不提供加密。

(3)导出加密套件在连接协商时不安全,但也可以针对更强大的套件(FREAK攻击)的服务器使用。

(4)弱密码(通常为40和56位)的套件使用可以轻松被攻击。

(5)RC4是不安全的。

(6)3DES运行缓慢且易被攻击。

在SSL  3及更高版本的协议版本中,客户端会先提交一系列支持的加密套件,服务器从列表中选择一个用于连接的套件。然而,并不是所有的服务器都能执行此操作,有些会固定的从客户端列表中选择第一个支持的套件,所以服务器主动选择可用加密套件对于提升安全性至关重要。

使用前向保密

前向安全或前向保密(英语:Forward Secrecy,缩写:FS),有时也被称为Perfect Forward Secrecy,缩写:PFS,是密码学中通讯协议的安全属性,指的是长期使用的主密钥泄漏不会导致过去的会话密钥泄漏。 [2]  前向安全能够保护过去进行的通讯不受密码或密钥在未来暴露的威胁。如果系统具有前向安全性,就可以保证在主密钥泄露时历史通讯的安全,即使系统遭到主动攻击也是如此。

使用强大的密钥交换算法

确保数据的传输、存储安全,通常都会对传输的数据加密后存储或传输,接收方收到数据后解密密文,还原明文。通常采用的加密算法主要有对称密钥加密算法以及非对称密钥加密算法。在安全的数据通信中,通信的双方必须分别具有加密的密钥以及解密的密钥。一旦通信的密钥被泄漏或破解,由其加密的信息就会被泄漏。因此,如何安全地交换或协商通信密钥就成为至关重要的问题,从而如何保证密钥的安全,特别是安全的密码交换就成为电子商务中安全信息交换的核心问题。

2015年,研究人员发现一个SSL加密安全漏洞LogJam,LogJam漏洞将影响任何支持DHE_EXPORT密码的服务器及所有浏览器,包括新版的IE、Chrome、Firefox、Safari等。随后他们评估称学术派黑客可以破解768位的密钥,而国家支持的黑客更可以突破1024位的密钥。所以为了安全起见,如果部署DHE,至少要配置2048位的密钥。

正确部署前的验证

也许在按着本文的方法在进行部署时,许多软件和硬件配置都有了新的版本,建议大家先对自己的SSL / TLS做个全面评估,以确保运行的安全,推荐大家使用此链接进行测试

实践部署过程中的注意事项

避免一味的追求过高的安全性

使用太短的密码肯定是不安全的,但使用太长的密码也不一定安全,比如会导致操作的复杂。对于大多数网站来说,使用强于2048位的RSA密钥以及使用强于256位的ECDSA密钥会浪费CPU功耗,并可能会损害用户体验。类似地,增加临时密钥交换的强度对于DHE为2048位以及ECDHE为256位几乎没有什么好处,使用高于128位的加密也没有明显的好处。

使用会话重用机制

由于SSL握手的非对称运算无论是RSA还是ECDHE,都会消耗性能,故为了提高性能,对于之前已经进行过握手的SSL连接,尽可能减少握手round time trip以及运算。

SSL提供2中不同的会话复用机制。

(1)session id会话复用;

(2)session ticket会话复用,Session id会话复用有2个缺点,其一就是服务器会大量堆积会话,特别是在实际使用时,会话老化时间配置为数小时,这种情况对服务器内存占用非常高。

使用广域网优化

广域网优化(WAN optimization),通常也被称为广域网加速(WAN acceleration),即通过一些优化技术来提供高性能的远程数据访问,从而提高应用程序在广域网上的性能。

缓存公共内容

通过TLS进行通信时,浏览器可能会把所有流量都视为敏感数据。这样,它们通常会使用内存来缓存某些资源,但一旦关闭浏览器,所有内容都可能会丢失。为了获得性能提升并实现对某些资源的长期缓存,可以将公共资源(例如图像)标记为公开。

启用OCSP Stapling

OCSP (Online Certificate Status Protocol) 通常由 CA 提供,用于在线实时验证证书是否合法有效,这样客户端就可以根据证书中的 OCSP 信息,发送查询请求到 CA 的验证地址,来检查此证书是否有效。

而 OCSP Stapling ,顾名思义,是将查询 OCSP 接口的工作交给服务器来做,服务器除了可以直接查询 OCSP 信息,还可以仅进行少数次查询并将响应缓存起来。当有客户端向服务器发起 TLS 握手请求时,服务器将证书的 OCSP 信息随证书链一同发送给客户端,从而避免了客户端验证会产生的阻塞问题。由于 OCSP 响应是无法伪造的,因此这一过程也不会产生额外的安全问题。

使用快速加密原语

尽可能使用支持硬件加速AES的CPU,如果你真的想要进一步提高性能,请考虑使用ECDSA密钥。

HTTP的加密

加密整个网站,加密的问题可能是当今重大的安全问题之一,比如:

(1)没有TLS的网站

(2)具有TLS但不执行TLS的站点

(3)混合了TLS和非TLS内容的网站,有时甚至在同一网页内

(4)编程错误的网站会破坏TLS

删除混合内容

即使你加密了整个网站,仍然可能会从第三方网站中检索出未加密的一些资源。混合内容页面是通过TLS传输但是包含不通过TLS传输的资源(例如,javascript文件,图像,CSS文件)的页面。这样的页面非常不安全,这些不受保护的JavaScript资源会被中间人攻击所利用,例如劫持整个用户会话。

了解第三方服务

多数网站都是通过从另一台服务器下载的JavaScript代码来激活的第三方服务比如Google Analytics。包含第三方代码的网站会创建一个隐含的信任连接,有效地使对方完全控制你的网站。虽然第三方连接可能不是恶意的,但是这些服务背后的厂商可能被攻击。

安全设置Cookie

为了在保持性能的前提下,实现安全,网站需要TLS,而且所有的Cookie在创建时都被明确标记为安全的。否则就有可能被MITM攻击者利用,建议大家为你的Cookie添加加密完整性验证。

安全的HTTP压缩

CRIME攻击通过利用压缩过程中的漏洞,可解密部分安全连接。而禁用TLS压缩可防止这种攻击。另外要注意,Http压缩可能被TIME和BREACH攻击利用。与TLS压缩不同,HTTP压缩是必需的,不能关闭。因此,为了解决这些攻击,需要对应用程序代码进行更改。

配置使用HTTP严格传输安全(HSTS)

要激活HSTS保护,你可以向你的网站添加一个新的响应头。之后,支持HSTS的浏览器就会执行它。通过自动将所有明文链接转换为安全的链接,来实现了这一目标。

建议大家添加对HSTS的支持,这是为TLS安全性做出的最重要的保障。为了获得更好的安全效果,请考虑使用HSTS预加载,将HSTS配置嵌入到浏览器中。只要是在有效期内,浏览器都将直接强制性的发起https请求。

部署内容安全策略(CSP)

敏感内容作出处理

由于使用基于云的应用平台正在增加,所以为了让所有敏感内容只让接收方收到,你必须小心对敏感内容作出处理。

感谢各位的阅读,以上就是“SSL和TLS的部署方法”的内容了,经过本文的学习后,相信大家对SSL和TLS的部署方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: SSL和TLS的部署方法

本文链接: https://lsjlt.com/news/287605.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SSL和TLS的部署方法
    这篇文章主要讲解了“SSL和TLS的部署方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SSL和TLS的部署方法”吧!在TLS中,所有安全性都以服务器的加密身份开始,这就需要一个强大的私钥...
    99+
    2023-06-17
  • 自动部署ssl的方法是什么
    自动部署 SSL(Secure Sockets Layer)的方法包括以下步骤:1. 获取 SSL 证书:通过证书颁发机构(CA)或...
    99+
    2023-09-05
    ssl
  • Nginx部署SSL证书的方法是什么
    这篇文章主要讲解了“Nginx部署SSL证书的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx部署SSL证书的方法是什么”吧!简单介绍Nginx是目前最新的高性能Web服务...
    99+
    2023-07-04
  • 局域网部署ssl证书的方法是什么
    局域网部署SSL证书的方法有多种,以下是其中几种常见的方法:1. 自签名证书:可以使用自签名证书来为局域网内的网站提供SSL加密。自...
    99+
    2023-08-25
    ssl证书
  • CentOS 6.7下nginx SSL证书部署的方法是什么
    CentOS 6.7下nginx SSL证书部署的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在CentOS 6.7下nginx SSL证书部署的方...
    99+
    2023-06-05
  • 网站建设SSL证书部署的方法是什么
    网站建设SSL证书部署的方法有以下几种:1. 自签名证书:自签名证书是由网站管理员自行签发的证书,适用于测试环境或个人网站。部署方法...
    99+
    2023-09-21
    SSL证书
  • Python和Pycharm环境部署的方法
    这篇文章将为大家详细讲解有关Python和Pycharm环境部署的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、python下载安装下载安装python最新版本https://www.python...
    99+
    2023-06-15
  • Nginx部署SSL证书的过程
    目录简单介绍SSL证书介绍SSL认证原理1.握手协议2.记录协议3.警报协议SSL证书部署准备工作1.下载证书2.部署证书3.配置http自动跳转https4.加载nginx配置简单...
    99+
    2022-11-13
    nginx部署ssl证书 nginx ssl证书
  • 在Netdata中监控SSL/TLS证书到期的方法是什么
    在Netdata中监控SSL/TLS证书到期的方法是使用SSL插件。该插件能够监控系统上的SSL证书并提供关于证书过期时间的警报和通知。 要监控SSL证书到期,您可以按照以下步骤操作: 安装Netdata的SSL插件。可以通过在终端中运行...
    99+
    2024-06-03
    zabbix
  • 聊聊PHP部署和运行的方法
    PHP是一门流行的服务器端编程语言,广泛应用于Web开发。在开始编写PHP程序之前,需要先将PHP部署和运行起来。本文将介绍PHP部署和运行的方法。安装PHP首先需要将PHP安装到你的计算机上。可以从PHP官网下载PHP安装包,选择适合你的...
    99+
    2023-05-14
  • Springboot热部署的方法
    这篇文章主要讲解了“Springboot热部署的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot热部署的方法”吧! Devtools...
    99+
    2024-04-02
  • FastDFS4和Ubuntu12安装及部署方法
    本篇内容主要讲解“FastDFS4和Ubuntu12安装及部署方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“FastDFS4和Ubuntu12安装及部署方法”吧!FastDFS4 + Ubu...
    99+
    2023-06-13
  • openstack安装和部署的方法是什么
    OpenStack的安装和部署可以分为几个步骤。以下是一种常见的方法: 准备环境: 确保服务器满足最低要求,包括硬件、操作系统...
    99+
    2023-10-25
    openstack
  • redis安装和部署的方法是什么
    Redis的安装和部署方法如下:1. 安装依赖:Redis依赖于tcl库,需要先安装tcl库。在Debian或Ubuntu系统上,可...
    99+
    2023-08-24
    redis
  • Mahout的部署和监控方法是什么
    Mahout的部署和监控方法可以按照以下步骤进行: 部署Mahout:首先,需要将Mahout安装在相应的服务器或集群上。可以通...
    99+
    2024-04-02
  • tensorflow部署和使用的方法是什么
    TensorFlow是一个开源的机器学习框架,可以用于构建、训练和部署深度学习模型。以下是TensorFlow部署和使用的一般步骤:...
    99+
    2024-03-12
    tensorflow
  • MySQL SSL 连接的部署方式及兼容性分析
    MySQL SSL 连接的部署方式及兼容性分析摘要:MySQL是一个广泛使用的关系型数据库管理系统,为了保证数据传输的安全性,我们可以通过SSL(Secure Sockets Layer)协议来加密MySQL连接。本文将介绍MySQL SS...
    99+
    2023-10-22
  • Nginx中SSL/TLS配置与安全性优化方法是什么
    Nginx中SSL/TLS配置与安全性优化方法如下: 使用最新版本的SSL/TLS协议:确保Nginx使用最新的SSL/TLS协...
    99+
    2024-05-06
    Nginx
  • linux下部署kodexplorer的方法
    环境为xampp。 首先将解压完的目录复制到我们的xampp中的应用的目录中,默认为htdocs目录: sudo cp -r ~/kodexplorer3.21/ /opt/lampp/htdocs/ 注意...
    99+
    2022-06-04
    方法 linux kodexplorer
  • docker部署code-server的方法
    拉取镜像 # docker pull codercom/code-server # docker images REPOSITORY TAG ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作