Tomcat部署java项目,反馈漏洞CVE-2005-4900: TLS SHA-1 安全漏洞(中危) *

 根据项目反馈漏洞处理,修复部署SSL证书时反馈TLS1.2版本漏洞:

漏洞描述如下:

漏洞类型:密码学问题

漏洞描述:
TLS (全称 Transport Layer Security,安全传输层 协议)是一套用于在两个通信应用程序之间提供 保密性和数据完整性的协议。 TLS 1.2 版本中的 SHA-1 存在安全漏洞。上下文相关的攻击者可利 用该漏洞实施欺骗攻击。
漏洞危害:
攻击者可在没有认证的情况下直接操作对应的 API 接口,可直接被非法增删改查数据。且因
为攻击是在未认证下进行的,所以后续无法通过 定位用户进行异常排查。
修复方案:
1 、使用行业认证的强加密算法,如 AES,避免 使用已被破解或不安全的算法。
2、定期更新和更换密钥,采用安全的密钥管理 和存储机制。
3、确保加密强度足够,避免使用弱密码或短密 钥。
4、对敏感数据进行完整性校验和认证加密,确 保数据在传输和存储过程中的安全性。
本项目使用的是tomcat8.5
经过多方查找,最终定位在tomcat配置证书时未做定向指定,下面是处理方式(配置证书请自行搜索解决,这里只说明解决漏洞);
1、在部署的tomcat中找到conf/server.xml
2、修改证书配置属性,这里主要修改了SSLProtocol和ciphers
	<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="域名" >
        <SSLHostConfig hostName="域名" SSLProtocol="TLSv1.3" ciphers="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE:!DES">
            <Certificate certificateKeystoreFile="cert/域名对应生成的jks文件.jks" certificateKeystorePassword="生成jks证书密码" type="RSA" />
        </SSLHostConfig>
    </Connector>

完整的server.xml配置如下(原配置注释内容已删除,为了减少滚动查看):

<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000" maxHttpHeaderSize="8999"
               redirectPort="8443" />
	<Connector port="443" protocol="org.apache.coyote.http11.Http11Nio2Protocol" maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="域名" >
        <SSLHostConfig hostName="域名" SSLProtocol="TLSv1.3" ciphers="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE:!DES">
            <Certificate certificateKeystoreFile="cert/域名对应生成的jks文件.jks" certificateKeystorePassword="生成jks证书密码" type="RSA" />
        </SSLHostConfig>
    </Connector>
	

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
	  
    </Engine>
  </Service>
</Server>

配置完成后使用openssl进行测试查看;

安装openssl参考:win10 安装openssl并使用openssl创建自签名证书_win10 openssl-CSDN博客

查看测试证书信息名:Windows中使用cmd命令(如果提示openssl不是内部命令,请参考上面安装连接讲解);

openssl s_client -connect 域名:443 -tls1_2
openssl s_client -connect 域名:443 -tls1_3

部分查看信息如下图:

至此反馈漏洞问题已修复;官方反馈可以升级tomcat版本来进行修复,因项目特殊,暂不允许升级tomcat版本;故采取此方法修复,希望可以帮助到遇到该问题的老铁.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值