SSL/TLS

PFS (Perfect Forward Secrecy) 란 무엇일까?

  • jroh

SSL/TLS와 암호에 대한 개념과 원리에서 빠지지 않는 항목이 있는데 바로 PFS(Perfect Foward Secrecy)입니다. SSL/TLS의 암호화 슈트(Cipher Suite)나 IPSEC VPN의 암호 알고리즘을 선택할 때 PFS는 항상 노출됩니다.

notion image

PFS의 원리와 목적

암호화된 암호문이 도감청 및 저장되고 있다고 가정 합시다. 서버/클라이언트간 사용하던 비밀키가 노출되면 공격자는 기존 암호문을 모두 해독해 버릴 수 있습니다. PFS는 이런식으로 비밀키가 노출되었을 경우에도 기존 암호문을 노출된 비밀키로 해독할 수 없도록 해줍니다.

PFS를 사용하면 서버가 생성한 세션키의 수명이 굉장히 짧아집니다. 세션키를 일정시간에 따라 지속적으로 변경하게 되므로, 해커가 비밀키를 얻더라도 과거의 세션키를 얻을 수 없으면 과거의 기록된 암호화된 데이터는 영구적으로 보호받을 수 있습니다.

ECDHE(Elliptic Curve 및 Ephermeral을 지원하는 DH 방식)만 PFS 특성을 지원합니다. Ephermeral이란 DH단계에서 도출되는 키를 필요한 작업이 끝나면 파기시키고 필요시 새로 만드는 특성입니다.

디피 헬만 키 교환 알고리즘은 기본적으로 PFS 성향을 지니며, 이는 디피 헬만 키를 2048 bit로 바꿔야 하는 이유 포스팅을 참고하세요.

결론

SSL/TLS 암호화 통신을 위해 PFS는 필수로 적용되어야 합니다. SSL/TLS 기반 웹사이트 구축 시 PFS가 지원되는 Cipher Suite를 사용하고, IPSEC VPN에서도 no-pfs 옵션은 사용하지 않는 것이 권장됩니다.

팔로알토 방화벽 등 SSL Decrypted를 지원하는 솔루션들이 PFS를 지원하는 암호화 세션도 복호화 가능하도록 개선되고 있습니다. PFS가 만병통치약은 아니지만 최대한의 보안성 향상을 위해 항시 권장됩니다 🙂

감사합니다.


📎

SSL TLS에서 사용되는 암호화 스위트 (Cipher Suite) 란 무엇일까?SSL/TLS