概述
openssl ocsp 狀態請求擴充套件存在嚴重漏洞,該漏洞令惡意客戶端能耗盡伺服器記憶體。利用該漏洞,能使預設配置的伺服器在每次協議重商時分配一段 ocsp ids 記憶體, 不斷重複協商可令伺服器記憶體無限消耗,即使伺服器並未配置 ocsp。理論上,乙個 ocsp id 最多 65,535 位元組,攻擊者可以不斷重商令伺服器每次記憶體消耗近 64k。但從實現來說,在 openssl 1.0.2 版本中對 clienthello 長度做了 16,384 位元組的限制,因此每次重商只能令伺服器記憶體消耗約 16k。但在最新的 1.1.0 版本中,對 clienthello 長度的限制增加到 131,396 位元組,那麼對使用 1.1.0 版本的伺服器,每次重商會令記憶體消耗近 64k。此漏洞由來自360gear team的 石磊 (360資訊保安部)在閱讀 openssl 原始碼時發現。發現漏洞後報給了 openssl 官方。
對策公升級到最新版本可避免被攻擊。 不需要登出私鑰或證書,攻擊者不能竊取到私鑰。
補丁位址:
問題攻擊者可通過傳送大量 ocsp 狀態請求擴充套件導致伺服器拒絕服務。
如何利用
攻擊者使用 tls 擴充套件 "tl***t_type_status_request",填充 ocsp ids 並不斷請求重商。
受影響版本
影響版本:
openssl 0.9.8h through 0.9.8v
openssl 1.0.1 through 1.0.1t
openssl 1.0.2 through 1.0.1h
openssl 1.1.0
不受影響版本:
openssl 1.0.1u
openssl 1.0.2i
openssl 1.1.0a
漏洞危害
攻擊者可通過不斷重商,傳送大量 ocsp 狀態請求擴充套件,導致伺服器記憶體無限增長,最終導致伺服器拒絕服務。預設openssl配置的伺服器會受影響,即使其並不支援 ocsp,除非在編譯時使用了「no-ocsp」編譯選項。
漏洞利用的影響範圍
我們只測試了小部分使用openssl ocsp功能的元件,包括openssl server、nginx、和apache。其中預設配置的 openssl server 是受影響的(包括:openssl 0.9.8h through 0.9.8v、openssl 1.0.1 through 1.0.1t、openssl 1.0.2 through 1.0.1h、openssl 1.1.0)。 nginx 0.8.23 以前的版本會受此影響,apache 2.0以前及 sslinsecurerenegotiation 配置項為 on 是都會受此影響。所有版本 (ssl3.0, tls1.0, tls1.1, tls1.2) 都受影響。 所有加密演算法都受影響.
http狀態碼和請求狀態
0 請求未初始化,還沒有呼叫 open 1 請求已經建立,但是還沒有傳送,還沒有呼叫 send 2 請求已傳送,正在處理中 通常現在可以從響應中獲取內容頭 3 請求在處理中 通常響應中已有部分資料可用了,沒有全部完成。4 響應已完成 您可以獲取並使用伺服器的響應了。伺服器狀態碼 1xx 表示臨時響應...
java http請求 狀態碼
http狀態返回 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態 http狀態返回 說明 100 繼續 請求者應當繼續提出請求。伺服器返回此 表示已收到請求的第一部分,正在等待其餘部分。101 切換協議 請求者已要求伺服器切換協議,伺服器已確認並準備切換。http狀態返回 2xx 成功...
Http 請求狀態碼
客戶端向web伺服器傳送的任意乙個http請求在任何情況下都會得到乙個響應,每個響應均具有乙個由3位數字表示的狀態碼和相應的描述文字,不同數值的狀態碼體現了不同型別的響應狀態。w3c對響應碼狀態的範圍進行了如下的規範。100 199 資訊狀態碼,代表請求已被接收並需要繼續處理。200 299 成功狀...