OpenSSL Perfect Forward Secrecy

· 기능

sgcWebSockets 4.4.8부터 연결 보안을 개선하기 위해 라이브러리에 작은 수정 사항이 있어요. 그중 하나가 Perfect Forward Secrecy예요

RSA 키 교환 메커니즘을 사용하면 서버의 키 쌍과 각 고유한 보안 세션에 대해 생성된 세션 키 간에 링크가 생성돼요. 따라서 공격자가 서버의 개인 키를 손에 넣으면, SSL 세션과 저장된 모든 SSL 세션을 복호화할 수 있어요.

반면, Perfect Forward Secrecy (PFS)를 활성화하면 서버의 개인 키와 각 세션 키 간에 링크가 없어요. 공격자가 서버의 개인 키에 접근하더라도, 개인 키를 사용해 보관된 세션을 복호화할 수 없어요. 그래서 "Perfect Forward Secrecy"라고 부르는 거예요.


Perfect Forward Secrecy 활성화 

TLS 1.2 연결에서 Perfect Forward Secrecy를 활성화하려면 다음 속성을 활성화하기만 하면 돼요:

SSLOptions.OpenSSL_Options.ECDHE := True;

openSSL 1.0.2 라이브러리를 사용하는 경우 TLS 1.2 연결에 대해 ECDHE를 활성화해요(1.1.1에서는 ECDHE가 기본적으로 활성화돼 있어요). ECDHE가 활성화되면 라이브러리가 openSSL 라이브러리에 높은 보안의 cipher 목록을 전달해요.

온라인 웹 https://entrust.ssllabs.com/에서 보안 테스트를 수행하면, 서버에서 ECDHE를 활성화한 후 안전한 결과를 얻을 수 있어요.

테스트를 통과하는 데 사용된 서버는 openSSL 1.1.1을 사용했고 TLS 1.2TLS 1.3을 허용했으며, ECDHE 도 활성화돼 있었어요.