領先一步
VMware 提供培訓和認證,助您加速進步。
瞭解更多我很高興地宣佈 nohttp 專案,該專案允許使用者查詢、替換和阻止使用 http://。
今天,Jonathan Leitschuh 發表了一篇題為Want to take over the Java ecosystem? All you need is a MITM! 的部落格。該部落格演示了數百個 Java 庫透過 HTTP 下載依賴項。這使得專案容易受到潛在的 MITM(中間人)攻擊。
不幸的是,有多個 Spring 專案使用 HTTP 下載依賴項。幸運的是,我們沒有發現任何成功的 MITM 攻擊跡象。我們還解決了這個問題,以確保將來不會發生 MITM 攻擊。
Spring 團隊非常重視安全性。自發現有 Spring 專案透過 HTTP 下載依賴項以來,我們已採取措施確保將來不會發生 MITM 攻擊。最明顯的變化是更新 Maven 儲存庫位置以使用 HTTPS。但是,我們已經做了更多,幾乎在所有地方都切換到使用 HTTPS。
現在是 2019 年,所以,希望很明顯我們為什麼要消除 HTTP 的使用。使用 HTTPS 速度快,簡單,並且免費提供,所以沒有理由繼續使用 HTTP。作為開發人員,幫助世界過渡到在所有地方使用 HTTPS(即使是靜態網站也需要 HTTPS)非常重要。
我們當然不是唯一試圖消除 HTTP 使用的。 Let’s Encrypt 的成立是為了讓 HTTPS 免費、自動化和開放。 Chrome 更新了其 UI 以指示 HTTP 不安全。 Maven Central 已棄用 HTTP 的使用。還有很多其他的例子。
Spring 團隊已付出巨大努力將所有 URL 更新為使用 HTTPS。這包括從我們的 Maven 儲存庫 URL、Apache 許可證到文件連結的所有內容。在某些情況下,使用 HTTPS 不可行。例如,我們連結到的一些網站不支援 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,並使用 Strict Transport Security。
潛在的 MITM 意味著我們的構建基礎設施可能已被洩露。作為回應,我們重新構建了所有構建基礎設施並輪換了所有憑據。
雖然應對安全事件很重要,但同樣重要的是實施安全控制,以確保問題不再發生。
我們已更新我們的構建機以阻止 HTTP 流量,確保這種情況不會再次發生。為了保護開發人員和我們的使用者,我們建立了 nohttp 專案。該專案可用於查詢、替換和阻止 http:// 的使用,同時務實地允許無法更改的 URL(例如 XML 名稱空間名稱)。有關更多詳細資訊,請參閱該專案的網站。
我們希望您加入這場革命,幫助消除 HTTP 的使用。