Categories
程式開發

Java 8 已反向移植 TLS :軟件所有者可通過HTTP/2進行通信


應用層TLS協商的改進已經被反向移植到Java 8中,這使得客戶端能夠利用HTTP/2的網絡能力。在此之前,需在Java 9及更高版本上才能使用該功能。

這一變化對老的客戶端來說是一個重要的增強,因為New Relic最近的“Java狀態”報告顯示:85%​​的系統都是運行在Java 8上。該反向移植,最初是作為JEP 244隨Java 9一起發布的,它使得在Java 8系列中更新的客戶端能夠通過請求HTTP/2流量與最新的非Java系統進行通信。如果不進行更新,這些客戶端將被迫採用舊的TLS結構,或服務端應用程序必須在其前面採用一個SSL終結器來支持較新的應用程序協議。 KeyCDN已經發布了一個有關應用層協議協商( Application Layer Protocol Negotiation )工作原理的圖示。

每種技術在很多生產系統中都已經使用了好些年。

HTTP/2是建立在一個名為SPDY的Google驅動計劃之上。儘管底層SPDY的工作在Java 8的時間框架內是可用的,但是在Java 9發布之前,還沒有可用的正式行業標準。在HTTP/2之前,SPDY是一個由Google驅動的活動,可以在無通知的情況下,隨時更改或取消。

雲分析師Corey Quinn調侃過Google對諸如在線討論等產品的支持,“我只是不明白為什麼Zoom是事實上的視頻會議解決方案,而不是Google Meet、Hangouts、Duo、Allo、Talk、Hangouts Chat、GTalk、Buzz、Wave、Messages、Spaces、Voice……” Google Meet之後的每個項目都取消了Google聊天服務。 Quinn隨後又上傳了一張Google標識“G”上畫有一隻惡作劇的鵝的照片,他說:“故意貶低事物。你這只討厭的鵝。”作為HTTP/2協議的主要領導者,Google直到與形成該標準的同行技術組織進行了管理良好的協調之後,才逐步淘汰SPDY。隨後,該功能被包含在後續的主要Java版本中。

應用層協議協商(Application Layer Protocol)可以在客戶端和服務器應用程序之間實現更好的壓縮,從而可以在客戶端問候握手期間根據適當的協議進行交換和解碼。

不熟悉TLS內部工作原理的開發人員可以利用不同的在線工具(例如Hardernize)來提供“紅色-琥珀色-綠色“的安全指標。這些工具並不關注TLS和算法配置的個別實踐,而是評估服務器的響應和TLS的握手信息,以確定是否有其他問題,例如算法的可用性、證書密鑰的強度、HTTP的報頭或服務器管理員和安全專業人員感興趣的其他來源。

希望利用TLS改進的運營團隊可以通過公共的Java 8提供程序(例如AdoptOpenJDK)獲得反向移植。希望利用此共呢個的開發團隊應該考慮遵循標題為“從Java 8 到 11”的Microsoft指南。

原文鏈接:

TLS Improvements Backported to Java 8