Announcing 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 已更新其介面,以表明 HTTP 不安全。Maven Central 已棄用 HTTP 的使用。這樣的例子不勝列舉。

用 HTTPS 替換 HTTP

Spring 團隊已竭盡全力更新所有 URL 以使用 HTTPS。這包括從 Maven 倉庫 URL 到 Apache 許可證,再到文件連結的所有內容。在某些情況下無法使用 HTTPS。例如,我們連結的一些站點不支援 HTTPS,XML 名稱空間識別符號必須與文件中的識別符號匹配等等。

透過 Classpath 解析 HTTPS XML 位置

為了消除 HTTP 的使用,Spring Framework 已更新,以便透過 classpath 解析使用 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 是透過 classpath 解析的,而不是需要網路連線。

請注意,作為識別符號的 XML 名稱空間名稱不能更改為使用 HTTPS。從部署安全控制的角度來看,這並不理想,但該名稱從未透過網路請求,因此對使用者幾乎沒有危害。

基礎設施更新

Spring 團隊已更新了我們所有的主機,以確保使用 HTTPS。每個站點都支援 HTTPS,重定向到 HTTPS,並使用 嚴格傳輸安全 (Strict Transport Security)

潛在的 MITM 意味著我們的構建基礎設施可能已受到損害。為此,我們重置了所有的構建基礎設施,並輪換了所有憑據。

新的安全控制

雖然對安全事件做出反應很重要,但同樣重要的是部署安全控制,以確保問題不再發生。

我們更新了構建盒子,以阻止 HTTP 流量,確保這種情況不再發生。為了保護開發者和我們的使用者,我們建立了 nohttp 專案。該專案可用於查詢、替換和阻止 http:// 的使用,同時務實地允許那些無法更改的 URL(例如 XML 名稱空間名稱)。更多詳情,請參閱專案網站。

加入我們

我們希望您能加入這場旨在消除 HTTP 使用的變革。

獲取 Spring 資訊

訂閱 Spring 資訊,保持聯絡

訂閱

搶佔先機

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲取支援

Tanzu Spring 透過一個簡單的訂閱,為 OpenJDK™、Spring 和 Apache Tomcat® 提供支援和二進位制檔案。

瞭解更多

近期活動

檢視 Spring 社群所有即將到來的活動。

檢視全部