Nginx의 세션 재개 캐싱

Nginx의 세션 재개 캐싱

며칠 전 나는 nginx의 세션 재개에 관한 블로그 게시물을 읽었습니다.

해당 텍스트에서 저자는 nginx가 세션 캐시를 정기적으로 지우는 기능을 제공하지 않는다고 주장합니다. "ssl_session_timeout"이 만료된 후에는 세션이 더 이상 사용되지 않지만 파일은 여전히 ​​하드 디스크에 있으므로 공격자가 읽을 수 있으므로 이 시점에서는 "Forward Secrecy"가 쓸모가 없습니다.

그는 세션 ID를 사용하는 대신 세션 캐시를 비활성화하고 세션 티켓을 사용할 것을 제안합니다. 이를 위해서는 80바이트의 임의성을 지닌 "ticket_key"를 하루에 한 번 이상 생성해야 합니다.

더 많은 정보를 찾기 위해 인터넷을 검색했지만 도움이 되는 내용을 찾을 수 없었습니다.

Q1: nginx 세션 캐시의 위치는 어디이며 TLS 연결 데이터(세션)가 하드 디스크에 있는지 어떻게 확인할 수 있나요?

Q2: 세션 티켓을 사용하는 것이 좋나요?

답변1

첫 번째 질문에는 답할 수 없지만 두 번째 질문에 대해서는 조금 이야기할 수 있습니다.

이 블로그 게시물은 TLSv1.2의 세션 티켓 결함에 대한 좋은 정보를 제공합니다.https://blog.filippo.io/we-need-to-talk-about-session-tickets/.

따라서 Michael이 말했듯이 둘 다 문제가 있으며 TLSv1.3을 사용하는 경우에만(말 그대로 그냥 사인오프했어따라서 글을 쓰는 시점에 구현이 가능해지면 TLS 재개를 완전히 안전하게 사용할 수 있습니다.

그러나 TLS 세션 재개를 사용하지 않는 데 따른 성능 비용은 상당하며 IMHO 위험은 상대적으로 낮다고 말합니다(누군가가 귀하의 서버에 액세스할 수 있다면 내가 아는 한 게임은 끝났습니다). 따라서 지금은 세션 ID와 세션 티켓을 모두 사용하는 것이 좋습니다. 특히 일부 클라이언트(Windows 7 이하의 Safari 및 IE)는 세션 티켓을 지원하지 않습니다. 특히 Safari에는 여전히 모바일과 태블릿 사용자가 많습니다. 모든 iOS 사용자의 속도를 크게 늦추고 싶나요?

관련 정보