Nginx

Nginx 中的會話恢復記憶體

  • August 29, 2018

幾天前,我讀了一篇關於 nginx 中會話恢復的博文。

在該文本中,作者聲稱 nginx 不提供定期清除會話記憶體的能力。“ssl_session_timeout”過期後,會話不再使用,但文件仍在硬碟上,可以被攻擊者讀取,因此“前向保密”此時將無用。

他建議不要使用會話 ID,而是停用會話記憶體並使用會話票證。為此,必須每天至少創建一次具有 80 字節隨機性的“ticket_key”。

我在網際網路上搜尋了更多資訊,但找不到任何有用的資訊。

Q1: nginx 會話記憶體的位置在哪裡,如何檢查 TLS 連接數據(會話)是否在硬碟上?

Q2:是否建議使用 Session Tickets?

我無法回答第一個問題,但可以談談第二個問題。

這篇博文提供了一些關於 TLSv1.2 上的會話票證缺陷的好資訊:https ://blog.filippo.io/we-need-to-talk-about-session-tickets/ 。

所以就像邁克爾說的那樣,他們都有自己的問題,只有當你使用 TLSv1.3(字面上剛剛簽署,所以在撰寫本文時才可以在實現中使用),你才能完全安全地使用 TLS 恢復。

但是,說不使用 TLS 會話恢復的性能成本很高,恕我直言,風險相對較低(如果有人可以訪問您的伺服器,那麼就我而言,遊戲結束了)。所以現在我建議同時使用會話 ID 和會話票。尤其是某些客戶端(Windows 7 和更早版本上的 Safari 和 IE)不支持會話票證。尤其是 Safari 在移動設備和平板電腦上仍然有很多使用者——你真的想顯著減慢所有 iOS 使用者的速度嗎?

引用自:https://serverfault.com/questions/928586