Windows XP 지원 종료에 따른 (업무용 서버) SSL/TLS 설정 변경

The End-of-Life of Windows XP and SSL/TLS Configurations 를 보고 쓰는 글. (참고로 해당 블로그의 저자는 Linux Programming Interface 라는 훌륭한 책을 썼다)

요약하자면:

  • Windows XP 지원 중단 (2014-04-08)
  • Windows XP 를 사용하는 PC는 더더욱 malware/botnet의 일부일 가능성이 높음
  • 등등의 이유로 Windows XP와 SSL/TLS 통신한다고 넣었던 약한 암호화 방식을 빼고 더 나은 SSL/TLS 설정을 쓰자는 것
  • 이 경우에 perfect-forward-secrecy + 좀 더 나은 암호화 방식을 쓰느게 가능해진다

라는 것.

회사에서 작성한 대부분의 코드가 유저와 상호작용하는 부분이 대부분 SSL, 특히 https 를 통해서 웹 서버와 상호 작용한다. 작년의 에드워드 스노우든 사건(?) 이후로 회사 혹은 회사 제품을 쓰는 고객사 서버에는 _가능한 범위 내_에서 PFS, 그리고 AES+GCM을 쓰게 설정했다. 이 사이트는 일반 유저를 대상으로 만드는 것도 아니고, 개별 개발자나 SE만 접근하는 곳이니 Windows XP는 없다고 가정해도 될 것 같다. 그러면 IE7 / 8처럼 PFS를 전혀 지원하지 않는 브라우저 대신 IE9 이상 혹은 다른 현대적인 브라우저를 쓰게하고, _PFS를 강제_하고 AES+GCM 혹은 그보다 나은 무언가를 쓰게하는게 가능해질듯하다. (근데 IE9, IE10의 경우 더 느린 DHE만 되고, 빠른 편인 ECDHE는 안됨…)

일단 코드를 올려놓고 다음 패치 시기에 적용하는 걸 고려해야겠다.

저 글, 그리고 내가 강제하려는 PFS라는 건, 디피-헬만 키 교환 (DHE; Diffie Hellman Key Exchange) 등의 방식을 이용해서 특정 SSL/TLS 세션 동안만 쓰는 키 (ephemeral key)를 발급하고, 이를 이용해서 그 이후의 암호화에 사용하는 것이다. 장점은, 만약 특정 공격자 — 에드워드 스노우든 사건의 경우는 미국의 NSA, 더 경찰국가화하는 한국의 국가정보원 (풉) 등의 자원이 아주 많은 공격자 — 가 모든 SSL/TLS 통신을 저장해뒀다고 치자. (암호화되어서 읽진 못하지만) 이번의 heartbleed 공격처럼 private key가 털릴 수 있는 경우, 이렇게 저장해둔 SSL/TLS 기반의 통신은 모두 암호를 해독해서 읽는게 가능하다. PFS는 이런 공격을 막을 수 있다. DHE (혹은 ECDHE라거나) 를 하는 시점에 이미 private key를 알고있는 상태가 아니면, 이 이후에 통신한 내용은 암호 해독하는게 불가능하다.

요약:

  • Robert Love의 글에서 나온 대로 Windows XP 지원이 끊겼으니 Windows XP 사용자를 신경쓰지 않을 수도 있다 (내 경우엔 특히)
  • 그런 경우엔 PFS나 더 나은 암호 알고리즘을 쓸 수 있다
  • 웹 서버에 PFS나 더 나은 암호 알고리즘을 써서 좀 더 개인 정보와 업무 정보를 잘 보호해보자?