當請求將其 SSL 協議指定為“TLSv1”時,這意味著什麼?
我想將我的 AWS ELB 升級到僅允許 TLS v1.2 的安全策略。
在此之前,我想檢查 ELB 日誌以確保目前沒有客戶使用舊版本。
我的 ELB 日誌有一個欄位“ssl_protocol”。大多數請求記錄“TLSv1.2”,但少數指定“TLSv1”。(也有一些 v1.0 和 v1.1,但這些都收到 4XX 響應,因此可能是非法流量)。
但我不太確定這個“TLSv1”是什麼。從這個問題聽起來,一個指定了 TLSv1 協議的請求說它可以通過任何TLSv1 次要版本進行加密,因此如果我不允許版本 1.0 和 1.1,這些請求仍然可以使用 1.2 成功加密。
它是否正確?
首先,我沒有看到任何關於 ELB 日誌中 ssl_version 欄位內容的具體資訊,這將是權威回答 ELB 日誌含義的正確位置。
也就是說,在這種上下文中,字元串
TLSv1
應該被合理地解釋為TLS 版本 1.0。在您的特定情況下,這意味著這些客戶端似乎不支持更高版本(因為他們應該盡可能喜歡和使用這些版本)。
值得注意的是,像
SSLv2
,SSLv3
,TLSv1
,TLSv1.1
,之類的字元串TLSv1.2
,TLSv1.3
尤其是像這樣寫的時候(有時主題的細微變化,取決於所涉及的軟體)通常不是根據確切的目前上下文製作的自由格式文本,而是而不是底層軟體中使用的協議標識符。至於
TLSv1
廣泛用於 TLS 1.0 版的可能令人困惑的標識符,我認為我們可以讀到的只是流行的實現(如 openssl)有點被版本控制策略的變化所吸引,這種變化只有在 TLS 1.1 和以下版本是在很久以後推出的。即,SSL 的版本為 1.0、2.0、3.0,但由於協議將名稱更改為 TLS,因此版本改為遵循模式 1.0、1.1、1.2、1.3。在首次引入 TLS 1.0 時,我猜想只是假設下一個版本將是 2.0,並且像以前一樣繼續簡化標識符的相同模式將繼續有意義。
旁注:命令行選項可以巧妙地使用與不同的含義
是正確的,但問題不在於如何指示允許連接的方式,而是解析日誌條目指定的確切版本使用了某些連接。
curl``--tlsv1``--tlsv1.0``curl