안전하지 않은 인증서 사용
TLS/SSL 통신에서 인증서의 유효기간, 발급자, 서명, 호스트 이름 등 서버 인증서를 제대로 검증하지 않았을 때 발생할 수 있는 취약점입니다. 단순히 HTTPS를 적용했다고 해서 통신 보안이 보장되는 것은 아닙니다. 안전한 통신을 위해서는 클라이언트가 인증서를 올바르게 검증하는 과정이 반드시 필요합니다.
예를 들어, 인증서의 호스트 이름이 실제 접속 대상과 일치하는지 확인하지 않거나 자체 서명 인증서나 신뢰할 수 없는 인증 기관의 인증서를 무조건 신뢰하는 경우가 여기에 해당합니다. 만약 공격자가 위조된 인증서를 사용하면 상대방을 가장할 수 있습니다. 그러면 사용자가 입력한 계정 정보나 민감한 데이터가 공격자에게 노출될 수 있습니다.
안전하지 않은 인증서 사용은 중간자 공격(MitM)이 성공할 가능성을 높이는 대표적인 원인 중 하나입니다. 이 취약점에 대응하기 위해 서버와 클라이언트 모두 인증서 체인과 호스트 이름을 정상적으로 검증해야 합니다. 검증 오류를 무시하거나 인증서 검증 기능을 비활성화해서는 안 됩니다. 또한, 최신 TLS 버전과 신뢰할 수 있는 인증 기관을 사용하고 인증서를 적절히 갱신해야 합니다.
대표 사례는 다음과 같습니다. 2015년 Lenovo 노트북에 사전 설치된 Superfish 소프트웨어는 모든 기기에 같은 루트 인증서를 설치해, 공격자가 HTTPS 통신을 가로챌 수 있는 위험이 있었습니다.

