在使用SSL/TLS加密协议保护传奇服务器时,需要防范一些常见的安全漏洞,以确保服务器和用户数据的安全。以下是一些需要注意的安全漏洞及其防范措施:
SSL剥离攻击:攻击者可能会尝试将安全的HTTPS连接降级为不安全的HTTP连接,以便截获和篡改传输中的数据。确保服务器和客户端始终使用HTTPS,并在服务器配置中禁止HTTP。
中间人攻击:攻击者可能试图插入自己于用户和服务器之间,截获或篡改通信。使用强证书和证书吊销列表检查来验证证书的有效性。
降级攻击:攻击者可能迫使通信使用较弱的加密算法或过时的SSL/TLS版本。在服务器上禁用旧版本的SSL/TLS协议,并使用强加密套件。
SSL重新协商攻击:攻击者可能利用SSL/TLS流量重新协商的缺陷来注入恶意代码。更新服务器软件以修复已知的重新协商漏洞,并禁用不必要的重新协商。
SSL注入攻击:攻击者可能尝试在SSL流量中注入恶意数据。确保服务器软件是最新的,并且配置为拒绝未经验证的会话重用。
会话劫持攻击:攻击者可能试图窃取用户的会话令牌以冒充用户。使用安全的会话管理实践,如会话固定保护和会话令牌的定期轮换。
信息泄露漏洞:如CVE-2016-2183,可能允许攻击者通过生日攻击泄露加密数据。更新服务器软件以修复已知漏洞,并避免使用已知弱点的加密算法。
RC4算法漏洞:RC4算法中的缺陷可能导致信息泄露。避免使用RC4,并切换到更安全的加密算法,如AES。
服务器端漏洞:服务器软件中的漏洞可能被攻击者利用。定期更新服务器软件,应用安全补丁,并进行安全审计。
配置错误:不正确的服务器配置可能导致安全漏洞。仔细检查和测试服务器配置,确保遵循最佳安全实践。
为了提高传奇服务器的安全性,应该采取以下措施:
使用最新的服务器软件和SSL/TLS库版本。
定期更新和打补丁以修复已知的安全漏洞。
使用强密码策略,定期更换密码,并实施多因素认证。
限制对服务器的物理和网络访问,只允许授权用户访问。
实施日志记录和监控,以便及时发现和响应安全事件。
定期进行安全审计和渗透测试,以评估服务器的安全性。
通过实施这些安全措施,可以显著提高传奇服务器的安全性,保护服务器免受各种威胁和攻击。
在架设传奇使用 ssl/tls 加密协议时,存在一些常见的安全漏洞需要防范。例如 SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)、SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)、SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱等漏洞。对于这些漏洞,可以采取多种措施进行防范。如网上下载 IISCrypto.exe,选择推荐设置并应用,在合适的时间重启服务器。也可以使用强大的工具 testssl.sh 进行测试,涵盖了 TLS 和 SSL 评估所需的所有测试。
对于 SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱的漏洞,可查看 nginx 配置文件 nginx.conf,重新配置 SSL/TLS,使用大于 1024 位的 Diffie-Hellman 公共密钥。检查 ssl 支持的加密算法有没有 des 算法,若有需进行加固。如对 nginx 进行加固,在编译时注意 ssl 版本不能低,重启后再次检查,若还能测到漏洞,可在后面加!3DES。检查 ssh 时,在 vim /etc/ssh/sshd_config 末尾添加内容,取消注释并删除 des 算法,重启 ssh。
对于 SSL/TLS 协议信息泄露漏洞(CVE-2016-2183),避免使用 DES 算法。可参考多种修复方法,如在 win7 操作系统中进行相应操作,下载最新版本的 OpenSSL,对于 nginx、apache、lighttpd 等服务器禁止使用 DES 加密算法,Windows 系统可参考特定链接进行处理。
此外,服务器中使用 tomcat 作为应用服务器检测出安全漏洞时,需要去禁用 RC4 加密算法,并且重新配置 SSL/TLS,使用大于 1024 位的 Diffie-Hellman 公共密钥,在 tomcat 的 conf 目录下面的 server.xml 中增加特定配置。同时,若服务器端禁止使用 RC4 加密算法、客户端在浏览器 TLS 配置中禁止 RC4,可作为临时修复方案禁止 apache 服务器使用 RC4 加密算法并修改配置后重启 apache 服务,根据 SSL/TLS 存在 Bar Mitzvah Attack 漏洞原理,通过跟目标站点进行 SSL 握手并根据目标站点返回的 Server Hello 消息中的加密算法进行漏洞验证。
SSL/TLS受诫礼攻击漏洞(CVE-2015-2808)如何防范
该漏洞是由功能较弱而且已经过时的 RC4 加密算法中一个问题所导致的,它能够在某些情况下泄露 SSL/TLS 加密流量中的密文,从而将账户用户名密码、信用卡数据和其他敏感信息泄露给黑客。
防范方法主要有以下几种:
服务器端禁止使用 RC4 加密算法。客户端也应在浏览器 TLS 配置中禁止 RC4。验证方法可以根据 SSL/TLS 存在 Bar Mitzvah Attack 漏洞原理,通过跟目标站点进行 SSL 握手并根据目标站点返回的 Server Hello 消息中的加密算法进行漏洞验证。比如使用 openssl s_client -connect 网站地址 -cipher RC4 或者使用 nmap 进行测试 nmap -p 443 --script=ssl-enum-ciphers TARGET,确保服务器支持密码类型不使用 RC4。如果能够查看到证书信息,那么就是存在风险漏洞;如果显示 sslv3 alerthandshake failure,表示该服务器没有这个漏洞。
对于 NGINX 的修补,修改 nginx 配置文件中的 ssl_ciphers 项,如 ssl_ciphers"ECDHE-RSA-AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"。
可以通过控制面板进行设置,具体为:控制面板--->系统和安全--->管理工具--->本地安全策略--->本地策略--->安全选项--->系统加密:将 FIPS 兼容算法用于加密、哈希和签名,右键--->属性--->点击“已启用”--->“确定”。或者按下'Win + R',进入“运行”,键入“gpedit.msc”,打开“本地组策略编辑器”,计算机配置>管理模板>网络>ssl 配置设置,在 SSL 配置设置,打开 SSL 密码套件顺序设置,点击已启用,更换 SSL 密码套件。还可以打开注册表按下 Win + R 组合键打开“运行”对话框,在对话框中输入 regedit,然后按下 Enter 键。在 Protocols 右键【新建】->【项】输入【TLS 1.2】,添加同样在下面添加【Client】、【Server】,在 Client 和 Server 下【新建】->【DWORD(32)位值】,并禁用 SSL2.0 和 RC4。
SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)如何修复
直到 2015 年 3 月,还有约 30%的网络通信是由 RC4 进行保护的。但通过“受戒礼”攻击,攻击者可以在特定环境下只通过嗅探监听就可以还原采用 RC4 保护的加密信息中的纯文本,导致账户、密码、信用卡信息等重要敏感信息暴露,并且可以通过中间人进行会话劫持。
修复方法如下:
对于 apache,需要先安装 openssl,使用 yum -y install openssl。然后使用命令探测 openssl s_client -connect 127.0.0.1:443 -cipher RC4,如果返回结果为证书,那么需要在 apache 配置文件关闭 RC4。找到 http.conf 的配置文件,看是否有 ssl 的配置信息,大多数位置为 /etc/httpd/conf.d/ssl.conf。如果没有可能未安装扩展,可以使用命令安装 ssl 扩展 yum -y install mod_ssl,安装后这个文件自动生成。修改 ssl.conf 对 RC4 的支持,将 SSLCipherSuite 改为 HIGH:MEDIUM:!aNULL:!MD5;!RC4,最后重启 httpd 或者 apachectl。
对于 lighttpd,在配置文件 lighttpd.conf 中禁用 RC4 算法,例如:ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"。
SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱如何处理
处理方法主要有以下几种:
增加密钥长度:为了提高密钥的安全性,可以增加密钥长度。一种简单的方法是将原始椭圆曲线参数扩展为 n 个点,每个点的离散距离为 r=h/(2^n),其中 h 为大素数。另一种更复杂的方法是使用 RSA 加密算法中的大质数分解技术生成两个大质数 p 和 q。这些大质数将成为 Diffie-Hellman 密钥交换的基础。
选择更好的证书:为了避免证书被伪造或篡改,可以选择更好的证书。首先选择可信任的证书颁发机构(CA),并确保其颁发的证书是真实有效的。然后,要求 CA 对证书进行强制性检查和验证,以确保其有效性和完整性。
使用 Diffie-Hellman 签名:为了保证通信双方交换的密钥是安全的,可以使用 Diffie-Hellman 签名来验证密钥交换过程中是否存在误差。首先计算出每个节点生成的随机数 a 和 b,并使用公钥对它们进行加密生成公钥(e 和 d)。接着计算出私钥(d 和 c)并进行签名,即 e 和 d”,j。通信双方将这两个签名与发送方交换的私钥对比,如果相同则认为无误差发生;如果不相同,则存在误差存在需要进行重传。
本次采用增加密钥长度解决方案:生成大于 1024 的密钥文件 dhparams.pem,如 2048,使用 openssl dhparam -out dhparams.pem 2048。在 nginx.conf 中加入 ssl_dhparam /usr/local/nginx/conf/dhparams.pem;然后重启 nginx,nginx -s reload。最后验证弱加密 SSL 套件,使用 nmap -sV --script ssl-cert,ssl-enum-ciphers -p443 localhost,如果没有 nmap 命令,先安装 yum install nmap -y。
按下'Win + R',进入“运行”,键入“gpedit.msc”,打开“本地组策略编辑器”。打开计算机配置->管理模板->网络->SSL 配置设置。在“SSL 密码套件顺序”选项上,右键“编辑”->在“SSL 密码套件顺序”选在“已启用(E)”。在“SSL 密码套件”下修改 SSL 密码套件算法,仅保留 TLS 1.2 SHA256 和 SHA384 密码套件、TLS 1.2 ECC GCM 密码套件(可先复制该选项原始数值并备份到记事本作回退备用,然后删除原有内容替换为 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P521,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P521,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P521,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P521,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_NULL_SHA256。点击“应用”、“确定”,并重启系统实现修复。最后重启服务器。
如何避免 SSL/TLS 协议信息泄露漏洞(CVE-2016-2183)
TLS,SSH,IPSec 协商及其他产品中使用的 DES 及 Triple DES 密码存在大约四十亿块的生日界,这可使远程攻击者通过 Sweet32 攻击,获取纯文本数据。
避免该漏洞的方法如下:
建议避免使用 DES 算法。可以在 OpenSSL Security Advisory(22 Sep 2016)链接:https://www.openssl.org/news/secadv/20160922.txt 下载最新版本。对于 nginx、apache、lighttpd 等服务器禁止使用 DES 加密算法,主要是修改 conf 文件。Windows 系统可以参考如下链接:https://social.technet.microsoft.com/Forums/en-US/31b3ba6f-d0e6-417a-b6f1-d0103f054f8d/ssl-medium-strength-cipher-suites-supported-sweet32cve20162183?forum=ws2016。win2012R2 解决办法参考链接:https://gallery.technet.microsoft.com/scriptcenter/Solve-SWEET32-Birthday-d2df9cf1/view/Discussions#content,下载该 ps1 的文件。首先运行 PowerShell 后去文件夹中运行,或者直接输入 D:\Solve-Sweet32.ps1 即可。
对于 Windows10 和 Windows Server 2016 及以后的版本,可以通过策略修改来解决该漏洞,具体方法可参考 https://docs.microsoft.com/zh-cn/windows-server/security/tls/manage-tls,这里有说明组策略设置中 SSL 密码套件顺序和 ECC 曲线顺序的相关性重要性。对于之前的版本,可以用封闭端口的方法应付。
日常工作中,经常会有漏洞扫描、等保测评、攻防演练等安全活动。对于 CVE-2016-2183(SSL/TLS)在 WINDOWS 系统中出现的频率特别高,可以按住 win + r,输入 gpedit.msc,进入组策略界面。依次找到本地组策略编辑器-->计算机配置-->管理模板-->网络-->SSL 配置设置。双击上图右侧的 SSL 密码套件顺序,选择已启用,并删除原有的 SSL 密码套件。将下列套件复制到 SSL 密码套件框内,应用并确定。最后一定要重启服务器操作系统,使其配置生效。
当架设传奇使用 ssl/tls 加密协议时,需要特别注意防范上述常见的安全漏洞。对于 SSL/TLS 受诫礼攻击漏洞(CVE-2015-2808),要及时禁止使用 RC4 加密算法,并通过多种方式对服务器和客户端进行配置,确保加密的安全性。对于 SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566),要在不同的服务器环境中正确关闭 RC4 加密支持,防止敏感信息被窃取。对于 SSL/TLS 服务器瞬时 Diffie-Hellman 公共密钥过弱的情况,可通过增加密钥长度、选择更好的证书以及使用 Diffie-Hellman 签名等方法来提高安全性,同时也可以通过特定的配置修改来增强服务器的安全性。对于 SSL/TLS 协议信息泄露漏洞(CVE-2016-2183),应避免使用 DES 算法,并根据不同的系统版本采取相应的解决措施,确保加密协议的安全性,保护传奇游戏的用户数据和系统安全。
架设的传奇使用SSL/TLS加密协议时,有哪些常见的安全漏洞需要防范?
来源:
作者:
点击:

