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

banq發表於2019-06-11

我很高興地宣佈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名稱空間名稱)。有關其他詳細資訊,請參閱專案的站點。

相關文章