Spring的nohttp宣言:消灭http://

19-06-11 banq
         

我很高兴地宣布nohttp项目,寻找任何方法试图完全替换http://的使用。

背景

今天,Jonathan Leitschuh发表了一篇名为“ 想要接管Java生态系统 ”的博客[url=https://medium.com/@jonathan.leitschuh/want-to-take-over-the-java-ecosystem-all-you-need-is-a-mitm-1fc329d898fb]你需要的只是一个MITM![/url]。该博客演示了数百个Java库正在通过HTTP下载依赖项。这将导致潜在的MITM(中间人)攻击

不幸的是,有多个Spring项目使用HTTP来下载依赖项。幸运的是,我们没有发现MITM攻击成功的迹象。我们还解决了这个问题,以确保将来不会发生MITM攻击。

Spring团队反应

Spring Team非常重视安全性。由于发现有Spring项目通过HTTP下载依赖项,我们已采取措施确保将来不会发生MITM攻击。最明显的变化是更新Maven存储库位置以使用HTTPS。但是,我们通过在所有地方切换到使用HTTPS(几乎)来进一步采取这一措施。

现在是2019年,我们要确定删除HTTP的使用!使用HTTPS 快速简单免费提供,没有理由继续使用HTTP!作为开发人员,重要的是我们帮助世界过渡到任何地方都使用HTTPS(甚至静态站点需要HTTPS)。

我们当然不是唯一试图消除HTTP使用的人。我们形成了加密,使HTTPS免费,自动化和开放。Chrome已更新其UI以指示HTTP不安全。Maven Central已弃用HTTP。名单还在继续。

用HTTPS替换HTTP

Spring团队竭尽全力更新所有URL以使用HTTPS。这包括从Maven存储库URL到Apache许可证到文档链接的所有内容。在某些情况下,无法使用HTTPS。例如,我们链接的某些站点不支持HTTPS,XML名称空间标识符必须与文档中的标识符匹配,依此类推。

通过Classpath的HTTPS XML位置

在我们消除HTTP使用的努力中,Spring Framework 已经更新,以解析通过类路径使用HTTPS位置的XML位置。以前,这仅适用于使用HTTP的URL。请考虑以下XML配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

https://www.springframework.org/schema/beans/spring-beans.xsdURL通过类路径,而不需要网络连接解决。

请注意,XML名称空间名称(标识符)无法更改为使用HTTPS。从能够实施安全控制的角度来看,这并不理想,但从不通过网络请求名称,因此对用户几乎没有任何伤害。

基础设施更新

Spring团队已更新所有主机以确保使用HTTPS。每个站点都支持HTTPS,重定向到HTTPS,并使用严格传输安全性

潜在的MITM意味着我们的构建基础架构可能已经受到损害。为此,我们重新构建了所有构建基础架构并轮换了所有凭据。

新的安全控制

虽然对安全事件做出反应很重要,但安全控制措施到位也很重要,以确保问题不再发生。

我们更新了构建框以阻止HTTP流量,以确保不会再发生这种情况。为了保护开发人员和用户,我们创建了nohttp项目。此项目可用于查阅,替换和阻止http://的使用,同时务实允许允许无法更改的URL(例如XML命名空间名称)。有关其他详细信息,请参阅项目的站点。

         

1