宣布 nohttp

工程 | Rob Winch | 2019 年 6 月 10 日 | ...

我很高興宣布 nohttp 專案,該專案讓使用者可以尋找、取代並防止使用 http://

背景

今天,Jonathan Leitschuh 發表了一篇名為 想要控制 Java 生態系統嗎?你只需要一個 MITM! 的部落格。 該部落格表明,數百個 Java 程式庫正在透過 HTTP 下載相依性。 這會使專案容易受到潛在的 MITM(中間人)攻擊

不幸的是,有多個 Spring 專案正在使用 HTTP 下載相依性。 幸運的是,我們沒有發現任何成功 MITM 攻擊的跡象。 我們也已解決此問題,以確保未來不會發生任何 MITM 攻擊。

Spring 團隊的回應

Spring 團隊非常重視安全性。 由於發現有 Spring 專案透過 HTTP 下載相依性,我們已採取措施,以確保未來不會發生 MITM 攻擊。 最明顯的變更是更新 Maven 儲存庫位置以使用 HTTPS。 然而,我們已經更進一步,轉為(幾乎)在所有地方都使用 HTTPS。

現在是 2019 年,因此希望我們想要移除 HTTP 使用的原因很明顯。 使用 HTTPS 是 快速簡單,而且 免費 的,因此沒有任何理由繼續使用 HTTP。 作為開發人員,重要的是我們幫助世界轉向在所有地方都使用 HTTPS(即使是 靜態網站也需要 HTTPS)。

我們當然不是唯一試圖消除 HTTP 使用的人。Let’s Encrypt 的成立是為了使 HTTPS 成為免費、自動化和開放的。Chrome 已更新其 UI 以指示 HTTP 不安全。Maven Central 已棄用 HTTP 的使用。 清單還在繼續。

以 HTTPS 取代 HTTP

Spring 團隊已盡了最大努力來更新我們所有的 URL 以使用 HTTPS。 這包括從我們的 Maven 儲存庫 URL 到 Apache License,再到文件連結的所有內容。 在某些情況下,無法使用 HTTPS。 例如,我們連結到的一些網站不支援 HTTPS,XML 命名空間識別碼必須與文件中的識別碼相符等等。

透過類別路徑的 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.xsd](https://www.springframework.org/schema/beans/spring-beans.xsd) URL 是透過類別路徑解析的,而不是需要網路連線。

請注意,XML 命名空間名稱(即識別碼)無法變更為使用 HTTPS。 從能夠建立 安全性控制 的角度來看,這並非理想,但該名稱永遠不會透過網路請求,因此對使用者造成的危害很小。

基礎架構更新

Spring 團隊已更新我們所有的主機,以確保正在使用 HTTPS。 每個網站都支援 HTTPS、重新導向至 HTTPS,並使用 嚴格傳輸安全性

潛在的 MITM 意味著我們的建置基礎架構可能已受到威脅。 為了回應這一點,我們重新整理了我們所有的建置基礎架構並輪換了我們所有的憑證。

新的安全性控制

儘管對安全性事件做出反應很重要,但建立 安全性控制 以確保問題不再發生也很重要。

我們已更新我們的建置箱以阻止 HTTP 流量,以確保這種情況不會再次發生。 為了保護開發人員和我們的使用者,我們建立了 nohttp 專案。 此專案可用於尋找、取代和防止 http:// 的使用,同時務實地允許無法變更的 URL(例如 XML 命名空間名稱)。 有關其他詳細資訊,請參閱專案的網站。

加入我們

我們希望您能加入這場革命,以幫助消除 HTTP 的使用。

取得 Spring 電子報

透過 Spring 電子報保持聯繫

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

了解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

了解更多

即將舉辦的活動

查看 Spring 社群中所有即將舉辦的活動。

查看全部